Olá pessoal…
Hoje vou mostrar como adicionar um campo no cabeçalho da tela do Pedido de Compra no AdvPL usando pontos de entrada.
Apesar de eu já ter postado isso no Guia de Referências, muitas pessoas me perguntam no Skype como fazer, decidi então montar essa postagem auxiliando.
Quem me ajudou a fazer a postagem foi meu amigo Rafael Almeida, um salve ai Rafinha.
Serão necessários 2 pontos de entrada, o MT120TEL (para criar o get na tela), e o MTA120G2 (para gravar o conteúdo). No ponto de entrada da tela, é necessário definir o conteúdo como Public, para que no outro Ponto de Entrada seja visto esse valor.
Abaixo um print do resultado.
Abaixo o código fonte desenvolvido.
//Bibliotecas #Include "Protheus.ch" /*--------------------------------------------------------------------------------------------------------------* | P.E.: MT120TEL | | Desc: Ponto de Entrada para adicionar campos no cabeçalho do pedido de compra | | Link: http://tdn.totvs.com/display/public/mp/MT120TEL | *--------------------------------------------------------------------------------------------------------------*/ User Function MT120TEL() Local aArea := GetArea() Local oDlg := PARAMIXB[1] Local aPosGet := PARAMIXB[2] Local nOpcx := PARAMIXB[4] Local nRecPC := PARAMIXB[5] Local lEdit := IIF(nOpcx == 3 .Or. nOpcx == 4 .Or. nOpcx == 6, .T., .F.) //Somente será editável, na Inclusão, Alteração e Cópia Local oXObsAux Public cXObsAux := "" //Define o conteúdo para os campos SC7->(DbGoTo(nRecPC)) If nOpcx == 3 cXObsAux := CriaVar("C7_OBS",.F.) Else cXObsAux := SC7->C7_OBS EndIf //Criando na janela o campo OBS @ 062, aPosGet[1,08] - 012 SAY Alltrim(RetTitle("C7_OBS")) OF oDlg PIXEL SIZE 050,006 @ 061, aPosGet[1,09] - 006 MSGET oXObsAux VAR cXObsAux SIZE 100, 006 OF oDlg COLORS 0, 16777215 PIXEL oXObsAux:bHelp := {|| ShowHelpCpo( "C7_OBS", {GetHlpSoluc("C7_OBS")[1]}, 5 )} //Se não houver edição, desabilita os gets If !lEdit oXObsAux:lActive := .F. EndIf RestArea(aArea) Return /*--------------------------------------------------------------------------------------------------------------* | P.E.: MTA120G2 | | Desc: Ponto de Entrada para gravar informações no pedido de compra a cada item (usado junto com MT120TEL) | | Link: http://tdn.totvs.com/pages/releaseview.action?pageId=6085572 | *--------------------------------------------------------------------------------------------------------------*/ User Function MTA120G2() Local aArea := GetArea() //Atualiza a descrição, com a variável pública criada no ponto de entrada MT120TEL SC7->C7_OBS := cXObsAux RestArea(aArea) Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.
Valeu meu querido DaniBoy!
Precisando, sabe que pode contar comigo sempre 🙂
É nóis grande Rafinha.
Um grande abraço.
Caramba, procurei muito essa informação, como não tinha encontrado, acabei me virando com os PE MT120TEL, MT120FOL e MTA120G2. Esses criam uma folder nova na tela.
Entendi Marcos.
Faz parte, as vezes nós conseguimos montar outros tipos de solução.
Um grande abraço.
Parabéns… ótima dica!
Reparei que você utilizou a função RetTitle(), essa não conhecia!
Vlw!
Opa, eu que agradeço Don.
Um grande abraço.
No meu caso gostava de adicionar “descrição da razão social do fornecedor” no modulo Compras em Documento de Entrada.
alguém saberia o caminho ?
Bom dia Marte.
No Documento de Entrada acho um pouco mais complicado que no Pedido de Compras, por não ter um p.e. específico para isso.
Infelizmente não possuo exemplos.
Um grande abraço jovem.
Aoba
Grande Atilio.
Me ajudou muito.
Muito obrigado meu amigo
Grande Baggio.
Um grande abraço jovem.
Dan, você sabe dizer se tem como abaixar mais o Acols do pedido de compras. Eu fiz o campo de observaçoes igual voce mencionou e agora o usuario quer colocar mais um campo, mas se incluo mais um campo o ele é cortado pelo aCols. Estava precisando descer mais o Acols.
Abs
Bom dia Marcos, tudo bem?
Olha jovem, acho que não tem como mexer no tamanho do aCols do Pedido de Compras, pois na verdade, você teria que manipular o GetDados / MsNewGetDados, e não sei se tem algum p.e. que possa fazer isso.
Tente incluir um campo na frente da filial para entrega, talvez caiba ali, ou abra um chamado na TOTVS questionando se existe algum p.e. para alterar o tamanho dos objetos dessa tela.
Um grande abraço.
Olá amigo!
Eu consigo escolher a ordem que eu quero colocar o campo?
Por exemplo eu quero colocar ele depois da condição de pagamento.
Sim, se olhar o exemplo, quando criei o get e label, os dois primeiros parâmetros são linha e coluna.
Porém, dos outros objetos não sei se teria como modifica-los.
Alguma dica se quiser incluir um campo MEMO?
Tem alguma dica se o campo for tipo MEMO?
Boa noite Gilberto.
No caso, ao invés de utilizar a classe MSGET, utilize a TMultiGet, nela é possível ter inúmeras linhas e assim você pode controlar o seu campo MEMO.
boa tarde !
é possível gatilhar o campo ? se sim como seria?
Bom dia, sim é possível.
Na criação do get, coloque um valid, por exemplo, VALID u_zSeuGatilho()
Ai na user function zSeuGatilho, você atualiza outros campos e informações.
Grande abraço.
Boa tarde, estou usando o MT120FOL para criar dois campos no folder do rodapé, agora estou tentando achar uma maneira de atualizar a informação dos campos criados de acordo com a atualização do valor do pedido. Por acaso já fizeram algo parecido.
Bom dia Rodolfo.
No caso, para você atualizar o valor em tempo de execução, é necessário disparar alguma coisa, e pode ser um gatilho ou o valid da linha (via p.e.), ai tanto um quanto o outro, o ideal é fazer uma user function que percorra os itens e atualize os seus gets no rodapé.
Atilio tudo bem? Apos compilar o fonte eu seleciona o opção, salvo o pedido mas ele só grava no banco a primeira combo box. Sabe oq posso estar fazendo errado? Você teria um grupo de ajuda no Whats e gostaria de saber seu contato para os cursos?
Bom dia Renan, tudo sim graças a Deus e você?
Nós temos o fórum AdvPLers no Discord: https://discord.gg/q3n25s2
Nesse link também tem outras formas de contato: https://terminaldeinformacao.com/contato/
Quanto a dúvida, depende da forma como você criou o objeto do ComboBox, você poderia nos mostrar como fez?
Bom dia Dan, muito bomm !!
Estão me pedindo para colocar um campo do usuário que incluiu o pedido de compra ali, é mais ou menos por ae ?
Porque no SC1 tem o c1_solicit, da pra tentar puxar direto ali ?
Abraço
Boa tarde João, tudo bem?
Daria sim, mas no caso você precisaria criar o campo e utilizar direto da SC7.
Abraços.
Valeu, Dan!
Sempre salvando.
Opa, obrigado pelo comentário Rildo.
Grande abraço jovem.
Só funciona na inclusão? Preciso que apareça um campo onde seja exibido o nome do comprador na visualização.
Então Luis, funciona também na Alteração, Exclusão, Visualização, conforme documentação do TDN: https://tdn.totvs.com/display/public/PROT/MT120TEL
Grande abraço.