Form modal de grid editável com campos não visíveis na grid

Busquei no fórum e não achei algum problema semelhante. Eu possuo um formulário de grid editável view. Eu gostaria de que no formulário de grid sejam exibidos somente alguns campos de uma tabela que possuem mais de uma dezena de campos, e que a edição fosse num form modal que permitisse tanto a edição quando a inserção de dados em todos os campos, não somente nos que selecionei para estarem visíveis na grid, que é o que está acontecendo. Não vi na documentação do scriptcase nem neste fórum uma soluço para isso. É possível o que quero?

http://www.scriptcase.com.br/exemplos/tutoriais/form/form_grid_modal.php

Agradeço a atenção Kleyber mas meu problema não está em configurar a grid para que a edição ocorra em um formulário modal. Meu problema é que eu tenho uma tabela com mais de uma dezena de campos e gostaria que na grid estivessem somente alguns desses campos, suficientes para que o usuário pudesse identificar e selecionar um registro para editar. Nesse momento o que acontece é que o form modal traz para edição (ou então para inserir dados novos, quando a opção for inserir um novo registro) somente os campos que estão na grid, e eu gostaria que este formulário de edição ou inserção de um novo registro trouxesse todos os campos da tabela, e não somente os que eu selecionei para estarem na grid. É isso que não descobri como fazer.

Um exemplo do que eu quero fazer está parcialmente no exemplo de sistema Project Management System que está na página do Scriptcase. Neste exemplo temos uma grid editável, que permite ao usuário duas coisas: selecionar as colunas que aparecem na grid e a ordenação. O exemplo possui nove colunas que posso deixar ou excluir da grid. Se eu deixar duas colunas dessas nove, ao pedir para editar um determinado registro, todas as nove colunas (campos) ficam disponíveis para edição. Eu não gostaria de deixar a opção para o usuário escolher as colunas ou ordenação. O que eu desejo é que a grid já esteja configurada para mostrar somente algumas colunas (campos) ao ser aberta.

Mas então… porque não predefinir os campos na grid que vão aparecer?

Os campos que vão aparecer estão pre-definidos e aparecem normalmente. Selecionei três campos: nome, empresa e categoria. Eles aparecem na grid sem problema. A questão é que no form modal aparecem somente estes três campos que eu escolhi para serem exibidos na grid, e não os demais da tabela, como eu desejaria que ocorresse.

Mas então o problema está no teu form. Você deve escolher os campos que deseja, na edição do teu form. Edite o form e coloque todos os campos para serem exibidos, em Editar Campos.

É possível que o problema esteja no formulário sim, só que não descobri qual é. Na opção editar campos, na lista de campos não mostrados, quando tento marcar a opção de inserção e atualização ao lado deles, que eu imagino poderia permitir com que na edição estes campos estivessem disponíveis mesmo eles não sendo mostrados na grid, estas opções ficam marcadas, mas quando vou executar a aplicação elas são desmarcadas automaticamente. Tentei fazer isso várias vezes e ocorreu a mesma coisa. Apaguei o formulário e o refiz do zero, imaginado alguma opção marcada que não recordava, mas não resolve o problema. A opção de inserção e atualização dos campos que não mostrados na grid não fica ativa quando a aplicação é executada. Não sei se é um bug ou uma opção ativa em em algum lugar do sistema…

Não, não é assim. Você tem que arrastar os campos não mostrados para cima, onde ficam os campos mostrados. Só assim eles vão aparecer no teu form. Tente aí e me diga.

Ao arrasta-los para cima eles realmente aparecem no form. Porém, aparecem também na grid, que é o que eu não desejo. Como falei, o que estou querendo fazer é que aparecem três ou quatro campos de uma tabela grande na grid e os demais apareçam no form modal para edição.

Realmente não entendi… grid e form são aplicações diferentes… não entendi como você arrastando para cima os campos para aparecerem, influencia na grid. Tem algo estranho por aí. Faz o seguinte: faz um print da edição de campos da tua grid e um print da tua edição de campos do teu form e poste aqui pra podermos visualizar melhor tua dúvida.

Bloco de prints 1: grid, como eu desejo que seja, a configuração de campos atual, e o resultado ao clicar em editar, e o posicionamento dos campos.
https://imgur.com/lreCBJ9
https://imgur.com/fMn1udh
https://imgur.com/Szn3SEL
https://imgur.com/epF7npZ
Bloco de prints 2 : grid com a inserção de mais campos, resultado na grid, e resultado ao editar e o posicionamento dos campos no formulário.
https://imgur.com/CxU9DJk
https://imgur.com/rrVuNmH
https://imgur.com/6P6zv7G
https://imgur.com/2y989IG

Áureo,

Você me mostrou a configuração dos campos apenas do form. E a configuração dos campos da grid? Veja que são duas aplicações distintas, onde cada uma tem sua própria configuração de campos, onde você pode adicionar ou retirar o que quiser. Sendo assim, na configuração de campos da GRID, você pode deixar apenas os 3 campos que queres. Já no FORM, coloque todos os campos na configuração.

Eu não sei como editar somente os campos da grid Kleyber. Imaginei que quando criado o formulário as opções de manipulações dos campos fossem as que enviei. Depois que me questionaste no post anterior eu procurei esta opção de manipular campos da grid e não descobri. Como faço para manipular esta opção?

Na tua aplicação GRID, procure a opção Editar Campos

Kleyber. Eu não tenho uma aplicação GRID e uma aplicação de FORMULÁRIO. A única opção de Editar Campos que possuo está no Formulário da GRID VIEW de meu Scriptcase 9, que te enviei dois prints acima, em duas situações: com alguns campos, que são os que eu desejo estejam na GRID, e com todos os campos da tabela exibidos. Pareceu-me que tua sugestão se aplica a um formulário Mestre/Detalhe, que não é meu caso…

Não, não te sugeri isso. Mas agora entendi tua situação e te sugiro o seguinte: Crie uma aplicação GRID e faça nela o que tu precisas, mostrando somente os campos necessários para essa grid. Na grid faça uma ligação de aplicação para o form que já tens, marcando a ligação de chave primária entre eles e assim o lápis irá aparecer na grid como tu desejas e o form ficará com todos os campos.

No evento onLoadrecord, teste a macro sc_seq_vert e esconda os campos que você deseja quando não estiver em modo de edição.

if ({sc_seq_vert} != ‘new’) { // Quando não estiver no modo de inserção
sc_field_display({campo1}, ‘off’);
sc_field_display({campo2}, ‘off’);
}

if ({sc_seq_vert} == ‘new’) { // Quando estiver no modo de inserção
sc_field_display({campo1}, ‘on’);
sc_field_display({campo2}, ‘on’);
}

Na grid irá esconder e no formulário modal irá exibir