alecosta Posted August 19, 2006 Report Share Posted August 19, 2006 Tem como trocar o alias da listbox? Exemplo: - Tenho uma combobox com as opcoes "A RECEBER" e "A PAGAR" - Tenho uma listbox mostrando as duplicadas a receber. - As tabelas com as informacoes sao ARECEBER.DBF E APAGAR.DBF e as duas tem a mesma estrutura. Quando mudo a combobox, preciso atualizar a listbox, ou seja, troquei o alias. Montei a funcao para isso, só que a listbos nao atualiza. ... REDEFINE LISTBOX lbxCAIXA ; FIELDS &arqCAIXA->NUMEDOCT ,; DTOC(&arqCAIXA->DATAMOVI) ,; TRANSFORM(&arqCAIXA->VLRENTRA,"@E ###,###.##") ,; TRANSFORM(&arqCAIXA->VLRSAIDA,"@E ###,###.##") ,; TRANSFORM(&arqCAIXA->VLRSALDO,"@E ###,###.##") ,; STRZERO(&arqCAIXA->ID_CAIXA,3) ,; &arqCAIXA->HISTORIC ; HEADERS OemToAnsi("Documento") ,; OemToAnsi("Dt Movto") ,; OemToAnsi("Vlr Entrada") ,; OemToAnsi("Vlr Saida") ,; OemToAnsi("Vlr Saldo") ,; OemToAnsi("Cod") ,; OemToAnsi("Historico") ; FIELDSIZES( 50 , 50 , 60 , 60 , 60 , 15 , 200 ) ; COLORS CLR_BLACK, 14483196; ON DBLCLICK CAIXA_OPE( "ALTERAR" ); ID 1500 OF dlgCAIXA ... FUNCTION CAIXA_FIL() IF cFTRMOSTRA == "ARECEBER" SELECT A_RECEBER ELSE SELECT A_PAGAR ENDIF arqCAIXA := ALIAS() SELECT &arqCAIXA DBSETFILTER( {|| &bFILTROCAI }, bFILTROCAI ) DBGOTOP() lbxCAIXA:UpStable() lbxCAIXA:Refresh() SysRefresh() ... A filtragem funcionou, mas a listbox nao está sendo atualizada. Ela permanece sempre no primeiro alias. Coloquei duas listbox ao mesmo tempo, só para testar, cada uma mostrando uma das tabelas, e deu para ver que a funcção faz a filtragem corretamente, mas nao consegue atualizar a listbox. Obrigado. []s, Alexandre Quote Link to comment Share on other sites More sharing options...
alecosta Posted August 19, 2006 Author Report Share Posted August 19, 2006 Tem como trocar o alias da listbox? Exemplo: - Tenho uma combobox com as opcoes "A RECEBER" e "A PAGAR" - Tenho uma listbox mostrando as duplicadas a receber. - As tabelas com as informacoes sao ARECEBER.DBF E APAGAR.DBF e as duas tem a mesma estrutura. Quando mudo a combobox, preciso atualizar a listbox, ou seja, troquei o alias. Montei a funcao para isso, só que a listbos nao atualiza. ... REDEFINE LISTBOX lbxCAIXA ; FIELDS &arqCAIXA->NUMEDOCT ,; DTOC(&arqCAIXA->DATAMOVI) ,; TRANSFORM(&arqCAIXA->VLRENTRA,"@E ###,###.##") ,; TRANSFORM(&arqCAIXA->VLRSAIDA,"@E ###,###.##") ,; TRANSFORM(&arqCAIXA->VLRSALDO,"@E ###,###.##") ,; STRZERO(&arqCAIXA->ID_CAIXA,3) ,; &arqCAIXA->HISTORIC ; HEADERS OemToAnsi("Documento") ,; OemToAnsi("Dt Movto") ,; OemToAnsi("Vlr Entrada") ,; OemToAnsi("Vlr Saida") ,; OemToAnsi("Vlr Saldo") ,; OemToAnsi("Cod") ,; OemToAnsi("Historico") ; FIELDSIZES( 50 , 50 , 60 , 60 , 60 , 15 , 200 ) ; COLORS CLR_BLACK, 14483196; ON DBLCLICK CAIXA_OPE( "ALTERAR" ); ID 1500 OF dlgCAIXA ... FUNCTION CAIXA_FIL() IF cFTRMOSTRA == "ARECEBER" SELECT A_RECEBER ELSE SELECT A_PAGAR ENDIF arqCAIXA := ALIAS() SELECT &arqCAIXA DBSETFILTER( {|| &bFILTROCAI }, bFILTROCAI ) DBGOTOP() lbxCAIXA:UpStable() lbxCAIXA:Refresh() SysRefresh() ... A filtragem funcionou, mas a listbox nao está sendo atualizada. Ela permanece sempre no primeiro alias. Coloquei duas listbox ao mesmo tempo, só para testar, cada uma mostrando uma das tabelas, e deu para ver que a funcção faz a filtragem corretamente, mas nao consegue atualizar a listbox. Obrigado. []s, Alexandre Quote Link to comment Share on other sites More sharing options...
Flavio A. Zago Posted August 21, 2006 Report Share Posted August 21, 2006 Ola Alexandre Ja passei por isso, e a unica forma que encontrei para resolver foi ter duas ListBox sobrepostas. Se voce quiser mando um exemplo para seu E-Mail, ou posto em dicas se o pessoar achar que é do interesse de todos. []´s Flavio Quote Link to comment Share on other sites More sharing options...
aferra Posted August 21, 2006 Report Share Posted August 21, 2006 olá Alexandre, tente isso FUNCTION CAIXA_FIL() IF cFTRMOSTRA == "ARECEBER" SELECT A_RECEBER arqCAIXA := ALIAS() lbxCAIXA:cAlias:="A_RECEBER" lbxCAIXA:bLine:={&arqCAIXA->NUMEDOCT ,; DTOC(&arqCAIXA->DATAMOVI) ,; TRANSFORM(&arqCAIXA->VLRENTRA,"@E ###,###.##") ,; TRANSFORM(&arqCAIXA->VLRSAIDA,"@E ###,###.##") ,; TRANSFORM(&arqCAIXA->VLRSALDO,"@E ###,###.##") ,; STRZERO(&arqCAIXA->ID_CAIXA,3) ,; &arqCAIXA->HISTORIC} ELSE SELECT A_PAGAR arqCAIXA := ALIAS() lbxCAIXA:cAlias:="A_RECEBER" lbxCAIXA:bLine:={&arqCAIXA->NUMEDOCT ,; DTOC(&arqCAIXA->DATAMOVI) ,; TRANSFORM(&arqCAIXA->VLRENTRA,"@E ###,###.##") ,; TRANSFORM(&arqCAIXA->VLRSAIDA,"@E ###,###.##") ,; TRANSFORM(&arqCAIXA->VLRSALDO,"@E ###,###.##") ,; STRZERO(&arqCAIXA->ID_CAIXA,3) ,; &arqCAIXA->HISTORIC} ENDIF DBSETFILTER( {|| &bFILTROCAI }, bFILTROCAI ) DBGOTOP() lbxCAIXA:UpStable() lbxCAIXA:Refresh() SysRefresh() RETURN(.T.) acho que assim dá, senão der está no caminho, qqc é só gritar Um Grande Abraço Alessandro F. Silva E-mail :aferracini@terra.com.br FW2.0d + CL53b + Blinker 7.0 + @Say @Get + CDX MSN: ferracini_silva@hotmail.com Ribeirão Preto/SP Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.