danielrgoes Postado Dezembro 12, 2014 Denunciar Share Postado Dezembro 12, 2014 Prezados Eu tenho um campo no banco que salva Status como 0,1,2,3 e assim por diante Gostaria de saber como eu faço para criar uma coluna nova no DBGrid para não aparecer 0,1,23 .... e sim Aberto , Fechado, Aguardando Depende do status 1 - Aberto 2 - Aguardando 3 - Fechado Grato Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 12, 2014 Denunciar Share Postado Dezembro 12, 2014 utilize o evento OnColEnter do DBgrid exemplo procedure TFCadmov1.DBGrid1ColEnter(Sender: TObject); begin CDS_Cadmov.Edit; if (DBGrid1.SelectedIndex = 1) then // coluna selecionada do DBGrid onde esta o novo campo if CDS_CadmovStatus.Value = 1 then CDS_CadmovNovaColuna.Value := Aberto; end; Abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 danielrgoes Postado Dezembro 12, 2014 Autor Denunciar Share Postado Dezembro 12, 2014 (editado) então, Mais tipo essa NOVA_COLUNA é que tipo porque eu não tenho criada no banco Eu criei no CDS como Type = Data Quando eu dou um select CDS.close; sql.SQL.clear; sql.SQL.Add('SELECT * FROM TABELA'); cds.Open(); fala que a NOVA_COLUNA não existe Editado Dezembro 12, 2014 por danielrgoes Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 12, 2014 Denunciar Share Postado Dezembro 12, 2014 crie mais um campo na sua tabela ex: TIPO varchar (10) ai na sua tabela ficariam os campos Status Tipo 0 1 2 3 o campo ( Tipo ) vai assumir um valor dependendo do Status 1 - Aberto 2 - Aguardando 3 - Fechado procedure TForm1.DBGrid1ColEnter(Sender: TObject); begin CDS_Tabela.Edit; if (DBGrid1.SelectedIndex = 1) then /// supondo que o campo Tipo esta na 2ª coluna begin if CDS_TabelaStatus.Value = 1 then CDS_TabelaTipo.Value := Aberto; if CDS_TabelaStatus.Value = 2 then CDS_TabelaTipo.Value := Aguardando; if CDS_TabelaStatus.Value = 3 then CDS_TabelaTipo.Value := Fechado; end; end; no DBGrid quando o cursor for para o campo Tipo, automaticamente vai ser atribuido o valor correspondente ... entendeu ? abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 danielrgoes Postado Dezembro 12, 2014 Autor Denunciar Share Postado Dezembro 12, 2014 Entendi sim Mais não teria como criar um campo "virtual" teria que criar na tabela do Banco de dados mesmo ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 12, 2014 Denunciar Share Postado Dezembro 12, 2014 se é um campo que voce quer usar somente enquanto o programa estiver ativo, pode ser um campo virtual abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 danielrgoes Postado Dezembro 12, 2014 Autor Denunciar Share Postado Dezembro 12, 2014 então Jhonas Tipo esse campo "TIPO" não vou usar porque já estou guardando o status no campo "STATUS" Eu so quero que apareça aberto, fechado etc ... no Grid E como eu criaria um campo virtual pra isso? sem criar no BD ? Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 12, 2014 Denunciar Share Postado Dezembro 12, 2014 no componente ClientDataSet use o o editor de campos (que você pode acessar dando um duplo clique no objeto), cliquecom o botão direito e selecione a opção New Field. Nas Propriedades do Campo selecione o nome, o tipo e o tamanho do campo ( Ex: NomeCampo, string, 10 ) No Tipo do Campo selecione: Data clique no botão OK para finalizar e pronto .. esse campo vai aparecer no seu DBGrid depois é só usa-lo como quiser abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 danielrgoes Postado Dezembro 12, 2014 Autor Denunciar Share Postado Dezembro 12, 2014 então Jhonas Eu fiz isso mais quando eu dou um select para usar em outra operacao CDS.close; sql.SQL.clear; sql.SQL.Add('SELECT * FROM TABELA'); cds.Open(); ele fala que esse campo que eu criei não existe porque ele não esta criado na tabela Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 Jhonas Postado Dezembro 12, 2014 Denunciar Share Postado Dezembro 12, 2014 ok... como Data voce tem que especificar o campo na select sql.SQL.Add('SELECT nome, data, telefone, tipo FROM TABELA'); para usar dessa forma sql.SQL.Add('SELECT * FROM TABELA'); deixe como campo calculado que não vai dar erro abraço Citar Link para o comentário Compartilhar em outros sites More sharing options...
0 danielrgoes Postado Dezembro 12, 2014 Autor Denunciar Share Postado Dezembro 12, 2014 Deu certo cara Obrigado Citar Link para o comentário Compartilhar em outros sites More sharing options...
Pergunta
danielrgoes
Prezados
Eu tenho um campo no banco que salva Status como 0,1,2,3 e assim por diante
Gostaria de saber como eu faço para criar uma coluna nova no DBGrid para não aparecer 0,1,23 .... e sim Aberto , Fechado, Aguardando
Depende do status
1 - Aberto
2 - Aguardando
3 - Fechado
Grato
Link para o comentário
Compartilhar em outros sites
10 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.