DBGridEh设置表中表

DBGridEh设置表中表

 

    一、Form放入DBGridEh1

    1、设置属性

    DBGridEh1. RowDetailPane. Active属性设置为True

    此时,DBGridEh1,出现蓝色框。如下图:

二、DBGridEh1,出现蓝色框中,放入DBGridEh2

    1、设置属性

    DBGridEh2. Align:=alClient

    2、字段的选择

    DBGridEh1约定,打开表中表的方法,是第一个字段,即第一列中的。通过鼠标点击,打开子表。因此:

    (1)DBGridEh1的第一个字段,应该是用于分类的字段,比如:“姓名”。这样,在DBGrid1的栏栅中,

    在Form的OnShow事件中,就得有以下的设置:

    SQL:='select 姓名,选择,性别,出生年月,年龄,部门,床号,护理等级,居住地址,户籍地址,入住类型,身份证号,入院日期,出院日期,死亡日期,移动电话,ID '+

             'From 老人基本信息 where 入住类型=''住院'' order by ''入住类型'' DESC,''床号''';

      三、数据集设置

    1DBGridEh1数据集

procedure TShowOldChildFrm.Button1Click(Sender: TObject);

var SQL,S:string;

    L,i:integer;

begin

  S:=Combobox1.Text;

  DBGridEh1.DataSource:=DataModule1.DataSource1;

  if S='' then SQL:='select 姓名,选择,性别,出生年月,年龄,部门,床号,护理等级,居住地址,户籍地址,入住类型,身份证号,入院日期,出院日期,死亡日期,移动电话,ID '+

               'From 老人基本信息 where 入住类型=''住院'' order by ''入住类型'' DESC,''床号'''

          else SQL:='select 姓名,选择,性别,出生年月,年龄,部门,床号,护理等级,居住地址,户籍地址,入住类型,身份证号,入院日期,出院日期,死亡日期,移动电话,ID '+

               'From 老人基本信息 where (入住类型=''住院'') and (部门='+Quotedstr(S)+') order by ''入住类型'' DESC,''床号''';

  DataModule1.ClientDataSet1.Active:=False;

  DataModule1.ClientDataSet1.DataRequest(SQL);

  DataModule1.ClientDataSet1.Active:=True;

  L:=DataModule1.ClientDataSet1.RecordCount;

  DBGridEh1.DataSource:=DataModule1.DataSource1;

  DBGridEh_AutoSize(DBGridEh1,DataModule1.DataSource1);

  for i:= 0 to DBGridEh1.Columns.Count-1 do

  begin

    DBGridEh1.Columns[i].Title.Alignment := taCenter;    //标题对中

    if (i<>8) and (i<>9) then

      DBGridEh1.Columns[i].Alignment:=taCenter;           //  对中

  end;

  DBGridEh1.Columns[0].Width:=90;                              //第一列拉宽

  DBGridEh1.DataSource.DataSet.Fields[1].DisplayLabel:='';         //  修改第二列字段显示名称

  DBGridEh1.DataSource.DataSet.Fields[5].DisplayLabel:='区域';    //修改DBGrid列标题

  SetKeyUp;                                                                    //  鼠标Key事件

  SelectFalse;                                                                 //选择 False

  statusbar1.Panels[0].text:='   数据库有:  '+IntToStr(L)+'人信息';

end;

    2DBGrid2数据集,通过DBGrid1的鼠标键盘事件获取

    (1)鼠标键盘事件方法

procedure TShowOldChildFrm.SetKeyUp;

var SQL,ID,S:string;

begin

  if Not DBGridEh1.DataSource.DataSet.Eof then

  begin

    ID:=DataModule1.ClientDataSet1.FieldByName('身份证号').AsString;

    S:='查询老人姓名:'+DataModule1.ClientDataSet1.FieldByName('姓名').AsString;

    S:=S+'    入住类型:'+DataModule1.ClientDataSet1.FieldByName('入住类型').AsString;

    DBGridEh2.DataSource:=DataModule1.DataSource2;

    SQL:='select 排序,姓名,关系,监护人,工作单位,单位电话,家庭电话,移动电话,'+

        '家庭地址,邮政编码,证件类型,身份证号,老人姓名,老人身份证号,经济状况,备注,ID '+

        'From 老人亲友信息 where老人身份证号='#39+ID+#39+' order by ''排序''';

    DataModule1.ClientDataSet2.Active:=False;

    DataModule1.ClientDataSet2.DataRequest(SQL);

    DataModule1.ClientDataSet2.Active:=True;

    SetSource2(DataModule1.DataSource2);     //  字段对应数据集

    DBGridEh2.Columns.Items[0].Width:=DBGridEh1.Canvas.TextWidth('12345');     //  例宽

    DBGridEh2.Columns.Items[1].Width:=DBGridEh1.Canvas.TextWidth('123456789');

    DBGridEh2.Columns.Items[2].Width:=DBGridEh1.Canvas.TextWidth('12345678');

    DBGridEh2.Columns.Items[3].Width:=DBGridEh1.Canvas.TextWidth('12345678');

    DBGridEh2.Columns.Items[4].Width:=DBGridEh1.Canvas.TextWidth('12345678901234567890');

    DBGridEh2.Columns.Items[5].Width:=DBGridEh1.Canvas.TextWidth('12345678901234');

    DBGridEh2.Columns.Items[6].Width:=DBGridEh1.Canvas.TextWidth('12345678901234');

    DBGridEh2.Columns.Items[7].Width:=DBGridEh1.Canvas.TextWidth('12345678901234');

    DBGridEh2.Columns.Items[8].Width:=DBGridEh1.Canvas.TextWidth('123456789012345678901234567890');

    statusbar1.Panels[0].text:='   数据库有:  '+IntToStr(OldN)+'人信息      '+S;

  end;

end;

    (2)鼠标键盘事件

procedure TShowOldChildFrm.DBGridEh1KeyUp(Sender: TObject; var Key: Word;

  Shift: TShiftState);

begin

  SetKeyUp;

end;

 

procedure TShowOldChildFrm.DBGridEh1MouseUp(Sender: TObject;

  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);

begin

  SetKeyUp;

end;

四、效果

1DBGridEh1

2、打开DBGridEh2

一、 DBGridEh(增强型格组件)功能详解.....................................................................4 二、应用实例..........................................................................................................................5 1. 定制标题行......................................................................................................................5 1) 制作复杂标题行.......................................................................................................5 2) 按钮式标题..............................................................................................................5 3) 标题行显示图片.......................................................................................................5 4) 如根据不同状态在数据单元格中显示相应图片...................................................5 5) 自动显示标题行的升降排序标志符(▽降序△升序)并做相应排序...............6 6) 点dbgrideh 标题排序..............................................................................................7 7) 在DBGridEH 中怎样实现多重排序(标题出现0123等排列序号)? ................ 11 8) 让dbgrid显示序号................................................................................................ 11 2. 外观布局........................................................................................................................12 1) 根据不同字段值显示相应的小图片.....................................................................12 2) 显示检查框(checkbox)外观.............................................................................12 3) 显示单、多列下拉列.........................................................................................12 4) 显示日历下拉列.................................................................................................13 5) 3D或平面外观效果...............................................................................................13 6) 行头和列头的启用关闭.........................................................................................13 7) DBGrid如何实现透明效果?.................................................................................13 8) 滚动条的各种应用.................................................................................................16 9) 数据行高................................................................................................................19 10) DBGrid设置Rowheight后如何将单元格内容纵向和垂直都居中?..............19 11) 设置DBGridEH 自适应列宽的最好方法.........................................................20 12) Ehlib 的DBGridEh首列加序号........................................................................21 13) 分行分列、单元格的颜色设置.........................................................................23 14) 点击不同单元格列,执行不同的动作.............................................................27 15) 下拉式计算器.....................................................................................................28 16) 鼠标移到某个单元格,指针形状改变.............................................................28 17) 自动填充网格列宽到网格客户区.....................................................................29 18) 从注册或ini文件中保存或恢复网格和列的层次。...................................29 3. 编辑功能........................................................................................................................29 1) 多选........................................................................................................................29 2) 文本多行显示.........................................................................................................30 3) 显示备注字段.........................................................................................................30 4) 如何让dbgrideh1 显示数据时只显示两位小数...................................................30 5) 获得当前DBGridEh中单元格的序号.............................................................30 6) 怎样在dbgridEh和Edit中显示金额的千分号...................................................30 7) end;请问怎么才能使DBGridEh不滚动就能提交数据?...................................32 8) 我怎么把dbgrid 里的数据一次插入到数据库呢................................................32 9) 在DBGrid中可选中行而又可进入编辑状态......................................................32 10) 修正DBGrideh 丢失焦点时自动关闭输入法的问题......................................35 11) DBGRIDEH选定多行删除怎么实现...............................................................36 12) DBGrid 滚动格的代码...................................................................................37 4. 统计功能........................................................................................................................37 白波九道整理自用版 第 3 页 1) 页脚合计................................................................................................................37 2) 定制格底部(footer)区域的汇总统计行.......................................................38 3) TDBSumList说明..................................................................................................38 4) 如何工作以及为什么有时SumList的集合值计算不正确?.............................39 5) dbgrideh列求和.....................................................................................................39 5. 数据功能........................................................................................................................40 1) 查找字段点击某列值的下拉按纽弹出一个从数据库取值下拉列...............40 2) 使用DBGridEh自动过滤实现方法.....................................................................40 3) 使用DBGridEh自动过滤实现方法2 ..................................................................41 4) DBGridEh 控件中使用过滤功能 (适用ehlib 5.2 ehlib 5.3)................................42 5) 支持模糊查询.........................................................................................................43 6) ehlib4.4.50中支持模糊匹配的修改方法..............................................................44 7) EhLib 5.0 Build 5.0.13的过滤字串都是模糊过滤修改.......................................45 8) 滚动条滚动时选择不变,还有自动过滤功能的实现.........................................45 9) 增量搜索................................................................................................................46 10) ehlib总是按两次ctrl+f才出来查找框,怎么办?.........................................46 11) 如何改良dbgrideh的文字过滤........................................................................46 12) 改进DBGrideh 头点击自动排序,实现双击状态轮流.................................47 13) 改良Ehlib 的排序功能,加快排序速度.............................................................49 14) 在DbGridEh中显示TreeView效果................................................................50 15) DBGridEh-KeyList、PickList............................................................................51 16) 主从设置........................................................................................................53 17) 在DbGridEh中显示中表..............................................................................55 6. 输入/输出.......................................................................................................................56 1) 导入导出数据.........................................................................................................56 2) 从多种格式导入/导出数据到TDBGridEh...........................................................57 3) DBGRID 生成EXCEL报.................................................................................57 4) 使用TPrintDBGridEh 组件.................................................................................61 5) 打印时确定Ehlib定义的报头颜色? ............................................................61 6) Ehlib 中的PrintDBGridEh如何印页码,即第几页共几页...................................62 7) 怎么让PrintDBGridEh只打印DbGridEh 中指定的列.......................................62 8) 怎样进行横向打印/ 打印预览?........................................................................62 7. 将存在的DBGrid组件转换为DBGridEh组件...........................................................62 三、EhLib安装问题.............................................................................................................64 1. EhLib 安装步骤.............................................................................................................64 2. EhLib 安装问题(dbsumlst.dcu出错) ..........................................................................64 3. 安装提示找不到.BPL文件...........................................................................................65 四、Delphi 下的优秀格(Grid)显示控件........................................................................65 1. NextGrid .........................................................................................................................65 2. TopGrid 3.01...................................................................................................................65 3. XLGrid............................................................................................................................66 4. DevExpress ExpressQuantumGrid .................................................................................66 5. TMS Grid Pack...............................................................................................................68 6. EhLib ..............................................................................................................................71 白波九道整理自用版 第 4 页 7. ProfGrid..........................................................................................................................71 8. EasyGrid .........................................................................................................................71 五、delphi 中配置文件的使用(*.ini).........................................................................71 六、窗口动画效果Animatewindow应用...........................................................................72 七、Delphi Excel to Sql Server..............................................................................................73 八、Delphi控制Excel的经验如下:..................................................................................76
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值