社区
Delphi
帖子详情
与 dbgrid 相关的问题
Luckyfeeling
2001-06-23 10:37:00
我如何给 dbgrid 额外增加一列(该列没有相对应的字段〕,
该列的作用是标识相应的行是否执行某些操作。
比如:
当书籍数量<100 时 ,特殊标识列符号为 × 否则为 *
书籍数量 特殊标识列
120 *
80 ×
然后,将 dbgrid 断开与数据库的链接,将所有的书籍都减去 40 ,结果为
书籍数量 特殊标识列
80 ×
40 ×
特殊标识列没有相应的字段,我如何对它赋值????
企盼您的帮助!!
...全文
99
10
打赏
收藏
与 dbgrid 相关的问题
我如何给 dbgrid 额外增加一列(该列没有相对应的字段〕, 该列的作用是标识相应的行是否执行某些操作。 比如: 当书籍数量<100 时 ,特殊标识列符号为 × 否则为 * 书籍数量 特殊标识列 120 * 80 × 然后,将 dbgrid 断开与数据库的链接,将所有的书籍都减去 40 ,结果为 书籍数量 特殊标识列 80 × 40 × 特殊标识列没有相应的字段,我如何对它赋值???? 企盼您的帮助!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
10 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
Luckyfeeling
2001-06-25
打赏
举报
回复
谢谢大家的帮助!
这个问题可以结了!
总之,dbgrid 帮定的太死了,如果能允许我们自由的添加更改行列
就好了!
gao277
2001-06-23
打赏
举报
回复
就是用计算字段,在oncalafield事件中根据书籍数量对特殊标志列操作,
路人丁
2001-06-23
打赏
举报
回复
使用计算字段!
双击dbgrid 之后看看各个属性!
ghz2000
2001-06-23
打赏
举报
回复
这个应该是一个计算字段。好好想想
chenjun
2001-06-23
打赏
举报
回复
你在数据库中增加一个字符字段不就可以很容易解决了吗
windindance
2001-06-23
打赏
举报
回复
不,只要把结果字段设置为Calculated。(一般自动会设置的)
qing_zb
2001-06-23
打赏
举报
回复
是不是要把参与计算的字段都设为Calculated?
光明山人
2001-06-23
打赏
举报
回复
应该在TTable或TQuery对象中加计算字段对象,不需要改数据库或在SQL中加一计算字段。做法如下:
双击TTable或TQuery对象,打开字段编辑器(fields editor),按Ctrl+N或右击选"New field...", 在"New Field"对话框中填入字段名(如Flag),类型(String),大小(2),选中“Field Type”中的Calculated。
在TTable或TQuery对象的OnCalcFields事件中写:
if DataSet.FieldByName( '书籍数量' ).IsNull or DataSet.FieldByName( '书籍数量' ).AsInteger<100 then
DataSet.FieldByName( 'Flag' ).AsString := '×'
else
DataSet.FieldByName( 'Flag' ).AsString := '*';
楼上的后半部分跟我的一样,但前半部分不对,不能用SQL的计算字段。Delphi不会认它作计算型
字段的,只会认为它也是数据库中字段。在OnCalcFields中只能给FieldKind为fkCalculated的字段赋值,否则它会以为是修改数据。
Luckyfeeling
2001-06-23
打赏
举报
回复
dephi 在这点处理上真令人失望!!!
我问题的本意是从数据库里面都取数据,然后断开与数据库的链接
用户对某些行进行操作,我需要额外的一列或多列来标明它们,额外的行也未必就是计算字段
我举的例子,可能描述不清吧。
zou5655(周围) 的解决办法与我的作法一样!
如果 dbgrid 直接允许我们操作相应格子里面的数据,而不像现在强迫我们非要操作帮定的字段
就好了!
这个问题,在 vb 的 msflexgrid里面非常简单,它允许直接读写相应格子里面的数据,但不必更新数据库。
总之,我认为 dephi 里面 dbgrid 功能是好,但帮定的太死了,可选择的太少了。
像 stringgird 又太不好用了。
在 vb 里面,令 grid.datasource=记录集之后,就可以对 格子任意操作,包括添加任意行任意
列,添加或更改任意数据。
这也可能与我的水平有关,只好再慢慢的发掘吧。
这个问题如果没有更高明的解决手段,就可以了段了!
谢谢上面朋友的热情参与与帮助!!!!!!!!!!!
zou5655
2001-06-23
打赏
举报
回复
例如:
表结构为:
表名:MYTABLE
字段1:书名 string
字段2:数量 intger
第一步:双击DBGRID添加所有字段,添加新字段,字段名填:标识符;字段类型添:STRING;OK!!
第二步:执行一句SQL语句“Select *,"" 标识符 From MyTable”
第三步:在QUERY1控件的oncalafield事件中写:
If DataSet.FieldByName('数量').AsInteger < 100 Then
DataSet.FieldByName('标识符').AsString := '×'
Esle
DataSet.FieldByName('标识符').AsString := '*';
Delphi
DB
Grid
表头美化实例.rar
Delphi
DB
Grid
表头美化实例!小弟我在认真研读了站内各位先进的文章后,偶有小得,特抛砖引玉(例子非常的简单,希望大大们原谅晚辈我经常拿无知当个性),
DB
Grid
是显示资料的主要手段之一。但是
DB
Grid
缺省的外观未免显得单调和缺乏创意。通过code,可以改变
DB
Grid
的表头、网格、格线的前景色和背景色,以及
相关
的字体的大小和风格(就像网页中的表格一样漂亮美观)。
DELPHI
DB
Grid
应用全书
在 Delphi 语言的数据库编程中,
DB
Grid
是显示数据的主要手段之一。但是
DB
Grid
缺省的外观未免显得单调和缺乏创意。其实,我们完全可以在我们的程序中通过编程来达到美化
DB
Grid
外观的目的。通过编程,我们可以改变
DB
Grid
的表头、网格、网格线的前景色和背景色,以及
相关
的字体的大小和风格。
delphi
DB
grid
美化使用大全
在 Delphi 语言的数据库编程中,
DB
Grid
是显示数据的主要手段之一。但是
DB
Grid
缺省的外观未免显得单调和缺乏创意。其实,我们完全可以在我们的程序中通过编程来达到美化
DB
Grid
外观的目的。通过编程,我们可以改变
DB
Grid
的表头、网格、网格线的前景色和背景色,以及
相关
的字体的大小和风格
Delphi如何一次删除
db
grid
多条记录的例子.rar
Delphi演示如何一次删除网格数据表
db
grid
中的多条记录,小技巧不过挺实用,希望对大家的Delphi编程有所帮助。以下是实现一次删除多条记录的
相关
代码供参考: if
DB
Grid
1.SelectedRows.Count >1 then s:= '真的要删除这些记录吗?'; if Application.MessageBox (Pchar(s),'删除多条记录',mb_iconinformation mb_yesNo)=idYes then begin
DB
Grid
1.DataSource.DataSet.DisableControls ; i:=0; While i<=
DB
Grid
1.SelectedRows.Count -1 do begin
DB
Grid
1.DataSource.DataSet.Bookmark:=
DB
Grid
1.SelectedRows.Items[i]; //重要在这里取得bookmark TempBookmark :=
DB
Grid
1.Datasource.Dataset.GetBookmark;
DB
Grid
1.DataSource.DataSet.GotoBookmark(TempBookMark);
DB
Grid
1.DataSource.DataSet.Delete ;
DB
Grid
1.DataSource.DataSet.FreeBookmark (TempBookMark); Inc(i); end;
DB
Grid
1.DataSource.DataSet.EnableControls; end; 更多代码请您在本页面下载源码。
利用查找字段实现
DB
GRID
的下拉列表框
利用查找字段实现
DB
GRID
的下拉列表框
Delphi
5,388
社区成员
262,729
社区内容
发帖
与我相关
我的任务
Delphi
Delphi 开发及应用
复制链接
扫一扫
分享
社区描述
Delphi 开发及应用
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章