fafranca Posted July 21, 2008 Report Share Posted July 21, 2008 Pessoal, Peguei como exemplo esse codigo para tentar entender como funciona a apresentação dos dados do dialog na tela: quando eu coloco no DIALOG a opcão NOWAIT os dados do While são mostrados mas não para o prompt no GET DEFINE DIALOG oDlg RESOURCE "#8001" Redefine say oSay1 VAR cConta ID 4007 of oDlg UPDATE Redefine say oSay2 VAR cDbf ID 4009 of oDlg UPDATE Redefine say oSay3 VAR cCdx ID 4011 of oDlg UPDATE Redefine get oGet VAR cPass ID 4004 OF oDlg ACTIVATE DIALOG oDlg CENTERED NOWAIT use ArqIndex alias ArqIndex exclusive new ArqIndex->(dbGoTop()) while ArqIndex->(!eof()) cConta := strzero(ArqIndex->(Recno())+"/"+strzero(ArqIndex->(Lastrec()),3) cDbf := ArqIndex->Arquivo cCdx := alltrim(ArqIndex->Indicecdx)+ArqIndex->Ordem oSay1:refresh() oSay2:refresh() oSay3:refresh() SysRefresh() ArqIndex->(dbSkip()) end DbCloseAll() return(NIL) id=code>id=code>quando eu não no DIALOG a opcão NOWAIT os dados do While não são mostrados mas o prompt no para no GET DEFINE DIALOG oDlg RESOURCE "#8001" Redefine say oSay1 VAR cConta ID 4007 of oDlg UPDATE Redefine say oSay2 VAR cDbf ID 4009 of oDlg UPDATE Redefine say oSay3 VAR cCdx ID 4011 of oDlg UPDATE Redefine get oGet VAR cPass ID 4004 OF oDlg ACTIVATE DIALOG oDlg CENTERED NOWAIT use ArqIndex alias ArqIndex exclusive new ArqIndex->(dbGoTop()) while ArqIndex->(!eof()) cConta := strzero(ArqIndex->(Recno())+"/"+strzero(ArqIndex->(Lastrec()),3) cDbf := ArqIndex->Arquivo cCdx := alltrim(ArqIndex->Indicecdx)+ArqIndex->Ordem oSay1:refresh() oSay2:refresh() oSay3:refresh() SysRefresh() ArqIndex->(dbSkip()) end DbCloseAll() return(NIL) id=code>id=code>Minha duvida é: como fazer para mostrar os dados do while e apos o loop parar no get? Abraço Fabio A. França fafranca@gmail.com Franco da Rocha / SP xHarbour 1.1 + Fwh 8.06 + Bcc 5.5.1 + xDev + Pelles C Editado por - fafranca on 21/07/2008 18:09:24 Quote Link to comment Share on other sites More sharing options...
fafranca Posted July 21, 2008 Author Report Share Posted July 21, 2008 Pessoal, Peguei como exemplo esse codigo para tentar entender como funciona a apresentação dos dados do dialog na tela: quando eu coloco no DIALOG a opcão NOWAIT os dados do While são mostrados mas não para o prompt no GET DEFINE DIALOG oDlg RESOURCE "#8001" Redefine say oSay1 VAR cConta ID 4007 of oDlg UPDATE Redefine say oSay2 VAR cDbf ID 4009 of oDlg UPDATE Redefine say oSay3 VAR cCdx ID 4011 of oDlg UPDATE Redefine get oGet VAR cPass ID 4004 OF oDlg ACTIVATE DIALOG oDlg CENTERED NOWAIT use ArqIndex alias ArqIndex exclusive new ArqIndex->(dbGoTop()) while ArqIndex->(!eof()) cConta := strzero(ArqIndex->(Recno())+"/"+strzero(ArqIndex->(Lastrec()),3) cDbf := ArqIndex->Arquivo cCdx := alltrim(ArqIndex->Indicecdx)+ArqIndex->Ordem oSay1:refresh() oSay2:refresh() oSay3:refresh() SysRefresh() ArqIndex->(dbSkip()) end DbCloseAll() return(NIL) id=code>id=code>quando eu não no DIALOG a opcão NOWAIT os dados do While não são mostrados mas o prompt no para no GET DEFINE DIALOG oDlg RESOURCE "#8001" Redefine say oSay1 VAR cConta ID 4007 of oDlg UPDATE Redefine say oSay2 VAR cDbf ID 4009 of oDlg UPDATE Redefine say oSay3 VAR cCdx ID 4011 of oDlg UPDATE Redefine get oGet VAR cPass ID 4004 OF oDlg ACTIVATE DIALOG oDlg CENTERED NOWAIT use ArqIndex alias ArqIndex exclusive new ArqIndex->(dbGoTop()) while ArqIndex->(!eof()) cConta := strzero(ArqIndex->(Recno())+"/"+strzero(ArqIndex->(Lastrec()),3) cDbf := ArqIndex->Arquivo cCdx := alltrim(ArqIndex->Indicecdx)+ArqIndex->Ordem oSay1:refresh() oSay2:refresh() oSay3:refresh() SysRefresh() ArqIndex->(dbSkip()) end DbCloseAll() return(NIL) id=code>id=code>Minha duvida é: como fazer para mostrar os dados do while e apos o loop parar no get? Abraço Fabio A. França fafranca@gmail.com Franco da Rocha / SP xHarbour 1.1 + Fwh 8.06 + Bcc 5.5.1 + xDev + Pelles C Editado por - fafranca on 21/07/2008 18:09:24 Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted July 21, 2008 Report Share Posted July 21, 2008 Tente trocando o id=code>id=code>e veja se funciona ------------------------- Luiz Arruda - Corumbá/MS FWH 2.4-WS-xHB 09950-xDev ico.corumba@gmail.com ico67@msn.com A Informática Nasceu para resolver problemas que antes não existiamid=blue> Quote Link to comment Share on other sites More sharing options...
Anderson.OL Posted July 21, 2008 Report Share Posted July 21, 2008 1º Coloque o procedimento while em uma função. 2º Não use NOWAIT 3º use on init no activate Exid=red> ACTIVATE DIALOG oDlg CENTERED ON INIT FUNCWHILE() Espero ajudar. Abraços Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted July 21, 2008 Report Share Posted July 21, 2008 Ou dispare para uma function id=code>id=code>Function SuaFunction() use ArqIndex alias ArqIndex exclusive new ArqIndex->(dbGoTop()) while ArqIndex->(!eof()) cConta := strzero(ArqIndex->(Recno())+"/"+strzero(ArqIndex->(Lastrec()),3) cDbf := ArqIndex->Arquivo cCdx := alltrim(ArqIndex->Indicecdx)+ArqIndex->Ordem oSay1:refresh() oSay2:refresh() oSay3:refresh() SysRefresh() ArqIndex->(dbSkip()) end DbCloseAll() return .t.id=red> ------------------------- Luiz Arruda - Corumbá/MS FWH 2.4-WS-xHB 09950-xDev ico.corumba@gmail.com ico67@msn.com A Informática Nasceu para resolver problemas que antes não existiamid=blue> Editado por - ico on 21/07/2008 15:36:32 Quote Link to comment Share on other sites More sharing options...
fafranca Posted July 21, 2008 Author Report Share Posted July 21, 2008 Trocando o nil pelo .t. no Return ele para no get, porem o loop ele não mostra, só monta a tela ao final do while e mostra o ultimo registro do arquivo. Vou fazer mais alguns testes Obrigado Fabio A. França fafranca@gmail.com Franco da Rocha / SP xHarbour 1.1 + Fwh 8.06 + Bcc 5.5.1 + xDev + Pelles C Quote Link to comment Share on other sites More sharing options...
fafranca Posted July 21, 2008 Author Report Share Posted July 21, 2008 Fiz dessa maneira mas ainda não mostra os dados do loop no dialog: DEFINE DIALOG oDlg RESOURCE "#8001" Redefine say oSay1 VAR cConta ID 4007 of oDlg UPDATE Redefine say oSay2 VAR cDbf ID 4009 of oDlg UPDATE Redefine say oSay3 VAR cCdx ID 4011 of oDlg UPDATE Redefine METER oMeter VAR nMeter TOTAL 100 ID 4012 OF oDlg UPDATE Redefine get oGet VAR cPass ID 4004 OF oDlg ACTIVATE DIALOG oDlg CENTERED ON INIT MostraCheck() oDlg:End() return .t. Func MostraCheck() use ArqIndex alias ArqIndex exclusive new ArqIndex->(dbGoTop()) while ArqIndex->(!eof()) cConta := strzero(ArqIndex->(Recno()),3)+"/"+strzero(ArqIndex->(Lastrec()),3) cDbf := ArqIndex->Arquivo cCdx := alltrim(ArqIndex->Indicecdx)+ArqIndex->Ordem oSay1:refresh() oSay2:refresh() oSay3:refresh() SysRefresh() ArqIndex->(dbSkip()) end DbCloseAll() return .t. o SysRefresh() não deveria estar atualizando os dados no Dialog ?? Fabio A. França fafranca@gmail.com Franco da Rocha / SP xHarbour 1.1 + Fwh 8.06 + Bcc 5.5.1 + xDev + Pelles C Quote Link to comment Share on other sites More sharing options...
Kbelo Posted July 21, 2008 Report Share Posted July 21, 2008 O Sysrefresh() comigo nunca funcionou, não sei pq então uso isto. *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* Function xRefreshDLG(oDlg) *=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=*=* Local xCONTROL := 1 FOR xCONTROL := 1 to Len( oDlg:aControls ) oDlg:aControls[xCONTROL]:refresh() NEXT RETURN .T. id=code>id=code>Marcelo Michels marcelo@infototal.com.br celo.michels@hotmail.com xHarbour 1.1 + Fwh 8.01 + WorkShop + Bcc 5.82 + WvwTools + SQLRDD + xMate. Editado por - kbelo on 21/07/2008 16:55:25 Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted July 21, 2008 Report Share Posted July 21, 2008 Tente também com o Varput e pode retirar o Sysfresh()que vai funcionar osay1:Varput(cConta) oSay2:Varput(cdbf) oSay3:Carput(cCdx) oSay1:refresh() oSay2:refresh() oSay3:refresh() //-SysRefresh() ArqIndex->(dbSkip()) end DbCloseAll() return .t. ------------------------- Luiz Arruda - Corumbá/MS FWH 2.4-WS-xHB 09950-xDev ico.corumba@gmail.com ico67@msn.com A Informática Nasceu para resolver problemas que antes não existiamid=blue> Quote Link to comment Share on other sites More sharing options...
zekasan Posted July 21, 2008 Report Share Posted July 21, 2008 você não tem que dar um tempo antes do skip prá vc pode ver o registro que está sendo selecionado? FWH 8.05 - xHarbour - xDev - VLib Quote Link to comment Share on other sites More sharing options...
fafranca Posted July 21, 2008 Author Report Share Posted July 21, 2008 Pessoal, o gilmer resolveu para mim o codigo ficou dessa forma: Function main() *-------------- PRIVATE oDlq, oSay1, oSay2, oSay3, oMeter, oGet PRIVATE cPass := space(5) PRIVATE cConta := "000/000" PRIVATE cCdx := space(13) PRIVATE cDbf := space(12) PRIVATE nMeter := 100 DEFINE DIALOG oDlg RESOURCE "#8001" Redefine say oSay1 VAR cConta ID 4007 of oDlg UPDATE Redefine say oSay2 VAR cDbf ID 4009 of oDlg UPDATE Redefine say oSay3 VAR cCdx ID 4011 of oDlg UPDATE Redefine METER oMeter VAR nMeter TOTAL 100 ID 4012 OF oDlg UPDATE Redefine get oGet VAR cPass ID 4004 OF oDlg oDlg:bStart:={|| MostraCheck()} ACTIVATE DIALOG oDlg CENTERED //ON INIT oDlg:End() return .t. Func MostraCheck() use ArqIndex alias ArqIndex exclusive new ArqIndex->(dbGoTop()) while ArqIndex->(!eof()) cConta := strzero(ArqIndex->(Recno()),3)+"/"+strzero(ArqIndex->(Lastrec()),3) cDbf := ArqIndex->Arquivo cCdx := alltrim(ArqIndex->Indicecdx)+ArqIndex->Ordem oSay1:SetText(cConta) oSay2:SetText(cDbf) oSay3:SetText(cCdx) //oSay1:refresh() //oSay2:refresh() //qqoSay3:refresh() //xRefreshDLG(oDlg) inkey(0.5) SysRefresh() ArqIndex->(dbSkip()) end DbCloseAll() return .t. id=code>id=code>A linha que mostrou os dados no loop foi: oDlg:bStart:={|| MostraCheck()} Obrigado a todos pela ajuda! Fabio A. França fafranca@gmail.com Franco da Rocha / SP xHarbour 1.1 + Fwh 8.06 + Bcc 5.5.1 + xDev + Pelles C Quote Link to comment Share on other sites More sharing options...
Luiz Arruda (ICO) Posted July 21, 2008 Report Share Posted July 21, 2008 Bem... me tirem uma duvida.. oDlg:bStart:={|| MostraCheck()} Não faz a mesma coisa de ...On INIT MostraCheck() ???? id=code>id=code>------------------------- Luiz Arruda - Corumbá/MS FWH 2.4-WS-xHB 09950-xDev ico.corumba@gmail.com ico67@msn.com A Informática Nasceu para resolver problemas que antes não existiamid=blue> 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.