por que nao consigo pegar o valor desta variavel????
Enviado: 23 Fev 2006 08:57
Pessoal ja tenho algumas funcoes parecidas com esta, que sempre me dao o retorno que eu preciso.mas essa aki nao ta dando certo. olha so.
//esta linha chama o a funcao.
@ 08,02 say "Grupo.:" getwin Mgrupo pict "999" valid (if(Mgrupo==0,d_bedit("grupo","prd_2.ntx",@mgrupo,"codigo","descricao"),),.t.)
// afuncao eh esta aki.
// a retorno que eu preciso eh o Pret. voltar para a funcao chamadora acima.
*****************************************************************************
FUNC D_BEDIT(pDBF,pINDEX,pRET,pCAMPO1,pCAMPO2,pCAMPO3,pCAMPO4,pCAMPO5,pMENSAGEM,pLIN,pCOL)
*****************************************************************************
LOCAL TELADBEDIT
LOCAL mALIAS
mALIAS:=ALIAS()
SELE ( pDBF )
SAVE SCREEN TO TELADBEDIT
if !empty(Pcampo5)
aColunas:={Pcampo1,Pcampo2,Pcampo3,Pcampo4,Pcampo5}
elseif !empty(Pcampo4)
aColunas:={Pcampo1,Pcampo2,Pcampo3,Pcampo4}
elseif !empty(Pcampo3)
aColunas:={Pcampo1,Pcampo2,Pcampo3}
else
aColunas:={Pcampo1,Pcampo2}
endif
Drawinx(02,00,29,79,'PESQUISA ')//+ IF(!EMPTY(pMENSAGEM,ALLTRIM(pMENSAGEM)," ")))
*CAMPOS := { 'CODIGO','DESCRICAO'}
CABECA := { 'Codigo','DESCRICAO'}
rodamens("<INS>-Inclui þ <DEL>-Apaga þ <F2>-Calendario þ <F3>-Calculadora")
WHILE .T.
ORD := 1
DBEDIT( 06,01,20,78,ACOLUNAS,'FUNDBEDIT',,CABECA,'ÍÑÍ',' ³ ' )
SELE ( mALIAS )
@ 10,10 SAY pRET
@ 11,10 SAY VALTYPE(pRET)
INKEY(0)
pRET:=pRET
* RETURN(0)
RESTORE SCREEN FROM TELADBEDIT
RETURN
END
CLOSEALL()
RETURN
*****************************************************************************
FUNCTION FUNDBEDIT( MODO, COL)
*****************************************************************************
LOCAL TECLA
TECLA := LASTKEY()
DO CASE
CASE MODO = 4
IF TECLA = 27
RETURN 0
ENDIF
IF TECLA = -3
SET ORDER TO 2
SET SOFTSEEK ON
key:=space(30)
@ 19,15 say ' Digite a Chave.:' get key
read
REG := RECNO()
IF ! DBSEEK( RTRIM(KEY) )
ERRORMENS('Informacao Nao Encontrada! Verifique...')
DBGOTO( REG )
ENDIF
SET SOFTSEEK OFF
RETURN 1
ENDIF
IF TECLA = 22
APPEND BLANK
KEYB( REPL(CHR(19),5) )
RETURN 2
ENDIF
IF TECLA = 7
if Winquest('Deseja apagar este registro? ',ICON_QUES,{'Sim','Nao'}) == 1
DO WHILE !RLOCK()
ENDDO
DELETE
UNLOCK
endif
RETURN 2
ENDIF
IF TECLA = 13
pFIELD:=FIELD(1)
pRET:=&pFIELD
@ 10,10 SAY pRET //eu preciso que este valor volte para o prg produtos.
INKEY(0)
RETURN (0)
ENDIF
IF TECLA >= 26 .AND. TECLA <= 126
IF LASTREC() = 0
APPEND BLANK
ENDIF
KEYB( CHR(TECLA) )
DO WHILE !RLOCK()
ENDDO
DO CASE
CASE COL = 1
@ ROW(),COL() GET CODIGO PICT '@!'
CASE COL = 2
@ ROW(),COL() GET DESCRICAO PICT '@!'
ENDCASE
READY()
IF LASTKEY() = 27
DBUNLOCK()
RETURN 1
ENDIF
DBUNLOCK()
KEYB(CHR(4))
RETURN 2
ENDIF
ENDCASE
//esta linha chama o a funcao.
@ 08,02 say "Grupo.:" getwin Mgrupo pict "999" valid (if(Mgrupo==0,d_bedit("grupo","prd_2.ntx",@mgrupo,"codigo","descricao"),),.t.)
// afuncao eh esta aki.
// a retorno que eu preciso eh o Pret. voltar para a funcao chamadora acima.
*****************************************************************************
FUNC D_BEDIT(pDBF,pINDEX,pRET,pCAMPO1,pCAMPO2,pCAMPO3,pCAMPO4,pCAMPO5,pMENSAGEM,pLIN,pCOL)
*****************************************************************************
LOCAL TELADBEDIT
LOCAL mALIAS
mALIAS:=ALIAS()
SELE ( pDBF )
SAVE SCREEN TO TELADBEDIT
if !empty(Pcampo5)
aColunas:={Pcampo1,Pcampo2,Pcampo3,Pcampo4,Pcampo5}
elseif !empty(Pcampo4)
aColunas:={Pcampo1,Pcampo2,Pcampo3,Pcampo4}
elseif !empty(Pcampo3)
aColunas:={Pcampo1,Pcampo2,Pcampo3}
else
aColunas:={Pcampo1,Pcampo2}
endif
Drawinx(02,00,29,79,'PESQUISA ')//+ IF(!EMPTY(pMENSAGEM,ALLTRIM(pMENSAGEM)," ")))
*CAMPOS := { 'CODIGO','DESCRICAO'}
CABECA := { 'Codigo','DESCRICAO'}
rodamens("<INS>-Inclui þ <DEL>-Apaga þ <F2>-Calendario þ <F3>-Calculadora")
WHILE .T.
ORD := 1
DBEDIT( 06,01,20,78,ACOLUNAS,'FUNDBEDIT',,CABECA,'ÍÑÍ',' ³ ' )
SELE ( mALIAS )
@ 10,10 SAY pRET
@ 11,10 SAY VALTYPE(pRET)
INKEY(0)
pRET:=pRET
* RETURN(0)
RESTORE SCREEN FROM TELADBEDIT
RETURN
END
CLOSEALL()
RETURN
*****************************************************************************
FUNCTION FUNDBEDIT( MODO, COL)
*****************************************************************************
LOCAL TECLA
TECLA := LASTKEY()
DO CASE
CASE MODO = 4
IF TECLA = 27
RETURN 0
ENDIF
IF TECLA = -3
SET ORDER TO 2
SET SOFTSEEK ON
key:=space(30)
@ 19,15 say ' Digite a Chave.:' get key
read
REG := RECNO()
IF ! DBSEEK( RTRIM(KEY) )
ERRORMENS('Informacao Nao Encontrada! Verifique...')
DBGOTO( REG )
ENDIF
SET SOFTSEEK OFF
RETURN 1
ENDIF
IF TECLA = 22
APPEND BLANK
KEYB( REPL(CHR(19),5) )
RETURN 2
ENDIF
IF TECLA = 7
if Winquest('Deseja apagar este registro? ',ICON_QUES,{'Sim','Nao'}) == 1
DO WHILE !RLOCK()
ENDDO
DELETE
UNLOCK
endif
RETURN 2
ENDIF
IF TECLA = 13
pFIELD:=FIELD(1)
pRET:=&pFIELD
@ 10,10 SAY pRET //eu preciso que este valor volte para o prg produtos.
INKEY(0)
RETURN (0)
ENDIF
IF TECLA >= 26 .AND. TECLA <= 126
IF LASTREC() = 0
APPEND BLANK
ENDIF
KEYB( CHR(TECLA) )
DO WHILE !RLOCK()
ENDDO
DO CASE
CASE COL = 1
@ ROW(),COL() GET CODIGO PICT '@!'
CASE COL = 2
@ ROW(),COL() GET DESCRICAO PICT '@!'
ENDCASE
READY()
IF LASTKEY() = 27
DBUNLOCK()
RETURN 1
ENDIF
DBUNLOCK()
KEYB(CHR(4))
RETURN 2
ENDIF
ENDCASE