起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 250|回复: 4

【搞定】动态查找属性出错**

[复制链接]
发表于 2007-6-16 17:27:56 | 显示全部楼层 |阅读模式
请教高人:我设置动态查找属性后,界面上可以显示下拉框,但是一点总是报“无效的连接参数(空)”。我设置动态属性的代码如下:
procedure TLXTJSZ.FormDocCreate(Sender: TObject);
begin
    //定义动态查找属性
    TSQLDataSet(DataSetBrokerLXTJZD.DataSet).Open;// 先打开数据集
    TSQLDataSet(DataSetBrokerLXTJZD.DataSet).FindBizField('BLZ').LookupDef.Kind := TLookupKind.lkDataValues;             //查找类型
    TSQLDataSet(DataSetBrokerLXTJZD.DataSet).FindBizField('BLZ').LookupDef.ValidateKind   := TLookupValidateKind.vkMust; //查找值范围
    TSQLDataSet(DataSetBrokerLXTJZD.DataSet).FindBizField('BLZ').LookupDef.SQL.Text       := '';                         // 查找数据集的SQL 语句
    TSQLDataSet(DataSetBrokerLXTJZD.DataSet).FindBizField('BLZ').LookupDef.KeyField       := 'TJZDLX';                       //关键字段
    TSQLDataSet(DataSetBrokerLXTJZD.DataSet).FindBizField('BLZ').LookupDef.DisplayField   := 'TJZDLX';                       //显示字段
    TSQLDataSet(DataSetBrokerLXTJZD.DataSet).FindBizField('BLZ').LookupDef.DropDownButton := True;                       //是否显示下拉

    //为查找属性的SQL语句赋值
    with TSQLDataSet(DataSetBrokerLXTJZD.DataSet) do
    begin
     //close;    // 必须要先打开,再关闭
     TSQLDataSet(DataSetBrokerLXTJZD.DataSet).BizFieldByName('BLZ').LookupDef.SQL.Text := 'SLECT EXP_CONDITOINFIELD.TJZDLX FROM EXP_CONDITOINFIELD';
     //open;
    end;
end;

另外atiger说“需要在业务信息的数据集的字段编辑器上,增加需要修改查找属性的这个字段”,呵呵,添加什么类型的字段呀,不明白!
回复

使用道具 举报

发表于 2007-6-18 10:02:34 | 显示全部楼层
在数据集的字段编辑器上添加数据字段。
回复 支持 反对

使用道具 举报

发表于 2007-6-18 12:04:55 | 显示全部楼层
加一句DataBase属性定义,另外你一楼的
   TSQLDataSet(DataSetBrokerLXTJZD.DataSet).BizFieldByName('BLZ').LookupDef.SQL.Text := 'SLECT EXP_CONDITOINFIELD.TJZDLX FROM EXP_CONDITOINFIELD';
中的select写错了

procedure TMainForm.BizFormShow(Sender: TObject);
begin
  //定义动态查找属性
  TSQLDataSet(DataSetBroker1.DataSet).Open;             //先打开数据集
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('KHID').LookupDef.Kind := TLookupKind.lkDataValues;               //查找类型
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('KHID').LookupDef.ValidateKind   := TLookupValidateKind.vkMust; //查找值范围
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('KHID').LookupDef.DataBase.URL := 'Biz:\NRJBYWKJ\OAYWSJK.DATABASE';
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('KHID').LookupDef.SQL.Text := '';   // 查找数据集的SQL 语句
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('KHID').LookupDef.KeyField       := 'ddid';                  //关键字段
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('KHID').LookupDef.DisplayField   := 'cpid';              //显示字段
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('KHID').LookupDef.DropDownButton := True;                        //是否显示下拉


//为查找属性的SQL语句赋值
  with TSQLDataSet(DataSetBroker1.DataSet) do
  begin
    TSQLDataSet(DataSetBroker1.DataSet).BizFieldByName('KHID').LookupDef.SQL.Text:= 'SELECT ddid,cpid FROM DDCB';
  end;

end;


2楼不用管,不需要加数据字段。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-19 08:01:59 | 显示全部楼层

多谢

我等会试一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-6-19 13:23:37 | 显示全部楼层

搞掂了 多谢

呵呵 问题解决了 谢谢
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-11 20:41 , Processed in 0.040491 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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