Euclides, obrigado pela dica!
Implementei a idéia no meu programa. Mas não estou conseguindo cancelar a entrada. Ou seja, quando acabo de inserir os dados não consigo sair.
Segue abaixo a rotina:
Código: Selecionar todos
////////////////////////////////////
#include "FiveWin.CH"
function SRP02()
local oDlg,oLbx
local oBtn01,oBtn02,oBtn03,oBtn04,oBtn05,oBtn06,oBtn07
use SRA02 alias A02 new exclusive
DEFINE DIALOG oDlg RESOURCE 'SRP02' of oWnd
oDlg:lHelpIcon:= .f.
REDEFINE LISTBOX oLbx FIELDS str(a02->A02_CODIGO,4),a02->A02_DESCRI,transform(a02->A02_PRECO,"@E 999,999,999.99") ;
SIZES 100,320,100 HEADERS "CÓDIGO","DESCRIÇÃO","PREÇO" ID 401 OF oDlg
REDEFINE BUTTON oBtn01 ID 501 OF oDlg ACTION P02Inclui(oLbx,oDlg) // Inclui
REDEFINE BUTTON oBtn02 ID 502 OF oDlg // Altera
REDEFINE BUTTON oBtn03 ID 503 OF oDlg // Excluir
REDEFINE BUTTON oBtn04 ID 504 OF oDlg // Procura
REDEFINE BUTTON oBtn05 ID 505 OF oDlg // Chave
REDEFINE BUTTON oBtn06 ID 506 OF oDlg // Imprime
REDEFINE BUTTON oBtn10 ID 507 OF oDlg ACTION (oDlg:End()) // Saída
ACTIVATE DIALOG oDlg CENTERED
return nil
//////////////////////////////
// Inclui itens no cardápio //
//////////////////////////////
function P02Inclui(oLbx,oDlg)
local oDlgMan,nCodigo,cDescri,nPreco
local lSai:=.f.
local oBtn07,oBtn08
do while .t.
a02->(dBGoBottom())
nCodigo:=nPreco:=0
cDescri:=space(25)
DEFINE DIALOG oDlgMan RESOURCE "INCLUI" OF oWnd
oDlgMan:Cargo:=.f.
oDlgMan:cCaption:="Inclusão de clientes"
lSai:=.f.
REDEFINE GET nCodigo ID 401 OF oDlgMan picture "9999"
REDEFINE GET cDescri ID 402 OF oDlgMan picture "@!" valid ! empty(cDescri)
REDEFINE GET nPreco ID 403 OF oDlgMan picture "99,999.99" valid ! empty(nPreco)
REDEFINE BUTTON oBtn07 ID 5001 OF oDlgMan ACTION oDlgMan:End(1)
REDEFINE BUTTON oBtn08 ID 5002 OF oDlgMan ACTION ODlgMan:End() CANCEL
ACTIVATE DIALOG oDlgMan CENTERED
if oDlgMan:nResult=1
a02->(dBAppend())
replace a02->A02_CODIGO with nCodigo
replace a02->A02_DESCRI with cDescri, a02->A02_PRECO with nPreco
oLbx:Refresh()
endif
oDlg:SetFocus()
enddo
return nil
/////////////////////////////////////////////
A rotina é esta P02Inclui. O loop para inserir está ok. Só não consigo sair.
Rogério Durães
xHarbour 0.99.71; FiveWin 7.04; Pelles C 4.5; MyMake 1.9j
-------------------------------
Nota de Moderação (Toledo): mensagem editada para colocar a tag [ code ]
Veja como utilizar esta tag: faq.php?mode=bbcode#f21