O que é Smart Forms.
Smart Forms é uma ferramenta de desenvolvimento, que está presente a partir da versão 4.6c do SAP.
Com ele é possível criar formulários sem a necessidade de “programar” todo o formulário. Ao invés
disso, o usuário “arrasta-e-solta” os objetos no Form Painter.
É possível também criar tabelas complexas utilizando um assistente.
Ao se criar um formulário pelo Smart forms, é gerado um módulo de função Standard, inclusive com
os parâmetros de importação, exportação, changing, tabelas e exceções. Alguns parâmetros são
inseridos por default, estes não podem ser alterados.
Parâmetros default do Smart forms
Ao se criar um smart forms, é criado também alguns parâmetros default na interface do modulo de função.
Os parâmetros default são os seguintes:
Importação:
o ARCHIVE_INDEX
o ARCHIVE_INDEX_TAB
o ARCHIVE_PARAMETERS
o CONTROL_PARAMETERS
o MAIL_APPL_OBJ
o MAIL_RECIPIENT
o MAIL_SENDER
o OUTPUT_OPTIONS: São as opções de saída do sapscript (é como se fosse a estrutura ITCPO,
só que com mais opções)
o USER_SETTINGS
Exportação:
o DOCUMENT_OUTPUT_INFO
o JOB_OUTPUT_INFO
o JOB_OUTPUT_OPTIONS
Exceções:
o FORMATING_ERROR
o INTERNAL_ERROR
o SEND_ERROR
o USER_CANCELED
Interface do Smart Forms
Esta é a interface do smartforms. Note que ela se
assemelha a interface de um módulo de função
É possível inserir novos parâmetros de
importação/exportação/tabelas ou exceções, porém, não é
possível alterar os parâmetros defaults, nem excluídos.
Neste canto ficam as opções do smartforms em formato de Nesta parte da tela fica o
árvore. Form Painter, com ele é
possível arrastar objetos e
Em opções globais é possível: posicioná-los no formulário.
Configurar os atributos do formulário como o formato de
página, o número de caracteres por polegada, o nº de linhas
por polegada e o estilo.
Em interface do formulário é possível adicionar novos
parâmetros (ver balão acima)
Em definições globais é onde será feita todas as declarações
globais do formulário como: Variáveis, Símbolos, etc... É
possível, inclusive, incluir um código abap que será executado
assim que o smartforms for chamado
Atributos do Formulário
Nesta seção é possível configurar como o formulário irá se comportar. O nó “Atributos do Formulário” se
divide em duas abas:
Características Gerais
Estas opções indicam em que condições o
formulário será traduzido
Opções de Saída
Indique aqui o formato de
página de seu formulário.
Indique aqui o número de
caracteres por polegada. Indique aqui o número
de linhas por polegada.
Indique aqui o estilo
(uma espécie de
modelo) do seu
formulário.
Indique aqui se a saída do formulário será no formato OTF (flag
desmarcado) ou no formato XML (flag marcado).
No modo de saída você indicará por qual meio a saída XML se dará. As
opções são: ‘S’ para Spool, ‘A’ para aplicação, ‘I’ para ITS e ‘B’ para
business connector.
No dispositivo de saída, deverá ser indicada a impressora que será utilizada
para a impressão do XSF.
Definições Globais
Neste nó você deverá indicar quais são os dados globais (variáveis, símbolos e etc...) do formulário, ele se
divide em 5 abas:
Dados Globais
Nesta Aba você deverá indicar as variáveis e estruturas globais. Toda variável e estrutura que será utilizada no
formulário e que não esteja declarada no nó “interface do formulário” deverá ser declarado aqui.
Ctgs.
Declarações de tipos.
Símb. Campo
Nesta aba deverão ser declarados todos os símbolos do formulário.
Inicialização
Nesta aba é possível escrever um código abap que será executado quando o formulário for chamado. Eqüivale
ao evento initialization do report.
No exemplo acima todos itens de um determinado documento de vendas é selecionado quando o formulário é
iniciado. Note que no alto existem duas janelas: Parâmetros de entrada e Parâmetros de saída.
Nos parâmetros de entrada deverão ser indicadas todas as variáveis ou estruturas que serão lidas no código
abap. Nos parâmetros de saída deverão ser indicadas todas as variáveis ou estruturas que receberão dados e
serão utilizadas no restante do formulário.
Tanto os parâmetros de entrada, quanto os de saída deverão estar declarados em dados globais ou na interface
do módulo de função.
Rotinas FORM
Nesta aba são indicadas todas as rotinas form que serão utilizadas no formulário.
Campos Moedas/Quant.
Usado para declarações de tipos moedas e quantidades.
Form Painter
O Form painter é uma interface onde os objetos do formulário podem ser posicionados livremente.
Objetos do Smart Forms
O Smart forms possui 13 objetos que podem ser usados para a confecção do formulário:
Página: Cria uma página no formulário.
Janela: Cria uma janela (para inserção de textos, gráficos ou tabelas) em uma página do formulário
Gráfico: Insere um gráfico bitmap em uma janela do formulário
Alternativa: Com este objeto é possível inserir um “se” no formulário.
Endereço: Com este objeto é possível inserir uma caixa de texto, já formata, contendo o endereço de
um centro (filial) ou cliente.
Texto: Inclui um texto em uma janela do formulário.
Comando: Insere um comando de impressora ou uma transição de página
Linhas de Programa: Insere um código ABAP no formulário
LOOP: Com este objeto é possível inserir um LOOP de uma tabela interna, inserindo os resultados
em um campo de texto, por exemplo.
Tabela: Com este objeto é possível inserir uma tabela (como a do Word) no formulário. Os dados
virão de uma tabela interna.
Padrão: Insere uma tabela vazia. Os dados deverão vir de um outro objeto, como um LOOP, por
exemplo.
Seção Complexa: Reúne os objeto LOOP, tabela e padrão em um único objeto.
Objeto Página
Com este objeto é possível incluir uma página no formulário. Existem 3 abas de configuração neste objeto que
serão explicadas abaixo:
Este flag indica se esta janela é a janela
principal do formulário.
Geralmente a janela principal é a janela
main.
Só pode existir uma janela principal em
cada página.
Objeto Janela
Uma janela pode contém textos, imagens e tabelas.
Indique aqui as margens esquerda e
superior, assim como a largura e altura da
janela.
Indique aqui se a janela será envolvida por uma linha
(e sua espessura). Também é possível incluir um
sombreamento nas linhas da janela.
Também é possível indicar em que
Objeto
momento Gráfico
a janela será impressa.
Com este objeto é possível inserir uma imagem bitmap em qualquer parte do formulário.
OBS: A imagem a ser inserida já deverá ter sido carregada pela transação SE76.
Indique aqui as condições
Indique também se ele
Indique aqui osdeatributos
será impresso forma da
imagem
colorida ou em preto e nome,
bitmap, como:
objeto
branco.e identificador.
Indique aqui a resolução.
Quanto maior a resolução,
menor será a imagem exibida.
Objeto Alternativa
Com este objeto é possível incluir um “se” no formulário, ou seja, você pode definir qual objeto será impresso
ou executado quando a condição for verdadeira e qual objeto será impresso ou executado quando a condição
for falsa.
Insira abaixo do true todos os objetos que
deverão ser impressos ou executados
quando a condição for verdadeira
Insira abaixo false todos os objetos que
deverão ser impressos ou executados
quando a condição for falsa.
Objeto Endereço
Com este objeto é possível inserir um endereço, já formatado, de uma organização, de um cliente ou de um
centro de trabalho (filial).
Objeto Texto
Insere um texto livre em uma janela ou em uma célula de uma tabela. Este objeto também poderá ser usado
para receber os dados do objeto LOOP.
Objeto Comando
Insere um comando de impressora ou uma transição de página.
Objeto Linhas de Programa
Insere um código abap dentro do smart forms.
Note que no alto existem duas janelas: Parâmetros de entrada e Parâmetros de saída.
Nos parâmetros de entrada deverão ser indicadas todas as variáveis ou estruturas que serão lidas no código
abap. Nos parâmetros de saída deverão ser indicadas todas as variáveis ou estruturas que receberão dados
e serão utilizadas no restante do formulário.
Tanto os parâmetros de entrada, quanto os de saída deverão estar declarados em dados globais ou na
interface do módulo de função.
Objeto LOOP
Com este objeto é possível incluir um loop em uma tabela interna. Por exemplo: listar todos os dados de uma
tabela interna.
Objeto Tabela
Insere uma tabela (como a do Word) no formulário. Este objeto depende de outros objetos como o objeto
Texto.
Será necessário inserir um objeto texto, ou gráfico, para cada célula da tabela.
Objeto Padrão
O objeto padrão é muito semelhante ao objeto tabela, a única diferença é que ele não possui a aba dados. Este
objeto poderá ser usado para formatar dados estáticos em uma tabela.
Chamando o smartforms no programa ABAP
Para executar o smart forms a partir de um programa ABAP você deverá, antes, saber qual foi o nome do
módulo de função gerado para ele. Para isso, no menu ambiente selecione a opção Nome do módulo de
função. O nome do módulo de função será exibido em uma mensagem de informação como demonstrado
abaixo:
Função que faz a chamada do smartforms pelo formulário.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME =
* VARIANT = ' '
* DIRECT_CALL = ' '
* IMPORTING
* FM_NAME =
* EXCEPTIONS
* NO_FORM = 1
* NO_FUNCTION_MODULE = 2
* OTHERS = 3
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.