Nesse vídeo demonstraremos a utilização das funções GDDeleted, GDFieldGet, GDFieldPos, GDFieldPut e GetDRefresh que servem para manipular informações de uma grid e atualizar a tela.
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas #Include "TOTVS.ch" /*/{Protheus.doc} User Function zExe262 Funções para manipular as grids e atualizar objetos na tela @type Function @author Atilio @since 21/02/2023 @obs Função GDDeleted Parâmetros + Número da linha do aCols + aHeader para validação (caso a tela tenha mais de uma grid) + aCols para validação (caso a tela tenha mais de uma grid) Retorno Retorna .T. se a linha esta apagada ou .F. se não Função GDFieldGet Parâmetros + Nome do campo + Número da linha do aCols + Se .T. busca conteúdo na memória senão se .F. busca do aCols (padrão é .F.) + aHeader para validação (caso a tela tenha mais de uma grid) + aCols para validação (caso a tela tenha mais de uma grid) Retorno Retorna o valor do campo digitado na grid Função GDFieldPos Parâmetros + Nome do campo + aHeader para validação (caso a tela tenha mais de uma grid) Retorno Retorna o número da coluna encontrada na grid Função GDFieldPut Parâmetros + Nome do campo + Conteúdo que será atribuído ao campo + Número da linha do aCols + aHeader para validação (caso a tela tenha mais de uma grid) + aCols para validação (caso a tela tenha mais de uma grid) + Define se irá buscar o valor da memória (.T.) ou do aCols (.F.) Retorno Retorna o valor antes da atribuição GetDRefresh Função não tem parâmetros nem retorno **** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao **** /*/ User Function zExe262() Local aArea := FWGetArea() Local nLinha := 1 Local nPosDatEnt := GDFieldPos("C6_ENTREG") Local cMensagem := "" //Se a pergunta for confirmada If FWAlertYesNo("Confirma a alteração da Data de Entrega para Hoje (coluna " + cValToChar(nPosDatEnt) + ")?", "Continua") //Percorre as linhas digitadas na grida For nLinha := 1 To Len(aCols) //Se a linha atual não estiver apagada If ! GDDeleted(nLinha) //A operação abaixo de buscar com GDFieldGet, é o mesmo que: aCols[nLinha][nPosDatEnt] cMensagem += "Era " + dToC( GDFieldGet("C6_ENTREG", nLinha) ) + CRLF //A operação abaixo de atualizar com GDFieldPut, é o mesmo que: aCols[nLinha][nPosDatEnt] := Date() GDFieldPut("C6_ENTREG", Date(), nLinha) EndIf Next //Se tiver mensagem, exibe em tela If ! Empty(cMensagem) ShowLog(cMensagem) EndIf //Atualiza a tela GetDRefresh() EndIf FWRestArea(aArea) Return /*/{Protheus.doc} User Function A410CONS Ponto de Entrada para adicionar botões no Outras Ações dentro do Pedido de Venda @type Function @author Atilio @since 21/02/2023 @see https://tdn.totvs.com/pages/releaseview.action?pageId=6784033 /*/ User Function A410CONS() Local aArea := FWGetArea() Local aBotoes := {} aAdd(aBotoes, {'DBG07', {|| u_zExe262()}, "* Atualizar Data de Entrega","* Entrega"} ) FWRestArea(aArea) Return aBotoes
Bom pessoal, por hoje é só.
Abraços e até a próxima.