|
发表于 2004-5-20 14:18:14
|
显示全部楼层
关于 BuildFilter 的使用
1、方法:
关于 BuildFilter 的方法,BuildFilter 有两种写法:(这两种方法都可以是一样的)
方法一、Business.Model.BizUtils.BuildFilter(lFilter, Context, lDatabaseURL, lSQLText, nil)
procedure TMainForm.Button1Click(Sender: TObject);
var
lFilter:string;
lDatabaseURL:string;
lSQLText:string;
begin
lDatabaseURL := 'Biz:\ZSSC\ZSLIMS.Database';
lSQLText := 'SELECT * FROM WTDB';
lFilter := 'WTDB.WTDH=''444''';
if Business.Model.BizUtils.BuildFilter(lFilter, Context, lDatabaseURL, lSQLText, nil) then
begin
TSQLDataSet(DataSetBroker1.DataSet).UserFilter := lFilter;
end;
end;
BuildFilter 中的参数:
第一个 :过滤的条件
第二个 :启动一个上下关联的作用,就写 Context
第三个 :数据集的数据库连接字符串
第四个 : 数据集的 SQL 语句
第五个 : 指的在数据集中的 SQL 语句中使用到的参数
如果想弹出那个过滤的界面,那么可以使用 TSQLDataSet(DataSetBroker1.DataSet).RunDBFilter;这句话就可以了;如果想给这个过滤某个初始值,那么你就使用上面那段代码
方法二、lSQLDataSet.BuildFilter(lFilter, lSQLDataSet.FilterFields);
var
lFilter: string;
lSQLDataSet: TSQLDataSet;
//lS: TStrings;
begin
{lS := TStringList.Create;
try
lS.Add('zd1');
lS.Add('zd1');}
lSQLDataSet := TSQLDataSet(DataSetBroker1.DataSet);
lFilter := 'DataSetBroker1.DataSet.FieldByName(''TB_XJBLB_XJXH'').AsString:=''1''';
lSQLDataSet.BuildFilter(lFilter, lSQLDataSet.FilterFields); { 第一个参数,传的是一个过滤的条件,第二个参数,传的是显示那些字段,默认可以写成 nil }
{finally
lS.Free;
end;}
end;
说明:BuildFilter 中只能是“数据字段”,即实际的物理字段 |
|