Duvida rotina MVC modelo 3 - Preencher Grid

Boa tarde !

Preciso preencher um grid MVC modelo 3, com dados da nota fiscal (SD1). O grid deve ser preenchido conforme campos do cabeçalho, acionado via botão no menu Outras ações.

As tabelas customizadas são ZZP (cabeçalho) e ZZQ (Itens).

Por favor, alguém poderia disponibilizar um exemplo ?

Grato.

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Boa tarde!

Segue um exemplo, no seu caso basta chamar o modelo da ZZQ na parte do GetModel e preencher os campos com seu devido conteúdo:

Lembre-se que ao chamar o método AddLine toda a linha será validada de acordo com as regras do campo/modelo, então caso existir algum dado preenchido incorretamente, será necessário tratar o mesmo.


Static Function fLoadData
Local oModel    As Object
Local oGridZPS  As Object
Local nCount    As Numeric
Local _cAlias   As Character

    nCount      := 0
    oModel      := FwModelActive()
    oGridZPS    := oModel:GetModel('GridZPS')

    If(oGridZPS:IsEmpty())

        _cAlias := GetNextAlias()

        BeginSql Alias _cAlias

            %NoParser%
            SELECT * FROM ZVW_MOVIMENTACAO_PALLET_CARGAS
            WHERE
                FILIAL = %Exp:DAK->DAK_FILIAL% AND
                CARGA = %Exp:DAK->DAK_COD% AND
                TIPO = 'S'
            ORDER BY
                FILIAL,
                CARGA,
                CODCLI,
                LOJCLI

        EndSql

        Count To nCount

        ProcRegua(nCount)

        (_cAlias)->(DbGoTop())

        While(!(_cAlias)->(EoF()))

            If(!oGridZPS:IsEmpty())

                oGridZPS:AddLine()

            EndIf

            oGridZPS:SetValue('ZPS_CODIGO'  , AllTrim((_cAlias)->CODPRO))
            oGridZPS:SetValue('ZPS_DSCPRO'  , AllTrim((_cAlias)->DSCPRO))
            oGridZPS:SetValue('ZPS_CLIENT'  , (_cAlias)->CODCLI)
            oGridZPS:SetValue('ZPS_LOJA'    , (_cAlias)->LOJCLI)
            oGridZPS:SetValue('ZPS_RAZSOC'  , (_cAlias)->RAZSOC)
            oGridZPS:SetValue('ZPS_DTDIGI'  , sToD(cValToChar((_cAlias)->DTDIGI)))            
            oGridZPS:SetValue('ZPS_QUANT'   , (_cAlias)->QUANT)

            (_cAlias)->(DbSkip())

            IncProc()

        EndDo

        oGridZPS:GoLine(1)

        (_cAlias)->(DbCloseArea())

    Else

        Help(,,'Opção Não Disponível',,'Esta opção só está disponível quando ainda não foram preenchidos itens para a carga.',1,0,,,,,,{''})

    EndIf

Return

1 curtida

Boa tarde! Giordano, funcionou aqui. Só não está preenchendo todas as linhas que retornam da consulta.

Deu certo agora. Era o tamanho de um campo. Obrigado pela ajuda.

Boa tarde Giordano e pessoal!

Estou tendo um problema ao utilizar o AddLine, parece que ele não consegue validar a linha adicionada (oModelGrid:IsLineValidate() retorna F). Porém, ele passa pelas validações Pré/Pós normalmente, exibe a mensagem de “Registro Alterado OK” e a primeira linha é gravada com sucesso! Ele percorre o FOR e não insere mais, sobreescrevendo a única linha gravada.

Alguma dica de qual motivo a validação esteja falhando? Já olhei o conteúdo dos campos, tamanho, obrigatoriedade. Precisa tratar os campos especiais (Filial, MSBLQL, USERGI, USERGA) também?

Obrigado!

Ola pedro como vai.

Vc conseguiu resolver esse problema do addline ?

estou passando pelo mesmo problema