起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 348|回复: 15

【搞定】窗体调用的过滤问题**

[复制链接]
发表于 2007-8-17 11:16:57 | 显示全部楼层 |阅读模式
我们想通过“原合同编号”=“合同编号”来实现窗体的过滤,我们在在弹出的那个窗体上定义一个变量,在按钮Click事件里给这个变量赋值,在弹出窗体的open事件里根据这个变量过滤,可是实现不了过滤功能,怎么回事?

f.png

42.88 KB, 下载次数: 201

回复

使用道具 举报

发表于 2007-8-17 11:50:11 | 显示全部楼层
你是怎么实行的,把代码贴出来看看
回复 支持 反对

使用道具 举报

发表于 2007-8-17 15:21:31 | 显示全部楼层
主窗体代码 :
procedure THTFKJTZ.Button1Click(Sender: TObject);

var
    lForm: HTJBXX.THTXX;
  begin
    lForm :=  HTJBXX.THTXX.Create(Self.Context);
    try
     lForm.lStr := FK.DataSet.FieldByName('YHTBH').AsString;
      lForm.ShowModal;
    finally
      lForm.Free;
    end;
  end;

被调用窗体的代码:
unit HTXX;

interface

uses
  Business.System, Business.Model, Business.Forms, Business.Data, Business.Model;

type
  THTXX = class(TForm)
    FuncBroker: TFuncBroker;
    InfoBrokerHTXX: TInfoBroker;
    ControlBar: TControlBar;
    DataNavigator: TDataNavigator;
    DocViewBar: TDocViewBar;
    PageControl: TPageControl;
    TabSheet: TTabSheet;
    DocViewHTXX_HTBD: TDocView;
    TabSheet1: TTabSheet;
    DocViewHTXX_XMXXB: TDocView;

    DataSetBroker1: TDataSetBroker;
    procedure DocViewHTXX_HTBDOpen(Sender: TObject);
  private
    {private declarations}
  public
    {public declarations}
      lStr : String;
  end;

implementation


procedure THTXX.DocViewHTXX_HTBDOpen(Sender: TObject);
begin
  if lStr <> '' then
  begin
  //过滤出FID为lStr数值的数据
  DataSetBroker1.DataSet.Filtered := False;
DataSetBroker1.DataSet.Filter := ' HTBH = ''' + lStr + '''';
  DataSetBroker1.DataSet.Filtered := True;
  end;
end;



end.
回复 支持 反对

使用道具 举报

发表于 2007-8-17 15:48:32 | 显示全部楼层
楼主,把这段代码写到窗体的OnShow事件中试试看
procedure THTXX.DocViewHTXX_HTBDOpen(Sender: TObject);
begin
  if lStr <> '' then
  begin
  //过滤出FID为lStr数值的数据
  DataSetBroker1.DataSet.Filtered := False;
DataSetBroker1.DataSet.Filter := ' HTBH = ''' + lStr + '''';
  DataSetBroker1.DataSet.Filtered := True;
  end;
end;
回复 支持 反对

使用道具 举报

发表于 2007-8-17 16:07:28 | 显示全部楼层
不行啊 ,合同信息窗体还是最新的,不能过滤
回复 支持 反对

使用道具 举报

发表于 2007-8-17 16:13:35 | 显示全部楼层
你别设filter,看看弹出的窗口能不能用上一条,下一条的访问到你要的数据?
回复 支持 反对

使用道具 举报

发表于 2007-8-17 16:23:47 | 显示全部楼层
不会啊,我试过可以过滤的阿!
是否保存编译迁入刷新缓存了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-17 16:31:13 | 显示全部楼层
这样是能找到,但是合同要是多的话,客户是不方便的
回复 支持 反对

使用道具 举报

 楼主| 发表于 2007-8-17 17:46:42 | 显示全部楼层
帮忙看看
回复 支持 反对

使用道具 举报

发表于 2007-8-18 10:02:42 | 显示全部楼层
如果是1对1的合同,可以试试Locate 定位
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-1-14 02:14 , Processed in 0.041000 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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