Alguem que entenda de DbGrid
26/05/2003
0
Pessoal eu gostaria de saber se tem como eu colocar uma marquinha em uma linha especifica de um dbgrid(nao e colorir) por exemplo:
O usuario preenche a tabela e se ele preencher o campo da observação queria deixar algo nessa linha que ele pudesse saber que o campo da observação esta preenchido naquele registro. Obrigado
O usuario preenche a tabela e se ele preencher o campo da observação queria deixar algo nessa linha que ele pudesse saber que o campo da observação esta preenchido naquele registro. Obrigado
Isaac Cavalcanti
Curtir tópico
+ 0
Responder
Posts
26/05/2003
Ma_cunhado
eu acho que a maneira mais facil é verificar se o campo está em branco ou nao
assim
if Trim(query1.fieldbyname(´observacao´).asString)<>´´ then
//tá preenchido
else
// nao esta
assim
if Trim(query1.fieldbyname(´observacao´).asString)<>´´ then
//tá preenchido
else
// nao esta
Responder
27/05/2003
Cruz
Visite [url=http://www.jczdesign.com]JCZ Design Fotografia[/url]
[b:7e4bdd3184]Como criar uma coluna neutra em um TDBGrid.[/b:7e4bdd3184]
Por José Cruz.
Se vc possui um campo longo, do tipo memo por exemplo, e quer indicar em um DBGrid que este campo não está vazio. Usando, por exemplo, um sinal de que aquele registro possui uma observação. Vc
pode usar a técnica descrita abaixo.
1) De duplo clique sobre o DBGrid onde quer criar a coluna neutra.
2) Na caixa ´Editing DBG... Columns´ clique no ícone ´New item´
3) Selecione o item criado. (obs: não atribua nenhum campo à esta coluna.
Deixe a propriedade FieldName em branco)
4) Clique na propriedade Title para expandi-la e mude a sub-propriedade ´Caption´
para o que vc quiser. (Ex. ´*´, ou ´#´)
5) Mude a proprieade ´Width´ para 15.
Selecione novamente o DBGrid em questão.
No evento OnDrawColumnCell do DBGrid em questão escreva o código abaixo.
Veja abixo o exempo completo. Para usá-lo crie uma nova aplicação.
Coloque um ClientDataset, um DataSource e um DBGrid no form. Deixe o nome do form como Form1.
Substitua o bloco entre ´Interface e end.´ pelo código abaixo.
[b:7e4bdd3184][/b:7e4bdd3184]
[b:7e4bdd3184]Como criar uma coluna neutra em um TDBGrid.[/b:7e4bdd3184]
Por José Cruz.
Se vc possui um campo longo, do tipo memo por exemplo, e quer indicar em um DBGrid que este campo não está vazio. Usando, por exemplo, um sinal de que aquele registro possui uma observação. Vc
pode usar a técnica descrita abaixo.
1) De duplo clique sobre o DBGrid onde quer criar a coluna neutra.
2) Na caixa ´Editing DBG... Columns´ clique no ícone ´New item´
3) Selecione o item criado. (obs: não atribua nenhum campo à esta coluna.
Deixe a propriedade FieldName em branco)
4) Clique na propriedade Title para expandi-la e mude a sub-propriedade ´Caption´
para o que vc quiser. (Ex. ´*´, ou ´#´)
5) Mude a proprieade ´Width´ para 15.
Selecione novamente o DBGrid em questão.
No evento OnDrawColumnCell do DBGrid em questão escreva o código abaixo.
//inicio do código with DBGrid1.DataSource.DataSet,DBGrid1 do {troque dbgrid1 pelo nome do seu dbgrid} begin if(Trim(FieldByName(´obs´).Text) <> ´´) then {troque ´obs´ pelo campo que vd quer verificar} if(Column.Index = 0) then begin Canvas.Font.Color:= clRed; Canvas.TextOut(Rect.Left+2,Rect.Top+2,´#´); end; end; //fim do código
Veja abixo o exempo completo. Para usá-lo crie uma nova aplicação.
Coloque um ClientDataset, um DataSource e um DBGrid no form. Deixe o nome do form como Form1.
Substitua o bloco entre ´Interface e end.´ pelo código abaixo.
//inicio do bloco -> uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, DB, DBClient, Grids, DBGrids; type TForm1 = class(TForm) ClientDataSet1: TClientDataSet; DataSource1: TDataSource; DBGrid1: TDBGrid; ClientDataSet1nome: TStringField; ClientDataSet1obs: TStringField; ClientDataSet1temp: TStringField; procedure FormCreate(Sender: TObject); procedure DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); private { Private declarations } public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} procedure TForm1.FormCreate(Sender: TObject); var s:string; begin s:= ExtractFilePath(Application.ExeName)+´tmp.cds´; ClientDataSet1.FileName:= s; if(not FileExists(s)) then begin ClientDataSet1.CreateDataSet; ClientDataSet1.SaveToFile(s); end; ClientDataset1.Open; end; procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect; DataCol: Integer; Column: TColumn; State: TGridDrawState); begin with DBGrid1.DataSource.DataSet,DBGrid1 do {troque dbgrid1 pelo nome do seu dbgrid} begin if(Trim(FieldByName(´obs´).Text) <> ´´) then {troque ´obs´ pelo campo que vd quer verificar} if(Column.Index = 0) then begin Canvas.Font.Color:= clRed; Canvas.TextOut(Rect.Left+2,Rect.Top+2,´#´); end; end; end; //fim do bloco
[b:7e4bdd3184][/b:7e4bdd3184]
Responder
Clique aqui para fazer login e interagir na Comunidade :)