与 dbgrid 相关的问题 使用计算字段!双击dbgrid 之后看看各个属性! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 就是用计算字段,在oncalafield事件中根据书籍数量对特殊标志列操作, 例如:表结构为:表名: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 := '*'; dephi 在这点处理上真令人失望!!!我问题的本意是从数据库里面都取数据,然后断开与数据库的链接用户对某些行进行操作,我需要额外的一列或多列来标明它们,额外的行也未必就是计算字段我举的例子,可能描述不清吧。 zou5655(周围) 的解决办法与我的作法一样! 如果 dbgrid 直接允许我们操作相应格子里面的数据,而不像现在强迫我们非要操作帮定的字段就好了!这个问题,在 vb 的 msflexgrid里面非常简单,它允许直接读写相应格子里面的数据,但不必更新数据库。总之,我认为 dephi 里面 dbgrid 功能是好,但帮定的太死了,可选择的太少了。像 stringgird 又太不好用了。在 vb 里面,令 grid.datasource=记录集之后,就可以对 格子任意操作,包括添加任意行任意列,添加或更改任意数据。这也可能与我的水平有关,只好再慢慢的发掘吧。这个问题如果没有更高明的解决手段,就可以了段了!谢谢上面朋友的热情参与与帮助!!!!!!!!!!! 应该在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的字段赋值,否则它会以为是修改数据。 是不是要把参与计算的字段都设为Calculated? 不,只要把结果字段设置为Calculated。(一般自动会设置的) 谢谢大家的帮助!这个问题可以结了!总之,dbgrid 帮定的太死了,如果能允许我们自由的添加更改行列就好了! listbox如何保存新增数据 游戏软件是用什么工具开发的? 高手指点:为什么用RESTORE恢复数据库后,数据库成Loading状态? 紧急问题:大家快帮帮忙。 请问在济南找个程序员工作,要上哪个网?,济南的程序员快来帮个忙!!!!!!!! 朋友们,我这里有Delphi控制autocad的OLE特性、方法等操作手册,谁要? 菜鸟问问题! 哪里有WINXP控件下载 如何判断鼠标左键与右键同时按下? 图象识别问题 关于MDIform的简单问题 怎样写这样一个sql语句?答者加分。
表结构为:
表名: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 := '*';
我问题的本意是从数据库里面都取数据,然后断开与数据库的链接
用户对某些行进行操作,我需要额外的一列或多列来标明它们,额外的行也未必就是计算字段
我举的例子,可能描述不清吧。 zou5655(周围) 的解决办法与我的作法一样!
如果 dbgrid 直接允许我们操作相应格子里面的数据,而不像现在强迫我们非要操作帮定的字段
就好了!
这个问题,在 vb 的 msflexgrid里面非常简单,它允许直接读写相应格子里面的数据,但不必更新数据库。
总之,我认为 dephi 里面 dbgrid 功能是好,但帮定的太死了,可选择的太少了。
像 stringgird 又太不好用了。
在 vb 里面,令 grid.datasource=记录集之后,就可以对 格子任意操作,包括添加任意行任意
列,添加或更改任意数据。
这也可能与我的水平有关,只好再慢慢的发掘吧。
这个问题如果没有更高明的解决手段,就可以了段了!谢谢上面朋友的热情参与与帮助!!!!!!!!!!!
DataSet.FieldByName( 'Flag' ).AsString := '×'
else
DataSet.FieldByName( 'Flag' ).AsString := '*';楼上的后半部分跟我的一样,但前半部分不对,不能用SQL的计算字段。Delphi不会认它作计算型
字段的,只会认为它也是数据库中字段。在OnCalcFields中只能给FieldKind为fkCalculated的字段赋值,否则它会以为是修改数据。
这个问题可以结了!
总之,dbgrid 帮定的太死了,如果能允许我们自由的添加更改行列
就好了!