Fórum Ao abrir uma tabela, os DbCheckbox aparecem marcados. Como? #240520

30/06/2004

0

Gostaria de saber como que ao abrir uma tabela, os DbCheckbox aparecem marcados com as opções marcadas na hora do cadastro.
A tabela está abrindo, nos DbEdit´s aparecem os dados, mas nos DBCheckbox eles aprecem todos cinza.

Valeu a força!!

JR.


Jrjoliv2003

Jrjoliv2003

Responder

Post mais votado

30/06/2004

Olá
No OnNewRecord do DataSet (Table, Query) de cadastro, ajuste todos os campos booleanos como false (ou true, de acordo com sua conveniência).
Exemplo:
Cadastro
---------
ID
Booleano1
Booleano2

Código do DataSet:
TForm1.Table1OnNewRecord(DataSet: TDataSet)
begin
  Table1Booleano1.Value := false;
  Table1Booleano2.Value := false;
end;

Abraços


Tnaires

Tnaires
Responder

Gostei + 1

Mais Posts

30/06/2004

Jrjoliv2003

Valeu!!
Vou verificar. Qualquer coisa envio mensagem!!

JR.


Responder

Gostei + 0

30/06/2004

Jrjoliv2003

Realmente quando coloco um novo registro, ocódigo passdo funciona. Valeu!!

Mas queria tb saber como que as opções marcadas aparecem quando visualizo os registros?
Passando de um registro para outro as opções teriam que ficar marcadas ou não de acordo com o cadastro.
Neste caso elas continuam aparecendo cinza.

Uma observação. Estou trabalhando com Interbase 6 e não tem tipo de dado Boleano. Coloquei como tipo de dado varchar(1). Tem alguma coisa haver?
Sou novo em programação!

Valeu a força!!

JR.


Responder

Gostei + 0

01/07/2004

Tnaires

Hmm... Nesse caso, talvez seja bom vc usar DBRadioGroups, onde cada item pode ter um valor. Na propriedade Items, vc coloca os itens que o usuário deve marcar, e na propriedade Values o caractere respectivo a cada item q deve ser gravado no banco. E no OnNewRecord da tabela, ao invés de atribuir um valor booleano ao campo, vc atribui o caractere correspondente a uma das opções.
Exemplo: se a tabela tem um campo char(1), os itens e os respectivos values seriam:
Itens                Values
Verdadeiro             V
Falso                  F

As letras em Values serão gravadas no campo.
Abraços


Responder

Gostei + 1

01/07/2004

Gandalf.nho

Prá começar não use VARCHAR(1) nesse caso, e sim CHAR(1), pq o conteúdo do campo sempre será do mesmo tamanho. Outra sugestão é SMALLINT. E para o DBCheckBox mostrar os valores corretamente em campos não booleanos, use a propriedade [b:f669fa4760]ValueChecked[/b:f669fa4760].


Responder

Gostei + 0

01/07/2004

Jrjoliv2003

Vou testar as duas respostas. Enviarei resposta assim que puder.

Valeu a força!!

JR.


Responder

Gostei + 0

01/07/2004

Jrjoliv2003

Continua a mesma coisa!

Eu colquei char(1) em todos os campos. OK!

O que está no form são DBCheckbox para os dias da semana. Então na hora de um novo cadastro está limpando e o usuário marca os dias que quer. OK!

Vamos supor q ele marque Segunda-Feira e Quinta_Feira.

O que está faltado é quando eu abrir a tabela e visualizar esse registro apareça Segunda e Quinta marcos e o restante em branco.
O que está acontecendo é que todos ficam cinza quando abro a tabela.

Valeu a força!!

JR.


Responder

Gostei + 0

01/07/2004

Gandalf.nho

Que valores você está usando para verdadeiro/falso em seus campos? Pegue cada um de seus DBCkeckboxes e coloque na propriedade ValueChecked o valor usado para verdadeiro (opção selecionada) e na propriedade ValueUnchecked o valor falso (opção não marcada).
Exemplo: suponha que você esteja usando ´S´ para marcado e ´N´ para não marcado; basta atribuir ´S´ à propriedade ValueChecked e ´N´ para ValueUnchecked e voilá.


Responder

Gostei + 0

02/07/2004

Jrjoliv2003

Beleza!!!!!!!!

Quando clico no botão novo:
dbcheckbox1.checked:=false;

Quando clico no gravar:

if dbcheckbox1.Checked = False then data.IBTConCON_PREFSEG.Value:=´F´ else data.IBTConCON_PREFSEG.Value:=´T´;

Peguei cada um dos DBCkeckboxes e coloquei na propriedade
ValueChecked o valor usado para verdadeiro e na propriedade ValueUnchecked o valor falso

Mais uma vez Obrigado.

Valeu!!!

JR.


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar