Jump to content
Fivewin Brasil

Atualizar o Alias da Listbox


alecosta

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...