Dúvida sobre como efetuar a subtração das datas e retorne em dias

Amigos developers, sou nova em desenvolvimento advpl e queria pedir uma ajuda para vocês, eu estou desenvolvendo um campo de Dias no SCJ (orçamento) e esse campo serve para subtrair dois campos de datas (uma de data da emissão e a outra a data de entrega) ele me dê a quantidade em dias, eu consegui fazer, mas ele não puxa a data que eu colocar e sim o que já tem no começo do sistema. Gostaria de saber o que fiz de errado e como posso melhorar isso.

Include "TOTVS.ch"

Include "Protheus.ch"

User Function dDiasConj()

Local aArea := FWGetArea() dbSelectArea("SCJ") SCj->(dbSetOrder(1)) Local dEmissao := (campo da emissão) Local dEntrega := (campo da entrega (campo criado)) Local nDias := (campo dos dias (campo criado))

If !Empty(dEmissao) .And. !Empty(dEntrega) nDias := dEntrega - dEmissao EndIf

FWRestArea(aArea) Return nDias

Esta função, vc está chamando de um gatilho? Ou de um Valid?

Estou chamando de um gatilho

Eu chamo pelo gatilho da data de entrega

...............................

Diane, não seria pelo fato de você estar usando o “SCJ->”? Esse vai te trazer o conteúdo gravado na tabela. Para pegar o que está sendo digitado, use a variável de memória “M->”.

Tenta assim

Local dEmissao := M->(campo da emissão) 
Local dEntrega := M->(campo da entrega (campo criado))

O cálculo é para ser direto mesmo utilizando as variáveis de memória:

nDias := ( M->CJ_XDTENTR - M->CJ_EMISSAO )

Inclusive pode usar isso direto no gatilho sem usar uma função.
IIF(Empty(M->CJ_XDTENTR),0,( M->CJ_XDTENTR - M->CJ_EMISSAO ))