Versão atual:

Contabilização AxInclui

Bom dia, amigos! Estou com uma dificuldade aqui numa customização. Fiz um programa para copiar títulos do contas a pagar. Antes meu programa copiava e contabilizava normalmente. De um tempo pra cá parou de contabilizar. Sei que a cópia de título não é das melhores práticas, mas não achei nenhuma outra forma de fazer isso. Segue abaixo o exemplo do fonte:

OBS.: sei que preciso mudar a manipulação para migrar a release. Já estamos trabalhando nisso.

User Function CopiaSE2()

    Local i
    Local aParam := {} //Validações 
    Local aCpos := {} //Array com os campos que podem ser editados

    AAdd(aParam,{|| U_CargSE2() }) //Bloco de código que será processado antes da exibição das informações na tela
    AAdd(aParam,{|| .T. }) //Bloco de código para processamento na validação da confirmação das informações
    AAdd(aParam,{|| .T. }) //Bloco de código que será executado dentro da transação da AxFunction()
    AAdd(aParam,{|| .T. }) //Bloco de código que será executado fora da transação da AxFunction()

    For i := 1 To SE2->(FCount())
        IF !Alltrim(SE2->(FieldName(i))) $ 'E2_FILIAL,E2_FORNECE,E2_LOJA'
            aAdd(aCpos,SE2->(FieldName(i)))
        EndIf
    Next i

    AxInclui('SE2',SE2->(Recno()),3,/*aAcho*/,/*cFunc*/,aCpos,"U_FValOk()",/*lF3*/,/*cTransact*/,/*aButtons*/,aParam,/*aAuto*/,/*lVirtual*/,/*lMaximized*/)
Return

User Function CargSE2()

    Local i

    For i := 1 to SE2->(FCount())
        M->&(SE2->(FieldName(i))) := SE2->(FieldGet(i))

        Do Case
            Case "E2_BAIXA" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := CtoD('')
            Case "E2_BCOPAG" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_MOVIMEN" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := CtoD('')
            Case "E2_SALDO" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := SE2->E2_VALOR
            Case "E2_VALLIQ" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := 0
            Case "E2_DATALIB" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := CtoD('')
            Case "E2_USUALIB" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_TITPAI" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_MSIDENT" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_STATLIB" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_ORIGEM" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := 'FINA050'
            Case "E2_LA" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
            Case "E2_RATEIO" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := 'N'
            Case "E2_MULTNAT" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := '2'
            Case "E2_ARQRAT" $ SE2->(FieldName(i))
                M->&(SE2->(FieldName(i))) := ''
        EndCase
    Next i

Return .T.


User Function FValOk()
    Local lRet := .T.

    SE2->(DbSetOrder(1))
    IF SE2->(MsSeek(xFilial("SE2") + M->E2_PREFIXO + M->E2_NUM + M->E2_PARCELA + M->E2_TIPO + M->E2_FORNECE + M->E2_LOJA))
        MsgInfo("Título já cadastrado!")
        lRet := .F.
    Else
        IF "MATA" $ SE2->E2_ORIGEM .and. Alltrim(SE2->E2_TIPO) $ 'TX,ISS,INS,PIS,COF,'
            MsgInfo("Título não pode ser copiado!")
            lRet := .F.
        Endif
    Endif

Return lRet

Versão (1):

Ver a versão formatada

Contabilização AxInclui

Comentário

new question