当前位置:主页>仓库管理软件> 列表

在DBgrid中怎样显视与修改 Bit型(TRUE/FAL

财务软件版1楼: 在DBgrid中怎样显视与修改 Bit型(TRUE/FALSE)字段?
在DBGRID中直接显视布尔值字段,则用户看到的是TRUE(或FALSE),不直观,用户不知道意义,也不知道怎样修改;
但如果用计算字段显视布尔值(case xb when 0 then ''男'' when 1 then ''女'' end),
用户是可以直观地看到性别了,但这一列又不能修改,怎办?况且在DBGRID中,不能用下拉列表框来让用户选择值,太不方便了。
各位高手,你们是如果处理类似问题?

2楼: 能用下拉列表框啊 picklist属性 如设备管理软件破解

3楼: 哦
还能禁止其自己输入数据值吗?(只能从下拉框中选择)

4楼: 能啊 keypress事件中
if (DBGrid1.SelectedIndex=2) then
begin
key:=#0;
end;

5楼: 用DBGridEh1吧,上边有个属性Checkboxes设为true就OK了

6楼: 一般都是采用第三方的grid空间,如dxDBGride等,功能强大很多,这类问题就不需要额外去费神了

财务软件版7楼: 萧月禾:将你的dxDBGride控件给我(连同使用心则),行吗:
py6530@163.com

8楼: <况且在DBGRID中,不能用下拉列表框来让用户选择值,太不方便了。>
这是可以实现的啊

9楼: 生成xb的静态字段,然后在OnGetText和OnSetText事件下控制

procedure TForm1.Table1xbGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if Sender.Asinteger=0 then
Text:=''男''
else if Sender.Asinteger=1 then
Text:=''女''
end;

procedure TForm1.Table1xbSetText(Sender: TField; const Text: String);
begin
if Text=''男'' then
Sender.Asinteger:=0
else if Text=''女'' then
Sender.Asinteger:=1
end;

//这只是最简单的写法,具体的写法你要与你数据表中的值对应。

10楼: ip4000中WWDBGRID也不错,做输入界面绝对好,我一直在用。

11楼: 最好的方法就是在数据集里控制,把这个字段的显示值设为男和女就可以了,一句代码都不用写

12楼: jiajiajia888:
最好的方法就是在数据集里控制,把这个字段的显示值设为男和女就可以了,一句代码都不用写
这是相当于计算字段了吧case xb when 0 then ''男'' when 1 then ''女'' end
这样用户能修改吗? 如免费商品管理软件

13楼: to:app2001
生成xb的静态字段,然后在OnGetText和OnSetText事件下控制

请问:这两事件我怎么找不到?(ADOquery中没有,DBGRID中也没有呀),是啥控件的?

财务软件版14楼: 双击ADOquery,在弹出的窗体中生成静态字段,然后你点取这些静态字段,它就有这些事件了,上面的代码改一下。(我一般习惯用男1女0,想像丰富一点,嘿)
procedure TfrmData.TADOquery1xbGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
begin
if sender.Value=1 then Text := ''男'';
if sender.Value=0 then Text := ''女'';
end;
procedure TfrmData.TADOquery1xbSetText(Sender: TField;
const Text: String);
begin
if Text = ''男'' then sender.value :=1;
if Text = ''女'' then sender.value :=0;
end;

15楼: 多人接受答案了。