Jump to content
Fivewin Brasil

SOS - Dbf - Gravação


Theotokos

Recommended Posts

Bom Dia Pessoal!!!

Precisando de uma "LUZ NO FIM DO TUNEL"

Um Cliente relata que altera a qtde de produto e que na hora aparece na tela que gravou, depois no outro dia vai ver a qtde esta errada , e que não foi feita nenhuma venda ou entrada deste produto, mas testo aqui no meu e tudo funciona não dar este problema... não sei onde procurar este problema mais... a rotina que altera a qtde é esta:

*** Aqui Chamo Function p

            oBrw:aCols[05]:nEditType     := EDIT_GET
           oBrw:aCols[05]:bOnPostEdit   := {|o,x| GravaAltQtde(x), oBrw:Refresh(), oDlg:Update(), oDlg:Refresh() }
           oBrw:aCols[05]:cEditPicture  := "@E 999,999.99"
           oBrw:aCols[05]:lEditBorder      := .f.
           oBrw:aCols[05]:bEditValid      := {|| oBrw:SetFocus(), .t. }
 

Function GravaAltQtde(_x) 
    Local nSelect := Select()
    Local nQtdeAnterior := M_QUANTIDA
    ******** Grava no Arquivo de Produtos a nova Qtde
    RecLock()
    Replace BanMerca->M_QUANTIDA With _X
    Replace BanMerca->M_DENTRADA With Date()
    Replace BanMerca->M_QENTRADA With _X
    UnLockRecord()
    ******* Grava no Arquivo de Entradas a Qtde e Produto Alterado
    Sel("BanEntr",1)
    DbGoBottom()
    nNumero := P_NUMPEDID + 1
    DbGoTop()
    AppendRec()
    Replace P_NUMPEDID With nNumero
    Replace P_CODIGO   With BANMERCA->M_CODIGO
    Replace P_DESCRICA With BANMERCA->M_DESCRICA
    Replace P_VRPRECO  With BANMERCA->M_VENDA
    Replace P_VRCUSTO  With BANMERCA->M_CUSTO
    Replace P_QTDE_A     With nQtdeAnterior
    Replace P_QUANTIDA With _X
    Replace P_DATAMOV  With Date()
    Replace P_HENTRADA With Transform(Time(),"99:99")
    UnLockRecord()
    DbCloseArea()
    
    Select( nSelect )
    
Return(.t.)

Link to comment
Share on other sites

5 horas atrás, Theotokos disse:

Bom Dia Pessoal!!!

Precisando de uma "LUZ NO FIM DO TUNEL"

Um Cliente relata que altera a qtde de produto e que na hora aparece na tela que gravou, depois no outro dia vai ver a qtde esta errada , e que não foi feita nenhuma venda ou entrada deste produto, mas testo aqui no meu e tudo funciona não dar este problema... não sei onde procurar este problema mais... a rotina que altera a qtde é esta:

*** Aqui Chamo Function p

            oBrw:aCols[05]:nEditType     := EDIT_GET
           oBrw:aCols[05]:bOnPostEdit   := {|o,x| GravaAltQtde(x), oBrw:Refresh(), oDlg:Update(), oDlg:Refresh() }
           oBrw:aCols[05]:cEditPicture  := "@E 999,999.99"
           oBrw:aCols[05]:lEditBorder      := .f.
           oBrw:aCols[05]:bEditValid      := {|| oBrw:SetFocus(), .t. }
 

Function GravaAltQtde(_x) 
    Local nSelect := Select()
    Local nQtdeAnterior := M_QUANTIDA
    ******** Grava no Arquivo de Produtos a nova Qtde
    RecLock()
    Replace BanMerca->M_QUANTIDA With _X
    Replace BanMerca->M_DENTRADA With Date()
    Replace BanMerca->M_QENTRADA With _X
    UnLockRecord()
    ******* Grava no Arquivo de Entradas a Qtde e Produto Alterado
    Sel("BanEntr",1)
    DbGoBottom()
    nNumero := P_NUMPEDID + 1
    DbGoTop()
    AppendRec()
    Replace P_NUMPEDID With nNumero
    Replace P_CODIGO   With BANMERCA->M_CODIGO
    Replace P_DESCRICA With BANMERCA->M_DESCRICA
    Replace P_VRPRECO  With BANMERCA->M_VENDA
    Replace P_VRCUSTO  With BANMERCA->M_CUSTO
    Replace P_QTDE_A     With nQtdeAnterior
    Replace P_QUANTIDA With _X
    Replace P_DATAMOV  With Date()
    Replace P_HENTRADA With Transform(Time(),"99:99")
    UnLockRecord(
    DbCloseArea()
    
    Select( nSelect )
    
Return(.t.)

Coloque dbcommit() antes do unlockrecord

Link to comment
Share on other sites

Em 23/05/2021 at 13:57, emotta disse:

Se a função Unlockrecord for sua coloque o Dbcommit dentro dela 

Se estiver dentro de um laço, não é recomendável. Sua rotina poderá ficar super lenta.

Se possível, commit sempre no final dos processos.

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