起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 447|回复: 16

【结帖】动态查找属性 问题**

[复制链接]
发表于 2007-10-24 17:19:11 | 显示全部楼层 |阅读模式
在dataedit的单击事件中写有下面这些代码,但是 单击dataedit时,没有出现下拉框。 代码是执行了的。 谢谢!
//定义动态查找属性
  TSQLDataSet(DataSetBroker1.DataSet).Open;             //先打开数据集
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.Kind:= TLookupKind.lkDataValues;               //查找类型
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.ValidateKind:= TLookupValidateKind.vkMust; //查找值范围
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.DataBase.URL:= 'Biz:\BDSCGLXT\BDSJK.Database';
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.SQL.Text:='';   // 查找数据集的SQL 语句
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.KeyField:=dedtCodeFieldName.Text.Trim;                  //关键字段
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.DisplayField:=dedtCodeShowName.Text.Trim;              //显示字段
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.DropDownButton:=True;                        //是否显示下拉


  //为查找属性的SQL语句赋值
  with TSQLDataSet(DataSetBroker1.DataSet) do
  begin
    //temp:='SELECT '+dedtCodeFieldName.Text.Trim+','+dedtCodeShowName.Text.Trim+' FROM '+dedtCodeTabname.Text.Trim;
    TSQLDataSet(DataSetBroker1.DataSet).BizFieldByName('sParValue').LookupDef.SQL.Text:='SELECT '+dedtCodeFieldName.Text.Trim+','+dedtCodeShowName.Text.Trim+' FROM '+dedtCodeTabname.Text.Trim;
  end;
回复

使用道具 举报

 楼主| 发表于 2007-10-25 09:23:06 | 显示全部楼层
以前,先做过 动态查找属性,但没有实现。当时,是用 Combobox 来实现的。效果不是很好!

把代码
//定义动态查找属性
  TSQLDataSet(DataSetBroker1.DataSet).Open;             //先打开数据集
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.Kind:= TLookupKind.lkDataValues;               //查找类型
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.ValidateKind:= TLookupValidateKind.vkMust; //查找值范围
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.DataBase.URL:= 'Biz:BDSCGLXTBDSJK.Database';
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.SQL.Text:='';   // 查找数据集的SQL 语句
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.KeyField:=dedtCodeFieldName.Text.Trim;                  //关键字段
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.DisplayField:=dedtCodeShowName.Text.Trim;              //显示字段
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('sParValue').LookupDef.DropDownButton:=True;                        //是否显示下拉

写到BizFormCreate中时,会出现下拉框。但点击时,会报错:

动态查找属性错误1.jpg

8.52 KB, 下载次数: 245

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-25 09:24:35 | 显示全部楼层
点击2楼错误中的“确定”后,又弹出了新的错误:

动态查找属性错误2.jpg

11.51 KB, 下载次数: 237

回复 支持 反对

使用道具 举报

发表于 2007-10-25 09:41:22 | 显示全部楼层
动态修改查找属性后执行LayOutChange方法

TBizDataSet(DataSetBroker1.DataSet).LayoutChange;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-25 09:56:16 | 显示全部楼层
真的,可以了。 能告诉我,这句代码的意思吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-25 09:59:11 | 显示全部楼层
这样,点击下拉框: 显示关键字段和查找字段。如何,只显示 查找字段(隐藏关键字段)呢?
回复 支持 反对

使用道具 举报

发表于 2007-10-25 11:57:43 | 显示全部楼层
要养成不同问题单独开贴的好习惯。
这样我们回起来方便,您找起来也方便。

12.png

22.54 KB, 下载次数: 228

回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-25 12:44:00 | 显示全部楼层
谢谢您!
在代码中可以实现吗, 因为 表,显示字段,关键字段,都是动态的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-25 12:44:56 | 显示全部楼层
我这是 同一问题。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-10-25 12:45:56 | 显示全部楼层
在动态查找属性中,能否通过设置, 达到只显示 显示字段的目的。谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-6-30 06:36 , Processed in 0.041612 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表