转至繁体中文版     | 网站首页 | 图文教程 | 资源下载 | 站长博客 | 图片素材 | 武汉seo | 武汉网站优化 | 
最新公告:     敏韬网|教学资源学习资料永久免费分享站!  [mintao  2008年9月2日]        
您现在的位置: 学习笔记 >> 图文教程 >> 软件开发 >> Delphi程序 >> 正文
通用查询组件设计(续二)         ★★★★

通用查询组件设计(续二)

作者:闵涛 文章来源:闵涛的学习笔记 点击数:1304 更新时间:2009/4/23 18:34:37

通用查询组件设计

作者:nxyc_twz@163.com

  前段时间由于工作较忙,无暇整理本组件的相关文档,请大家谅解!以后我会陆续整理公布该组件的所有相关文档及源码!

保存参数值

procedure TDBFilterDialog.SaveParamValues;

var

  i : Integer;

begin

//保存参数值

   for i := 0 to FOriginalVariables.Count - 1 do

     TDBVariable(FOriginalVariables[i]).VariableValue :=

        TQuery(FDataSet).ParamByName(TDBVariable(FOriginalVariables[i]).VariableName).Value;

end;

 

点击确定按钮

procedure TMyDBFilterDialog.btnOkClick(Sender: TObject);

var

  i : Integer;

  f : TMyFieldInfo;

begin

//点击确定按钮

  for i := FPreviousList.Count - 1 downto 0 do

  begin

    TMyFieldInfo(FPreviousList[i]).Free;

    FPreviousList.Delete(i);

  end;

  GetCriteria;//获取标准

  SetCriteria;//设置标准

  for i := 0 to FFilterList.Count - 1 do

  begin

    f := TMyFieldInfo.Create;//字段定义类

    f.Assign(TMyFieldInfo(FFilterList[i]));

    FPreviousList.Add(f);

  end;

end;

 

获取标准

procedure TMyDBFilterDialog.GetCriteria ;

//获取标准

var

  FilterIndex, i : Integer;

begin

  FilterIndex := -1;

  i := 0;

  while (i < FFilterList.Count) and (FilterIndex < 0) do

  begin

    if TMyFieldInfo(FFilterList[i]).DisplayLabel = lstAllFields.Items[LastIndex] then

      FilterIndex := i;

    Inc(i);

  end;

  // This is only enabled when at least one of the fields has entry

  if btnNewSearch.Enabled then

  begin

    // The user added a new criteria

    if FilterIndex < 0 then

    begin

      FFilterList.Add(TMyFieldInfo.Create);

      FilterIndex := FFilterList.Count - 1;

      lstSelectedFields.Items.AddObject(lstAllFields.Items[LastIndex],

        lstAllFields.Items.Objects[LastIndex]);

    end;

    // Set the fields

    with TMyFieldInfo(FFilterList[FilterIndex])  do

    begin

      CaseSensitive := cbxCaseSensitive.Checked;

      DisplayLabel := lstAllFields.Items[LastIndex];

      // Save off the TField for this field

      FieldName := TField(lstAllFields.Items.Objects[LastIndex]).FieldName;

      FieldOrigin := TField(lstAllFields.Items.Objects[LastIndex]).Origin;

      FieldType := TField(lstAllFields.Items.Objects[LastIndex]).DataType;

      // Match Criteria is either Range or one of the other 4

      if pgeCriteria.ActivePage = tabByRange then

        MatchType := fdMatchRange

      else

        MatchType := TDBFilterMatchType(grpSearchType.ItemIndex);

      // Only save the criteria that they want to work with

      if MatchType = fdMatchRange then

      begin

        EndingValue := edtEndingRange.Text;

        StartingValue := edtStartingRange.Text;

        FilterValue := '''''''';

      end

      else

      begin

        EndingValue := '''''''';

        StartingValue := '''''''';

        FilterValue := edtFieldValue.Text;

      end;

      NonMatching := cbxNonMatching.Checked;

    end;

  end

  else

    // The user removed a criteria that existed

    if FilterIndex >= 0 then

    begin

      // remove the Selected list item

      lstSelectedFields.Items.Delete(lstSelectedFields.Items.IndexOf(

           TMyFieldInfo(FFilterList[FilterIndex]).DisplayLabel));

      // Free the FieldInfo Object

      TMyFieldInfo(FFilterList[FilterIndex]).Free;

      // Delete it from the list

      FFilterList.Delete(FilterIndex);

      if

[1] [2] [3]  下一页


没有相关教程
教程录入:mintao    责任编辑:mintao 
  • 上一篇教程:

  • 下一篇教程:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
      注:本站部分文章源于互联网,版权归原作者所有!如有侵权,请原作者与本站联系,本站将立即删除! 本站文章除特别注明外均可转载,但需注明出处! [MinTao学以致用网]
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)

    同类栏目
    · C语言系列  · VB.NET程序
    · JAVA开发  · Delphi程序
    · 脚本语言
    更多内容
    热门推荐 更多内容
  • 没有教程
  • 赞助链接
    更多内容
    闵涛博文 更多关于武汉SEO的内容
    500 - 内部服务器错误。

    500 - 内部服务器错误。

    您查找的资源存在问题,因而无法显示。

    | 设为首页 |加入收藏 | 联系站长 | 友情链接 | 版权申明 | 广告服务
    MinTao学以致用网

    Copyright @ 2007-2012 敏韬网(敏而好学,文韬武略--MinTao.Net)(学习笔记) Inc All Rights Reserved.
    闵涛 投放广告、内容合作请Q我! E_mail:admin@mintao.net(欢迎提供学习资源)

    站长:MinTao ICP备案号:鄂ICP备11006601号-18

    闵涛站盟:医药大全-武穴网A打造BCD……
    咸宁网络警察报警平台