网站导航免费论文 原创论文 论文搜索 原创论文 网学软件 学术大家 资料中心 会员中心 问题解答 原创论文 论文素材 设计下载 最新论文 下载排行 论文上传 在线投稿 联系我们
返回网学首页
网学联系
最新论文 推荐专题 热门论文 素材专题
当前位置: 网学 > 编程文档 > DELPHI > 正文
用Delphi的Tquery控件充分发挥数据库系统SQL功能
来源:Http://myeducs.cn 联系QQ:点击这里给我发消息 作者: 用户投稿 来源: 网络 发布时间: 12/10/12
下载{$ArticleTitle}原创论文样式
mrOK then

   begin

   Tryjbqk.DisableControls;

   Tryjbqk.Locate(''身份证'',DynamicQuery.FieldByName(''身份证'').Value,);

   Tryjbqk.EnableControls;

   end;

   end;

  end;

  end;


  二、动态计算、修改数据库记录的实现



  图二

  {下面的过程是在用户按下“产生复合条件”按钮后执行的,它的任务是调用生成复
合条件的对话框,并将结果返回给工资项计算定义表(下面有解释)的SubQuery字段,
并显示到如图上“#3> =0”显示的Memo框上 }

  procedure TGzxFzjsDlg.GeneratingComplexBtnClick(Sender: TObject);

  begin

  { 调用生成复杂表达式的对话框,即(一)图 所示的对话框 }

  if MergeConditionDlg.ShowModal = mrOK then

  begin

  { Tgzxjs 为 Class(Ttable),是一个存放工资项字段计算表达式的表,
它由gzx(对应工资表中的工资项)、bh(计算定义的编号,同时也决定批量计算的顺序
)、isCurrent(在批量处理时是否被计算)、SingleExp(简单的计算表达式,实际的
表达式由于在该版本的Delphi中不能正常处理Text字段,而以文件形式被存放在硬盘上)、
SubQuery(执行的限制条件,即该项定义的计算只对符合条件的工资表记录进行计算)
等5字段组成,该表的SubQuery字段被修改后,自动调用一个过程,将对应的计算表达式
删除 }

   DataFrm.Tgzxjs.Edit;

   if MergeConditionDlg.MainCondition.Text = '''' then

   begin

   if MergeConditionDlg.SubCondition.Text = '''' then

   DataFrm.TgzxjsSubQuery.AsString := ''''

   else

   DataFrm.TgzxjsSubQuery.AsString := ''身份证 IN (SELECT 身份证 FROM 人员基
本情况 WHERE ''+ MergeConditionDlg.SubCondition.Text+'') '';

   end

   else

   begin

   if MergeConditionDlg.SubCondition.Text = '''' then

   DataFrm.TgzxjsSubQuery.AsString := MergeConditionDlg.MainCondition.Text

   else

   DataFrm.TgzxjsSubQuery.AsString := ''(''+MergeConditionDlg.MainCondition.Text+'')
AND (身份证 IN (SELECT 身份证 FROM 人员基本情况 WHERE ''+ MergeConditionDlg.SubCondition.Text+'')) '';

   end;

  end;

  end;

  {下面的过程是在用户按下“加单一工资项值表达式”按钮后执行的,
它的任务是调用标准的输入的对话框,并将用户输入的简单算术表达式加到工资项计算表
达式上}

  procedure TGzxFzjsDlg.AddSingleExpClick(Sender: TObject);

  var

  InputValue :String;

  begin

  InputValue := InputBox(''工资项值运算表达式输入框'',''#1,#2--#40、数字、
运算符组成,如#3、(#3+#8)*0.15、#4-#6+#40+18等等:'','''');

  DataFrm.Tgzxjs.Edit;

  GzxFzjsDlg.Expression.Text := GzxFzjsDlg.Expression.Text + InputValue;

  DataFrm.TgzxjsSingleExp.Value := DataFrm.TgzxjsSingleExp.Value + InputValue;

  DataFrm.Tgzxjs.Post;

  end;

  {下面的过程是在用户按下“清空计算表达式”按钮后执行的,它的任务是计算表达
式清空}

  procedure TGzxFzjsDlg.SpeedButton4Click(Sender: TObject);

  begin

   DataFrm.Tgzxjs.Edit;

   GzxFzjsDlg.Expression.Text := '''';

   DataFrm.TgzxjsSingleExp.AsString := '''';

   DataFrm.Tgzxjs.Post;

  end;

  {下面的过程是在用户按下“加合计函数表达式”按钮后执行的,它的任务是调用生
成合计函数表达式的的SUMExpressionDlg对话框,这里使用的合计函数有合计值(SUM)
、平均值(AVG)、最大值(MAX)、最小值(MIN)、记录数(COUNT)等5种,并将结果
加到计算表达式
  • 上一篇资讯: 判断MS SQL Server是否启动
  • 下一篇资讯: Delphi COM编程的一个BUG
  • 网学推荐

    免费论文

    原创论文

    浏览:
    设为首页 | 加入收藏 | 论文首页 | 论文专题 | 设计下载 | 网学软件 | 论文模板 | 论文资源 | 程序设计 | 关于网学 | 站内搜索 | 网学留言 | 友情链接 | 资料中心
    版权所有 QQ:3710167 邮箱:3710167@qq.com 网学网 [Myeducs.cn] 您电脑的分辨率是 像素
    Copyright 2008-2015 myeducs.Cn www.myeducs.Cn All Rights Reserved
    湘ICP备09003080号