sapscript passo a passo

31
1 1. Arquitetura 2. SapScript 2.1. Cabeçalho 2.2. Parágrafos 2.3. Caracteres 2.4. Janelas 2.5. Páginas 2.6. Janela de páginas 2.6.1. Elementos de texto 2.6.2. INCLUDES 2.6.3. Box 2.6.4. Comandos de controle 2.6.5. Símbolos do sistema 2.6.6. Campos genéricos do Sapscript 3. Estrutura do programa

Upload: cristiano-santos

Post on 07-Jul-2015

1.157 views

Category:

Documents


6 download

TRANSCRIPT

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 1/31

 

1

1. Arquitetura

2. SapScript

2.1. Cabeçalho

2.2. Parágrafos

2.3. Caracteres

2.4. Janelas

2.5. Páginas

2.6. Janela de páginas

2.6.1. Elementos de texto

2.6.2. INCLUDES

2.6.3. Box

2.6.4. Comandos de controle

2.6.5. Símbolos do sistema

2.6.6. Campos genéricos do Sapscript

3. Estrutura do programa

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 2/31

 

2

SAP DB

Programa impressão

Formulário

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 3/31

 

3

Janelas

de

 paginas

Páginas

Janelas e

elementos de

Textos

<H></>

P

 

Parágrafos

Caracteres

Header 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 4/31

 

4

SE71

Transação SE71

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 5/31

 

5

Podemos criar um novo

Formulário (botão criar) ou

Utilizar as opções encontradas

 No menu ³Utilities´

Transação SE71

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 6/31

 

6

Header - informações gerais do formulário, como formato da página que será utilizado, parágrafo e fontes default do mesmo(quando não for especificado nenhuma dentro do FORM). Nesse tópico aparece também o título do formulário, a classe dedesenvolvimento do mesmo e os idiomas do formulário original e o corrente.

O bs1: Quanto o usuário fazer 

LOGO N com uma linguagem

Que não existe o FORM,

O sistema utilizará a linguagem

Original

O bs2: Todas as janelas só podem

Ser alteradas no idioma original,

Isso significa que só existirá um

Layout, porém os dados poderão

Ser diferentes

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 7/31

7

O bs: Duas vírgulas ³,,´

R epresenta uma tabulação

Header - Cabeçalho

SPAD ex: Nota Fiscal

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 8/31

8

Parágrafos - são elementos que podem ser criados pelo usuário e apresentam informações dos textos de uma determinada janela.Nesses parágrafos são determinados tipos de fontes, tabulações, negrito ou sublinhado, etc... Para criar um parágrafo novo,utilizar o caminho do menu EDIT -> Create Element, lembrando que em um formulário standard, somente se pode alterar olayout no idioma original.

Define o parágrafo, descrição,

Margem ³default´, alinhamento,

Espaçamento, etc

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 9/31

9

Define a letra e suas opções

( tipo, tamanho, etc)

Parágrafos

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 10/31

10

Parágrafos

Define tabulações

O bs: Cada 2 vírgulas ³,,´ o

Sistema saltará para cada

Tabulação

Ex: mara-matnr ,,mara-matkl,,

mara-labor 

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 11/31

11

Caracter de Seleção - são informações semelhantes às do parágrafo, no que diz respeito a formatação de textos, no entanto podemser aplicados a trechos de textos e não necessariamente a linhas inteiras do formulário.

Protegido ±Não permite a quebra

de linha, mas apresenta todo o bloco de texto na próxima linha.

Oculto ± Não é apresentado, 

somente visível no editor de texto

Superescrito/ Subescrito ± é

apresentado meia linha acima ou

abaixo

Sua sintaxe de utilização se assemelha a programação HTML, conforme exemplo a seguir. Imagine um Caracter string definido como nome B, cuja formatação de texto seja o incremento do modelo negrito a uma determinada fonte. Sua utilização seria:<B>Texto</> - E seu resultado no formulário seria: Texto

Utilizado para código de barras

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 12/31

12

Também podemos definir o tipo eTamanho do fonte, porém mais

Utilizado para definir atributos

Strings ± Caracteres de seleção

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 13/31

13

Exercício ± parte 1. Criar um formulário que contenha:

1. Linguagem original PT

2. Página com formato Carta - Portrait

3. Com parágrafo default -AS- tipo courier de tamanho 124. Defina os parágrafos:

AS ± descrito acima

HE ± Header ± Courier 20 ± com 2 tabulações (1cm e 8cm)

LI ± Line ± Courier 10 ± com 3 tabulações (2,5 e 17cm)

5. Criar um Caracter string para impressão em negrito chamado A

(não definir fonte).

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 14/31

14

 Janelas - as janelas são a base da construção do layout. As janelas podem ser criadas sem limites e tem por finalidade dividirespacialmente as regiões de um formulário para operações independentes.

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 15/31

15

Essas janelas podem ser criadas basicamente em 3 tipos distintos:

MAIN - janelas do tipo MAIN são as mais importantes do relatório (janela pela qual o formulário se guia). Somente épermitido um tipo de janela MAIN por formulário, e é a única janela obrigatória em uma página. Pode-se criar mais de uma janela

MAIN por página, no entanto essas janelas, na verdade, só são divididas fisicamente, uma vez que seus elementos e processamentoobedecem aos mesmos comandos, e não podem ter nomes diferentes. A passagem de uma janela MAIN para outra pode serautomática ou forçada pelo usuário. Quando o espaço físico de uma janela MAIN está tomado e necessita-se de mais dados namesma, o formulário automaticamente passa à próxima janela MAIN do formulário. É através desse princípio que uma relatórioganha número de páginas automaticamente quando da execução de um relatório desse tipo, conforme os dados são preenchidos.Para forçar a passagem de uma janela MAIN para outra, o usuário poderá utilizar o comando:

/: NEXT-WINDOW

A lógica de sequência das janelas MAIN de um formulário segue sempre a um critério. Dentro de uma página anavegação de uma MAIN para outra segue de acordo com os índices dessas janelas dentro do formulário, e quando uma novapáginaé gerada, a contagem segue a mesma disposição, continuamente.

VAR - essa janela apresenta uma característica própria, que necessita de verificação constante do formulário com seusdados, que podem variar durante a execução do relatório. Esse tipo de janela deve ser utilizado quando se pretende trabalhar comtextos que variam, como exemplos de mensagens que podem mudar durante o decorrer da execução do formulário.

CONST - são janelas que não merecem muita preocupação de processamento por parte do formulário, uma vez queseus dados devem ser mantidos os mesmos desde seu primeiro preenchimento até o fechamento do formulário. Geralmente nesse

tipo de janela são incluído objetos e textos que permanecem os mesmos durante todo o relatório, independente do número depáginas, como logos e rodapés.

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 16/31

16

Páginas - as páginas são os elementos responsáveis pelo agrupamento das janelas durante certos momentos do relatório. Geralmentesó são definidos duas páginas, que acabam em processo reflexivo, por formulário.

FIRST -> NEXTNEXT -> NEXT

Após a primeira página, seria chamada a segunda, com um layout diferente (sem o logotipo). A partir dessa, todas apresentariam omesmo tipo de layout (com dados do relatório aproveitandoa página inteira).

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 17/31

17

Page WindowsAs page windows podem ser entendidas pelo nosso conceito de layout propriamente dito. São os elementos responsáveis peloaparecimento ou não das janelas dentro de uma determinada página, bem como seus posicionamentos em relação à folha a serimpressa. É também através das page windows que o programador terá acesso aos Text Elements de cada uma dessas janelas,responsáveis pelo tratamento dos dados em tempo de execução do formulário.

 Neste momento define-se onde a

Janela aparecerá no formulário.

Só é definido no formulário com

Linguagem original.

Programação dentro

do formulário. Onde

definimos os TextsElements

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 18/31

18

Exercício ± parte 2. Usar o formulário criado na parte 1:

1. Criar 3 windows

1.1. Header ± var 

1.2. Footer ± var 

1.3. Main - var 

2. Criar a 2 Páginas2.1. First

2.2. Next

3. Criar 3 page windows

3.1. Header ± largura 27 e altura 4cm *

3.2. Footer ± deslocamento de altura 28cm

largura 21 e altura 1cm

3.2. Main - ± deslocamento de altura 3cm *largura 21 e altura 22cm

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 19/31

19

Page Windows ± Texts Elements

Corresponde à lógica de processamento e comportamento de uma janela durante a execução do formulário. É responsável

pelos valores que serão impressos no mesmo, bem como seu posicionamento dentro da janela e seu tipo de caracter.De dentro de uma Page Window, é possível selecionarmos qualquer uma das janelas existentes em uma determinada página,simplesmente clicando o mouse sobre o seu nome e apertando o botão selecionar, ou mesmo dando um ´double-clickµdiretamente sobre o nome da janela desejada. Uma vez selecionada a janela, se apertarmos o botão Text Element, uma telasemelhante à do editor de ABAP/4 do SAP irá se abrir, com as linhas onde a lógica da janela será introduzida.Nesses elementos do SAPscript, o programador poderá utilizar alguns comandos semelhantes ao do ABAP/4, com aindicação de que se trata de uma linha de comando para o formulário (/:, à esquerda da linha). Abaixo, alguns dos comandosque podem ser utilizados de dentro dos elementos de texto de uma janela em SAPscript:

IF..ELSE..ENDIF

CASE..WHEN

DEFINE declaraçãode variáveis dentro da janela, com atribuiçãode valor

PERFORM..USING..CHANGING (Ver formulário ZBR_MF_PEDIDO_NA)

BOX..FRAMEINCLUDE

O comando include dentro de uma janela de um formulário SAPscript serve para inserir um objeto no mesmo.Esse objeto pode ser desde um logo, até um texto com várias linhas. A sintaxe é bastante simples, e somente deve-se ter umcuidado bastante especial com o idioma que se trata esse objeto. Independentemente do idioma do formulário, deve-sesempre utilizar o idioma em que o objeto foi criado.

/: INCLUDE name OBJECT object ID id LANGUAGE spras

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 20/31

20

Page Windows ± Texts Elements

Linha de comando ± 

Usado para

Comandos, parágrafos

e texts elements

Explorar MENU

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 21/31

21

Page Windows ± Texts Elements

Text Element definido

dentro do programa de

impressão na função

³WRITE_FORM´

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 22/31

22

Page Windows ± Texts Elements

ADDRESS Formatação automática de informação de endereço

BO

TTOM Usado apenas na janela MAIN para imprimir no rodapé da janela

BOX Cria caixa

CASE Cria condição para argumentos

DEFINE Cria um novo símbolo em tempo de execução

HEX Passa valores hexadecimais diretamente

IF Cria condição para argumentos

INCLUDE Incluí outros textos e logotipos

NE W -PAGE Força uma nova página

NE W - W INDOW  Força uma nova janelaPERFORM Chama subrotina

POSITION Usado para caixas setando X & Y

PRINT-CONTROL Inicializa um seqüência definida de controle de impressão

PROTECT Protege uma página de parada

RESET Reestarta seqüência de números de saída

SET COUNTRY Seta o país para campos

SET DATE MASK Seta formato de data

SET SIGN Coloca o campo a direita ou esquerda do número

SET TIME MASK Seta formato de hora

SIZE Usado apenas para caixa onde seta o tamanho da caixa

STYLE Usa um diferente tipo de estilo

SUMMING Adiciona valores para um total

TOP Usado apenas na janela MAIN para imprimir no topo da janela

Linha de comando ± 

Sempre usar /:

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 23/31

23

CALL FUNCTION ³OPEN_FORM´

CALL FUNCTION ³START_FORM´

CALL FUNCTION ³WRITE_FORM´

CALL FUNCTION ³END_FORM´

CALL FUNCTION ³CLOSE_FORM´

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 24/31

24

OPEN FORM - Serve para abrir um formulário de impressão.Dois parâmetros muito utilizados são o dialog  e o options.No primeiro, indica se a caixa de diálogo para configuração da impressão deve ou não ser apresentado. Caso este deva ser

omitido, os dados para impressão serão tomados de uma estrutura a ser colocada no segundo parâmetro. Nessa estrutura sãopassados os dados tais como número de cópias e nome da impressora. A opção de não exibição da caixa de diálogo estadiretamente ligada a utilização do segundo parâmetro. Se a exibição estiver desabilitada (DIALOG = ¶ ¶) mas a estrutura ITCPOnão estiver preenchida, a caixa de diálogo será exibida.

Alguns dos campos mais importantes e que normalmente são utilizados na estrutura ITCPO são:

- TDCOPIES (Número de Cópias)- TDDEST (Dispositivo de Saída)- TDPREVIE W (Print Preview)- TDIMMED (Saída Imediata)

call function 'OPEN_FORM'

exporting

* APPLICATION = 'TX'

* ARCHIVE_INDEX = ' '

* ARCHIVE_PARAMS = ' 'DEVICE = 'PRINTER' ou 'SCREEN'

* DIALOG = 'X' ou '' (Tela de características de impressão)FORM = 'Z_SCRIPT' (Nome do Formulário)

LA  NGU A GE = 'P' (Idioma do Formulário)

* OPTIONS = ITCPO (Estrutura com todas as características)* importing

* language =

* new_archive_params =

* result =

exceptions

canceled = 1device = 2

form = 3

options = 4

unclosed = 5

others = 6.

CALL FUNCTION 'OPEN_FORM'

EXPORTING

DEVICE = 'PRINTER'

DIALOG = 'X'

FORM = 'ZBR_TESTE_LUIZ'LANGUAGE = SY-LANGU.

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 25/31

25

START FORM - Serve para iniciar um formuláriode impressão.Mas ai vem a pergunta porque deve ser iniciado se a abertura de um formulário automaticamente gera a inicialização domesmo.Se estivermos gerando relatórios para uma empresa de computadores onde, para cada novo computador vendido, deve sergerado um novo relatório, e esse relatório deve conter todos os componentes presentes no computador em questão.A abertura de um formulário inicia o primeiro, mas para cada novo computador vendido um novo formulário deve ser gerado.Para isso utilizamos o comando de inicialização. Este comando permite que, numa mesma impressão, sejam gerados váriosformulários diferentes, como se estivéssemos abrindo um novo para cada computador vendido.Este comando não é obrigatório e pode não ser utilizado caso não haja necessidade da quebra e criação de vários formuláriospara uma só seleção de dados.

call function 'START_FORM'

exporting

* ARCHIVE_INDEX = ' '

FORM = ' '

LANGUAGE = ' '

* STARTPAGE = ' '

* PROGRAM = ' '

* importing

* language =

exceptions

form = 1

format = 2

unended = 3

unopened = 4

unused = 5

others = 6.

A função é muito similar à função OPEN_FORM, e novamente os parâmetros mais importantes são o nome (FORM) e o idioma(LANGUAGE) do formulário.Para que se possa utilizar um comando START_FORM é obrigatório que um comando de OPEN_FORM tenha sido executado.Caso isso não seja feito um erro de sintaxe irá aparecer.

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 26/31

26

 W RITE FORM - Serve para a impressão de saída de um elemento de texto de uma janela do formulário.Um ponto importante que deve ser observado é que não é possível utilizar tabelas internas e variáveis do programa

para a impressão dos dados no SAPSRIPT. Portanto, se algum dado que deva ser impresso estiver numa tabela interna ouvariável, este deve ser copiado para uma estrutura para que possa ser enviado ao SAPSCRIPT.

A impressão dos dados nas janelas na maioria das vezes é feita simultaneamente com a seleção dos dados, ou seja, amedida que os dados são selecionados, são enviados imediatamente para o formulário.

O comando para impressão dos dados é a seguinte função:

call function 'WRITE_FORM'exporting

ELEMENT = ' '

* FUNCTION = 'SET'

* TYPE = 'BODY'

WINDOW = 'MAIN'

* importing

* pending_lines =

exceptions

element = 1

function = 2

type = 3unopened = 4

unstarted = 5

window = 6

others = 7.

EX: CALL FUNCTION 'WRITE_FORM'

EXPORTING

ELEMENT = 'NF'

WINDOW = 'HEADER'

EXCEPTIONS

OTHERS = 01.

Dois parâmetros são os mais importantes:Element² Determina qual Data Element será utilizado dentro do Sapscript Window ² Janela na qual os dados devem ser impressos.Neste ponto fica evidente a diferenciação entre os tipos de janela MAIN e demais janelas.Para as janelas do tipo MAIN, cada comando de escrita (write_form) significa uma nova linha no formulário e o valor a

ser impresso é o valor que o campo armazenano momento do comando de impressão.Por exemplo, digamos que o campo MARA-MATNR tenha o valor ¶1234· e que um comando de impressão seja dado

para a janela MAIN que irá imprimir este campo. Logo em seguida uma nova seleção da tabela MARA é feita e o campoMATNR agora vale ¶5678·. Se uma nova impressão na janela MAIN for executada o resultado será o seguinte:

12345678

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 27/31

27

 Já as janelas que não forem do tipo MAIN imprimem os dados uma única vez, no final da impressão do formulário ou naquebra de página, com os valores armazenados nos campos no momento do encerramento ou no momento da quebra, e não nomomento da escrita (write_form), ou seja, se no exemplo anterior fosse utilizada uma janela não-main, o resultado final seriasomente 5678.

Na realidade, a utilização de um comando WRITE_FORM numa janela não-main é utilizada para a escolha de qual

elemento de texto será utilizado para a impressão dos dados. Exemplo:Uma janela HEADER não-maincontém dois elementos de texto chamados FRASE1 e FRASE2 da seguinte forma:

/E FRASE1

&MARA-MATNR& Teste de Frase 1

/E FRASE2

&MARA-MATNR& Teste de Frase 2

Se um comandoWRITE_FORM for executado para a janela HEADER utilizando o elemento de texto FRASE1,

call function 'WRITE_FORM'exporting

ELEMENT = 'FRASE1'

* FUNCTION = 'SET'

* TYPE = 'BODY'

WINDOW = 'HEADER'

estará sendo indicado ao programa que, ao se encerrar o formulário, deve ser impresso o elemento de texto FRASE1 para a janela HEADER (somente um elemento de texto é utilizado para cada janela não-main).

No caso do exemplo, se o campo MATNR for igual a ¶1234· no encerramento do formulário, seria impressa a seguintefrase:

1234 Teste de Frase 1

O elemento de texto a ser impresso será sempre o último a ser selecionado antes do final ou da quebra de página.Se nenhum for selecionado, ao encerrar o formulário ou mudar de página serão impressos os dados que não pertençam a

nenhum elemento de texto. Portanto no caso de um campo que deva ser impresso sempre em todas as páginas, como numero depágina por exemplo, basta colocá-lo fora de qualquer elemento de texto e não selecionar nenhum elemento de texto para a janelaque, automaticamente, este dado será impresso em todas as páginas.

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 28/31

28

END FORM - Serve para finalizar um formulário.

call function 'END_FORM'

importing

RESULT = ' '

exceptionsunopened = 1

others = 2.

CLOSE FORM - Serve para fechar um formulário.

call function 'CLOSE_FORM'

importing

RESULT = ' '

Tables

* OTFDATA =exceptions

unopened = 1

others = 2.

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 29/31

29

Abordar pontos:

. Textos standards ± SO10ver transporte em OSS note - 65253

. Impressão de logotipos ± programa R STXLDMC ± ver arq. ANOTSAP

. Textos da tabela STXL (função R ead Text) são impressos pelo comando

I NCLUDE.

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 30/31

30

Exercício ± parte 3

. Imprimir nas page Windows:1. Header:

TEXT ELEMENT = NF

Fazer um box de 20,5cm de comprimento, 3 de altura e

0,5cm de deslocamento

Imprimir o documento interno da NF

 Na linha abaixo imprimir o nro do NF em negrito

O bs: o documento e a NF devem ficar dentro do BOX2. Footer 

Imprimir o seu nome e a página atual e a quantidade total de

 páginas

3. Main

Imprimir os campos da tabela interna ITAB com tabulações:

(0cm, 2cm, 6cm e 17cm) *

Como o campo descrição do material não está no programa,fazer um PER FORM para buscar a descrição na tabela MAKT

(utilizar o FORM busca_makt do programa YTEIXE_ MAKT)

e imprimir na linha abaixo somente quando a descricão do

material não comece com a letra µA¶.

 

5/8/2018 SapScript Passo a Passo - slidepdf.com

http://slidepdf.com/reader/full/sapscript-passo-a-passo 31/31

31

Trabalhar com um formulário SAPscript não é complicado, desde que seentenda seus componentes da maneira correta. Um formulário começado demaneira errada pode ser um grande problema pois para ser corrigido pode ser

necessário o mesmo ou mais tempo que a criação de um novo.Para isto é aconselhável que se saiba qual o tipo de impressorautilizada, se a impressora for do tipo matricial é aconselhável que as medidasutilizadas na construção do formulário seja LN(Linha) e CH (Caracteres); se aimpressora for laser, jato de tinta, térmica ou qualquer tipo de impressoragráfica deve-se utilizar CM (Centímetro), MM(Milímetro). É importante

salientar que se estivermos utilizando uma impressora matricial a ordem deimpressão é muito importante para a correta edição do formulário pois oscomandos de posição funcionam mas devemos lembrar que a cabeça deimpressão não volta ou seja a leitura do formulário é feita linha a linha, já asimpressoras gráficas isso não ocorre pois a leitura é feita página a página.

O SAP possui vários formulários standards incluídos, estes

formulários estão localizados no mandante 000 e através deles é possível fazeruma cópia e altera-los. Os formulários standards funcionam como programasstandards, e os formulários criados devem ser iniciados pelas letras Z ou Y.