起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 248|回复: 6

动态改变查找属性定义中的SQL语句问题**

[复制链接]
发表于 2008-2-20 15:07:17 | 显示全部楼层 |阅读模式
请问如何根据不同条件动态地改变查找属性定义中的SQL语句?
谢谢!
回复

使用道具 举报

发表于 2008-2-20 15:28:50 | 显示全部楼层
代码定义查找属性

//定义动态查找属性
  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.SQL.Text := '';                          // 查找数据集的SQL 语句
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('KHID').LookupDef.KeyField       := 'KHBH';                  //关键字段
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('KHID').LookupDef.DisplayField   := 'KHMC';              //显示字段
  TSQLDataSet(DataSetBroker1.DataSet).FindBizField('KHID').LookupDef.DropDownButton := True;                        //是否显示下拉


//为查找属性的SQL语句赋值
  with TSQLDataSet(DataSetBroker1.DataSet) do
  begin
    TSQLDataSet(DataSetBroker1.DataSet).BizFieldByName('KHID').LookupDef.SQL.Text:= 'SELECT KHBH,KHMC FROM KHJBXXB';
  end;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-20 15:36:21 | 显示全部楼层
我现在的实现方式如下:
1、已经通过配置定义了查找属性的一种条件下的SQL语句: SQL1。
2、在新建记录时,我按照你的方法对TSQLDataSet(DataSetBroker1.DataSet).BizFieldByName('KHID').LookupDef.SQL.Text 赋值: SQL2。

在编辑时查找内容仍旧是按预先定义的SQL1进行查找。不知如何解决,难道必须用代码动态定义一个查找属性。
谢谢
回复 支持 反对

使用道具 举报

发表于 2008-2-20 15:40:22 | 显示全部楼层
对查找属性的修改需要重新打开一次当前业务数据集才能生效。
或者直接刷新查找数据
DataSetM.GetLookupData('content').Refresh;
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-20 15:45:12 | 显示全部楼层
代码如下:
procedure TCKSQInfo.DataSetCKSQZBNewRecord(DataSet: TDataSet);

begin

  DataSetCKSQZB.FindBizField('ParterId').LookupDef.SQL.Text := 'SELECT PARTNER.PCODE, PARTNER.PNAME FROM PARTNER';
  //DataSetCKSQZB.LayoutChange;
  DataSetCKSQZB.GetLookupData('ParterId').Refresh;
end;

问题出在何处?
回复 支持 反对

使用道具 举报

发表于 2008-2-20 18:18:33 | 显示全部楼层
修改查找属性后可以不必重新打开数据集,调用下面的语句来刷新
TSQLDataSet(DataSetBroker1.DataSet).LayoutChange;
回复 支持 反对

使用道具 举报

发表于 2008-2-22 17:14:56 | 显示全部楼层
楼主,还有问题吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 07:16 , Processed in 0.042323 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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