Necessito de ajuda com uma tela de inclusão, contendo textbox E MsNewGetDados

No caso estou tentando fazer uma tela de inclusão customizada, basicamente, como a tela de inclusão de "Metas de Vendas", porem não estou conseguindo fazer uma tabela que de para fazer alterações.

Necessariamente precisa ser o MsNewGetDados, mesmo que já esteja depreciada.

Me foi sugerido tentar fazer no "evento" do clique do botão enter, quando estiver encima da tabela, porem apenas acho "SetKey()" usando VK_F12,VK_F8 e assim vai. E mesmo que eu consiga saber como executar um comando ao clique do botão enter, eu desconheço a variável que deve ser alterada para permitir digitação na linha, muito menos o que possui o conteúdo da linha.

Vou colocar em anexo um print da minha tela personalizada.

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

Patrick, bom dia.

Verifique se a utilizando MVC te facilite a construção desta rotina que você precisa desenvolver.

Abraço,

O pior é que me foi passado para tentar não utilizar MVC para poder isto em outra tela :confused:

Se eu entendi direito, vc quer usar essa tela em outra tela, correto? o MVC dá pra fazer isso.

Eu gostaria de utilizar esse MsNewGetDados dentro de um MSDIALOG, porem, assim como o anexo mostra (que achei que já tinha anexado…não sei porque não estava aparecendo), a tabela aparece mas não consigo alterar as linhas. Já até tentei utilizar uma função chamada “SetEditLine”, mas sem existo.

Patrick, acho que o anexo não veio, não to vendo ele aqui na sua pergunta.

Agora foi, perdao

Patrick, no link abaixo tem um exemplo bem completo de msgetnewdados dentro de uma msdialog com linhas editáveis e que executa ações em cima dos dados da acols:

https://thiagocoimbra.com.br/2014/06/09/exemplo-completo-msnewgetdados/

Sua principal dúvida inicial, de deixar editável é o parâmetro do comando de criação do objeto que define que as linhas poderão ser inclusas, alteradas e editadas como destaco abaixo do exemplo do link:

NOPC := GD_INSERT + GD_UPDATE + GD_DELETE // Definições de inserir, alterar e deletar linhas

oBrw1 := MsNewGetDados():New( 32 , 10, nBrwAlt, nBrwLarg, NOPC ,’Eval(bLinOk)’,’AllwaysTrue()’,”,{“PRODUTO”,”QUANT”,”ALMOX”,”ENDEREC”,”NUMSERI”},0,99,’AllwaysTrue()’,,’Eval(bfDeleta)’,oDlgSep,aHead1,aCols1)

Muito obrigado, na verdade o que estava faltando era o fato de no “aAlter” eu estava passando os campos sem estrar entre aspas.

Só vou agora trabalhar para descobrir o porque dele não estar associando esses campos aos campos do banco, pois ele poe um Search em todos os campos…mesmo eles não tendo sido configurados assim.
Obs. Ja aproveitando o gancho, como eu posso configurar a SXB? pois todos vem com LookUps e quando clico da erro na SXB. Estou no caminho errado ou tenho que adicionar algo la mesmo?

ah, a consulta é definida na montagem do aheader, no exemplo que tem no link o aheader é montado no array ahead1 indicado no comando de criação do msgetnewdados e populado pela função fheader…

destaco essa linha que adiciona uma coluna com consulta sb1 da sxb:

aAdd(aAux,{“Produto” ,”PRODUTO” ,”@!” ,TamSX3(“D3_COD”)[1] ,0 ,”Eval(bValProduto)” ,””,”C”,”SB1″,”” })

aí é só escolher e criar a consulta que precisa na sxb e indicar na montagem do seu aheader

lembrando que nesse exemplo o msgetnewdados só atualiza o acols1, para atualizar o banco com os dados digitados precisa fazer a função de validação de cada campo, ou de cada linha ou o botão confirma rodar o acols e atualizar os registros do banco com reclock

O pior é que é mega extenso, vou procurar pegar pedaços porque se não nao vou conseguir entregar isso nunca hahaha meu conhecimento em advpl não é la essas coisas :confused: Mas muito obrigado, foi de grande valia!