Overview Smartforms
Overview Smartforms
Rodrigo Gama - SONDA IT - 2012
1
Overview Smartforms
1. Introdução........................................................................................................................................................................... 2
1.1 O que é Smart Forms..................................................................................................................................................... 2
1.2 Benefícios do Smart Form.............................................................................................................................................. 2
2. Acessando o Smartforms.................................................................................................................................................... 2
3. Atributos do Formulário....................................................................................................................................................... 5
3.1. Características Gerais.................................................................................................................................................... 5
3.2. Opções de Saída............................................................................................................................................................ 6
3. Importando Imagens........................................................................................................................................................... 7
4. Criando um SMARTFORMS............................................................................................................................................. 10
4.1. Criando um Smart Form Print Program:....................................................................................................................... 10
4.2. Iniciando a criação do Smartforms:............................................................................................................................... 11
4.3. Criando o Header.......................................................................................................................................................... 14
4.4. Testando o Header........................................................................................................................................................ 27
4.5. Criando o Main.............................................................................................................................................................. 29
4.6. Inserindo Logo.............................................................................................................................................................. 35
4.7. Testando o relatório...................................................................................................................................................... 37
4.8. Criando Estilo................................................................................................................................................................ 40
4.9. Formatações................................................................................................................................................................. 49
5. Download \ Upload do formulário...................................................................................................................................... 50
5.1. Download do formulário................................................................................................................................................ 50
5.2. Upload do formulário..................................................................................................................................................... 52
1. Introdução
Esse documento tem como objetivo apresentar a ferramenta de criação de formulários da SAP “SMARTFORMS”.
1.1 O que é Smart Forms
Smart Forms é uma ferramenta de desenvolvimento de formulários, que está presente a partir da versão 4.6c do SAP.
Substitui o SapScript como ferramenta de desenvolvimento de formulários, oferecendo um ambiente gráfico para criar e
alterar os formulários.
Está acessível através da transação SMARTFORMS, e o processo de impressão se dá através da chamada a uma
função gerada por esta transação, que contem todo o processamento do formulário.
O Smartforms trabalha com objetos. A partir deles é possível inserir janelas, páginas, LOOPS, figuras, tabelas e
códigos ABAP.
1.2 Benefícios do Smart Form
Ambiente gráfico para desenvolvimento
Maior flexibilidade no desenvolvimento e maior facilidade de manutenção
Publicar formulários na WEB
O programa de impressão basicamente só seleciona os dados e faz chamada a função que executa o formulário
enviando os dados. Em caso de alterações no formulário, elas se concentrarão exclusivamente no formulário, sem
necessidade de se alterar o programa, exceto nos casos em que se alterem os dados.
Não precisa ser copiado de um ambiente para outro para ser testado.
Seu teste em desenvolvimento apresenta a aparência real do formulário mais próxima do real.
2. Acessando o Smartforms
2
Overview Smartforms
Acessar a transação SMARTFORMS
3
Overview Smartforms
Navigation Menu Maintenance Frame Form Painter
Navigation Menu: Exibe os nós contidos no formulário, e permite incluir novos nós, alterar posição no formulário,
eliminar, etc.
Maintenance Frame: Exibe as propriedades do nó selecionado no menu.
Form Painter: Exibe e permite manipular as janelas e alguns outros objetos(nós) do formulário em formato gráfico.
OBSERVAÇÕES: Ao clicar no item de menu: Utilitários => Lista de Campos on/off serão exibidos os campos do form. Estes
campos poderão ser arrastados e colados em um elemento de texto.
O processo completo de impressão de um formulário Smart Form possui três objetos principais no SAP:
Smart Form Print Form Template:
É o formulário, onde é criado ou pré-configurado o modelo.
4
Overview Smartforms
Smart Form function module:
Modulo de função a ser chamado para executar o formulário. É gerada automaticamente quando ativamos um smart
form e contém todo o processamento do mesmo.
Smart Form print program:
Programa ABAP que executará o formulário. Deverá selecionar os dados, fazer chamada a função
'SSF_FUNCTION_MODULE_NAME' passando o nome do formulário como parâmetro. Esta função retorna o nome
da function module que será chamada para executar o formulário.
Os programas do Smart Form não são os mesmos que os dos formulários de SapScript, e você não pode utilizar os
programas de impressão de SapScript para imprimir um Smart Form.
3. 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:
3.1. Características Gerais
5
Overview Smartforms
Estas opções indicam em que
condições o formulário será
traduzido.
3.2. Opções de Saída
6
Overview Smartforms
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.
3. Importando Imagens
Para utilizarmos imagens do Smartforms, devemos antes importar para o sistema utilizando a transação SE78 –
Manutenção de Imagens no Sistema
7
Overview Smartforms
Clicar em (Importar)
Nome do File: endereço da imagem a ser importada
Nome: nome da imagem no SAP
Descrição: descrição da imagem
Tipo: em preto e branco ou em cores
8
Overview Smartforms
Aperte em (Pré-Visualização)
O tamanho da imagem é ajustado no formulário nas características técnicas da imagem.
9
Overview Smartforms
4. Criando um SMARTFORMS.
4.1. Criando um Smart Form Print Program:
Programa ABAP que executará o formulário. Deverá selecionar os dados, fazer chamada a função
'SSF_FUNCTION_MODULE_NAME' passando o nome do formulário como parâmetro. Esta função retorna o nome da
function module que será chamada para executar o formulário.
Na transação SE38, crie um report chamado ZR_SF_OVERVIEW_01 onde 01 é seu número. Utilize o código descrito no
arquivo abaixo.
ZR_SF_OVERVIEW.txt
10
Overview Smartforms
4.2. Iniciando a criação do Smartforms:
Na transação Smartforms, crie um formulário chamado ZSF_OVERVIEW_01 onde 01 é seu número. Grave como objeto
local.
11
Overview Smartforms
12
Overview Smartforms
13
Overview Smartforms
4.3. Criando o Header
Este formulário será dividido da seguinte maneira:
- Figura
- Header (Dados Tabela Scarr)
- Main (Sflight)
14
Overview Smartforms
15
Overview Smartforms
Marque a opção abaixo:
Para alterar o posicionamento das Janelas e Main:
- Maior precisão - Ambos tem a aba “Opções de Saída” onde podemos escolher margem, tamanho da largura e altura.
- Menor precisão - Ou podemos alterar manualmente utilizando o form painter.
16
Overview Smartforms
17
Overview Smartforms
18
Overview Smartforms
Nossa Tabela Scarr tem os seguintes campos para header:
COMPANHIA AÉREA (CARRID) Exemplo - AA
NOME COMPANHIA AÉREA (CARRNAME) Exemplo - American Airlines
MOEDA (CURRCODE) Exemplo - USD
URL (URL) Exemplo - [Link]
Faremos o header com 2 linhas e 2 colunas separando as 4 informações.
19
Overview Smartforms
Vamos criar os textos com variáveis dentro do layout.
20
Overview Smartforms
21
Overview Smartforms
Para inserir Variáveis devemos clicar no botão , a tela abaixo será exibida. O campo deve ser preenchido entre &.
Não esqueça que o campo deve estar declarado nos dados globais.
22
Overview Smartforms
Criaremos outros textos
23
Overview Smartforms
Faremos mais 2 textos para a Segunda Linha. Coluna 1 e Coluna 2 da segunda linha.
24
Overview Smartforms
Criando o loop da Janela Header.
Definir nome e descrição.
25
Overview Smartforms
Atenção.: Seguindo esse procedimento ocorreram os erros abaixo ao ativar e servem como conhecimento para
futuros problemas.
Esse erro está ocorrendo porque o nó “layout” está separado do nó Loop. O nó layout tem que estar dentro do
nó loop onde foi colocado w_scarr neste caso não está havendo ligação.
A Solução é colocar o nó layout dentro do nó loop. Selecionar o Header como figura acima e arrastar para cima
do nó loop.
O sistema irá perguntar se deseja realmente confirmar a alteração. Após a correção deverá ficar assim:
Devemos estar atentos a erros de formatação:
Precisamos aumentar a altura da janela header pois o layout dentro da janela é maior que tamanho de janela.
26
Overview Smartforms
4.4. Testando o Header
Todo formulário é atribuído a um módulo de função, para verificarmos o nome da função gerada devemos ir em
"Ambiente" - "Nome do módulo de função"
A tela com o nome da função será exibida, podemos acessar via SE37. Esta função será chamado pela programa que
criamos no inicio e receberá como parâmetro de entrada as tabelas T_SCARR e T_SFLIGHT que declaramos na
interface do formulário.
Após o formulário ter sido ativado com sucesso, vamos testar. Selecione o botão ,
27
Overview Smartforms
Selecione novamente o botão para rodar a função preenchendo a tabela SCARR conforme abaixo.
Informar impressora LOCL e clicar em pré-visualização.
O relatório deve ser exibido.
28
Overview Smartforms
4.5. Criando o Main
Criar a tabela dentro do MAIN inserindo um loop na SFLIGHT. Utilizamos a condição carrid = w_scarr-carrid para que a
quebra seja feita pelo campo. Por exemplo, scarr-carrid = AA o loop da SFLIGHT imprimirá todos o registros AA dentro do
Main
.
29
Overview Smartforms
Inserir as medidas conforme a imagem, a coluna 6 oculta na imagem está com 3,00cm.
30
Overview Smartforms
Ao definir a [Link] como HEADER_SFLIGHT, automaticamente as colunas serão exibidas na arvore.
Renomear a 1º célula.
31
Overview Smartforms
Criar o texto "Companhia Aérea"
Realizar este procedimento para todas as outras células ficando conforme abaixo:
Textos: Companhia Aérea
Nº Vôo
Data do vôo
Preço do vôo
Tipo do Avião
Marcações
32
Overview Smartforms
Criar entrada de tabela na área principal.
Ao definir a [Link] como DADOS, automaticamente as colunas serão exibidas na arvore.
Realizar o mesmo procedimento para renomear as células (não podemos ter nomes repetidos por isso completamos o
nome com "DADOS" no final)
Criar os textos, só que em vez de inserirmos textos fixos vamos chamar variáveis clicando no botão .
33
Overview Smartforms
Textos: Companhia Aérea - &w_sflight-carrid&
Nº Vôo - &w_sflight-connid&
Data do vôo - &w_sflight-fldate&
Preço do vôo - &w_sflight-price&
Tipo do Avião - &w_sflight-planetype&
Marcações - &w_sflight-paymentsum&
Ficando desta forma
34
Overview Smartforms
4.6. Inserindo Logo
35
Overview Smartforms
Podemos criar uma condição para a impressão do logo. Esse logo é da american airlines, logo somente deverá ser
impresso se w_scarr-carrid for ‘AA’.
Caso exista condições, devemos mover o logo para dentro do Loop.
Alterei a medida do Header para receber o logo.
36
Overview Smartforms
4.7. Testando o relatório.
Editar o programa ZR_SF_OVERVIEW_01 criado anteriormente.
Procurar a função SSF_FUNCTION_MODULE_NAME. Essa função busca o nome da função do smartforms pelo nome
do formulário. O campo formname deve ser preenchido com o nome do seu formulário.
Ao rodar, o campo fm_name será preenchido com o nome da função gerada pelo smartforms.
* Busca Nome do módulo de função que foi gerado para o Formulário.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = 'ZSF_OVERVIEW_01' "--> Mudar para o nome do seu formulário
IMPORTING
fm_name = vl_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
Tela do DEBUG após passar pela função:
Tela vista no smartforms pelo caminho: “Ambiente” – “Nome do Módulo de Função”.
Com o nome da função em mãos devemos chamar a função do smartforms (o nome da função é a variável vl_fm_name
preenchida pela função SSF_FUNCTION_MODULE_NAME) passando como parâmetro as tabelas que definimos na
criação.
CALL FUNCTION vl_fm_name
EXPORTING
control_parameters = st_control_parameters
output_options = st_output_options
user_settings = 'X'
TABLES
t_scarr = it_scarr
t_sflight = it_sflight
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
37
Overview Smartforms
user_canceled = 4
OTHERS = 5.
Rodar o programa.
Informar a impressora LOCL e clicar em pré-visualização.
38
Overview Smartforms
39
Overview Smartforms
4.8. Criando Estilo
Vamos criar o estilo ZE_OVERVIEW_01, acessar a transação SMARTFORMS e no campo Estilo informar o nome do
estilo a ser criado.
40
Overview Smartforms
41
Overview Smartforms
42
Overview Smartforms
Definir o tipo da fonte. No campo visualização será exibido o texto formatado.
43
Overview Smartforms
44
Overview Smartforms
Criamos o parágrafo Negrito com alinhamento centralizado.
45
Overview Smartforms
Finalizar a criação do estilo informando o Parágrafo standard em dados do cabeçalho. Salvar como objeto local e ativar.
46
Overview Smartforms
Voltar no formulário e definir no formato de saída o estilo criado.
As formatações criadas no estilo estarão disponíveis na "combo" do elemento de texto.
47
Overview Smartforms
Rodando o formulário após aplicação do estilo.
48
Overview Smartforms
4.9. Formatações
Linhas de
separação para
tabelas
2º Modelo
selecionado.
1º Selecione Exibir
modelo com quadro.
49
Overview Smartforms
Resultado.
5. Download \ Upload do formulário.
5.1. Download do formulário
Podemos fazer download do formulário como forma de backup ou para copiar o formulário para outro sistema, o
download gera um arquivo .XML
Na tela inicial da transação SMARTFORMS. Caminho: Utilitários – Download formulário
Informar o nome do formulário a ser copiado.
50
Overview Smartforms
Informar o local a ser gravado. Salvar.
Será criado um arquivo .XML com o nome do formulário, no caso z_nfdanfe_portrait_sap.xml
51
Overview Smartforms
5.2. Upload do formulário
Podemos fazer upload de um formulário no formato .XML e todo seu layout incluindo sua codificação interna serão
carregados para o SAP.
Na tela inicial da transação SMARTFORMS. Caminho: Utilitários – Upload formulário
Informar o nome do formulário a ser criado.
Informar o local onde o arquivo se encontra. Abrir.
52
Overview Smartforms
Informar Pacote e request.
Formulário criado com sucesso
Exibir
53
Overview Smartforms
Formulário criado com sucesso ainda inativo.
54