Autor Tópico: Como deixar o campo PK em um form como não editável de verdade?  (Lida 6846 vezes)

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Como deixar o campo PK em um form como não editável de verdade?
« Online: Novembro 26, 2009, 11:26:02 pm »
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 Araújo

robsonsilva

  • Visitante
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #1 Online: Novembro 27, 2009, 12:00:22 am »
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

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #2 Online: Novembro 27, 2009, 12:03:10 am »
Obrigado mais uma vez Robson!!!
Espero poder te ajudar um dia :)
Rodrigo Araújo

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #3 Online: Novembro 27, 2009, 12:10:59 am »
Robson, quando vc diz

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...
Significa a mesma coisa que vc escreveu aqui?:
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...
Ou devo setar o auto-incremento automático pelo SC em outro lugar tb?

Obrigado!!!
Rodrigo Araújo

robsonsilva

  • Visitante
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #4 Online: Novembro 27, 2009, 12:14:12 am »
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


rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #5 Online: Novembro 27, 2009, 12:17:25 am »
Pelo que eu entendi, na opção 'detalhe' vc pode configurar quais campos podem aparecer, pra evitar de mostrar tudo.
Rodrigo Araújo

robsonsilva

  • Visitante
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #6 Online: Novembro 27, 2009, 12:22:26 am »
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

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #7 Online: Novembro 27, 2009, 12:24:43 am »
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.
Rodrigo Araújo

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #8 Online: Novembro 27, 2009, 12:26:54 am »
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

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 :)
Rodrigo Araújo

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #9 Online: Novembro 27, 2009, 12:31:07 am »
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.
Rodrigo Araújo

robsonsilva

  • Visitante
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #10 Online: Novembro 27, 2009, 12:31:32 am »
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!


« Última modificação: Novembro 27, 2009, 12:34:14 am por Robson Silva »

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #11 Online: Novembro 27, 2009, 12:35:14 am »
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?
Rodrigo Araújo

robsonsilva

  • Visitante
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #12 Online: Novembro 27, 2009, 12:39:41 am »
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)...

rrma

  • Global Moderator
  • Expert
  • *****
  • Mensagens: 816
  • Quem com porcos se mistura tanto bate até que fura
    • Email
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #13 Online: Novembro 27, 2009, 12:54:17 am »
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!
Rodrigo Araújo

robsonsilva

  • Visitante
Re: Como deixar o campo PK em um form como não editável de verdade?
« Responder #14 Online: Novembro 27, 2009, 12:55:54 am »
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