在查询显示的时候我要这样的效果,某一列如果 相连几行的记录值相同,则它们自己之间的网格线不显示,其他列不影响
如 -----------
| 1001 |
| |------
| |
------------------
| 1002 |
| |-------
-------------------
原来在PB里可以,不知道delphi中行不行?????
如 -----------
| 1001 |
| |------
| |
------------------
| 1002 |
| |-------
-------------------
原来在PB里可以,不知道delphi中行不行?????
解决方案 »
- 请问能否将下面的代码用Delphi 编译dll文件以及外部文件怎么调用
- █ █ 新手求教DELPHI问题:关于DBGRID的查询统计(对列求和)█ █
- 江湖救急:Delphi严重Bug,TADOConnection在线程内创建,TEdit控件不能切换输入法!
- 请大家帮忙翻译一下c++builder的程序,很简单的
- 请问那里有TJLITTYBB这个组件?
- *********循环中用Query控件复制记录的问题,请高手看看!!(为什么会这样??)******
- 这个vc声明怎么改成Delphi的?hresult sticreateinstance(hinstance hinst, dword dwver, psti *ppsti, lpunknown punkouter)
- Twebbrowser的打印怎么写?
- 急!急!!急!!!请问高手们数学中的西格码等众多的数学符号怎样输入,改怎样处理??
- 怎么在读文本的时候跳过指定的行数,不通过空读的方法!
- 关于取整函数
- 请问TBitmap的SaveToFile方法是不是有问题!
http://community.csdn.net/Expert/topic/3634/3634989.xml?temp=.7271997
这个问题我也方表过,至今还没有解决,以上是我发表的?
先建立一个全局TAdoDataset,并且将adoquery1的内容克隆过去。
ADODataSet1.Clone(adoquery1,ltReadOnly);
然后写dbgrid的OnDrawColumnCell事件函数:
procedure TForm1.DBGrid1DrawColumnCell(Sender: TObject; const Rect: TRect;
DataCol: Integer; Column: TColumn; State: TGridDrawState);
var
privateValue:String;
begin
with TDBgrid(Sender) do
begin
if (DataCol=0) then //and (not DataSource.DataSet.Eof) and ( not DataSource.DataSet.Bof) then
begin
Canvas.Brush.Style := bsClear;
ADODataSet1.Locate('fieldname1;fieldname2',vararrayof([DataSource.DataSet.fieldbyname('fieldname1').AsString,DataSource.DataSet.fieldbyname('fieldname2').AsString]),[]);
ADODataSet1.Prior;
if adodataset1.Bof then
privateValue:=''
else
privateValue:=ADODataSet1.fieldbyname('fieldname1').AsString;
if (gdSelected in state) or (gdFocused in state) then
begin
Canvas.Brush.Color:=clNavy;
Canvas.Font.Color:=clWhite;
end
else
begin
Canvas.Brush.Color:=clWhite;
Canvas.Font.Color:=clBlack;
end;
if (column.Field.AsString=privateValue) then
begin
mRect:=rect;
canvas.FillRect(mRect);
end
else
begin
canvas.FillRect(Rect);
canvas.TextOut(rect.Left+2,rect.Top+2,column.field.AsString);
end;
end
else
begin
DefaultDrawColumnCell(rect,datacol,column,state);
end;
end;
end;
只需要在更改Adoquery的时候保持adodataset同步即可。