" Bom dia galera mais que tri-legal, vou passa hoje pra vocês algo muito
" legal.... Sabe quando o funcional chega em você e fala : ..... e no final
" essa tabela tem que criar um arquivo excel.... Logo que ele fala isso
" ja pensamos : .... Sussa, vou cria um alv e exportar, ou no máximo
" usar uma função que exporta pra um excel.... fácil....
" Mas como a gente sabe a vida de ABAP nunca é tão fácil assim...
" o funcional já com uma cara de ironia fala : .... o Excel tem que estar
" neste formato ..... e mostra pra você um formulário bunitão cheio de
" bordas, cores, tamanho, linhas e colunas mescladas..... e seu mundo
" desmorona, já começa a pensar que vai ter que sair mais tarde varios dias
" e quem sabe com isso pode até perder a(o) namorada(o). Pois seus problemas
" acabaram pois este post mostra como fazer um com tratativas em suas
" propriedades.
" primeiramente vá na transação se11 e veja na tabela TOLE se existe algum
" APP chamado 'EXCEL.APPLICATION', se tiver ... parabéns você está
" habilitado a prosseguir com este post. ( Pode ser pela transação SOLE tb )
" Diferentemente neste Post eu não coloquei Break-points espalhados, portanto,
" debbuggem vocês mesmo onde acharem melhor. vamo lá então.
" Essa é pra fecha o mês com chave de Ouro.
REPORT z_abap_excel.
*----------------------------------------------------------------------*
* Conjunto de tipos
*----------------------------------------------------------------------*
" Tem um include que a maioria trabalho mas eu prefiro o Grupo de tipo.
TYPE-POOLS ole2.
*----------------------------------------------------------------------*
* Tabelas transparentes
*----------------------------------------------------------------------*
TABLES :
sflight.
*----------------------------------------------------------------------*
* Tabelas internas
*----------------------------------------------------------------------*
DATA :
it_spfli TYPE TABLE OF spfli,
it_sflight TYPE TABLE OF sflight
.
*----------------------------------------------------------------------*
* Estruturas
*----------------------------------------------------------------------*
DATA :
st_spfli TYPE spfli,
st_sflight TYPE sflight
.
*----------------------------------------------------------------------*
* Declarações de variáveis
*----------------------------------------------------------------------*
DATA : linha TYPE i, " Atribui Valor Linha
coluna TYPE i,
v_texto TYPE string " Conteudo das celulas
.
*----------------------------------------------------------------------*
* Definições de objetos OLE2
*----------------------------------------------------------------------*
DATA: gs_excel TYPE ole2_object, " Objeto Excel
gs_workbook TYPE ole2_object, " Workbook 'Area de trabalho'
gs_sheet TYPE ole2_object, " Planilha
gs_cell1 TYPE ole2_object, " Celula 1
gs_cell2 TYPE ole2_object, " Celula 2
gs_cells TYPE ole2_object, " Células
gs_range TYPE ole2_object, " Grupo de células
gs_font TYPE ole2_object, " Fonte da célula
gs_column TYPE ole2_object. " Coluna da célula
SELECTION-SCREEN BEGIN OF BLOCK b1.
PARAMETERS:
p_carrid TYPE sflight-carrid OBLIGATORY.
SELECT-OPTIONS:
s_connid FOR sflight-connid,
s_fldate FOR sflight-fldate.
SELECTION-SCREEN END OF BLOCK b1.
START-OF-SELECTION.
* select dos dados
PERFORM selects.
IF it_sflight IS NOT INITIAL.
* Cria o objeto Excel com area de trabalho e planilhas.
PERFORM f_gera_excel.
* Agora com a planilha pronta vamos formatar as colunas do excel.
PERFORM formata_colunas.
* Eu criei um perform só pra trata o cabeçalho pra fica mais legível.
PERFORM gera_cabecalho.
* Gera linhas
PERFORM gera_linhas.
* Encerra planilha Excel
PERFORM encerra_planilha_excel.
ELSE.
MESSAGE 'Não foi encontrado dados na tabela conforme críterios da tela de seleção'
TYPE 'I'.
ENDIF.
END-OF-SELECTION.
segunda-feira, 30 de abril de 2012
quinta-feira, 26 de abril de 2012
Classe - CL_GUI_TEXTEDIT
" Opa, tudo bem aii? Hoje vou passar pra vocês como fazer uma caixa
" de texto na sua tela para que o pessoal possa faze comentários sobre
" algo, primeiramente estarei mostrando como faz um, daqui a pouco num
" post futuro eu posto usando na prática gravando e deletando estes
" comentário.
" Ahhh, eu criei uma tela com um Custom Control, vocês vão perceber
" isso quando verem a classe que o objeto Container está sendo referenciado,
" o nome deste Custom Control está sendo informado quando eu crio o
" Container. Outra coisa.... Isso eh um report não eh um module mas se quiser
" fazer em Module Pool fiquem a vontade.
REPORT z_cl_gui_textedit.
" Variáveis Globais
DATA:
ok_code TYPE sy-ucomm.
" Estruturas e tabelas internas
DATA:
st_tdline TYPE tdline,
it_tdline TYPE TABLE OF tdline.
" Objetos
DATA:
container TYPE REF TO cl_gui_custom_container,
editor TYPE REF TO cl_gui_textedit.
" Início do processo
START-OF-SELECTION.
" Chama tela de o Custom Control de caixa de texto.
CALL SCREEN 9001.
END-OF-SELECTION.
" de texto na sua tela para que o pessoal possa faze comentários sobre
" algo, primeiramente estarei mostrando como faz um, daqui a pouco num
" post futuro eu posto usando na prática gravando e deletando estes
" comentário.
" Ahhh, eu criei uma tela com um Custom Control, vocês vão perceber
" isso quando verem a classe que o objeto Container está sendo referenciado,
" o nome deste Custom Control está sendo informado quando eu crio o
" Container. Outra coisa.... Isso eh um report não eh um module mas se quiser
" fazer em Module Pool fiquem a vontade.
REPORT z_cl_gui_textedit.
" Variáveis Globais
DATA:
ok_code TYPE sy-ucomm.
" Estruturas e tabelas internas
DATA:
st_tdline TYPE tdline,
it_tdline TYPE TABLE OF tdline.
" Objetos
DATA:
container TYPE REF TO cl_gui_custom_container,
editor TYPE REF TO cl_gui_textedit.
" Início do processo
START-OF-SELECTION.
" Chama tela de o Custom Control de caixa de texto.
CALL SCREEN 9001.
END-OF-SELECTION.
quarta-feira, 25 de abril de 2012
Função - DAYS_BETWEEN_TWO_DATES
" Opaaaa, hoje vou mostrar uma função que retorna a quantidade de dias
" entre duas datas, muito usada no modulo HR, Agradecimentos ao nosso
" Parceiro do Blog o Sr. Alê Henrique por este post.
REPORT z_days_between_two_dates.
" Estruturas e tabelas internas
DATA :
it_sflight TYPE TABLE OF sflight,
st_sflight TYPE sflight.
START-OF-SELECTION.
" Seleção de dados para alimentar as datas.
PERFORM : f_select,
" Usa a função pra ver o intervalo de dias entre as datas.
f_trata_dados.
BREAK-POINT.
*&---------------------------------------------------------------------*
*& Form f_select
*&---------------------------------------------------------------------*
FORM f_select .
" Seleção normal somente de 2 linhas
SELECT *
FROM sflight
INTO TABLE it_sflight
UP TO 2 ROWS.
ENDFORM. " f_select
" entre duas datas, muito usada no modulo HR, Agradecimentos ao nosso
" Parceiro do Blog o Sr. Alê Henrique por este post.
REPORT z_days_between_two_dates.
" Estruturas e tabelas internas
DATA :
it_sflight TYPE TABLE OF sflight,
st_sflight TYPE sflight.
START-OF-SELECTION.
" Seleção de dados para alimentar as datas.
PERFORM : f_select,
" Usa a função pra ver o intervalo de dias entre as datas.
f_trata_dados.
BREAK-POINT.
*&---------------------------------------------------------------------*
*& Form f_select
*&---------------------------------------------------------------------*
FORM f_select .
" Seleção normal somente de 2 linhas
SELECT *
FROM sflight
INTO TABLE it_sflight
UP TO 2 ROWS.
ENDFORM. " f_select
terça-feira, 24 de abril de 2012
Sobre os Currículos.... (2)
Opa Pessoal, gostaria de agradecer os currículos enviados e informar que a equipe AbapJuniores está correndo atrás de mais empresas como aliança para a distribuição dos currículos e indicação dos mesmos, lembrando, quem não sabe ainda, que toda a semana eu distribuo os currículos enviados para o email maurorpjunior@gmail.com para empresas filiadas com vagas para pessoas que querem iniciar ou tem pouca experiencia no mundo SAP/ABAP, estamos a todo vapor e continuem enviando. Aguardem Novidades.
segunda-feira, 23 de abril de 2012
ALV Editável / Atualização Tab. Transparente
" Eae pessoal, vou mostrar agora uma coisa que é muito importante para
" uma ABAP junior que é trabalhar com informações dentro do ALV,
" deixando-a editável conforme ação do Usuário e atualizando a tabela
" transparente do banco de dados.
" Este programa irá mostrar um outro ALV quando você clicar duas vezes
" em um registro, este segundo ALV será editável, modifique e aperte o
" botão 'Salvar' para que seja atualizado a tabela principal, depois é
" só voltar e ver a tabela principal atualizada com sua modificação,
" agora é só clicar no botão 'Salvar' da primeira tela que a sua modificação
" atualizará o banco de dados com a tabela transparente.
" Vá na transação 'SE11' e veja a modificação na tabela SFLIGHT.
" Boa sorte e muito cuidado com atualizações de tabela transparentes,
" conheço gente que fez besteira nessa hora é quase perdeu o emprego, como
" sei que todos aqui estão usando o Minisap, então, vamos lá.
REPORT zmjteste.
" Conjunto de tipos
TYPE-POOLS : slis.
" Tipos
TYPES :
BEGIN OF ty_selfield,
index TYPE slis_selfield-tabindex,
END OF ty_selfield.
" Estruturas e tabelas internas
DATA :
it_out TYPE TABLE OF sflight,
st_out TYPE sflight,
it_index TYPE TABLE OF ty_selfield,
st_index TYPE ty_selfield.
" Estruturas e tabelas intenas ( ALV )
DATA :
it_fieldcat TYPE TABLE OF slis_fieldcat_alv,
st_layout TYPE slis_layout_alv.
" Fiels-symbols
FIELD-SYMBOLS :
TYPE slis_fieldcat_alv.
START-OF-SELECTION.
" Faz o select da tabela.
PERFORM : f_select,
" Mostra ALV com os dados
f_alv.
END-OF-SELECTION.
" uma ABAP junior que é trabalhar com informações dentro do ALV,
" deixando-a editável conforme ação do Usuário e atualizando a tabela
" transparente do banco de dados.
" Este programa irá mostrar um outro ALV quando você clicar duas vezes
" em um registro, este segundo ALV será editável, modifique e aperte o
" botão 'Salvar' para que seja atualizado a tabela principal, depois é
" só voltar e ver a tabela principal atualizada com sua modificação,
" agora é só clicar no botão 'Salvar' da primeira tela que a sua modificação
" atualizará o banco de dados com a tabela transparente.
" Vá na transação 'SE11' e veja a modificação na tabela SFLIGHT.
" Boa sorte e muito cuidado com atualizações de tabela transparentes,
" conheço gente que fez besteira nessa hora é quase perdeu o emprego, como
" sei que todos aqui estão usando o Minisap, então, vamos lá.
REPORT zmjteste.
" Conjunto de tipos
TYPE-POOLS : slis.
" Tipos
TYPES :
BEGIN OF ty_selfield,
index TYPE slis_selfield-tabindex,
END OF ty_selfield.
" Estruturas e tabelas internas
DATA :
it_out TYPE TABLE OF sflight,
st_out TYPE sflight,
it_index TYPE TABLE OF ty_selfield,
st_index TYPE ty_selfield.
" Estruturas e tabelas intenas ( ALV )
DATA :
it_fieldcat TYPE TABLE OF slis_fieldcat_alv,
st_layout TYPE slis_layout_alv.
" Fiels-symbols
FIELD-SYMBOLS :
START-OF-SELECTION.
" Faz o select da tabela.
PERFORM : f_select,
" Mostra ALV com os dados
f_alv.
END-OF-SELECTION.
quinta-feira, 19 de abril de 2012
Colorindo campos do ALV
" Fala Abapers, hoje vou mostra uma coisa que é solicitado bastante
" em relatória pelo mundo afora que é colocar certas celulas do ALV
" de cor diferente conforme alguma condição do Funcional, vejam abaixo
" como o código é simples, vocês só precisam entender um pouco do
" conceito do ALV, então ..... vamos lah segue código todo comentado.
REPORT z_alv_color.
" Conjunto de tipos
TYPE-POOLS: slis.
" Tipos
TYPES :
BEGIN OF ty_sflight.
INCLUDE TYPE sflight.
TYPES:
color TYPE lvc_t_scol,
END OF ty_sflight.
" Estruturas e tabelas internas
DATA : it_sflight TYPE TABLE OF ty_sflight,
st_sflight TYPE ty_sflight.
" Estruturas e tabelas internas (ALV)
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
st_layout TYPE slis_layout_alv.
" Inicio
START-OF-SELECTION.
" Faz Select na tabela SFLIGHT
PERFORM : f_select,
" Trata os dados do Select e alimenta campo COLOR da tabela.
" É aqui que tá o pulo do gato.
f_trata_dados,
" Cria alv.
f_alv.
END-OF-SELECTION.
" em relatória pelo mundo afora que é colocar certas celulas do ALV
" de cor diferente conforme alguma condição do Funcional, vejam abaixo
" como o código é simples, vocês só precisam entender um pouco do
" conceito do ALV, então ..... vamos lah segue código todo comentado.
REPORT z_alv_color.
" Conjunto de tipos
TYPE-POOLS: slis.
" Tipos
TYPES :
BEGIN OF ty_sflight.
INCLUDE TYPE sflight.
TYPES:
color TYPE lvc_t_scol,
END OF ty_sflight.
" Estruturas e tabelas internas
DATA : it_sflight TYPE TABLE OF ty_sflight,
st_sflight TYPE ty_sflight.
" Estruturas e tabelas internas (ALV)
DATA: it_fieldcat TYPE slis_t_fieldcat_alv,
st_layout TYPE slis_layout_alv.
" Inicio
START-OF-SELECTION.
" Faz Select na tabela SFLIGHT
PERFORM : f_select,
" Trata os dados do Select e alimenta campo COLOR da tabela.
" É aqui que tá o pulo do gato.
f_trata_dados,
" Cria alv.
f_alv.
END-OF-SELECTION.
terça-feira, 17 de abril de 2012
Tradução - Classe de Mensagens
" Me perguntaram por email, então vou postar, pois é muito importante,
" como traduzir os textos das classes de mensagens, vou fala a verdade
" é igual quando você vai traduzir textos de seleção de programas,
" mas vou fazer pois se você faz uma classe em português e não traduz,
" qualquer pessoa que entrar no SAP em inglês ou qualquer outra lingua
" não vai receber a msg, somente o numero da msg pois ela não vai estar
" traduzida para a lingua da pessoa, quando você faz o programa, o funcional
" fala pra quais idiomas o seu programa vai ser utilizado, se ele não falar
" nada, então desencana mas se fala, você vai se ferra porque e mou trampo
" chato... rsrsr, então vamos lá pro passo a passo.
" Vamos dizer que você já tenha criado uma classe de mensagem, então
" selecione o texto ( isso mesmo, é texto por texto; porisso que eu falei
" que era chato.) vá no Menu 'Ir para/ Tradução', conforme imagem abaixo.
" como traduzir os textos das classes de mensagens, vou fala a verdade
" é igual quando você vai traduzir textos de seleção de programas,
" mas vou fazer pois se você faz uma classe em português e não traduz,
" qualquer pessoa que entrar no SAP em inglês ou qualquer outra lingua
" não vai receber a msg, somente o numero da msg pois ela não vai estar
" traduzida para a lingua da pessoa, quando você faz o programa, o funcional
" fala pra quais idiomas o seu programa vai ser utilizado, se ele não falar
" nada, então desencana mas se fala, você vai se ferra porque e mou trampo
" chato... rsrsr, então vamos lá pro passo a passo.
" Vamos dizer que você já tenha criado uma classe de mensagem, então
" selecione o texto ( isso mesmo, é texto por texto; porisso que eu falei
" que era chato.) vá no Menu 'Ir para/ Tradução', conforme imagem abaixo.
segunda-feira, 16 de abril de 2012
Função - REUSE_ALV_FIELDCATALOG_MERGE
" Eae, pessoal eu não sei como ainda não tinha passado isso no Blog
" portanto pra tira o atraso, hoje vou mostrar uma função que é muito
" útil na criação de ALV, a famosa transação reuse_alv_fieldcatalog_merge
" que serve pra retornar todas as informações de todos os campos de uma
" tabela, e muito usado para criação de ALV dinâmico, ( que o usuário
" decide qual tabela ele quer ver ), puxando por este exemplo, eu fiz um
" programinha abaixo, onde o usuário informa a tabela e o programa retorna
" os campos desta tabela e suas características, semana que vem estarei
" fazendo um ALV um pouco mais complexo e utilizarei esta função, portanto
" debbugem.
REPORT z_reuse_alv_fieldcatalog_merge.
" Grupo de tipos
TYPE-POOLS : slis.
" Estrutura e tabela interna
DATA :
it_fieldcat TYPE TABLE OF slis_fieldcat_alv,
st_fieldcat TYPE slis_fieldcat_alv.
" Tela de seleção
SELECTION-SCREEN BEGIN OF block b1 WITH FRAME.
PARAMETERS:
p_tabela TYPE dd02l-tabname OBLIGATORY. " Tabela
SELECTION-SCREEN end of BLOCK b1.
" Início do processo
START-OF-SELECTION.
" Execução da função que traz todos as informações do campos da tabela informada
PERFORM : f_verifica_campos,
" Mostra a posição e o nome dos campos da tabela informada
f_show.
END-OF-SELECTION.
" portanto pra tira o atraso, hoje vou mostrar uma função que é muito
" útil na criação de ALV, a famosa transação reuse_alv_fieldcatalog_merge
" que serve pra retornar todas as informações de todos os campos de uma
" tabela, e muito usado para criação de ALV dinâmico, ( que o usuário
" decide qual tabela ele quer ver ), puxando por este exemplo, eu fiz um
" programinha abaixo, onde o usuário informa a tabela e o programa retorna
" os campos desta tabela e suas características, semana que vem estarei
" fazendo um ALV um pouco mais complexo e utilizarei esta função, portanto
" debbugem.
REPORT z_reuse_alv_fieldcatalog_merge.
" Grupo de tipos
TYPE-POOLS : slis.
" Estrutura e tabela interna
DATA :
it_fieldcat TYPE TABLE OF slis_fieldcat_alv,
st_fieldcat TYPE slis_fieldcat_alv.
" Tela de seleção
SELECTION-SCREEN BEGIN OF block b1 WITH FRAME.
PARAMETERS:
p_tabela TYPE dd02l-tabname OBLIGATORY. " Tabela
SELECTION-SCREEN end of BLOCK b1.
" Início do processo
START-OF-SELECTION.
" Execução da função que traz todos as informações do campos da tabela informada
PERFORM : f_verifica_campos,
" Mostra a posição e o nome dos campos da tabela informada
f_show.
END-OF-SELECTION.
sexta-feira, 13 de abril de 2012
Classe de Mensagens - SE91
" Para uma melhor organização das mensagens e as vezes porque o Cliente
" não deixa usar Hardcodes ( Sabe akelas coisas que você usa entre aspas
" simples que ficam verdes dentro do código fonte.... Isso são Hardcodes. )
" usamos as Classe de mensagens é la colocamos as informações que servem
" como interação com o Usuário.
" Pra começar vamos entrar na transação SE91.
" não deixa usar Hardcodes ( Sabe akelas coisas que você usa entre aspas
" simples que ficam verdes dentro do código fonte.... Isso são Hardcodes. )
" usamos as Classe de mensagens é la colocamos as informações que servem
" como interação com o Usuário.
" Pra começar vamos entrar na transação SE91.
quarta-feira, 11 de abril de 2012
Função - TEXT_SPLIT
" Haa, tava debugando o standard e encontrei essa função aee,
" bem, o que ele faz eh bem simples e até um pouco engraçado
" mas ele quebra o texto conforme o tamanho que você informar
" olha que fácil, a vantagem é que desta função para o comando
" 'SPLIT' eh que ele não exclui o delimitador.
REPORT z_text_split.
" bem, o que ele faz eh bem simples e até um pouco engraçado
" mas ele quebra o texto conforme o tamanho que você informar
" olha que fácil, a vantagem é que desta função para o comando
" 'SPLIT' eh que ele não exclui o delimitador.
REPORT z_text_split.
DATA : line TYPE string,
rest TYPE string
." Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.PARAMETERS :
leng(2) TYPE i VISIBLE LENGTH 2,
text(50) TYPE c.
SELECTION-SCREEN END OF BLOCK b1." Inicio de processo
START-OF-SELECTION.
PERFORM text_split.
PERFORM show.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form TEXT_SPLIT
*&---------------------------------------------------------------------*
FORM text_split .CONDENSE text.
CALL FUNCTION 'TEXT_SPLIT'
EXPORTING
length = leng
text = text
* AS_CHARACTER =
IMPORTING
line = line
rest = rest
.ENDFORM. " TEXT_SPLIT
*&---------------------------------------------------------------------*
*& Form SHOW
*&---------------------------------------------------------------------*
FORM show .
WRITE : 'Texto completo: ',space,text,/
'Texto Selecionado: ',space,line,/
'Resto do texto: ',space,rest,/
.ENDFORM. " SHOW"
rest TYPE string
." Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.PARAMETERS :
leng(2) TYPE i VISIBLE LENGTH 2,
text(50) TYPE c.
SELECTION-SCREEN END OF BLOCK b1." Inicio de processo
START-OF-SELECTION.
PERFORM text_split.
PERFORM show.
END-OF-SELECTION.
*&---------------------------------------------------------------------*
*& Form TEXT_SPLIT
*&---------------------------------------------------------------------*
FORM text_split .CONDENSE text.
CALL FUNCTION 'TEXT_SPLIT'
EXPORTING
length = leng
text = text
* AS_CHARACTER =
IMPORTING
line = line
rest = rest
.ENDFORM. " TEXT_SPLIT
*&---------------------------------------------------------------------*
*& Form SHOW
*&---------------------------------------------------------------------*
FORM show .
WRITE : 'Texto completo: ',space,text,/
'Texto Selecionado: ',space,line,/
'Resto do texto: ',space,rest,/
.ENDFORM. " SHOW"
segunda-feira, 9 de abril de 2012
Transações Bloqueadas - SM12
" Estar usando algo no SAP como fazer programa e do nada Cai a rede...
" Trágico, aih voê loga rapidão pro seu chefe não achar que você não estava
" fazendo nada, todo ansioso para recomeçar a programar você vê uma mensagem
" tipo falando que o SEU USER tá bloqueando aquele programa que vc tah fazendo
" rsrsrs o que fazer nessa hora, caso só você use este User então na hora de
" entrar eh soh derrubar todos que tiverem com o mesmo User, mas se você tiver
" num projeto onde todo usem o mesmo user para desenvolver...
" A resposta e bem símples vá na transação SM12 e desbloqueie, veja como...
" Entrando na transação SM12 você verá essa tela.
quinta-feira, 5 de abril de 2012
Função - GET_KEY_FIELDS_OF_TABLE
" Eae, vou mostrar pra vocês uma função que retorna as chaves
" de uma tabela Transparente, sabe quando vc precisa tratar as
" chaves primárias de uma tabela de forma diferente, como deixar
" de cor diferente os campos chave numa tabela em um ALV,
" ou fazer um select dinâmico pelas chave da tabela informada.
REPORT z_get_key_fields_of_table.
DATA :
" Tabela de retorna da função.
it_keys TYPE TABLE OF dfies,
" Estrutura de retorno da Função
st_keys TYPE dfies.
" Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS : p_table TYPE dfies-tabname, " Tabela
c_mandt AS CHECKBOX " Com mandante
.
SELECTION-SCREEN END OF BLOCK b1.
" Inicio do processo
START-OF-SELECTION.
" Pega os campos chave da tabela informada pelo User.
PERFORM z_key_fields.
" Mostra retorno da function
PERFORM z_show.
END-OF-SELECTION.
" de uma tabela Transparente, sabe quando vc precisa tratar as
" chaves primárias de uma tabela de forma diferente, como deixar
" de cor diferente os campos chave numa tabela em um ALV,
" ou fazer um select dinâmico pelas chave da tabela informada.
REPORT z_get_key_fields_of_table.
DATA :
" Tabela de retorna da função.
it_keys TYPE TABLE OF dfies,
" Estrutura de retorno da Função
st_keys TYPE dfies.
" Tela de seleção
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS : p_table TYPE dfies-tabname, " Tabela
c_mandt AS CHECKBOX " Com mandante
.
SELECTION-SCREEN END OF BLOCK b1.
" Inicio do processo
START-OF-SELECTION.
" Pega os campos chave da tabela informada pelo User.
PERFORM z_key_fields.
" Mostra retorno da function
PERFORM z_show.
END-OF-SELECTION.
Assinar:
Postagens (Atom)