Criando Um ListBox - Dinâmico
-
Upload
fernandotr -
Category
Documents
-
view
222 -
download
7
description
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