一.有一个表,里面有一列为confirmed,内容为Y,N;现在我要在DBGRID里显示这一列的内容,如果confirmed为Y,就付值"已送仓",否则就"未送仓"(DBGRID 用DataSource 和 Query连接),我在QUERY的OnCalcFields写事件代码如下(为什么程序打开后confirmed那一列的内容没有变化?请高手指点!):
procedure Tfrmrd101.MasterQueryCalcFields(DataSet: TDataSet);
begin
MasterQuery.Edit;
if MasterQuery.FieldByName('Confirmed').Asstring='Y' then
MasterQuery.FieldByName('Confirmed').Asstring:='已送倉'
else
MasterQuery.FieldByName('confirmed').Asstring:='未送倉' ;
MasterQuery.Post ;
end;
procedure Tfrmrd101.MasterQueryCalcFields(DataSet: TDataSet);
begin
MasterQuery.Edit;
if MasterQuery.FieldByName('Confirmed').Asstring='Y' then
MasterQuery.FieldByName('Confirmed').Asstring:='已送倉'
else
MasterQuery.FieldByName('confirmed').Asstring:='未送倉' ;
MasterQuery.Post ;
end;
我就不丢人现眼了不过好像直接用sql 的case 更加方便
(2)
procedure Tfrmrd101.MasterQueryCalcFields(DataSet: TDataSet);
begin
if MasterQuery.FieldByName('Confirmed').Asstring='Y' then
MasterQuery.FieldByName('计算字段').Asstring:='已送倉'
else
MasterQuery.FieldByName('计算字段').Asstring:='未送倉' ;
MasterQuery.Post ;
end;
你点名要你的旺仔哥哥,我怎么好意思抢呢!
楼下的兄弟,排队,等旺仔哥哥来,不要插队
To:wxmwxmwxm(毛毛毛毛)
给旺仔哥哥留个位置,不要乱抢嘛 :)
begin
with DataSet do begin
if UpperCase(FieldByName('Confirmed').Asstring)='Y' then
MasterQuery.FieldByName('Confirmed').Asstring:='已送倉'
else
FieldByName('confirmed').Asstring:='未送倉' ;
end;
end;
别人已经很亲切的叫你GG了,看似和你很熟悉的样子,你然后很激动地回答问题的说,然后突然又有一个天--------------------大的问号挂在脑袋上:
if 兰妹 then
激动
else
失落-激动(又多了一个mm)
然後在onSetText()事件里改回去:"已送仓"付值Y ,否则就N
在DBGridDrawColumnCell,里面判断,用canvas textout 显示,而不是改变!!you know?
5分的帖子吸引了这么多人
在字段编辑器里面, 右键 先Add All Fields, 再 New Field
Name: fldYes
Type: string
Size: 10;
选中 Calcultated. 确定.再写下面的代码
procedure Tfrmrd101.MasterQueryCalcFields(DataSet: TDataSet);
begin
with DataSet do begin
if UpperCase(FieldByName('Confirmed').Asstring)='Y' then
FieldByName('fldYes').Asstring:='已送倉' //注意这行
else
FieldByName('fldYes').Asstring:='未送倉' ;
end;
end;
ALTER TABLE rd_itemcode drop COLUMN sendwh
它提示说语法不正确!!急~~~~~~~~~~~~~~~
感动
Rubi,你要知道,在我们那个DELPHI群里,人气是很旺的,如果不积极回答问题,谁进去啊!本来加入群就是为了学习!我承认我是菜鸟,可是你们也不必一班人来攻击我们吧?!哼,我下个星期就可以用QQ了,不用在这里受你们的气!!!!!
再说,大家也都是来热闹下,没有谁攻击你啊,郁闷
这个帖子还成为了48小时最热贴,给D版带来了多大的热量阿!
你来了其实还是很受欢迎的,以后要常来啊
select ...,(Case confirmed When 'Y' THen '已送仓' Else '未送仓' End) as confirmed
from 表名,
不用在事件里判断,不准确
建议在取数据的时候处理Query.sql.text:='select (case confirmed when ''Y'' then ''已送仓'' else ''未送仓'')
from table1 where ....'
//这样你只需要读到DBGrid就可以了,不需要再作处理
//少了end
谢谢大家关注了,这个问题已经解决了.就是在QUERY里不能用CASE语句,所以晕的要死~~~~~~~~
MasterQuery.FieldByName('Confirmed').Asstring:='已送倉'
else
因为你在这里没有POST
if MasterQuery.FieldByName('Confirmed').Asstring='Y' then
begin
MasterQuery.FieldByName('Confirmed').Asstring:='已送倉';
MasterQuery.Post;
end else
D版的风景,要求加精...
呵呵,
1、MM首先在网上发帖子寻找因为种种原因失去联系的GG
2、在大家的猜测中,GG出现了
3、....GGMM热烈交谈中
4、问题出现:GG的老婆出现了
5、....Rubi一直在故事中占据重要戏份
6、Rubi能不能抢过GG的风头,成为这个帖子的主宰那?
我们持续关注...