Como deixar o campo PK em um form como não editável de verdade?

Pessoal, no form que criei, setei o meu campo PK como label, funciona blz na exibição.
Porém, quando clico em inserir no registro, o campo vem como um textbox editável. Gostaria que ele não aparecesse!

Outra dúvida, vocês usam campo auto-incremento do mysql ou fazem através do SC? Nesse mesmo campo, vcs usam varchar ou int?

Obrigado a todos?

Rodrigo,

Deixe o campo como tipo “Número” e selecione a opção “Campo Label -> Sim”. Em Atribuir Valores / Inserção coloque o campo como “Auto Incremento (Automático)”, crie um nome pro auto-incremento e marque “Forçar Valor”… Desta forma o campo já irá aparecer sempre como Label…

As chaves eu uso campo tipo int (ou bigint), coloco autoincrement no banco de dados e também no sc… antigamente eu não colocava no sc, mas tive problemas com as grid editáveis: caso o usuário insira um registro e tente exclui-lo ou editá-lo logo em seguida (antes da aplicação realizar o commit()), aparece “registro inexistente” pois o sc não sabe qual é o id daquele registro até este momento…

Att.
Robson

Obrigado mais uma vez Robson!!!
Espero poder te ajudar um dia :slight_smile:

Robson, quando vc diz

Significa a mesma coisa que vc escreveu aqui?:

Ou devo setar o auto-incremento automático pelo SC em outro lugar tb?

Obrigado!!!

Rodrigo,

Se não fosse pela sua última pergunta (da “lupa” na consulta) eu iria criar e formatar uns 20 formulários aqui só pra exibir os detalhes de cada tipo de consulta, acredita? Agora que eu entendi como funciona esta opção (detalhe), só vou precisar ativá-la em cada consulta e pronto hehehe

Opa, é isso mesmo… vc só precisa colocar o “Auto-Incremento (automático)” em “Atribuir valores” e pronto, o sc cuida do resto hehe

Pelo que eu entendi, na opção ‘detalhe’ vc pode configurar quais campos podem aparecer, pra evitar de mostrar tudo.

Vc pode configurar quais campos quer mostrar na opção “Selecionar Campos”… Mas como em alguns casos não é viável mostrar todas as informações do registro na mesma consulta (fica com muitas colunas), eu estava pensando em criar um formulário (com todos os campos do tipo label) só pra exibir as informações de um determinado registro, e criar uma ligação na consulta pra este formulário…

Mas ativando o “Detalhe” já aparece aquela “lupa”, e quando o usuário clica nela todos os campos adicionais já são mostrados na mesma aplicação…

Aqui tem um exemplo dele funcionando… bem bacana:
http://www.netmake.com.br/site/baseknowledge/baseknowledge.php?id_topico=126

Robson, não tem como ligar uma consulta simples à um form de inclusão que já abra inserindo o registro direto?
Toda vez ele abre o form apenas exibindo, daí tenho q clicar no botao ‘Novo’ pra poder inserir, queria que já abrisse incluindo direito, só pra digitar, salvar e retornar.

Valeu.

O que eu quis dizer é qune a opção detalhe vc filtra quais campos vão aparecer apenas na tela detalhe, não sei se fui claro :slight_smile:

Robson, não tem como ligar uma consulta simples à um form de inclusão que já abra inserindo o registro direto?
Toda vez ele abre o form apenas exibindo, daí tenho q clicar no botao ‘Novo’ pra poder inserir, queria que já abrisse incluindo direito, só pra digitar, salvar e retornar.

Valeu.

Tem sim… ao criar a ligação do tipo “Aplicação”, existe a opção “Exibir botão novo na consulta”…
é só marcá-la como “sim” que irá aparecer o botão “Novo” na barra de ferramentas… inclusive é bom sempre deixar esta opção ativa, senão, caso a consulta não retorne nenhum resultado a ligação não vai existir!

Isso eu vi, funciona, mas o form q ele abre não abre já incluindo, eu sou obrigado a clicar em ‘novo’ toda vez.
Queria que já abrisse incluindo de verdade, sem precidar clicar em ‘novo’
Do jeito que ele faz, vc estando na consulta -> clica em ‘novo’ no cabeçalho -> abre a tela nova -> vc clica em ‘novo’ de novo! -> pra poder finalmente digitar e salvar.
Quero já abrir incluindo de verdade, sem clicar em mais nada, sacou?

mas com esta opção ativa ele já deveria abrir no modo inclusão! hehe

ah, vc está usando filtro no formulário? na opção SQL, vc colocou algo na cláusula where?

Se não colocou, coloque algo assim:

Cláusula Where:
campo_id = [campo_id];

(supondo que campo_id é sua chave primária)

depois apague a ligação lá na consulta e crie uma nova, setando o valor pra variável global [campo_id]…

desta forma ele irá buscar o valor da variável global [campo_id] ao iniciar o formulário para filtrar os resultados… caso não seja passado nenhum valor, irá abrir no modo inclusão (o que ocorre quando clica no botão novo)…

Não tem jeito Robson!

Quando coloquei a cláusula where ‘Codigo=[Codigo];’, au fazer uma nova ligação aparecem duplicadas as opções da tela de ligação (campo, fixo e vazio). Retirei a cláusula where e fiz apenas uma ligação de botão com parâmetro ‘vazio’ e habilitei apenas o botão ‘insert’, mas não abre incluindo direto nem a pau! Tenho sempre que clicar em ‘novo’ na tela que abre!

mas é isso mesmo… se aparecer duplicado não tem problema, coloca o mesmo valor nos dois…
mas ao invéz de escolher “vazio”, tem que colocar “campo” e selecionar o campo {codigo} da consulta… daí funciona

Rapaz eu devo ta fazendo alguma besteira aqui, pq não funciona nem a pau!
Fiz exatamente como vc falou, coloquei a cláusula where codigo=[codigo]; e na nova ligação, escolhi tipo botão (novo), campo=codigo nas duas, mas não vai não…

Já to pensando em trocar o nome do botão pra ‘Manutenção’ e habilitar todas as funções na ligação, aí o usuário já pode incluir/alterar e deletar num lugar só, o que acha? Como é que vc trata isso?

Opa… agora nos entendemos hehe

Faz o seguinte… pode excluir esse botão que vc criou, ele será criado automaticamente pelo sc!
exclua a ligação tbm e crie uma nova…
Selecione o tipo: “Aplicação”…
Escolha o formulário…
No valor do [Codigo] vc coloca o valor do campo {codigo} na consulta…
Na última pagina tem uma opção “Exibir o botão novo na consulta?” - marca como “Sim”…

dai pode testar hehe

Robson, agora é que eu entendi.
Eu tava criando um botão ‘Novo’ e depois fazendo uma ligação tipo botão!
Apaguei tudo e fiz apenas a ligação como vc falou e funcionou, valeu pela paciência!!!

Putz tá do kct esse site hein!!! PARABÉNS!!!

Rapaz, se eu fosse perguntar uma coisa ou outra vc ia endoidar comigo, pq eu tenho um zilhãe de perguntas!!!

Quero fazer algo parecido usando joomla… Minha idéia é dependendo do user logado no joomla, eu direciono ele pra aplicação mudando o banco de dados dinamicamente, pra cada cliente ter seu banco. Um dia chego lá!

Valeu!

Fiz agora uma nova ligação na minha consulta, abrindo o mesmo form q usei pra incluir, mas agora o link é pela primeira coluna da consulta.
Nessa ligação desliguei o insert e liguei atualizar e excluir.
Pergunta: Tem como ele voltar pra consulta logo após uma alteração? Sem clicar em retornar?