选择显示字体大小

dbgrid中的下拉列表和查找字段编程方法

  数据网格是非常流行的数据输入和显示形式,像大家熟悉的excel97、vfp中的功能强大的brows等,为广大程序员乐于采用。 在用delphi3开发数据库应用系统时,利用数据网格dbgrid输入数据时,有些字段只允许某几个固定的字符串,像档案案卷的保管期限,只有“永久”、“长期”和“短期”三种,可否从一个下拉列表中进行选择,从而方便输入和避免输入错误呢?还有一些字段,例如职工信息库中的单位编号(在另外的单位库中保存着单位的详细信息),在输入和显示职工数据时,能否不对单位编号进行操作,而代之于更加直观的单位库中的单位名称呢?答案是肯定的,delphi3的数据网 格控件dbgrid,支持下拉列表和查找字段的编程,而且,编程的过程都是可视化的,不需要写一行语句。

一、dbgrid中的下拉列表
  在dbgrid网格中实现下拉列表,设置好dbgrid中该字段的picklist字符串列表、初始的序号值dropdownrows即可。以职工信息库中的籍贯字段(字符串类型)为例,具体设计步骤如下:

  1、在窗体上放置table1、datasource1、dbgrid1、dbnavigator1等控件对象,按下表设置各个对象的属性:

对象属性设定值
table1databasesy1
tablenamezgk.dbf//职工信息库
datasource1datasettable1
dbgrid1datasourcedatasource1
dbnavigator1datasource datasource1


  2、双击table1,在弹出的form1.table1窗口中,用右键弹出快捷菜单,单击addfields菜单项;选择所有的字段后,按ok按钮。

  3、修改第2步新增字段的displaylabel属性。以table1zgbh字段为例,在objectinspector窗口中选择table1zgbh,修改属性displaylabel=职工编号,其余字段类似。

  4、双击dbgrid1,在弹出的editing dbgrid1.columns窗口中,单击addallf ds按钮,增加table1的所有字段。

  5、在editingdbgrid1.columns窗口,选择jg这一行,切换到objectinspector窗口,修改它的picklist.strings为“湖北枝江市、北京市、河南平顶山市、浙江德清市”

  6、在form1.oncreate事件中写 入语句:
table1.open;

  7、f9运行,用鼠标点击某个记录的籍贯字段,右边即出现一个按钮,点击这个按钮,可出现一个下拉列表,包含第5步中输入的四行字符串,可用鼠标进行选择。当然也可以自行输入一个并不属下拉列表中的字符串。

二、dbgrid中的查找字段
  所谓查找字段(lookupfield),即dbgrid 中的某个关键字段的数值来源于另外一个数据库的相应字段。运用查找字段技术,不仅可以有效的避免输入错误,而且dbgrid的显示方式更为灵活,可以不显示关键字段,而显示源数据库中相对应的另外一个字段的数据。

  例如,我们在dbgrid中显示和编辑职工信息,包括职工编号、职工姓名、籍贯、所在单位编号,而单位编号来源于另一个数据库表格——单位库,称“单位编号”为关键字段。如果我们直接显示和编辑单位编号的话,将会面对1、2、3等非常不直观的数字,编辑时极易出错。但是如果显示和编辑的是单位库中对应的单位名称话,将非常直观。这就是dbgrid的所支持的查找字段带来的好处。

  实现dbgrid的查找字段同样不需要任何语句,具体设计步骤如下:
  1、在窗体上放置table1、table2、datasource1、dbgrid1、dbnavigator1等控件对象,按下表设置各个对象的属性:

对象属性设定值
table1databasesy1
tablenamezgk.dbf//职工信息库
table2databasesy1
tablenamedwk.dbf//单位信息库
datasource1datasettable1
dbgrid1datasourcedatasource1
dbnavigator1datasourcedatasource1

  2、双击table1,在弹出的form1.table1窗口中,用右键弹出快捷菜单,单击addfields菜单项;选择所有的字段后,按ok按钮。

  3、修改第2步新增字段的displaylabel属性。以table1zgbh字段为例,在objectinspector窗口中选择table1zgbh,修改属性displaylabel=职工编号,其余字段类似。

  4、设置table1dwbh.visible=false。

  5、在form1.table1窗口,用右键弹出快捷菜单,单击newfield菜单项,新增一个查找字段dwmc,在弹出的窗口设置相应的属性,按ok按钮确认;在objectinspector窗口,设置table1dwmc.displaylabel= 单位名称。

  6、在form1.oncreate事件中写 入语句:
  table1.open;

  7、按f9运行,当光标移至某个记录的单位名称字段时,用鼠标点击该字段,即出现一个下拉列表,点击右边的下箭头,可在下拉列表中进行选择。在这里可以看出,下拉列表的内容来自于单位信息库,并且不能输入其他内容。

三、dbgrid中的下拉列表和查找字段的区别
  虽然dbgrid中的下拉列表和查找字段,都是以下拉列表的形式出现的,但两者有很大的差别。
  1、用picklist属性设置的下拉列表,它的数据是手工输入的,虽然也可以在程序中修改,但动态特性显然不如直接由另外数据库表格提取数据的查找字段。

  2、用picklist属性设置的下拉列表,允许输入不属于下拉列表中的数据,但查找字段中只能输入源数据库中关键字段中的数据,这样更能保证数据的完整性。

  3、用picklist属性设置的下拉列表设计较为简单。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons