Criando Um ListBox - Dinâmico

3
Criando um ListBox – Dinâmico Nesse exemplo será criado um listbox para exibir os estados utilizando a tabela T005U campos Estado e Sigla. TABLES : T005u . TYPE-POOLS : VRM . DATA : NAME TYPE VRM_ID , LIST TYPE VRM_VALUES , VALUE LIKE LINE OF LIST . “Criar uma tabela interna para receber os values do listbox BEGIN OF y_lista , BLAND TYPE T005U - BLAND , bezei TYPE T005U - bezei , END OF y_lista . DATA : t_lista TYPE TABLE OF y_lista WITH HEADER LINE , *------------------------------------------------------------------ * Telas *------------------------------------------------------------------ SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text - 001 . “cria o listbox na tela PARAMETERS p_lista ( 10 ) AS LISTBOX VISIBLE LENGTH 10 . SELECTION-SCREEN END OF BLOCK b1 . AT SELECTION-SCREEN OUTPUT . “faz select na tabela t005U e jogando o resultado na tabela ti_lista SELECT bland bezei FROM T005U INTO TABLE t_lista . “faz um loop na tabela t_lista para pegar os valores loop at ti_lista . VALUE - KEY = t_lista - BLAND . VALUE - TEXT = t_lista - bezei . APPEND VALUE TO LIST . endloop .

description

Criando Um ListBox - DinâmicoSistema de Gestão Empresarial SAP

Transcript of Criando Um ListBox - Dinâmico

Criando um ListBox DinmicoNesse exemplo ser criado um listbox para exibir os estados utilizando a tabela T005U campos Estado e Sigla.

TABLES: T005u.

TYPE-POOLS:VRM.

DATA:NAMETYPEVRM_ID,LISTTYPEVRM_VALUES,VALUELIKELINEOFLIST.

Criar uma tabela interna para receber os values do listboxBEGINOF y_lista,BLANDTYPET005U-BLAND,bezeiTYPET005U-bezei,ENDOFy_lista.

DATA:t_listaTYPETABLEOFy_listaWITHHEADERLINE,

*------------------------------------------------------------------*Telas*------------------------------------------------------------------SELECTION-SCREENBEGINOFBLOCKb1WITHFRAMETITLEtext-001.

cria o listbox na telaPARAMETERSp_lista(10)ASLISTBOXVISIBLELENGTH10.

SELECTION-SCREENENDOFBLOCKb1.

ATSELECTION-SCREENOUTPUT.

faz select na tabela t005U e jogando o resultado na tabela ti_listaSELECTblandbezeiFROMT005UINTOTABLEt_lista.

faz um loop na tabela t_lista para pegar os valores loopatti_lista.VALUE-KEY=t_lista-BLAND.VALUE-TEXT=t_lista-bezei.APPENDVALUETOLIST.endloop.

NAME='p_lista'.chama a funo vrm_set_values para montar o listbox com os valores da tabela LISTCALLFUNCTION'VRM_SET_VALUES'EXPORTINGID=NAMEVALUES=LIST.

Criando um ListBox Dinmico Mltiplas Opes.

Mesma coisa do exemplo anterior, mas para popular o listbox voc vai utilizar o seguinte loop:

faz um loop na tabela t_lista para pegar os valores simplesLOOPATt_lista.VALUE-KEY=t_lista-BLAND.VALUE-TEXT=t_lista-bezei.APPENDvalueTOlist.ENDLOOP.

DATA:sigla(5)TYPEC,ser armazenado as siglas ex SP.estadoTYPEkna1-ort01.

LOOPATt_lista.sigla=t_lista-bland.pega a primeira sigla da tabelaestado=t_lista-bezei.pega o primeiro estado da tabela

neste loop ir pegar as outras siglas e estados diferentes da que j esta na varivel sigla.LOOPATt_listaWHEREblandsigla. concatena a nova sigla. Ex SP,MGCONCATENATEsigla','t_lista-blandINTOVALUE-KEY.concatena o novo estado e separa com espao. Ex So Paulo + Mato GrossoCONCATENATEestado'+'t_lista-bezeiINTOVALUE-TEXTSEPARATEDBYSPACE.APPENDvalueTOlist.ENDLOOP.

ENDLOOP.

Resultado:

Quebra a string selecionada no listbox em duas para utilizar no select.DATA:string1(2)TYPEc,string2(2)TYPEc,delimiterTYPEcVALUE','.

SPLITp_listaATdelimiterINTOstring1string2.

SELECTkna1~kunnrkna1~land1...FROMkna1INNERJOINknvvONknvv~kunnrEQkna1~kunnrINNERJOINknkkONknkk~kunnrEQkna1~kunnrINTOTABLEt_clienteWHEREkna1~kunnrINs_kunnrANDkna1~regioIN(string1,string2). filtra os dados trazendo somente os que tiverem nos parmetros string1 e string2