TDBgrideh在那个地方设置多行表头?

TDBgrideh在那个地方设置多行表头?,第1张

在各列的caption: dbgrideh1.columns[i].caption:='主表头|次表头i'结果: 主表头------------------------------- 次表头1 |次表头2 |.......

根据单元格字段值显示与其相关的其它表字段内容,如部门代码字段显示为部门名称。首先需在当前表中新建立一个lookup型字段,设置好关联表的字段和返回字段。多列下拉列表需在单列基础上做进一步设置,在LookupDisplayFields中以“;”号将关联表中多个字段分隔开,而且返回字段必须作为其中的第一项。具体设置如下:

dropdownshowtitles=true

dropdownsizing=true

dropdownwidth=-1

例:当前表中只有部门代码无部门名称列,需与部门表建立关联,当点击单元格时以部门代码、部门名称两列下拉列表形式显示。

重载grideh的OnDBGridEh1DrawColumnCell事件

void __fastcall TFrmMain::OnDBGridEh1DrawColumnCell(TObject *Sender,

const TRect &Rect, int DataCol, TColumnEh *Column,

Gridseh::TGridDrawState State)

{

TDataSet *pDS

pDS = this->DBGridEh1->DataSource->DataSet

if( pDS->Active &&pDS->RecordCount >0 )

{

if( pDS->RecNo %2 == 0 &&!State.Contains( Gridseh:: gdSelected) )

{

((TDBGrid*)Sender)->Canvas->Brush->Color = RGB(228,241,226)//定义背景颜色

((TDBGrid*)Sender)->Canvas->Font->Color = RGB(0,0,255)//字体颜色

((TDBGrid*)Sender)->Canvas->Font->Style = TFontStyles()<<fsBold

}

((TDBGridEh*)Sender)->DefaultDrawColumnCell(Rect, DataCol, Column, State)

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/11288297.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-15
下一篇 2023-05-15

发表评论

登录后才能评论

评论列表(0条)

保存