Clipper On Line • Ver Tópico - Diferenças na gravação de bds DBF e Mediator

Diferenças na gravação de bds DBF e Mediator

Discussão sobre Banco de Dados e RDDs para Clipper/[x]Harbour.

Moderador: Moderadores

 

Diferenças na gravação de bds DBF e Mediator

Mensagempor gilsonpaulo » 10 Mar 2009 21:41

Olá a todos.

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.
gilsonpaulo
Usuário Nível 3

Usuário Nível 3
 
Mensagens: 135
Data de registro: 02 Fev 2008 10:30
Cidade/Estado: Quatro Barras
Curtiu: 0 vez
Mens.Curtidas: 0 vez



Retornar para Banco de Dados

Quem está online

Usuários vendo este fórum: Nenhum usuário registrado online e 13 visitantes


Ola Amigo, espero que meu site e forum tem lhe beneficiado, com exemplos e dicas de programacao.
Entao divulgue o link da Doacao abaixo para seus amigos e redes sociais ou faça uma doacao para o site forum...
MUITO OBRIGADO PELA SUA DOACAO!
Faça uma doação para o forum
cron
v
Olá visitante, seja bem-vindo ao Fórum Clipper On Line!
Efetue o seu login ou faça o seu Registro