Prezados, estou tentando colocar itens na grid da tela de Manutenção de Contratos ( CNTA300, tabela CNB ), ao adicionar o comando AddLine, ele não adiciona uma linha nova. Adicionei ao código o comando IsLineValidate() e existe alguma coisa que não está deixando validar o grid e adicionar linha. QUando eu tenho fazer isso manualmente com as mesmas informações ele adiciona normalmente. Gostaria de saber se existe alguma maneira de eu conseguir pegar o erro que acontece para não validar a linha. o código esta abaixo. Desde ja agradeço a todos.
If ZBC->(dbSeek(xFilial("ZBC") + ZBB->ZBB_CODIGO)) While ZBC->(!EOF()) .AND. ZBC->ZBC_FILIAL == ZBB->ZBB_FILIAL .AND. ZBC->ZBC_CODNEC == ZBB->ZBB_CODIGO
oMdlCNB:SetValue("CNB_FILIAL",oMdlCN9:GetValue("CN9_FILIAL")) oMdlCNB:SetValue("CNB_NUMERO",oMdlCN9:GetValue("CN9_NUMERO")) oMdlCNB:SetValue("CNB_REVISA",oMdlCN9:GetValue("CN9_REVISA")) oMdlCNB:SetValue("CNB_PRODUT",ZBC->ZBC_PRODUT) oMdlCNB:SetValue("CNB_DESCRI",Posicione("SB1",1,xFilial("SB1") + ZBC->ZBC_PRODUT, "B1_DESC")) oMdlCNB:SetValue("CNB_UM",Posicione("SB1",1,xFilial("SB1") + ZBC->ZBC_PRODUT, "B1_UM")) oMdlCNB:SetValue("CNB_QUANT",ZBC->ZBC_QUANT) oMdlCNB:SetValue("CNB_SLDMED",ZBC->ZBC_QUANT) oMdlCNB:SetValue("CNB_VLUNIT",ZBC->ZBC_VALOR) oMdlCNB:SetValue("CNB_VLTOT",ZBC->ZBC_QUANT * ZBC->ZBC_VALOR ) oMdlCNB:SetValue("CNB_CONTA",Posicione("SB1",1,xFilial("SB1") + ZBC->ZBC_PRODUT, "B1_CONTA") )
If !oMdlCNB:IsLineValidate() Alert("Erro na linha") EndIf
ZBC->(dbSkip())
If ZBC->(!EOF()) .AND. ZBC->ZBC_FILIAL == ZBB->ZBB_FILIAL .AND. ZBC->ZBC_CODNEC == ZBB->ZBB_CODIGO oMdlCNB:AddLine() EndIf
EndDo EndIf
Eu acho que não se pode informar o campo CNB_SLDMED
— Marcos Bispo Abrahão 01 de Oct de 2020Exatamente... não pode colocar ne o SALDO e nem CNA_VLTOT e o CNA_SALDO a validação da linha completa o campo. Obrigado!
— Daniel Tavares de Castro Filho 01 de Oct de 2020