Delphi中数据网格DBGrid应用

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

一、DBGrid中的下拉列表

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

1、在窗体上放置Table1、DataSource1、DBGrid1、DBNavigator1等控件对象,按下表设置各个对象的属性:

对象 属性 设定值
Table1 DataBase sy1
TableName zgk.dbf //职工信息库
DataSource1 DataSet Table1
DbGrid1 DataSource DataSource1
DBNavigator1 DataSource Datasource1

2、双击Table1

在弹出的Form1.Table1窗口中,用右键弹出快捷菜单,单击AddFields菜单项;选择所有的字段后,按OK按钮。

3、修改第2步新增字段的DisplayLabel属性。以Table1ZGBH字段为例,在ObjectInspector窗口中选择Table1ZGBH

修改属性DisplayLabel=职工编号,其余字段类似。

4、双击DBGrid1

在弹出的Editing DBGrid1.Columns窗口中,单击AddallFields按钮,增加Table1的所有字段。

5、在EditingDBGrid1.Columns窗口,选择jg这一行,切换到ObjectInspector窗口,修改它的PickList.Strings为“湖北枝江市、北京市、河南平顶山市、浙江德清市”

6、在Form1.Oncreate事件中写 入语句:

Table1.Open;

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

时间: 2024-10-29 18:25:02

Delphi中数据网格DBGrid应用的相关文章

实战Delphi数据网格(TDBGrid)色彩特效

 Delphi中的数据网格控件(TDBGrid)对于显示和编辑数据库中大量的数据起着十分重要的作用:然而,在使用数据网格控件的同时,也往往因为表格中大量的数据不易区分,而令操作者眼花缭乱.如何提高网格控件的易用性,克服它的此项不足呢?本文从改变数据网格的色彩配置角度,提出了一种解决办法.    以下为数据网格控件的6种特殊效果的实现方法,至于数据网格控件与数据集如何连接的方法从略. 1. 纵向斑马线效果:实现网格的奇数列和偶数列分别以不同的颜色显示以区别相邻的数据列. 在DBGrid的DrawC

在Delphi中使用DBF数据

Delphi是美国Inprise 公司开发的功能强大的Windows 应用程序开发工具.她是可视化应用程序开发环境.可重用性面向对象编程语言.快速编译器和数据库技术的完美结合. 由于Delphi具有运行速度快.功能强大.易于学习和使用且开发迅速等特点,并支持XML和HTML,支持 Web 和Internet的开发,一直受到广大用户的喜爱. 国内PC机上使用最普及历史最长的数据库是DBF格式的数据库,即是dBASE II.dBASE III和FoxPro中使用的数据库格式.为了充分利用已有的数据库

请各位一下.如何将C#中的数据网格表中的数据导到EXCEL表中?

问题描述 请各位一下.如何将C#中的数据网格表中的数据导到EXCEL表中? 解决方案 解决方案二:是GridView导出EXCEL吗?解决方案三:从网上找到的,引用Excel库usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;usingSystem

IBM WebSphere Portal高级缓存内容转移数据网格中的性能收益

WebSphere eXtreme Scale 和 XC10 缓存设备提供了 dynacache 实现,它将缓存的内容存储在一个弹性的数据网格中,而不使用默认的 dynacache 实现(后者将缓存的内容存储在 IBM http://www.aliyun.com/zixun/aggregation/13387.html">WebSphere Application Server 堆空间中或磁盘上).本文介绍将 WebSphere Portal 高级缓存内容转移到一个 XC10 缓存设备所托

jQuery EasyUI数据网格中添加分页例子

创建数据网格   想要从远程服务器端加载数据,首先你应该设置"URL"属性,服务器端会返回JSON格式的数据.查看数据文档可获得更多的数据格式信息. <table id="tt" class="easyui-datagrid" style="width:600px;height:250px" url="datagrid2_getdata.php" title="Load Data"

数据库-请问一下delphi中DBNavigator的问题

问题描述 请问一下delphi中DBNavigator的问题 在写一个简单的数据库功能,希望在DBGrid中直接对数据库进行删除,修改等.但是为什么DBNavigator只有"第一条""下一条"等前几个按钮可以用,后头的修改,删除,刷新等按钮为什么是灰色的? 不好意思小弟初来乍到没有C币,还请各位帮忙了! 解决方案 你数据集是不是只读的 解决方案二: 情况1,如@bdmh所说,只读 情况2,是你的数据表没有主键,因此控件无法知道怎么帮你更新

Delphi中的消息处理

1.windows的消息驱动体系 在windows系统中,消息传递是实现对乡间通信和控制的主要手段.可以额系统都以消息驱动的方式工作.系统中发生的用户输入操作.显示信息的改变.系统环境参数变化等所有时间都以系统定义消息的形式出现在相关的应用程序和窗口.所以程序设计的主要任务就是为这些消息的处理设计代码. 在应用程序中,发送者可以通过发送消息要求接收者完成相应的处理.当程序运行时,windows系统为每个应用程序实例建立一个消息队列,一次保存发送给该程序实例的消息,在应用程序的主控部分,需要设置一

在Delphi中的Access技巧集

1.DELPHI中操作ACCESS数据库(建立.mdb文件,压缩数据库) 以下代码在WIN2K,D6,MDAC2.6下测试通过, 编译好的程序在WIN98第二版无ACCESS环境下运行成功. //在之前uses ComObj,ActiveX //声明连接字符串 Const SConnectionString = 'Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s;' +'Jet OLEDB:Database Password=%s;'; //====

如何在Delphi中调用oracle的存储过程返回数据集

oracle|存储过程|数据 选自CSDN http://search.csdn.net/Expert/topic/2280/2280860.xml?temp=2.169436E-02 论坛中JCC0128 网友的发言 [delphi+oracle报表解决方案(一)]delphi中调用oracle的存储过程(分带返回游标,不返回值两种)  关键字: delphi ,oracle存储过程,游标,返回数据集,报表 注:delphi 6+ oracle 8.1.6 一.创建包与包体 1.附:建表aac