Académique Documents
Professionnel Documents
Culture Documents
O que SAPScript
O SAPScript a ferramenta do SAP para criao de formulrios mais elaborados. A opo pela utilizao
desta ferramenta se d pela necessidade de alguns recursos grficos que no podem ser obtidos atravs
de cdigo de ABAP comum. Com o SAPScript possvel criar um formulrio com logotipo, letras
formatadas de vrios tamanhos, criao de grades, cdigo de barras, etc.
Apesar de ser uma ferramenta poderosa na gerao de formulrios, o SAPScript ainda apresenta uma
srie de limitaes, o seu verificador de erros e debug no possuem as mesmas caractersticas do editor
ABAP. Caso, seja digitado um comando com grafia errada ou sem sentido lgico dentro de um formulrio,
no ser detectado pelo mesmo e poder no ser executado, passando as vezes despercebido pelo
programador.
Para que o SAPScript funcione necessrio que um trabalho em conjunto com um programa ABAP que
dever conter algumas funes de chamada e controle do Script.
O esquema abaixo ilustra o processo de preenchimento de dados do SAPScript.
Page 2 of 86
Esta seqncia de funes dever ser inserida no programa ABAP, o qual iniciar o SAPScript.
Page 3 of 86
TDCOPIES
TDDEST
TDPREVIEW
TDIMMED
(Nmero de Cpias)
(Dispositivo de Sada)
(Print Preview)
(Sada Imediata)
= 'TX'
=''
=''
= 'PRINTER' ou 'SCREEN'
= 'X' ou '' (Tela de caractersticas de impresso)
= 'Z_SCRIPT' (Nome do Formulrio)
= 'P' (Idioma do Formulrio)
= ITCPO (Estrutura com todas as caractersticas)
=
=
=
=1
=2
=3
=4
=5
= 6.
A abertura de um formulrio inicia o primeiro, mas para cada novo computador vendido um novo
formulrio deve ser gerado.
Para isso utilizamos o comando de inicializao. Este comando permite que, numa mesma impresso,
sejam gerados vrios formulrios diferentes, como se estivssemos abrindo um novo para cada
computador vendido.
Este comando no obrigatrio e pode no ser utilizado caso no haja necessidade da quebra e criao
de vrios formulrios para uma s seleo de dados.
call function 'START_FORM'
exporting
*
ARCHIVE_INDEX
FORM
LANGUAGE
*
STARTPAGE
*
PROGRAM
* importing
*
language
exceptions
form
format
unended
unopened
unused
others
=''
=''
=''
=''
=''
=
=1
=2
=3
=4
=5
= 6.
Page 5 of 86
=''
= 'SET'
= 'BODY'
= 'MAIN'
=
=1
=2
=3
=4
=5
=6
= 7.
Neste ponto fica evidente a diferenciao 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 formulrio
e o valor a ser impresso o valor que o campo armazena no momento do comando de impresso.
Por exemplo, digamos que o campo MARA-MATNR tenha o valor 1234 e que um comando de impresso
seja dado para a janela MAIN que ir imprimir este campo. Logo em seguida, uma nova seleo da tabela
MARA feita e o campo MATNR agora vale 5678. Se uma nova impresso na janela MAIN for executada
o resultado ser o seguinte:
1234
5678
J as janelas que no forem do tipo MAIN imprimem os dados uma nica vez, no final da impresso do
formulrio ou na quebra de pgina, com os valores armazenados nos campos no momento do
encerramento ou no momento da quebra, e no no momento da escrita (write_form), ou seja, se no
exemplo anterior fosse utilizada uma janela no-main, o resultado final seria somente 5678.
Na realidade, a utilizao de um comando WRITE_FORM numa janela no-main utilizada para a
escolha de qual elemento de texto ser utilizado para a impresso dos dados.
Exemplo:
Uma janela HEADER no-main contm dois elementos de texto chamados FRASE1 e FRASE2 da
seguinte forma:
/E FRASE1
Page 6 of 86
&MARA-MATNR&
/E FRASE2
&MARA-MATNR&
Teste de Frase 1
Teste de Frase 2
Se um comando WRITE_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 formulrio, deve ser impresso o elemento de
texto FRASE1 para a janela HEADER (somente um elemento de texto utilizado para cada janela nomain).
No caso do exemplo, se o campo MATNR for igual a 1234 no encerramento do formulrio, seria impressa
a seguinte frase:
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
pgina.
Se nenhum for selecionado, ao encerrar o formulrio ou mudar de pgina sero impressos os dados que
no pertenam a nenhum elemento de texto. Portanto no caso de um campo que deva ser impresso
sempre em todas as pginas, como numero de pgina por exemplo, basta coloc-lo fora de qualquer
elemento de texto e no selecionar nenhum elemento de texto para a janela que, automaticamente, este
dado ser impresso em todas as pginas.
END FORM - Serve para finalizar um formulrio.
call function 'END_FORM'
importing
RESULT
=''
exceptions
unopened
=1
others
= 2.
Page 7 of 86
Page 8 of 86
O Formulrio
Trabalhar com um formulrio SAPScript no complicado, desde que se entenda seus componentes da
maneira correta. Um formulrio comeado de maneira errada pode ser um grande problema, pois para ser
corrigido pode ser necessrio o mesmo ou mais tempo que a criao de um novo.
Para isto, aconselhvel que se saiba qual o tipo de impressora utilizada, se a impressora for do tipo
matricial aconselhvel que as medidas utilizadas na construo do formulrio seja LN(Linha) e CH
(Caracteres); se a impressora for laser, jato de tinta, trmica ou qualquer tipo de impressora grfica devese utilizar CM (Centmetro), MM(Milmetro).
importante salientar que se estiver sendo utilizado uma impressora matricial, a ordem de impresso
muito importante para a correta edio do formulrio, pois os comandos de posio funcionam, mas devese lembrar que a cabea de impresso no volta, ou seja, a leitura do formulrio feita linha linha, j as
impressoras grficas, isso no ocorre, pois a leitura feita pgina pgina.
O SAP possui vrios formulrios standards includos, estes formulrios esto localizados no mandante 000
e atravs deles possvel fazer uma cpia e alter-los. Os formulrios standards funcionam como
programas standards, e os formulrios a ser criados devem iniciar pelas letras Z ou Y.
Page 9 of 86
Copiando um Formulrio
Para acessar o editor do SAPScript utilize o caminho Ferramentas > Processamento texto > Formulrio ou
digitar a Transao SE71:
SE7
1
Page 10 of 86
Colocar o nome do formulrio e o idioma que desejar. Se o formulrio for standard deve-se utilizar o
idioma, o qual foi criado. Primeiramente, devemos fazer uma cpia do mandante 000 para o que se est
trabalhando. Dependendo da verso do SAP, o idioma possuir um dos caracteres abaixo:
Ingls
Alemo
Portugus
: E ou EN
: D ou DE
: P ou PT
Seqncia de cpia:
Passo 1
Mandante 000
Idioma: DE / EN
Page 11 of 86
Passo 2
Mandante de
desenvolvimento
Idioma DE/ EN
Mandante de
desenvolvimento
Idioma PT
PASSO 1
1 Criar um formulrio ZWA_LIXO
Page 12 of 86
PASSO 2
6 - Criar outro formulrio ZWA_TST1_01 com o idioma P ou PT.
7 - Clicar em Formulrio - Aceitar.
8
9
10
11 Aps a realizao dos passos anteriores, o formulrio ZWA_LIXO pode ser deletado, pois apenas
um meio de mudana de idioma.
Page 13 of 86
Page 14 of 86
Partes de um formulrio
JANELA DE PGINAS
PGINAS
<H>
</>
Page 15 of 86
CARACTERES DE COMANDO
PARGRAFOS
1. Header - informaes gerais do formulrio, como formato e orientao da pgina que ser utilizado,
pargrafo e fontes default do mesmo (quando no for especificado nenhum dentro do form). Nesse
tpico aparece tambm o ttulo do formulrio, a classe de desenvolvimento do mesmo e os idiomas do
formulrio original e o corrente.
Page 16 of 86
2. Pargrafos - so elementos que podem ser criados pelo usurio e apresentam informaes dos textos
de uma determinada janela. Nesses pargrafos so determinados tipos de fontes, tabulaes, negrito,
sublinhado, entre outros.
Para criar um pargrafo novo, utilizar o caminho do menu Processar Create Element, lembrando que,
em um formulrio standard, somente pode-se alterar o layout no idioma original.
Page 17 of 86
Page 18 of 86
On Ativa item
Off Desativa Item
Manter Utiliza a
formatao do pargrafo
Page 19 of 86
Page 20 of 86
4. Janelas - as janelas so a base da construo do layout. As janelas podem ser criadas sem limites e
tem por finalidade dividir especialmente as regies de um formulrio para operaes independentes.
Page 21 of 86
A lgica de seqncia das janelas MAIN de um formulrio segue sempre a um critrio. Dentro de
uma pgina a navegao de uma MAIN para outra segue de acordo com os ndices dessas janelas dentro
do formulrio, e quando uma nova pgina gerada, a contagem segue a mesma disposio,
continuamente.
O exemplo abaixo, figura a situao de uma diagramao conforme uma pgina de jornal. A
sequncia de preenchimento dos dados na pgina atravs do povoamento normal segue:
VAR - essa janela apresenta uma caracterstica prpria, que necessita de verificao constante do
formulrio com seus dados, que podem variar durante a execuo do relatrio. Esse tipo de janela deve
ser utilizado quando se pretende trabalhar com textos que variam, como exemplos de mensagens que
podem mudar durante o decorrer da execuo do formulrio.
CONST - so janelas que no merecem muita preocupao de processamento por parte do
formulrio, uma vez que seus dados devem ser mantidos os mesmos desde seu primeiro preenchimento
at o fechamento do formulrio. Geralmente nesse tipo de janela so includo objetos e textos que
permanecem os mesmos durante todo o relatrio, independente do nmero de pginas, como logos e
rodaps.
Na atual verso do SAP, essa distino de ateno de processamento do formulrio s terica,
mas deve ser levada em conta, pois deve ser tratada por verses mais novas do sistema.
5.
Page 22 of 86
Page 23 of 86
6.
Page Windows
Page 24 of 86
7.
Text Elements
Page 25 of 86
IF..ELSE..ENDIF
CASE..WHEN
DEFINE
PERFORM..USING..CHANGING
BOX..FRAME
INCLUDE
O comando include dentro de uma janela de um formulrio SAPscript serve para
inserir um objeto no mesmo. Esse objeto pode ser desde um logo, at um texto com
vrias linhas. A sintaxe bastante simples, e somente deve-se ter um cuidado
bastante especial com o idioma que se trata esse objeto. Independentemente do
idioma do formulrio, deve-se sempre utilizar o idioma em que o objeto foi
criado.
/: INCLUDE name OBJECT object ID id LANGUAGE spras
Page 26 of 86
Manuteno de formulrios
A manuteno dos formulrios feita pela mesma transao citada
anteriormente (SE71). Nessa tela o nome do formulrio e o idioma do mesmo so
parmetros obrigatrios. Nessa tela so feitas praticamente todas as operaes com
os formulrios do SAP:
Page 27 of 86
2.
Uma vez criado um formulrio (conforme descrito acima), poder ser copiado
sobre ele, as informaes de um outro formulrio do mesmo client, atravs do menu
Layout -> Copy from, j de dentro da primeira tela do formulrio criado (Header).
Page 28 of 86
Essa opo ir abrir uma outra janela que recebe basicamente 3 informaes:
Page 29 of 86
Page 30 of 86
Page 31 of 86
Exemplos
Sapscript
-------------------------------------------------------------------------------Formulrio
YBRV_CREDIT_MEMO
-------------------------------------------------------------------------------Mandante
Idioma
Original lang.
Relevant for transl.
Status
650
P
P
Yes
Active
Development class
YBR0
Created by
Date
Time
Release
SAO0105A
29.07.1998
09:02:34
30F
Significado
Nota de Crdito
SAO0105A
01.09.1998
19:52:15
30F
Standard attributes
First page
Default paragr.
Tab stop
Page format
Orientation
Lines/inch
Characters/inch
FIRST
MA
1,00 CM
DINA4
Landscape
6,00
12,00
Font attributes
Font family
Font size
Bold
Italic
Underlined
COURIER
10,0 Point
No
No
No
Tipo de Papel
Espaamento entre as linhas
Espaamento entre os caracteres
-------------------------------------------------------------------------------Characters
Attributes
Definies dos Characters Strings
-------------------------------------------------------------------------------H1
H2
Page 32 of 86
Header 1
Standard attributes
Marker
Font attributes
Font family
Font size
Bold
Header 2
Standard attributes
No
COURIER
8,0 Point
Yes
Marker
Font attributes
Font family
Font size
Bold
H3
Header 3
Standard attributes
Marker
Font attributes
Font family
Font size
Bold
No
COURIER
10,0 Point
Yes
No
COURIER
6,0 Point
Yes
-------------------------------------------------------------------------------Paragraphs
Attributes
Definies dos tipos de pargrafos
-------------------------------------------------------------------------------H1
Paragrafo 1 p/ o header
Standard attributes
Line spacing
1,00 LN
Alignment
Left-aligned
Tabs
16,00 CH
Left-aligned
66,00 CH
Left-aligned
80,00 CH
Left-aligned
H2
Paragrafo 2 p/ header
Standard attributes
Line spacing
1,00 LN
Alignment
Left-aligned
Tabs
56,00 CH
Left-aligned
100,00 CH
Left-aligned
117,00 CH
Left-aligned
MA
Paragrafo p/ Main
Standard attributes
Line spacing
Alignment
1,00 LN
Left-aligned
-------------------------------------------------------------------------------Windows
Attributes
Janelas definidas para o formulrio
-------------------------------------------------------------------------------HEADER
Cabealho da Nota
Window type
CONST
HEAD_PRI
Header p/ Main
Window type
CONST
MAIN
Main window
Window type
MAIN
Textos da Nota
Window type
CONST
TEXT
Page 33 of 86
TOTAL
Totais da Nota
Window type
CONST
-------------------------------------------------------------------------------Pages
Attributes
Paginas do formulrio com suas respectivas janelas
-------------------------------------------------------------------------------FIRST
Primeira Pgina
Page counter
Mode
Numbering type
Page window
MAIN
HEADER
TEXT
TOTAL
INC
Arabic numerals
Left margin
Upper margin
Window width
Window height
Left margin
Upper margin
Window width
Window height
Left margin
Upper margin
Window width
Window height
Left margin
Upper margin
Window width
Window height
2,00
9,00
132,00
27,00
2,00
1,00
132,00
8,00
2,00
36,00
132,00
3,00
2,00
39,00
132,00
7,00
CH
LN
CH
LN
CH
LN
CH
LN
CH
LN
CH
LN
CH
LN
CH
LN
Page 34 of 86
MAIN
/E
/:
/:
/:
/:
/:
/:
/:
/:
/:
/:
/:
MA
|</>
Elemento de dados
DADOS
BOX XPOS 0 CH YPOS 0 CH WIDTH 132 CH HEIGHT 27 LN FRAME 10 TW
BOX XPOS 15 CH YPOS 0 CH WIDTH 117 CH HEIGHT 27 LN FRAME 10 TW
BOX XPOS 18 CH YPOS 0 CH WIDTH 114 CH HEIGHT 27 LN FRAME 10 TW
BOX XPOS 21 CH YPOS 0 CH WIDTH 111 CH HEIGHT 27 LN FRAME 10 TW
BOX XPOS 36 CH YPOS 0 CH WIDTH 96 CH HEIGHT 27 LN FRAME 10 TW
BOX XPOS 67 CH YPOS 0 CH WIDTH 65 CH HEIGHT 27 LN FRAME 10 TW
BOX XPOS 69 CH YPOS 0 CH WIDTH 63 CH HEIGHT 27 LN FRAME 10 TW
BOX XPOS 83 CH YPOS 0 CH WIDTH 49 CH HEIGHT 27 LN FRAME 10 TW
BOX XPOS 97 CH YPOS 0 CH WIDTH 35 CH HEIGHT 27 LN FRAME 10 TW
BOX XPOS 111 CH YPOS 0 CH WIDTH 21 CH HEIGHT 27 LN FRAME 10 TW
BOX XPOS 116 CH YPOS 0 CH WIDTH 16 CH HEIGHT 27 LN FRAME 10 TW
&ybrvs_nota-produto(15)&
&ybrvs_nota-unidade(3)&&ybrvs_nota-quant(15)&&ybrvs_nota-nome(31)&
&ybrvs_nota-preco_un(14)&&ybrvs_nota-val_merc(14)&
&ybrvs_nota-val_desc(12)&&ybrvs_nota-porc_ipi(5)&
&ybrvs_nota-val_ipi(15)&
/E HEADER
* <H1> Cdigo Produto
EMB UN.
Quantidade
Produto
RN Preo Unitrio
Valor Mercadoria
Desconto
%IPI
Valor IPI</>
* &uline(132)&
Pargrafo standard
TEXT
Nome do
Valor
Linha de Comentrios
TOTAL
/:
/:
/:
/:
BOX
BOX
BOX
BOX
XPOS
XPOS
XPOS
XPOS
Page 35 of 86
0
15
20
34
CH
CH
CH
CH
YPOS
YPOS
YPOS
YPOS
0
0
0
0
CH
CH
CH
CH
WIDTH
WIDTH
WIDTH
WIDTH
15
5
14
14
CH
CH
CH
CH
HEIGHT
HEIGHT
HEIGHT
HEIGHT
3
3
3
3
LN
LN
LN
LN
FRAME
FRAME
FRAME
FRAME
10
10
10
10
TW
TW
TW
TW
/:
/:
/:
/:
/:
/:
/:
*
Page 36 of 86
Page 37 of 86
***************************************
*** SAPSCRIPT
***
***************************************
REPORT ZWA10T09.
*** DEFINIO DE TABELAS
TABLES: T001.
*** DEFINIO DE
DATA: WBUKRS LIKE
WBUTXT LIKE
WADRNR LIKE
WORT01 LIKE
WLAND1 LIKE
WCGC
LIKE
campos
T001-BUKRS,
T001-BUTXT,
T001-ADRNR,
T001-ORT01,
T001-LAND1,
J_1BWFIELD-CGC_NUMBER.
Page 38 of 86
Page 39 of 86
Page 40 of 86
Executar F8
Informar a Empresa e F8
Page 41 of 86
Page 42 of 86
Page 43 of 86
Page 44 of 86
Page 45 of 86
Page 46 of 86
Page 47 of 86
Page 48 of 86
Renomear janela
Page 49 of 86
Page 50 of 86
Page 51 of 86
Page 52 of 86
Selecionar o caminho:
Page 53 of 86
Page 54 of 86
Page 55 of 86
Clicar no boto
Page 56 of 86
Editor ABAP F7
Page 57 of 86
***************************************
*** SAPSCRIPT
***
***************************************
REPORT ZWA10T09.
*** DEFINIO DE TABELAS
TABLES: T001.
*** DEFINIO DE
DATA: WBUKRS LIKE
WBUTXT LIKE
WADRNR LIKE
WORT01 LIKE
WLAND1 LIKE
WCGC
LIKE
campos
T001-BUKRS,
T001-BUTXT,
T001-ADRNR,
T001-ORT01,
T001-LAND1,
J_1BWFIELD-CGC_NUMBER.
Page 58 of 86
Page 59 of 86
Page 60 of 86
Executar F8
Informar a Empresa e F8
Page 61 of 86
Page 62 of 86
Page 63 of 86
1.1.1. Parmetros:
Cdigo do material
Page 64 of 86
1
Cabecalho do Formulario
2
Material: xxxxxxxxxxxx
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Estoque Total:
xxxxxxxxxxxx
Valor Total:
xxxxxxxxxxxx
3
Centro
Deposito
Estoque
Disponivel
Valor
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
xxxxxxxxxxxxxxxxx
Page 65 of 86
Procedimentos:
Pedir no Parmetro: Cdigo de Empresa
Ler a tabela T001 com o campo do Parmetro e salvar Nome da Empresa e Endereo.
Ler nas tabelas MARA, MARD e MAKT todos os materiais e guardar as informaes necessrias
em tabela interna.
Formatar uma pgina do formulrio ZWAnnT11_1 e
formatar tantas pginas quantas forem necessrias do formulrio ZWAnnT11_2.
Obs.:
Page 66 of 86
30/09/1999
10:30:55
Nome da Empresa
Endereo da Empresa
Prezados Srs.:
Material
Descrio
Deposito
Centro
Estoque Disponivel
XXXXX
XXXXXXXXXXXXXXX
XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX
XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX
XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX
XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX
XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX
XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX
XXXX
XXXXXX
9999999999999999
Pg. nn
Page 67 of 86
30/09/1999
10:30:55
Material
Descrio
Deposito
Centro
Estoque Disponvel
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
XXXXX
XXXXXXXXXXXXXXX XXXX
XXXXXX
9999999999999999
Pg. nn
Page 68 of 86
Page 69 of 86
Significado
Pargrafo Default
Texto Corrido
Linha longa
Linha Bruta
Avano de Linha
Avano de Linha e Linha Longa
Avano de Linha e Linha Bruta
Linha de Comando
Linha de Comentrio
Elemento de Texto
Page 70 of 86
Caminho para o
arquivo tif
Imagem preto e
branco
Colocar o nome
do logotipo
Page 71 of 86
Page 72 of 86
Comandos de Controle
ADDRESS
BOTTOM
BOX
CASE
DEFINE
HEX
IF
INCLUDE
NEW-PAGE
NEW-WINDOW
PERFORM
POSITION
PRINTCONTROL
PROTECT
RESET
SET COUNTRY
SET DATE
MASK
SET SIGN
SET TIME
MASK
SIZE
STYLE
SUMMING
TOP
Formatando Opes
(<)
(>)
(C)
(n)
(. n)
+n
(En)
(Ff)
(I)
(K)
( R)
( S)
(T)
(Z)
Alinha a esquerda
Alinha a direita
Insere um prefixo ou sufixo literal
Representa smbolo retirando-se os espaos em branco
Define um comprimento explcito
Seta o nmero de casas decimais
Caracteres no setados a direita
Representa um smbolo como um nmero exponencial
Utiliza um tipo de caracter nos espaos
Representa apenas valores no iniciais
Ignora converso de rotinas
Fora alinhamento a direita
O smbolo representado atravs de um campo
O smbolo representado atravs de um separador de milhar
Ignora zeros
Page 73 of 86
Download / Upload
Para se fazer download ou Upload deve-se utilizar o programa RSTXSCRP
Page 74 of 86
Page 75 of 86
Debug
O debug do SAPscript possui praticamente os mesmos comandos do debug do
editor Abap, porm sob outra forma de apresentao .
Para acion-lo devemos utilizar o caminho SE71>Utilitrios>Ativar Depurador
Aps feito isto ir parecer que nada aconteceu, porm quando for executado o
programa que aciona o script e for comandada a impresso o depurador entrar em
ao.
Algumas diferenas entre os depuradores do Abap e Script so que o do Abap
faz anlise linha a linha, j o do Script faz linha a linha quando for comando e palavra
a palavra quando forem textos a serem editados. Devido a isto ele possui uma barra
(regra) onde h um cursor que aponta o local da linha que ele est lendo.
Page 76 of 86
Janela
executada
Rgua de Cursor
Apontador de
Linha
Janela de
visualizao de
variveis
Page 77 of 86
UTILIZAO DO PERFORM
Como sabemos s devemos alterar os programas standard em ltimo caso, por
isso possvel se criar um programa como um pool de Forms e aciona-lo atravs de
chamadas dentro do script.
Isto bem interessante na medida que tivermos de fazer contadores,
consistncias, etc.
A estrutura fica assim:
Programa
Standard
SAP SCRIPT
Pool de Forms
ENDIF.
Aqui estou chamando um form chamado MATERIAL no Programa TESTE
enviando como referencia o valor do nmero do material MARA-MATNR e recebendo o
valor para a varivel V_FLAG.
Se o valor for X imprimir a linha ou seja quando no form o nmero do material mudar
imprime uma linha referente a ele seno voc pode fazer um outro perform do
mesmo jeito somando a quantidade do material e retornando o total.
Criar um programa Z e dentro dele criar os Forms
Dentro do programa colocar o form
Page 78 of 86
*&---------------------------------------------------------------------*
*&
Form MATERIAL..
*
*&---------------------------------------------------------------------*
*
GUARDA A REFERNCIA DESTAO PARA FAZER QUEBRA
*
*----------------------------------------------------------------------*
FORM MATERIAL TABLES
ITAB STRUCTURE ITCSY
OTAB STRUCTURE ITCSY.
DATA: L_MATERIAL(18) TYPE C,
L_MATMEM(18) TYPE C,
L_ESPACOS
TYPE P DECIMALS 2,
L_FLAG
TYPE C.
*L o valor enviado do script para a variavel L_MATERIAL
READ TABLE ITAB INDEX 1.
L_MATERIAL = ITAB-VALUE.
*Importa o valor da variavel L_MATMEM da memria
import L_MATMEM from memory id 'ABCD'.
*Verifica se ela inicial
IF L_MATMEM = ''.
L_MATMEM = L_MATERIAL.
export L_MATMEM to memory id 'ACBD'.
L_FLAG = ''.
ELSE.
*Se os materiais forem diferentes Imprimir
IF L_MATERIAL <> L_MATMEM.
L_FLAG = 'X'.
*Atualiza o valor e joga para a memria
.. L_MATMEM = L_MATERIAL.
export L_MATMEM to memory id 'ABCD'.
ELSE.
*Se forem iguais no imprimir
L_FLAG = ''.
ENDIF.
ENDIF.
*Mover o valor da varivel L_FLAG para o SCRIPT
MOVE L_FLAG TO OTAB-VALUE.
MOVE 'V_FLAG' TO OTAB-NAME.
MODIFY OTAB INDEX 1.
ENDFORM.
Page 79 of 86
Page 80 of 86
IMPORTANT NOTE: If you want to print bar codes from R/3 using device type HPLJ4, HPLJ5,
HPLJ5SI or HPLJ4000 on HP LaserJet 4, 5, 6 or 4000 series printers, you need what is known as a
SIMM module (IC card). This SIMM module is called "JetCAPS Intelligent Barcode SIMM" and can be
obtained for most HP LaserJet 4, 5, 6 and Laser Jet 4000 printers. For more detailed information
refer to Note 121305. Other bar code SIMM modules for HP LaserJet printers are not supported by
SAP! ) nota 5196 SAP
- necessrio que se configure atravs da transao SPAD:
Spool -> Adminstrao Spool -> Selecionar:
- device type (ZHPLJ4) - Caso no exista criar a partir da cpia de uma pr-existente que contenha as
caractersticas necessrias, como tipo de fonte(character set) e tipo de impressora(laser, jato de tinta,
matricial, etc)
Spool -> Manuteno de Fontes -> Selecionar:
- system barcodes (tipo de barcode - Z_C25D2P - Planner). O cdigo gerado ter que ter a dimenso de 103mm
de largura por 13mm de altura.
- printer barcodes: Selecionar o device type correspondente (ZHPLJ4) e checar os print controls
existentes (double click sobre o device). Nesta lista dever existir (se no existir deve-se criar) o
Prefix (barcode_on) e Sufix (barcode_off)) correspondente ao tipo de barcode (Z_C25D2P). Posicionar sobre o
prefix e visualizar o print control. A sequncia de controle estar em hexadecimal. Esta sequncia dada
pelo fabricante da placa que gera o barcode (Planner) e cada qual possui a sua seqncia correspondente.
- a leitura de um cdigo de barras dada por um identificador de incio ( 167 = A7(hex)) e fim ( 168 =
A8(hex)).
- Hardware especfico para a impresso de barcode (adaptado na impressora).
23-
aconselhvel que se crie uma janela apenas para o cdigo de barras devido
ao seu formato diferenciado.
As notas da SAP que falam sobre o assunto so: 121305 & 5196
Page 81 of 86
Cdigo de barras
apresentado quando a
impressora no possui
mdulo de converso
Page 82 of 86
Page 83 of 86
TEXTOS CONDICIONAIS
Podemos usar o comando IF de ntro do SAPSCRIPT do mesmo jeito que
utilizamos no ABAP, porm algumas condies no existem como CN ( Contains Not
only )/ CO (Contains Only) / CA (Conteins Any) / NA (contains Not Any ) / CS (Contains
String ) / NS (contains No String) / CP (Contais Pattern) / NP (contains No Pattner) no
podem ser utilizados.
Para conseguir utilizlos deve-se fazer um PERFORM como demonstrado
anteriormente.
As condies que podem ser utilizadas so:
= EQ (igual)
< LT (menor que)
>GT (maior que)
<= LE (menor ou igual a)
>=GE (maior ou igual a )
<>NE (diferente)
NOT
AND
OR
Sintaxe:
/: IF condio
:
/:ELSE IF condio
:
/:ELSE
:
/:ENDIF
Obs 1 : Caso ocorra um erro de sintaxe este no aparecer pois o IF no ser
executado.
Obs2 : No necessria a utilizao de ponto no final dos comandos pois a
interpretao dos comando estar sendo executada no comando do incio da linha.
Page 84 of 86
Administrao de Spool
Na transao SPAD onde podemos gerenciar as impressoras e formatos de
pginas, desta forma esta transao geralmente controlada pelo pessoal de BASIS.
Deve-se ter cuidado ao se manipular a mesma pois qualquer alterao errnea
pode danificar as atribuies feitas a outros componentes do SAP R/3.
Page 85 of 86
Page 86 of 86