domingo, 30 de setembro de 2012

TRANSLATE ... TO LOWER / UPPER CASE e USING


*  Fala Galera, hoje vou mostrar como deixar a informação de uma variável
* em maiuscula ou minuscula, será usada o comando 'TRANSLATE' e de brinde
* O código abaixo ainda tem uma dica para substituição de caracteres por
* outro usando o mesmo comando, Bons estudos !!!
*&---------------------------------------------------------------------*
REPORT Traslate.

* Criação da variável que iremos trabalhar.
data :
  vg_teste TYPE string VALUE ' Teste AbcDeFhiJ1'.

*  Aqui nos transformamos todos os caracteres do valor da variável em
* minusculo.
TRANSLATE vg_teste to LOWER CASE.

BREAK-POINT.

*  Agora vamos deixar todos os valores que em maiusculos
TRANSLATE vg_teste TO UPPER CASE.

BREAK-POINT.

*  Ahhh, agora tá o que eu descobri faz pouco tempo, a substituição de
* caracteres conforme informação passado após o Using.
*  O mais interessante é que os caracteres de numero Impar são substituidos
* pelos caracteres pares sequentes.
*  Exemplo abaixo. O caracter 'T' será substituido pelo caracter 'A',
* 'S' por 'B' e '1' por '2'.
TRANSLATE vg_teste USING 'TASB12'.
* translate vg_teste using : 'TA', 'SB', '12'. é a mesma coisa.

BREAK-POINT.
*  Percebam que o caracter 'A' não foi substituido por 'T', isso porque o
* comando é unilateral, sempre do Impar pro par sequente, Dahora né .


* Outra dica e que funciona com vazios tb. rsrs.
TRANSLATE vg_teste USING 'E '.

BREAK-POINT.

*  Executem Break a Break e vejam as auterações feitas durante o processo.
WRITE : vg_teste.



quinta-feira, 27 de setembro de 2012

Colorindo campos no Relatório WRITE

*  Bom dia Abapers sedentos de conhecimento, irei passar para vocês como
* deixar o texto de exibição colorido, não é muito a cara de quem trabalha
* com SAP de deixar as coisas coloridas, os alemães são muito serios, mas
* as vezes algum cliente quer deixar alguns campinhos de cor diferente para
* enxergar melhor, bem aqui vai, ... Lembrando que esse tipo de coloração é
* para relatórios em modo Write, o que pra mim já eh meio obsoleto, pois
* hoje fazemos relatórios no formato ALV, mas muitas vezes eu precisei dar
* manutenção em relatórios Write, e conhecimento nunca é demais neh.
REPORT z_format_color_write.

TABLES :
  sflight.

DATA :
  it_sflight TYPE TABLE OF sflight,
  st_sflight TYPE sflight
  .

DATA col TYPE i VALUE 0.

SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
SELECT-OPTIONS :
  s_carrid FOR sflight-carrid,
  s_connid FOR sflight-connid
  .
SELECTION-SCREEN END OF BLOCK   b1 .



START-OF-SELECTION.

  PERFORM f_selection.

 
PERFORM f_trata_dados.

*  Aqui tem o exemplo dado pela própria SAP, que abrange todos os efeitos
* e todas as cores, achei legal mostrar isso também.

 
DO 8 TIMES.
    col = sy-index - 1.
    FORMAT COLOR = col.
    WRITE: /  col              COLOR OFF,
             'INTENSIFIED ON'  INTENSIFIED ON,
             'INTENSIFIED OFF' INTENSIFIED OFF,
             'INVERSE ON'      INVERSE ON.
  ENDDO.

segunda-feira, 24 de setembro de 2012

Formatando dados com Máscaras - USING EDIT MASK

*  Opa pessoal, vou mostrar hoje como mostrar os dados de uma variável
* ou campo qualquer da forma que o user quer ver, existem algumas funções
* que fazem isso, mas as vezes o User que algo fora do padrão, e pra gente
* não desenvolver uma função para tratar isso existe um comando que
* conseguirá te ajudar muito que é o 'USING EDIT MASK' que substitui os
* Underline '_' pelo respectivo numero, veja abaixo um exemplinho legar.

*  Podemos usar esse comando para mostrar CPF, CNPJ, PIS, data e Qualquer
* coisa que tenha máscara de exibição, Bons estudos.


REPORT z_using_edit_mask.

* Reparem nos tamanhos das variáveis que vão trabalhar como retorno.
data :
  vg_number TYPE i,
  vg_return(70) TYPE c,
  vg_retNum(15) TYPE c
  .

vg_number = '123456789'.


*  Aki estaremos passando os valores da variável para uma outra variável,
* mas com uma máscara que você define, assim mostrando oq o User quer sem
* mudar nada na variável principal.
write vg_number USING EDIT MASK
      '_ _ _ indiozinhos, _ _ _ indi... Assim vai a_é pass_r o tamanho d_ variável'
      to vg_return.

*  Aqui os valores são conforme acima mas só que um pouco mais perto da
* realidade
write vg_number USING EDIT MASK
      '__,__._,_,___'
      to vg_retnum.

*  Retorno na tela.
WRITE : vg_return, / , /
        vg_retnum
.

quinta-feira, 20 de setembro de 2012

Smartforms - Passo a Passo - Parte II

* Olha ai, essa e a segunda parte sobre Smartforms onde agora falaremos
* sobre o programa que irá chamar e popular seu Smartforms.
* lembrando que depois desse passo iremos deixar esse mesmo Smart com
* uma cara de documento mesmo, e não esse rascunho de nada que fizemos,
* faremos tratativas de dados internos, criaremos mas parametros de
* Importação e tabelas, sem conta o Estilo que mostrei num proximo post.
*  Bons estudos.
*&---------------------------------------------------------------------*
REPORT z_prog_call_smartforms.

DATA :
  it_tsp01   TYPE TABLE OF tsp01,
  vl_fm_name TYPE rs38l_fnam.
CONSTANTS :
*  Aqui voçês coloquem o nome do Smartforms de vocês.
 
c_form TYPE rs38l_fnam VALUE 'ZSD_TESTE2'.


START-OF-SELECTION.

  SELECT *
    FROM tsp01
    INTO TABLE it_tsp01
    WHERE rqowner = sy-uname.

 
BREAK-POINT.

* Eu mantive os comentários do Post sobre essa função. Good Luck.

  IF it_tsp01 IS NOT INITIAL.

*  Executada a função que retorna o nome da função que chama o formulário
    PERFORM z_busca_nome_function.

* Executa o function que chama o formulário.
    PERFORM z_call_form.

 
ENDIF.

terça-feira, 18 de setembro de 2012

Função - CONVERSION_EXIT_CUNIT_OUTPUT

*  As vezes estamos trabalhando com unidades de medidas e dependendo do modo
* de exibição aparece uma unidade que a gente não sabe daonde veio, então
* essas unidades são unidade padrões da SAP que são relacionadas com unidades
* conforme o idioma, para não mostrar as unidades do SAP usamos uma função
* mostrar as unidades que queremos que é a 'CONVERSION_EXIT_CUNIT_OUTPUT',
* no exemplo abaixo estarei usando o Input 'ST' e o idioma do User.
*  O resultado será muito interessante.
*&---------------------------------------------------------------------*
REPORT conversion_exit_cunit_output.
DATA :
  vg_meins_out TYPE meins.

SELECTION-SCREEN BEGIN OF block b1 WITH FRAME.
 
PARAMETERS :
*  What f*&% s this, eu coloco ST e aparece outra coisa.
   
pi_meins TYPE meins DEFAULT 'ST',
    cb_with as CHECKBOX .
SELECTION-SCREEN end of BLOCK   b1.


BREAK-POINT.


IF cb_with IS INITIAL.
else.
  PERFORM z_trata_unidade.
ENDIF.

WRITE :
        pi_meins, /
        vg_meins_out.

sexta-feira, 14 de setembro de 2012

Enviando Objeto de texto para uma Request - RSTXTRAN


 Eae Gente, estava dando manutenção em um Sapscript na parte das observações
e tive que modificar um objeto de texto, se não lembra o que que é veja link :
http://abapjuniores.blogspot.com.br/2012/08/trabalhando-com-objeto-de-textos-so10.html
 Mas depois que eu fiz a modificação reparei que na hora que eu salvei não
foi solicitado uma request para que pudesse transportar aquel Objeto de texto
para o ambiente de qualidade/produção e procurei na internet algo que falasse
sobre isso é reparei que soh tinha algo na SDN comentando sobre mas não
explicando, descobri que existe um programa standard que faz essa transferencia
do objeto de texto para um request esse programa é o RSTXTRAN, vá na se38
e execute esse programa.




sexta-feira, 7 de setembro de 2012

Smartforms - Passo a Passo - Parte I


 Ahhhhh,,, hoje vou comentar e mostrar pra vocês uns dos posts mais pedidos
por todos os meios de comunicação que vocês tem comigo que ehhhhhhhhhh .....
Bem,... não eh mais surpresa pois vocês devem ter lido o título
deste post que é Smartforms,,,, Não custa lembrar mas esses posts passo a
passo que eu coloco no blog são simples, mas fazem você sair do outro
lado, espero que consigam adquirir ou pelomenos complementar algum
conhecimento.
 Primeiramente temos que saber que Smartforms são relatórios de impressão
dentro da sap, se vocês se lembram do Sapscript vão falar que é a mesmo
coisa, e é mesmo, pelomenos o resultado final, mas pra chegar até o momento
da impressão, os dois tem suas peculiaridades, o sapscript e bem mais dificil
de visualizar enquanto o Smartforms ele tem uma janela lateral num formato
hierarquico que você consegue desenvolver com maior nitidez, cada objeto de
visualização da tela; pra eu não ficar falando os pros e os contras vamos começar
a fazer logo isso e vocês mesmos falam qual é o melhor depois.
 Vamos entrar na transação 'SMARTFORMS' ( é isso mesmo ).



 Olha só a tela aiii, ela é bem simples.... vamos dar um nome pro
formulário e clicar no botão 'Criar'.
 Fazendo isso você irá para tela onde nós efetivamente iremos trabalhar com a
criação do Smartforms.