Bom dia amigos,
?? possível mostrar o conteúdo de um memo no dbgrid?
Att.:
Vinício.
Mostrar conteúdo de um memo no dbgrid
-
- Mensagens: 98
- Registrado em: Abril 5th, 2011, 2:35 pm [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Mostrar conteúdo de um memo no dbgrid
Desenvolvedor
Logus Informática
Formiga - MG
-
- Mensagens: 244
- Registrado em: Dezembro 22nd, 2010, 1:05 am [phpBB Debug] PHP Warning: in file [ROOT]/vendor/twig/twig/lib/Twig/Extension/Core.php on line 1236: count(): Parameter must be an array or an object that implements Countable
Re: Mostrar conteúdo de um memo no dbgrid
Olá,
Crie esta procedure e no envento DrawColumnCell() de qualquer grid chame a procedure assim:
VerMemo(sender,rect,datacol,column,state);
procedure VerMemo(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
R : TRect;
Tabela:TComponentName;
TamanhoTx : TCanvas;
widthTx : integer;
begin
R:=Rect;
Dec(R.Bottom,2);
if TDBGrid(sender).datasource.DataSet.FieldByName(Column.FieldName).ClassName='TMemoField' then
begin
if not (gdSelected in State) then
TDBGrid(sender).Canvas.FillRect(Rect);
TDBGrid(sender).Canvas.TextRect(R,R.Left+3,R.Top+2,TDBGrid(sender).datasource.DataSet.FieldByName(Column.FieldName).AsString);
end;
// daqui para baixo é so para ajustar o tamanho da coluna do grid ao tamanho de seu conteudo
widthTx := TDBGrid(sender).Canvas.TextWidth(TDBGrid(sender).datasource.DataSet.FieldByName(Column.FieldName).AsString);
IF Column.width<widthTx then
begin
Column.Width:=widthTx+8;
end;
if TDBGrid(sender).Canvas.TextWidth(column.title.caption)>Column.width+8 then
Column.width := TDBGrid(sender).Canvas.TextWidth(column.title.caption)+8;
end;
Outra opção seria criar um campo calculado tipo string com o comando
Nome_campo_memo.Lines[0];
Ex:
Campo memo é Observacao.
Campo calculado é Obs_linha1 com o seguinte cálculo:
Linha1:String ;
Linha1:=TabGlobal.DClientes.Observacao.Lines[0] ;
Result := Linha1 ;
Crie esta procedure e no envento DrawColumnCell() de qualquer grid chame a procedure assim:
VerMemo(sender,rect,datacol,column,state);
procedure VerMemo(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
var
R : TRect;
Tabela:TComponentName;
TamanhoTx : TCanvas;
widthTx : integer;
begin
R:=Rect;
Dec(R.Bottom,2);
if TDBGrid(sender).datasource.DataSet.FieldByName(Column.FieldName).ClassName='TMemoField' then
begin
if not (gdSelected in State) then
TDBGrid(sender).Canvas.FillRect(Rect);
TDBGrid(sender).Canvas.TextRect(R,R.Left+3,R.Top+2,TDBGrid(sender).datasource.DataSet.FieldByName(Column.FieldName).AsString);
end;
// daqui para baixo é so para ajustar o tamanho da coluna do grid ao tamanho de seu conteudo
widthTx := TDBGrid(sender).Canvas.TextWidth(TDBGrid(sender).datasource.DataSet.FieldByName(Column.FieldName).AsString);
IF Column.width<widthTx then
begin
Column.Width:=widthTx+8;
end;
if TDBGrid(sender).Canvas.TextWidth(column.title.caption)>Column.width+8 then
Column.width := TDBGrid(sender).Canvas.TextWidth(column.title.caption)+8;
end;
Outra opção seria criar um campo calculado tipo string com o comando
Nome_campo_memo.Lines[0];
Ex:
Campo memo é Observacao.
Campo calculado é Obs_linha1 com o seguinte cálculo:
Linha1:String ;
Linha1:=TabGlobal.DClientes.Observacao.Lines[0] ;
Result := Linha1 ;
Att,
Gustavo Barreto
Gustavo Barreto
-
- Mensagens: 110
- Registrado em: Setembro 26th, 2011, 11:54 am
- Contato:
-
- Mensagens: 110
- Registrado em: Setembro 26th, 2011, 11:54 am
- Contato:
Quem está online
Usuários navegando neste fórum: Nenhum usuário registrado e 33 visitantes