130
SAPSCRIPT

Apostila de SAPscript Nova

Embed Size (px)

DESCRIPTION

Apostila de SAPscript Nova

Citation preview

Curso ABAP

SAPSCRIPT MACROBUTTON FileProperties

MACROBUTTON FileProperties

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.

Estrutura de Chamada e Controle do SAPScript

Esta seqncia de funes dever ser inserida no programa ABAP, o qual iniciar o SAPScript.

Descrio das FunesOPEN FORM - Serve para abrir um formulrio de impresso.

Dois parmetros muito utilizados so o dialog e o options. No primeiro, indica se a caixa de dilogo para configurao da impresso deve ou no ser apresentado.

Caso este deva ser omitido, os dados para impresso sero tomados de uma estrutura a ser colocada no segundo parmetro. Nessa estrutura so passados os dados, tais como, nmero de cpias e nome da impressora. A opo de no exibio da caixa de dilogo esta diretamente ligada a utilizao do segundo parmetro. Se a exibio estiver desabilitada (DIALOG = ), mas a estrutura ITCPO no estiver preenchida, a caixa de dilogo ser exibida.

Alguns dos campos mais importantes e que normalmente so utilizados na estrutura ITCPO so:

TDCOPIES(Nmero de Cpias)

TDDEST

(Dispositivo de Sada)

TDPREVIEW(Print Preview)

TDIMMED

(Sada Imediata)

call function 'OPEN_FORM'

exporting

* APPLICATION = 'TX'

* ARCHIVE_INDEX = ' '

* ARCHIVE_PARAMS = ' '

DEVICE = 'PRINTER' ou 'SCREEN'

* DIALOG = 'X' ou '' (Tela de caractersticas de impresso)

FORM = 'Z_SCRIPT' (Nome do Formulrio)

LANGUAGE = 'P' (Idioma do Formulrio)* OPTIONS = ITCPO (Estrutura com todas as caractersticas)

* importing

* language =

* new_archive_params =

* result

=

exceptions

canceled = 1

device

= 2

form

= 3

options

= 4

unclosed = 5

others

= 6.

START FORM - Serve para iniciar um formulrio de impresso.

Porque deve ser iniciado se a abertura de um formulrio automaticamente gera a inicializao do mesmo?

Se estivermos gerando relatrios para uma empresa de computadores onde, para cada novo computador vendido, deve ser gerado um novo relatrio, e esse relatrio deve conter todos os componentes presentes no computador em questo.

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

= 1

format

= 2

unended

= 3

unopened

= 4

unused

= 5

others

= 6.

A funo muito similar funo OPEN_FORM, e novamente os parmetros mais importantes so o nome (FORM) e o idioma (LANGUAGE) do formulrio.

Para que se possa utilizar um comando START_FORM obrigatrio que um comando de OPEN_FORM tenha sido executado. Caso isso no seja feito um erro de sintaxe ir aparecer.

WRITE FORM - Serve para a impresso de sada de um elemento de texto de uma janela do formulrio.

Um ponto importante que deve ser observado que no possvel utilizar tabelas internas e variveis do programa para a impresso dos dados no SAPScript. Portanto, se algum dado que deva ser impresso estiver numa tabela interna ou varivel, este deve ser copiado para uma estrutura para que possa ser enviado ao SAPScript.

A impresso dos dados nas janelas na maioria das vezes feita simultaneamente com a seleo dos dados, ou seja, a medida que os dados so selecionados, so enviados imediatamente para o formulrio.

O comando para impresso dos dados a seguinte funo:

call function 'WRITE_FORM'

exporting

ELEMENT

= ' '

* FUNCTION

= 'SET'

* TYPE

= 'BODY'

WINDOW

= 'MAIN'

* importing

* pending_lines

=

exceptions

element

= 1

function

= 2

type

= 3

unopened

= 4

unstarted

= 5

window

= 6

others

= 7.

Dois parmetros so 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 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

&MARA-MATNR& Teste de Frase 1

/E FRASE2

&MARA-MATNR& 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 no-main).

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 1O 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.

CLOSE FORM - Serve para fechar um formulrio.

call function 'CLOSE_FORM'

importing

RESULT = ' '

Tables

* OTFDATA =

exceptions

unopened = 1

others = 2.

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 deve-se 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 deve-se 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.

Copiando um Formulrio

Para acessar o editor do SAPScript utilize o caminho Ferramentas > Processamento texto > Formulrio ou digitar a Transao SE71:

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

: E ou EN

Alemo : D ou DE

Portugus : P ou PT

Seqncia de cpia:

Passo 1

Passo 2

PASSO 1

1 Criar um formulrio ZWA_LIXO

2 - Digitar o Nome do Formulrio original (CO_ORDER).

3 - Digitar o Mandante de origem (000).

4 - Digitar o Formulrio de destino (temporrio ZWA_LIXO).

5 - Clicar no boto F8.

PASSO 2

6 - Criar outro formulrio ZWA_TST1_01 com o idioma P ou PT.

7 - Clicar em Formulrio -( Aceitar.

8 - Digitar o nome do formulrio temporrio.

9 - Digitar o Idiomas do formulrio temporrio.

10 - Salvar.

11 Aps a realizao dos passos anteriores, o formulrio ZWA_LIXO pode ser deletado, pois apenas um meio de mudana de idioma.

12 - Selecionar o caminho: Formulrio ( Eliminar.

Obs. : Na criao de um formulrio novo (indito), ser feito apenas na criao no idioma PT.

Partes de um formulrio

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.

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.

3. Caracter de Seleo - so informaes semelhantes s do pargrafo, referente a formatao de textos, no entanto, podem ser aplicados a trechos de textos e no necessariamente a linhas inteiras do formulrio.

Sua sintaxe de utilizao assemelha-se a programao HTML, conforme exemplo a seguir:

Imagine um Caracter string definido com o nome B, cuja formatao de texto seja o incremento do modelo negrito a uma determinada fonte. Sua utilizao seria:

TextoE seu resultado no formulrio seria:Texto4. 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. Essas janelas podem ser criadas basicamente em 3 tipos distintos:MAIN - janelas do tipo MAIN so as mais importantes do relatrio (janela pela qual o formulrio se guia). Somente permitido um tipo de janela MAIN por formulrio, e a nica janela obrigatria em uma pgina. Pode-se criar mais de uma janela MAIN por pgina, no entanto essas janelas, na verdade, s so divididas fisicamente, uma vez que seus elementos e processamento obedecem aos mesmos comandos, e no podem ter nomes diferentes. A passagem de uma janela MAIN para outra pode ser automtica ou forada pelo usurio. Quando o espao fsico de uma janela MAIN est tomado e necessita-se de mais dados na mesma, o formulrio automaticamente passa prxima janela MAIN do formulrio. atravs desse princpio que uma relatrio ganha nmero de pginas automaticamente quando da execuo de um relatrio desse tipo, conforme os dados so preenchidos. Para forar a passagem de uma janela MAIN para outra, o usurio poder utilizar o comando:/: NEXT-WINDOWA 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. Pginas - as pginas so os elementos responsveis pelo agrupamento das janelas durante certos momentos do relatrio. Geralmente s so definidos duas pginas, que acabam em processo reflexivo, por formulrio. Geralmente uma pgina FIRST, que apresenta um layout de apresentao dos documentos e outra NEXT, que contm o layouts das outras pginas subsequentes do documento. Isso acontece, por exemplo, quando se que obter um relatrio com o logotipo da empresa na primeira pgina, mas as seguintes, devem ocupar a folha inteira com os dados do relatrio at o final. Cada uma das pginas criadas devem conter um nome (FIRST, NEXT,...) e pode conter um pargrafo default e um link para a prxima pgina. Esse link serve para formar a seqncia em que as pginas do relatrio devem ser geradas. Seguindo o exemplo anterior, deveramos informar:FIRST -> NEXTNEXT -> NEXTAps a primeira pgina, seria chamada a segunda, com um layout diferente (sem o logotipo). A partir dessa, todas apresentariam o mesmo tipo de layout (com dados do relatrio aproveitando a pgina inteira).6. Page WindowsAs page windows podem ser entendidas pelo nosso conceito de layout propriamente dito. So os elementos responsveis pelo aparecimento ou no das janelas dentro de uma determinada pgina, bem como seus posicionamentos em relao folha a ser impressa. tambm atravs das page windows que o programador ter acesso aos Text Elements de cada uma dessas janelas, responsveis pelo tratamento dos dados em tempo de execuo do formulrio.7. Text ElementsCorresponde lgica de processamento e comportamento de uma janela durante a execuo do formulrio. responsvel pelos valores que sero impressos no mesmo, bem como seu posicionamento dentro da janela e seu tipo de caracter.De dentro de uma Page Window, possvel selecionarmos qualquer uma das janelas existentes em uma determinada pgina, simplesmente clicando o mouse sobre o seu nome e apertando o boto selecionar, ou mesmo dando um double-click diretamente sobre o nome da janela desejada. Uma vez selecionada a janela, se apertarmos o boto Text Element, uma tela semelhante do editor de ABAP/4 do SAP ir se abrir, com as linhas onde a lgica da janela ser introduzida.Nesses elementos do SAPscript, o programador poder utilizar alguns comandos semelhantes ao do ABAP/4, com a indicao de que se trata de uma linha de comando para o formulrio (/:, esquerda da linha). Abaixo, alguns dos comandos que podem ser utilizados de dentro dos elementos de texto de uma janela em SAPscript:IF..ELSE..ENDIFCASE..WHENDEFINEdeclarao de variveis dentro da janela, com atribuio de valorPERFORM..USING..CHANGING(ver documentao prpria nesse material)BOX..FRAMEINCLUDEO 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 sprasManuteno de formulriosA 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:1. Criar um formulrio novoUm formulrio pode ser criado inteiramente a partir dessa transao. Preenchendo um nome do formulrio, que comece por Z ou Y, no diretamente seguidos por caracteres especiais, como o _, o usurio poder apertar o boto Criar ou ir ao menu Layout -> Criar. O idioma preenchido ser entendido como idioma original do formulrio. A partir da, outros formulrios podero ser traduzidos a partir desse original, nas mais diferentes lnguas, porm todos mantero as caractersticas de layout do formulrio original. Ao mesmo tempo que uma alterao desse original, implica na imediata alterao de todos os seus filhos.2. Copiar formulrio em outro idioma (Traduo)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).Ateno que essa cpia fiel ao formulrio copiado, e no poupa nenhuma informao que j existisse no formulrio que recebe a cpia.3. Copiar um formulrio de outro clienteUm formulrio pode tambm ser copiado de um outro client na mesma instncia, atravs do menu Utilitrios -> Copy from client, da primeira janela da transao SE71, fora de qualquer formulrio especfico.Essa opo ir abrir uma outra janela que recebe basicamente 3 informaes:Nome do formulrio a ser copiadoCliente em que se encontra o originalNome da cpia no client correnteOs outros dois campos de check box geralmente no so alterados pois tratam de informaes como cpia do formulrio somente no idioma original e exibio ou no de um log de erros ao final da execuo da cpia.Uma vez entrados os parmetros, deve-se apertar o boto executar e obter uma cpia com sucesso em todos os idiomas existentes do formulrio.O cliente de origem do formulrio, quando for cpia de forms standards, deve ser mantido 000, uma vez que o repositrio dos formulrios originais do SAP encontram-se todos no 000, e podem ser lidos de todos os outros.Alteraes de Programas/Layouts StandardsNa maioria das vezes o trabalho a ser realizado com Sapscripts alterar os originais do SAP, pois estes raramente atentem s exigncias do cliente.O procedimento para alterao depende muito das caractersticas do programa de povoamento standard e das caractersticas das funes do SAP que iro utilizar tal sapscript. No entanto, alguns procedimentos so padro, e outros so utilizados na grande maioria das alteraes. 1) Fazer uma cpia do programa standard e dos includes (se existirem) que necessitam de alterao 2) Fazer uma cpia do layoutset standard3) NO DELETAR janelas, elementos de textos, etc. na cpia do layoutset. Mesmo que alguns (ou todos) os dados e janelas do standard no sejam utilizados, o programa de povoamento continuar tentando executar escritas em janelas e elementos de dados especficos, j que uma cpia do standard. Os novos dados e janelas devem ser apenas adicionados!4) Encontrar as posies ideais para alteraes no programa de povoamento. Quando os novos dados devem ser impressos na MAIN, procurar por comandos WRITE_FORM dentro do programa e colocar as alteraes o mais prximo possvel do WRITE_FORM correto. Se devem ser impressos em outras janelas, procurar pelo comando CLOSE_FORM/END_FORM e colocar as alteraes imediatamente antes destes comandos (sempre que possvel)5) Colocar todas as alteraes juntas sempre que possvel, identificando visivelmente, atravs de comentrios, o bloco de alteraes. Isso facilita a manuteno e visualizao do cdigo, alm de facilitar a busca por possveis erros, visto que, na sua grande maioria, os programas standard da SAP so bastante complicados. *----------------------------------------------------------------------* * write texts to TEXTS window * *----------------------------------------------------------------------* ***************************** ALTERAO ******************************** *----------------------------------------------------------------------* * Elimina mensagem ONU.... caso ela exista *----------------------------------------------------------------------* read table wk_header_msg with key message(3) = 'ONU'. v_msg_onu = wk_header_msg-seqnum. delete wk_header_msg where message(3) = 'ONU'. delete wk_refer_msg where seqnum = v_msg_onu. *Mensagem p/ materiais no perigosos ybrvscript-mensg01 = text-001. ************************************************************************ istart = j_1bb2-totlih. if istart > 10. "maximum number of fields in J_1BPRNFTXExemplos Sapscript--------------------------------------------------------------------------------Formulrio YBRV_CREDIT_MEMO--------------------------------------------------------------------------------Mandante 650Idioma P Original lang. P Idioma Original de CriaoRelevant for transl. YesStatus ActiveDevelopment class YBR0 General Multi-purpose Development classCreated by SAO0105A Changed by SAO0105ADate 29.07.1998 Date 01.09.1998Time 09:02:34 Time 19:52:15Release 30F Release 30FSignificado Nota de CrditoStandard attributes First page FIRST Primeira pgina a ser utilizada Default paragr. MA Pargrafo default para os textos Tab stop 1,00 CM Page format DINA4 Tipo de Papel Orientation Landscape Lines/inch 6,00 Espaamento entre as linhas Characters/inch 12,00 Espaamento entre os caracteresFont attributes Font family COURIER Fonte padro do formulrio Font size 10,0 Point Tamanho da fonte padro Bold No Italic No Underlined No--------------------------------------------------------------------------------Characters Attributes Definies dos Characters Strings-------------------------------------------------------------------------------- H1 Header 1 Standard attributes Marker No Font attributes Font family COURIER Font size 8,0 Point Bold Yes H2 Header 2 Standard attributes Marker No Font attributes Font family COURIER Font size 10,0 Point Bold Yes H3 Header 3 Standard attributes Marker No Font attributes Font family COURIER Font size 6,0 Point Bold 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 Tabulaes para o pargrafo 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 1,00 LN Alignment 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 TEXT Textos da Nota Window type CONST TOTAL Totais da Nota Window type CONST--------------------------------------------------------------------------------Pages Attributes Paginas do formulrio com suas respectivas janelas-------------------------------------------------------------------------------- FIRST Primeira Pgina Page counter Mode INC Numbering type Arabic numerals Page window MAIN Left margin 2,00 CH Upper margin 9,00 LN Window width 132,00 CH Window height 27,00 LN HEADER Left margin 2,00 CH Upper margin 1,00 LN Window width 132,00 CH Window height 8,00 LN TEXT Left margin 2,00 CH Upper margin 36,00 LN Window width 132,00 CH Window height 3,00 LN TOTAL Left margin 2,00 CH Upper margin 39,00 LN Window width 132,00 CH Window height 7,00 LN--------------------------------------------------------------------------------Text elements for following windows:--------------------------------------------------------------------------------HEADER Definio do pargrafo para a linha/: BOX XPOS 0 CH YPOS 0 CH WIDTH 132 CH HEIGHT 8 LN FRAME 10 TW/: BOX XPOS 0 CH YPOS 7 LN WIDTH 132 CH HEIGHT 1 LN FRAME 10 TW/: IF &YBRVS_NOTA-REPRINT& EQ 'S'H2 REIMPRESSO,,NOTA DE CRDITO,,&ybrvs_nota-data&,,N &ybrvs_nota-numero& Desativa Character String/: ELSE Ativa Character StringH2 ,,NOTA DE CRDITO,,&ybrvs_nota-data&,,N &ybrvs_nota-numero&/: ENDIFH1 ,,,,CLARIANT S/A Salta p/ prx. tabulaoH1 Razo Social: &ybrvs_nota-razao(50)& Cliente: &ybrvs_nota-cliente(20)& Filial: &ybrvs_nota-filial&H1 Endereo : &ybrvs_nota-endereco(26)& Bairro : &ybrvs_nota-bairro& H1 C.E.P. : &ybrvs_nota-cep(11)& Cidade: Texto Fixo &ybrvs_nota-cidade(19)& Estado: &ybrvs_nota-estado(4)& PREZADOS SENHORES: PARTICIPAMOS A v.Sas. QUE FIZEMOS EM SUA CONTA OS LANAMENTOS ABAIXO:H1 Histrico : &ybrvs_nota-tipo&H1 Valor por Extenso: &ybrvs_nota-tot_extens(100)& Centavos: &spell-decimal(2)&H1 Depsito: &ybrvs_nota-filial(6)& Setor: &ybrvs_nota-setor(4)& Vendedor: &ybrvs_nota-vendedor(8)& Zona: &ybrvs_nota-zona(6)& Doc. Entr &ybrvs_nota-doc_entr(19)& N/N.F.F.: &ybrvs_nota-doc_entr(11)& de &ybrvs_nota-data& Campo de tabela/estruturaHEAD_PRI Indicao de linha de comando/: BOX WIDTH 132 CH HEIGHT 1 LN FRAME 10 TW Cdigo Produto |EMB |UN.| Quantidade |MAIN Elemento de dados/E 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 TWMA &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* Cdigo Produto EMB UN. Quantidade Nome do Produto RN Preo Unitrio Valor Mercadoria Valor Desconto %IPI Valor IPI* &uline(132)& Pargrafo standardTEXT Linha de Comentrios/: BOX WIDTH 132 CH HEIGHT 3 LN FRAME 10 TW/* Exibe tipo no campo texto* Textos:* &ybrvs_nota-tipo&TOTAL/: BOX XPOS 0 CH YPOS 0 CH WIDTH 15 CH HEIGHT 3 LN FRAME 10 TW/: BOX XPOS 15 CH YPOS 0 CH WIDTH 5 CH HEIGHT 3 LN FRAME 10 TW/: BOX XPOS 20 CH YPOS 0 CH WIDTH 14 CH HEIGHT 3 LN FRAME 10 TW/: BOX XPOS 34 CH YPOS 0 CH WIDTH 14 CH HEIGHT 3 LN FRAME 10 TW/: BOX XPOS 48 CH YPOS 0 CH WIDTH 14 CH HEIGHT 3 LN FRAME 10 TW/: BOX XPOS 62 CH YPOS 0 CH WIDTH 14 CH HEIGHT 3 LN FRAME 10 TW/: BOX XPOS 76 CH YPOS 0 CH WIDTH 14 CH HEIGHT 3 LN FRAME 10 TW/: BOX XPOS 90 CH YPOS 0 CH WIDTH 14 CH HEIGHT 3 LN FRAME 10 TW/: BOX XPOS 104 CH YPOS 0 CH WIDTH 14 CH HEIGHT 3 LN FRAME 10 TW/: BOX XPOS 118 CH YPOS 0 CH WIDTH 14 CH HEIGHT 3 LN FRAME 10 TW/: BOX XPOS 0 CH YPOS 0 CH WIDTH 132 CH HEIGHT 7 LN FRAME 10 TW* Val. Trib. ICMS %ICMS Valor ICMS Valor Mercadoria Valor Descontos Valor IPI Val. Outros Abat. Valor Fretes Val. Seguros Val. Total NotaMA &ybrvs_nota-porc_icms(5)&&ybrvs_nota-tot_icms(14)& &ybrvs_nota-tot_merc(14)&&ybrvs_nota-tot_desc(14)& &ybrvs_nota-tot_ipi+1(13)& &ybrvs_nota-tot_seg(14)&&ybrvs_nota-total(14)&MA ____________________________ ___________________________MA Assinatura AssinaturaDigitar o cdigo do Programa (ZWA10T09)Clicar no boto CriarComplementar as informaes necessrias, Gravar e VoltarClicar no boto Modificar****************************************** SAPSCRIPT ******************************************REPORT ZWA10T09.*** DEFINIO DE TABELASTABLES: T001.*** DEFINIO DE camposDATA: WBUKRS LIKE T001-BUKRS, WBUTXT LIKE T001-BUTXT, WADRNR LIKE T001-ADRNR, WORT01 LIKE T001-ORT01, WLAND1 LIKE T001-LAND1, WCGC LIKE J_1BWFIELD-CGC_NUMBER.*** DEFINIO DE PARAMETROSSELECTION-SCREEN BEGIN OF BLOCK PARAM WITH FRAME TITLE TEXT-001.PARAMETERS: P_EMPR LIKE T001-BUKRS.SELECTION-SCREEN END OF BLOCK PARAM.*** INICIO DO PROGRAMASELECT BUKRS BUTXT ADRNR ORT01 LAND1 INTO (WBUKRS,WBUTXT,WADRNR,WORT01,WLAND1) FROM T001 WHERE BUKRS = P_EMPR.ENDSELECT.*** OBTEM E FORMATA O CGCCALL FUNCTION 'J_1BREAD_CGC_COMPANY' EXPORTING BUKRS = WBUKRS IMPORTING CGC_NUMBER = WCGC EXCEPTIONS OTHERS = 1.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 041.ENDIF.*** MONTA O FORMULARIOCALL FUNCTION 'OPEN_FORM' EXPORTING DEVICE = 'PRINTER' DIALOG = 'X' EXCEPTIONS CANCELED = 1 DEVICE = 2 FORM = 3 OPTIONS = 4 UNCLOSED = 5 OTHERS = 6.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 033.ENDIF.CALL FUNCTION 'START_FORM' EXPORTING FORM = 'ZWA01T09' EXCEPTIONS FORM = 1 FORMAT = 2 UNENDED = 3 UNOPENED = 4 UNUSED = 5 OTHERS = 6.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 034.ENDIF.CALL FUNCTION 'WRITE_FORM' EXPORTING WINDOW = 'CABEC' ELEMENT = 'TEXTCB' EXCEPTIONS ELEMENT = 1 FUNCTION = 2 TYPE = 3 UNOPENED = 4 UNSTARTED = 5 WINDOW = 6 OTHERS = 7.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 038.ENDIF.CALL FUNCTION 'SET_TEXTSYMBOL' EXPORTING NAME = '&cgc_number&' VALUE = WCGC REPLACE = 'X' EXCEPTIONS OTHERS = 1.CALL FUNCTION 'WRITE_FORM' EXPORTING WINDOW = 'MAIN' ELEMENT = 'TEXTMA' EXCEPTIONS ELEMENT = 1 FUNCTION = 2 TYPE = 3 UNOPENED = 4 UNSTARTED = 5 WINDOW = 6 OTHERS = 7.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 039.ENDIF.CALL FUNCTION 'WRITE_FORM' EXPORTING WINDOW = 'RODAPE' ELEMENT = 'TEXTRO' EXCEPTIONS ELEMENT = 1 FUNCTION = 2 TYPE = 3 UNOPENED = 4 UNSTARTED = 5 WINDOW = 6 OTHERS = 7.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 040.ENDIF.CALL FUNCTION 'END_FORM' EXCEPTIONS UNOPENED = 1 OTHERS = 2.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 036.ENDIF.CALL FUNCTION 'CLOSE_FORM' EXCEPTIONS UNOPENED = 1 OTHERS = 2.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 037.ENDIF.Executar F8Informar a Empresa e F8Na tela abaixo, proceder da seguinte forma: 1 - Digitar o nome do Formulrio (ZWA10T09) 2 - Digitar o Idioma (PT) 3 - Clicar no boto Criar 4 - Clicar no boto Avanar Enter (na janela Informao)Na tela abaixo, proceder da seguinte forma: 1 - Digitar o Significado (exemplo: Treinamento) 2 - Clicar em Layout F6Na tela abaixo, proceder da seguinte forma: 1 - Manter as informaes referentes a Pgina 2 - Criar as Janelas de acordo com o layout do exerccioNa tela abaixo, proceder da seguinte forma: 1 Clicar no boto CriarNa tela abaixo, proceder da seguinte forma: Aps aparecer a nova janela (WINDOW1) clicar no boto Dar novo nomeNa tela abaixo, proceder da seguinte forma: Aps aparecer a janela Renomear janela 1 Digitar o novo nome 2 Clicar no boto Avanar ENTERNa tela abaixo, proceder da seguinte forma: 1 Dimensionar e posicionar a janela CABEC 2 Dimensionar e posicionar a janela MAIN 3 Inserir nova janela RODAPE 4 Dimensionar e posicionar a janela RODAPE 5 Clicar no boto Gravar Ctrl+S 6 Informar a Classe de Desenvolvimento 7 Clicar no boto Ativar Ctrl+F3OBS: Para checar se existem erros de ortografia Clicar em DEFINIONa tela abaixo, proceder da seguinte forma: Clicar em Formatos de pargrafo F7Na tela abaixo, proceder da seguinte forma: 1 Criar os 3 pargrafos necessrios 2 Clicar no boto Gravar Ctrl+S 3 Clicar no boto Ativar Ctrl+F3 4 Clicar no boto Layout F6Selecionar o caminho: Processar > Elementos de texto Shift+F4Nas 3 telas a seguir, devem ser preparados os elementos de texto:Com isto, est encerrada a preparao do Formulrio.Voltar ao Menu Principal.Clicar no boto Editor ABAP F7Digitar o codigo do Programa (ZWA10T09)Clicar no boto CriarComplementar as informaes necessaris, Gravar e VoltarClicar no boto Modificar****************************************** SAPSCRIPT ******************************************REPORT ZWA10T09.*** DEFINIO DE TABELASTABLES: T001.*** DEFINIO DE camposDATA: WBUKRS LIKE T001-BUKRS, WBUTXT LIKE T001-BUTXT, WADRNR LIKE T001-ADRNR, WORT01 LIKE T001-ORT01, WLAND1 LIKE T001-LAND1, WCGC LIKE J_1BWFIELD-CGC_NUMBER.*** DEFINIO DE PARAMETROSSELECTION-SCREEN BEGIN OF BLOCK PARAM WITH FRAME TITLE TEXT-001.PARAMETERS: P_EMPR LIKE T001-BUKRS.SELECTION-SCREEN END OF BLOCK PARAM.*** INICIO DO PROGRAMASELECT BUKRS BUTXT ADRNR ORT01 LAND1 INTO (WBUKRS,WBUTXT,WADRNR,WORT01,WLAND1) FROM T001 WHERE BUKRS = P_EMPR.ENDSELECT.*** OBTEM E FORMATA O CGCCALL FUNCTION 'J_1BREAD_CGC_COMPANY' EXPORTING BUKRS = WBUKRS IMPORTING CGC_NUMBER = WCGC EXCEPTIONS OTHERS = 1.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 041.ENDIF.*** MONTA O FORMULARIOCALL FUNCTION 'OPEN_FORM' EXPORTING DEVICE = 'PRINTER' DIALOG = 'X' EXCEPTIONS CANCELED = 1 DEVICE = 2 FORM = 3 OPTIONS = 4 UNCLOSED = 5 OTHERS = 6.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 033.ENDIF.CALL FUNCTION 'START_FORM' EXPORTING FORM = 'ZWA10T09' EXCEPTIONS FORM = 1 FORMAT = 2 UNENDED = 3 UNOPENED = 4 UNUSED = 5 OTHERS = 6.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 034.ENDIF.CALL FUNCTION 'WRITE_FORM' EXPORTING WINDOW = 'CABEC' ELEMENT = 'TEXTCB' EXCEPTIONS ELEMENT = 1 FUNCTION = 2 TYPE = 3 UNOPENED = 4 UNSTARTED = 5 WINDOW = 6 OTHERS = 7.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 038.ENDIF.CALL FUNCTION 'SET_TEXTSYMBOL' EXPORTING NAME = '&cgc_number&' VALUE = WCGC REPLACE = 'X' EXCEPTIONS OTHERS = 1.CALL FUNCTION 'WRITE_FORM' EXPORTING WINDOW = 'MAIN' ELEMENT = 'TEXTMA' EXCEPTIONS ELEMENT = 1 FUNCTION = 2 TYPE = 3 UNOPENED = 4 UNSTARTED = 5 WINDOW = 6 OTHERS = 7.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 039.ENDIF.CALL FUNCTION 'WRITE_FORM' EXPORTING WINDOW = 'RODAPE' ELEMENT = 'TEXTRO' EXCEPTIONS ELEMENT = 1 FUNCTION = 2 TYPE = 3 UNOPENED = 4 UNSTARTED = 5 WINDOW = 6 OTHERS = 7.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 040.ENDIF.CALL FUNCTION 'END_FORM' EXCEPTIONS UNOPENED = 1 OTHERS = 2.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 036.ENDIF.CALL FUNCTION 'CLOSE_FORM' EXCEPTIONS UNOPENED = 1 OTHERS = 2.IF SY-SUBRC NE 0. MESSAGE ID 'ZWA' TYPE 'E' NUMBER 037.ENDIF.Executar F8Informar a Empresa e F81. Especificao de programa de treinamento: ZWAnnT10Tabelas envolvidas: MARA - Mestre dos Materiais (Dados Gerais) MARD - Mestre dos Materiais (Deposito) MAKT - Textos breves de Materiais1.1.1. Parmetros: Cdigo do materialCriar o Formulrio ZWAnnT10, conforme lay out anexo, copiando o formulrio RT_CHECK_LIST Sero usadas as impressoras Laser ou DeskJet com folha solta branca.Procedimentos: Pedir o parmetro: Cdigo do Material. Ler na tabela MARA o cdigo digitado no parmetro, (MATNR), Ler na tabela MARD Centro de Custos (WERKS), Deposito (LGORT), Estoque (LABST), Valor (VKLAB). Ler na tabela MAKT Descr.do Material (MAKTX) Formatar o formulrio referido com: 1- cabealho: RELATORIO DE MATERIAL 2- Codigo e Nome do Material, Estoque Total: com a somatoria das quantidades (LABST) Valor Total: com a somatoria dos valores (VKLAB) 3- main Imprimir cada um dos registros lidos na tabela MARD com: Centro (WERKS) Deposito (LGORT) Estoque (LABST) Valor (VKLAB) Obs.: Imprimir as molduras definidas no Formulrio.1 Cabecalho do Formulario 2 Material: xxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx Estoque Total: xxxxxxxxxxxx Valor Total:xxxxxxxxxxxx 3Centro Deposito Estoque DisponivelValorxxxxxxxx xxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx xxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx4 2. Especificao de programa de treinamento: ZWAnnT11Tabelas envolvidas: MARA - Mestre dos Materiais (Dados Gerais) MARD - Mestre dos Materiais (Deposito) MAKT - Textos breves de Materiais T001 - EmpresasCriar os Formulrios ZWAnnT11_1 e ZWAnnT11_2 , conforme os layouts anexo. Obs: Sero utilizadas impressoras Laser ou DeskJet usando folhas soltas em branco.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.: Imprimir as molduras definidas no formulrio. RELAO de MATERIAIS nos DEPOSITOS 30/09/1999 10:30:55 Nome da Empresa Endereo da Empresa Prezados Srs.: Estamos enviando relatrio de todos osmateriais em nossos estoques, que estaro a sua disposioa partir da prxima semana. 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 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999Pg. nn RELAO de MATERIAIS nos DEPOSITOS 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 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999XXXXX XXXXXXXXXXXXXXX XXXX XXXXXX 9999999999999999Pg. nn1 Tabela de Formatos de Elementos de TextoNesta tabela aparecem os formatos de pargrafo standard e todos os formatos de pargrafo que foram criados pelo usurio ex P1 Pargrafo P1. atravs dele que se pode determinar as caractersticas do pargrafo discriminado. FormatoSignificado*Pargrafo DefaultTexto 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/EElemento de Texto2 Tabela de Simbolos do SistemaOs smbolos de texto so como comandos pr-definidos que quando utilizados facilitam a programao.Ex. DATE ao invs de ter que exportar SY-DATUM Incluso de Logos nos formulriosO processo bastante simples e consiste em gerar no sistema um objeto no formato hexadecimal, que possa ser interpretado pelo SAPscript, originando a incluso de uma imagem. No entanto, devido s limitaes expostas no comeo deste documento, isso pode levar um certo tempo at reproduzir o resultado desejado.Primeiramente devemos pegar um editor de grficos que possua a sada no formato TIF pois se o formato no for baseado no Baseline TIFF 6.0 o compilador hexadecimal do SAP no conseguir compil-lo. Um editor que permite a gravao em formato TIFF o Lview Pro, que pode ser conseguido atravs do site : http://winfiles.com.Para gerarmos o objeto no client desejado (lembre que esse objeto no pode ser transportado), devemos executar o programa standard RSTXLDMC, com um arquivo no formato *.TIF. Preencher o primeiro campo (file name), com o path completo do arquivo da imagem do logotipo. Esse caminho pode ser no servidor ou local.O segundo campo (type) determina se o logotipo deve ser gerado monocromtico BMON(default) ou colorido BCOL.Importante: Quando gerarmos a figura colorida dever ser at 256 cores seno o compilador no ir conseguir compilar tal nvel de resoluo. Na hora dos testes o logotipo no vai aparecer!!!O ltimo parmetro que exige ser preenchido o Text Name, onde feita a atribuio do nome do objeto que ser referenciado de dentro do formulrio (padro: ZHEX-MACRO-).Tome cuidado, pois se o programa for executado com o mesmo nome vai sobrepor o logotipo antigo sem perguntar se deseja sobrepor.A gerao desse logo est intimamente ligado ao formato do arquivo TIFF. Isso quer dizer que o seu tamanho obtido no formulrio est relacionado ao tamanho da imagem geradora do objeto.No elemento de texto dever ser utilizado o seguinte comando:/: INCLUDE ZHEX-MACRO-COMPLEXLOGO OBJECT TEXT ID STObs: aconselhvel que se crie apenas uma janela somente para o logo.Comandos de ControleADDRESSFormatao automtica de informao de endereoBOTTOMUsado apenas na janela MAIN para imprimir no rodap da janelaBOXCria caixaCASECria condio para argumentosDEFINECria um novo smbolo em tempo de execuoHEXPassa valores hexadecimais diretamenteIFCria condio para argumentosINCLUDEInclu outros textos e logotiposNEW-PAGEFora uma nova pginaNEW-WINDOWFora uma nova janelaPERFORMChama subrotinaPOSITIONUsado para caixas setando X & YPRINT-CONTROLInicializa um seqncia definida de controle de impressoPROTECTProtege uma pgina de paradaRESETReestarta seqncia de nmeros de sadaSET COUNTRYSeta o pas para campos SET DATE MASKSeta formato de dataSET SIGNColoca o campo a direita ou esquerda do nmeroSET TIME MASKSeta formato de horaSIZEUsado apenas para caixa onde seta o tamanho da caixaSTYLEUsa um diferente tipo de estiloSUMMINGAdiciona valores para um totalTOPUsado apenas na janela MAIN para imprimir no topo da janelaFormatando Opes()Alinha a direitaInsere um prefixo ou sufixo literal(C)Representa smbolo retirando-se os espaos em branco(n)Define um comprimento explcito (. n)Seta o nmero de casas decimais+nCaracteres no setados a direita(En)Representa um smbolo como um nmero exponencial(Ff)Utiliza um tipo de caracter nos espaos( I )Representa apenas valores no iniciais(K)Ignora converso de rotinas( R)Fora alinhamento a direita ( S)O smbolo representado atravs de um campo(T)O smbolo representado atravs de um separador de milhar(Z)Ignora zeros Download / UploadPara se fazer download ou Upload deve-se utilizar o programa RSTXSCRPO processo de upload e download um pouco diferente do realizado em programas. Para isso foi criado o programa RSTXSCRP que pode ser executado atravs da transao SE38. Este programa pode ser utilizado tambm para fazer o transporte de Scripts, pois pelo fato do script ser Client Dependent esta pode ser uma ferramenta til.O arquivo gerado em formato texto fica no formato abaixo:SFORMZA_WM_S_LVSKOMM3HFORMZA_WM_S_LVSKOMM3 OLANP HEADFORM ZA_WM_S_LVSKOMM3SAP DEF PLista de picking fora de SP ZA_WM_S_LVSKOMM3 00018CTPICOLOF 46B 20000616170909CTMEDEIROSAA46C 2000071222343913200051 P0 200 LINE/:FORM CPI 10; LPI 6; TAB-STOP 1 CH; START-PAGE PAGE; FORMAT LETTER PORTRAIT; LINE/:FORM PARAGRAPH L; RDI; RDIDEV; LINE/:PARAGRAPH L LINE-SPACE 1 LN; LEFT-INDENT 1 CH; LINE/:PARAGRAPH L1 LINE-SPACE 1 LN; LINE/:PARAGRAPH L2 LINE-SPACE 1 LN; LINE/:PARAGRAPH L1 TAB 1 1.90 CM LEFT; LINE/:PARAGRAPH L2 TAB 1 0.10 CM LEFT; TAB 2 2 CM LEFT; TAB 3 7.60 CM LEFT; LINE/:PARAGRAPH L2 TAB 4 9 CM LEFT; TAB 5 11.70 CM LEFT; TAB 6 14 CM LEFT; LINE/:PARAGRAPH L3 TAB 1 16 CH RIGHT;END HEADFORM ZA_WM_S_LVSKOMM3SAP TXT PLista de picking fora de SP ZA_WM_S_LVSKOMM3 00018CTPICOLOF 46B 20000616170909CTMEDEIROSAA46C 2000071222343913200246 P0 200 LINE/:FORM TEXT 'Lista de picking fora de SP'; LINE/:PARAGRAPH L TEXT 'Pargrafo default'; LINE/:PARAGRAPH L1 TEXT 'Ttulo da Capa'; LINE/:PARAGRAPH L2 TEXT 'Dados de cabealho Capa'; LINE/:PARAGRAPH L3 TEXT 'Cdigo de barras'; LINE/:PARAGRAPH L5 TEXT 'Ttulo de lista + linha 1'; LINE/:PARAGRAPH L6 TEXT 'Ttulo de lista + linha 2'; LINE/:PARAGRAPH L7 TEXT 'Ttulo de lista + linha 3'; LINE/:PARAGRAPH L8 TEXT 'Subcabecalho Capa'; LINE/:PARAGRAPH L9 TEXT 'Dados da MAIN'; LINE/:PARAGRAPH LC TEXT 'Itens da capa MAIN'; LINE/:PARAGRAPH LV TEXT 'Dados de embalagem'; LINE/:STRING BC TEXT 'Cdigo de barras lista pick.WM'; LINE/:STRING GK TEXT 'Caracter Pequeno Negrito'; LINE/:STRING GR TEXT 'Caracter Pequeno Negrito'; LINE/:STRING H TEXT 'Cadeia caracteres ressaltada'; LINE/:STRING PK TEXT 'Caracter Pequeno'; LINE/:STRING PQ TEXT 'Caracter Pequeno'; LINE/:STRING U TEXT 'Cadeia caracteres sublinhada'; LINE/:WINDOW FUSS TEXT 'Rodap'; LINE/:WINDOW HEADER TEXT 'Nova janela'; LINE/:WINDOW KOPF TEXT 'Cabealho da lista picking'; LINE/:WINDOW MAIN TEXT 'Janela principal'; LINE/:PAGE CAPA TEXT 'Pgina nova'; LINE/:PAGE PAGE TEXT 'Pgina de texto';END ACTVSAPEDebugO 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 DepuradorAps 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.Para se desativar o depurador basta clicar em ENCERAR na antes do formulrio entrar em depurao.UTILIZAO DO PERFORMComo 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:Dentro do script colocar :PERFORM MATERIAL IN PROGRAM TESTE USING &MARA-MATNR&CHANGING &V_FLAG&.ENDPERFORM.IF &V_FLAG = X. IMPRIME LINHA DO MATERIALELSE. SOMA A QUANTIDADE DE MATERIALENDIF.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 FormsDentro do programa colocar o form*&---------------------------------------------------------------------**& 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.Estas Estruturas OTAB(Tabela de sada OUT) e ITAB(Tabela de Entrada IN) so utilizadas para se fazer o link entre o Script e o Form, se voc pedir para visualiza-las ver que elas possuem apenas dois campos um NAME(que o nome da varivel de destino) e VALUE (que o valor da varivel a ser passada)Isso pode ser utilizado para se controlar qualquer coisa do script sem alterao do standard.Obs s tome cuidado no uso dos endereos de memria no caso acima coloquei como ABCD, eles no so perdidos ficam na memria. Ento se for fazer vrios performs use endereos de memria diferentes.A utilizao de variveis neste caso impossvel, pois ao sair do form ou do programa voc perde o valor , ficando assim com valores locais.UTILIZAO DO CDIGO DE BARRASA utilizao de cdigo de barras de certa forma simples, pois o SAP j possui os principais tipos de cdigos de barra existentes.Para se criar um cdigo de barras basta criar um formato de caracter e dizer qual tipo a ser utilizado. Quando este tipo de pargrafo criado for utilizado, a varivel ou o texto que seguir do cdigo do carecter ser transformado em cdigo de barras.Os principais cuidados a se tomar:1- Verificar se o tipo de cdigo de barras utilizado alfanumrico no caso da utilizao de caracteres.2-A impressora deve conseguir imprimir cdigo de barras. As impressoras da HP no possuem esta caracterstica por isso deve-se utilizar placas de memria adicionais para que seja possvel a identificao.( 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 beobtained 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).2- aconselhvel que se crie uma janela apenas para o cdigo de barras devido ao seu formato diferenciado.3- As notas da SAP que falam sobre o assunto so: 121305 & 5196 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)=GE (maior ou igual a )NE (diferente)NOT ANDORSintaxe:/: IF condio:/:ELSE IF condio:/:ELSE:/:ENDIFObs 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.Administrao de SpoolNa 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.Clicar em Saltar> 1( Tela_AlternativaCada uma das opes leva a um tipo de configurao: Pgina Impressora Caracteres...etcCALL FUNCTION OPEN_FORMCALL FUNCTION START_FORMCALL FUNCTION WRITE_FORMCALL FUNCTION END_FORMCALL FUNCTION CLOSE_FORMSE71Mandante de desenvolvimentoIdioma PTMandante 000Idioma: DE / ENMandante de desenvolvimentoIdioma DE/ ENImagem preto e brancoColocar o nome do logotipoJANELA DE PGINASPGINASJANELAS E ELEMENTOS DE TEXTOCARACTERES DE COMANDOPARGRAFOSP Caminho para o arquivo tifProgramaStandardSAP SCRIPTPool de FormsCdigo de barras apresentado quando a impressora no possui mdulo de conversoCriar formato de caracter e colocar na janela o cdigo de barras desejado.Acima demonstrado na lista.Rgua de CursorApontador de LinhaJanela de visualizao de variveisJanela executadaEste atributo define o formato de caracter, uma chave de pesquisa associada ao Caracter String quando o usurio utiliza este formato de caracter.Exemplos: hipertextos, links de elementos de dados e glossrios.Protegido No permite a quebra de linha, mas apresenta todo o bloco de texto na prxima linha.Oculto No apresentado, somente visvel no editor de textoSuperescrito / Subscrito apresentado meia linha acima ou abaixoOn Ativa itemOff Desativa ItemManter Utiliza a formatao do pargrafoPage 86 of 1_942736990.vsd