Estou migrando um sistema clipper 5.2e + NTX para Mediator, a migração esta sendo tranquila e simples, mas encontrei um problema que ja foi contornado, mas gostaria de ter uma opnião de alguém.
Vejam o código abaixo na parte do dbappend, desta maneira grava os dados no banco.
STATIC PROCEDURE Inc31
LOCAL tqtd:=0.00,tuni:=0.00,ttot:=0.00,volta:=0,gru:=SPACE(02),cod:=SPACE(02),grucod:=SPACE(04)
DO WHILE .T.
SETCOLOR("W/B,W/B")
@ 20,02 GET tnom PICTURE "@!K XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
SET CURSOR ON
READ
SET CURSOR OFF
IF LASTKEY() = 27
RETURN
ENDIF
tnom1 = RTRIM(tnom)
KEYBOARD CHR(29)
VNOM()
IF LASTKEY() = 27
LOOP
ENDIF
SELECT PRO
GO TOP
SET ORDER TO 2
SEEK tnom1
IF .NOT. FOUND()
TONE(1000,2)
LOOP
ENDIF
SET COLOR TO W/B,W/B
@ 20,02 SAY DESPRO
tuni = PRO->PRECLI
@ 20,52 SAY tuni PICTURE "@K 99999.99"
@ 20,43 GET tqtd PICTURE "@K 9999.99" VALID tqtd > 0
@ 20,52 GET tuni PICTURE "@K 99999.99"
SET CURSOR ON
READ
SET CURSOR OFF
IF LASTKEY() = 27
LOOP
ENDIF
ttot = tqtd*tuni
@ 20,61 SAY ttot PICTURE "@K 999999.99"
gru = PRO->GRUPRO
cod = PRO->CODPRO
grucod = gru+cod
tnom = PRO->DESPRO
SELECT TEMP
TEMP->(dbAppend())
TEMP->MATVEN:= grucod
TEMP->MATNOM:= tnom
TEMP->QTDVEN:= tqtd
TEMP->UNIVEN:= tuni
TEMP->TOTVEN:= ttot
SELECT TEMP
EXIT
ENDDO
RETURN
*=====================================================================================
PROCEDURE VNOM
LOCAL vetp1[6],vetp2[6],vetp3[6]
SAVE SCREEN TO ALZA
SELECT PRO
SET ORDER TO 2
GO TOP
SEEK tnom1
DO WHILE .T.
// CALL T31P
@ 09,00 SAY "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" COLOR "N/W"
@ 10,00 SAY "³ ³" COLOR "N/W"
@ 11,00 SAY "³ ³" COLOR "N/W"
@ 12,00 SAY "³ ³" COLOR "N/W"
@ 13,00 SAY "³ ³" COLOR "N/W"
@ 14,00 SAY "³ ³" COLOR "N/W"
@ 15,00 SAY "³ ³" COLOR "N/W"
@ 16,00 SAY "³ ³" COLOR "N/W"
@ 17,00 SAY "³ ³" COLOR "N/W"
@ 18,00 SAY "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" COLOR "N/W"
SELECT PRO
vetp1[1] = "CODPRO"
vetp1[2] = "DESPRO"
vetp1[3] = "PRECLI"
vetp3[1] = "Cod."
vetp3[2] = "Descricao"
vetp3[3] = "Unitario"
SETCOLOR("N/W,W/N")
DBEDIT(10,02,17,77,vetp1,"SAI31p","",vetp3)
EXIT
ENDDO
RESTORE SCREEN FROM ALZA
RETURN
//==============================================================================
FUNCTION SAI31P()
Mensagem( " ")
IF LASTKEY() = 13
tnom1 = DESPRO
RETURN(0)
ELSEIF LASTKEY() = 27
RETURN(0)
ENDIF
SELECT PRO
return(1)
Desta maneira abaixo, não é gravado os campos TEMP->MATVEN E TEMP->MATNOM com mediator, mas com bancos DBF funciona.
STATIC PROCEDURE Inc31
LOCAL tqtd:=0.00,tuni:=0.00,ttot:=0.00,volta:=0
DO WHILE .T.
SETCOLOR("W/B,W/B")
@ 20,02 GET tnom PICTURE "@!K XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX"
SET CURSOR ON
READ
SET CURSOR OFF
IF LASTKEY() = 27
RETURN
ENDIF
tnom1 = RTRIM(tnom)
KEYBOARD CHR(29)
VNOM()
IF LASTKEY() = 27
LOOP
ENDIF
SELECT PRO
GO TOP
SET ORDER TO 2
SEEK tnom1
IF .NOT. FOUND()
TONE(1000,2)
LOOP
ENDIF
SET COLOR TO W/B,W/B
@ 20,02 SAY DESPRO
tuni = PRO->PRECLI
@ 20,52 SAY tuni PICTURE "@K 99999.99"
@ 20,43 GET tqtd PICTURE "@K 9999.99" VALID tqtd > 0
@ 20,52 GET tuni PICTURE "@K 99999.99"
SET CURSOR ON
READ
SET CURSOR OFF
IF LASTKEY() = 27
LOOP
ENDIF
ttot = tqtd*tuni
@ 20,61 SAY ttot PICTURE "@K 999999.99"
SELECT TEMP
TEMP->(dbAppend())
TEMP->MATVEN:= PRO->GRUPRO+PRO->CODGRU
TEMP->MATNOM:= PRO->DESPRO
TEMP->QTDVEN:= tqtd
TEMP->UNIVEN:= tuni
TEMP->TOTVEN:= ttot
SELECT TEMP
EXIT
ENDDO
RETURN
*=====================================================================================
PROCEDURE VNOM
LOCAL vetp1[6],vetp2[6],vetp3[6]
SAVE SCREEN TO ALZA
SELECT PRO
SET ORDER TO 2
GO TOP
SEEK tnom1
DO WHILE .T.
// CALL T31P
@ 09,00 SAY "ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿" COLOR "N/W"
@ 10,00 SAY "³ ³" COLOR "N/W"
@ 11,00 SAY "³ ³" COLOR "N/W"
@ 12,00 SAY "³ ³" COLOR "N/W"
@ 13,00 SAY "³ ³" COLOR "N/W"
@ 14,00 SAY "³ ³" COLOR "N/W"
@ 15,00 SAY "³ ³" COLOR "N/W"
@ 16,00 SAY "³ ³" COLOR "N/W"
@ 17,00 SAY "³ ³" COLOR "N/W"
@ 18,00 SAY "ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ" COLOR "N/W"
SELECT PRO
vetp1[1] = "CODPRO"
vetp1[2] = "DESPRO"
vetp1[3] = "PRECLI"
vetp3[1] = "Cod."
vetp3[2] = "Descricao"
vetp3[3] = "Unitario"
SETCOLOR("N/W,W/N")
DBEDIT(10,02,17,77,vetp1,"SAI31p","",vetp3)
EXIT
ENDDO
RESTORE SCREEN FROM ALZA
RETURN
//==============================================================================
FUNCTION SAI31P()
Mensagem( " ")
IF LASTKEY() = 13
tnom1 = DESPRO
RETURN(0)
ELSEIF LASTKEY() = 27
RETURN(0)
ENDIF
SELECT PRO
return(1)
Desde ja fica aqui meu agradecimento a qualquer ajuda.