Atualizar Banco de Dados
Enviado: 02 Jun 2015 17:57
Boa tarde, estou tendo alguns problemas com atualização de banco de dados. O procedimento é o seguinte: O usuário tem um DBF chamado de CUSTO. Ele lança um determinado valor nesse custo e esse valor será enviando para outro DBF chamado de ORDEM. Ele chama o número da ordem nesse CUSTO trazendo os dados do cliente e após a confirmação de dados o mesmo enviará os valores para um campo na ORDEM chamado de REFERENCIA. Todas as vezes que ele for lançando os valores serão somados com esse campo. É tipo uma baixa no estoque, só que esse é ao contrário, ele soma em vez de subtrair. Acontece que já aconteceu duas vezes de após fazer os lançamentos, os valores não somaram com esse campo. Será que estou fazendo alguma coisa errada. Deixo o código pra vocês avaliarem...
Josmar
Função grava:
Cadastro de Custos->Função que salva os dados para o DBF
Josmar
Josmar
Função grava:
Código: Selecionar todos
FUNCTION GRAVA( M_RELACAO, M_AREA, M_ORDEM, M_LER, M_GRAVA, M_OPERA )
LER_CAMPO := &M_LER
M_AREATUA := ALLTRIM( STR( SELECT(), 3 ) )
SELE &M_AREA
SET ORDER TO M_ORDEM
SEEK M_RELACAO
IF EOF()
MENSAGEM( "Dados n„o cadastrados", 3 )
SELE &M_AREATUA
RETURN .T.
ELSE
IF !REGLOCK( 5 )
BEEP()
MENSAGEM( "Atualiza‡„o n„o foi bem sucedida", 3 )
SELE &M_AREATUA
RETURN .F.
ENDIF
IF M_OPERA = "="
REPLACE &M_GRAVA WITH LER_CAMPO
ELSEIF M_OPERA = "+"
REPLACE &M_GRAVA WITH &M_GRAVA+LER_CAMPO
ELSE
REPLACE &M_GRAVA WITH &M_GRAVA-LER_CAMPO
ENDIF
UNLOCK
ENDIF
SELE &M_AREATUA
RETURN .T. Código: Selecionar todos
FUNCTION SALVAR( TIPO_ACAO )
LOCAL IRetorno := .F.
IF TIPO_ACAO = INCLUSAO
CUSTO->(Dbappend())
cLANC_PEC := alltrim( STRZERO( PSQCONTROLE( "CUSTO" ), 6 ))
if cLANC_PEC="000000"
ALERT("Ocorreu um erro na efetiva‡Æo do CODIGO SEQUENCIAL")
RETURN .F.
ENDIF
CUSTO->LANC_PEC := cLANC_PEC
ALERT("Numero gerado no arquivo: " +cLANC_PEC)
ELSE
CUSTO->(RLOCK() )
ENDIF
IF .NOT. NETERR()
CUSTO->DAT_PEC := M->DAT_PEC
CUSTO->ORD_PEC := M->ORD_PEC
CUSTO->CODC_PEC := M->CODC_PEC
CUSTO->NOMC_PEC := M->NOMC_PEC
CUSTO->VEIC_PEC := M->VEIC_PEC
CUSTO->PLAC_PEC := M->PLAC_PEC
CUSTO->CODF_PEC := M->CODF_PEC
CUSTO->NOMF_PEC := M->NOMF_PEC
CUSTO->TIPD_PEC := M->TIPD_PEC
CUSTO->NROD_PEC := M->NROD_PEC
CUSTO->CODE_PEC := M->CODE_PEC
CUSTO->NOME_PEC := M->NOME_PEC
CUSTO->VAL_PEC := M->VAL_PEC
CUSTO->IMP_PEC := M->IMP_PEC
CUSTO->VAL1_PEC := M->VAL1_PEC
CUSTO->HIS1_PEC := M->HIS1_PEC
CUSTO->HIST3_PEC := M->HIST3_PEC
CUSTO->RAZF_PEC := M->RAZF_PEC
GRAVA(M->ORD_PEC,"ORDEM",8,"VAL1_PEC","CONTROLE","+")
CUSTO->( DBCOMMIT() )
CUSTO->( DBUNLOCK() )
ELSE
ALERT("Falha ao incluir nova ordem")
endif
return .t.