Jump to content
Fivewin Brasil

Duvida de iniciante sobre dialog - resolvido


fafranca

Recommended Posts

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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>

Link to comment
Share on other sites

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

Link to comment
Share on other sites

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>

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...