am_dz_cxs.pas
上传用户:szruida
上传日期:2007-06-01
资源大小:6518k
文件大小:6k
源码类别:

Delphi控件源码

开发平台:

Delphi

  1. unit am_dz_cxs;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  5.   Dialogs, Buttons, StdCtrls, Mask, DBCtrlsEh, ExtCtrls, DB, DBClient;
  6. type
  7.   Tam_dz_cx = class(TForm)
  8.     Panel1: TPanel;
  9.     Label1: TLabel;
  10.     Label2: TLabel;
  11.     Label3: TLabel;
  12.     Label4: TLabel;
  13.     ComboBox1: TComboBox;
  14.     ComboBox2: TComboBox;
  15.     DBDateTimeEditEh1: TDBDateTimeEditEh;
  16.     ComboBox3: TComboBox;
  17.     Edit1: TEdit;
  18.     Edit2: TEdit;
  19.     Panel2: TPanel;
  20.     BitBtn2: TSpeedButton;
  21.     BitBtn1: TSpeedButton;
  22.     SpeedButton1: TSpeedButton;
  23.     SpeedButton2: TSpeedButton;
  24.     ClientDataSet1: TClientDataSet;
  25.     procedure BitBtn2Click(Sender: TObject);
  26.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  27.     procedure FormCreate(Sender: TObject);
  28.     procedure SpeedButton2Click(Sender: TObject);
  29.     procedure SpeedButton1Click(Sender: TObject);
  30.     procedure ComboBox1Change(Sender: TObject);
  31.     procedure ComboBox2Change(Sender: TObject);
  32.     procedure ComboBox3Change(Sender: TObject);
  33.     procedure BitBtn1Click(Sender: TObject);
  34.   private
  35.     { Private declarations }
  36.   public
  37.     { Public declarations }
  38.   end;
  39. var
  40.   am_dz_cx: Tam_dz_cx;
  41.   str,s_zdm,s_logic,s_tj:string;//查找字符串,字段名
  42. Const ss:array [0..7] of string=('dz_dm','dz_xm','dz_dw','dz_lxdh','dz_lxdz','zjlb_mc','dz_zjh','dz_djsj');
  43. implementation
  44. uses DMs;
  45. {$R *.dfm}
  46. procedure Tam_dz_cx.BitBtn2Click(Sender: TObject);
  47. begin
  48.  close;
  49. end;
  50. procedure Tam_dz_cx.FormClose(Sender: TObject; var Action: TCloseAction);
  51. begin
  52.  action:=cafree;
  53.  am_dz_cx:=nil;
  54. end;
  55. procedure Tam_dz_cx.FormCreate(Sender: TObject);
  56. begin
  57.   Combobox1.Clear;
  58.   Combobox1.Items.add('读者代码');
  59.   Combobox1.Items.add('姓名');
  60.   Combobox1.Items.add('读者单位');
  61.   Combobox1.Items.add('联系电话');
  62.   Combobox1.Items.add('联系地址');
  63.   Combobox1.Items.add('证件类别');
  64.   Combobox1.Items.add('证件号');
  65.   Combobox1.Items.add('登记时间');
  66. end;
  67. procedure Tam_dz_cx.SpeedButton2Click(Sender: TObject);
  68. begin
  69.  combobox1.ItemIndex:=-1;
  70.  combobox2.ItemIndex:=-1;
  71.  edit1.Text:='';
  72.  combobox3.ItemIndex:=-1;
  73.  edit2.text:='';
  74. end;
  75. procedure Tam_dz_cx.SpeedButton1Click(Sender: TObject);
  76. begin
  77.  s_logic:='';
  78.  if trim(Combobox1.Text)='' then
  79.    begin
  80.     application.MessageBox('字段名称不能为空','提示',mb_ok+mb_iconinformation);
  81.     exit;
  82.    end;
  83.  if trim(Combobox2.Text)='' then
  84.    begin
  85.     application.MessageBox('条件不能为空','提示',mb_ok+mb_iconinformation);
  86.     exit;
  87.    end;
  88.    //有效性验证
  89.  case combobox3.ItemIndex of
  90.   0:  s_logic:=' and ';
  91.   1:  s_logic:=' or ';
  92.  end;
  93.  if Combobox2.Text='模糊查询' then
  94.    Edit2.Text:=Edit2.Text+s_zdm+' '+' like '+' '+''''+trim(edit1.Text)+'%'+''''+' '+s_logic+' '
  95.  else if combobox1.Text='登记时间' then
  96.   begin
  97.    Edit2.Text:=Edit2.Text+s_zdm+' '+combobox2.Text+' '+''''+DBDateTimeEditEh1.Text+''''+' '+s_logic+' ';   end
  98.  else
  99.    Edit2.Text:=Edit2.Text+s_zdm+' '+combobox2.Text+' '+''''+trim(edit1.Text)+''''+' '+s_logic+' ';
  100.  combobox1.ItemIndex:=-1;
  101.  combobox2.ItemIndex:=-1;
  102.  edit1.Text:='';
  103.  combobox3.ItemIndex:=-1;
  104.  SpeedButton1.Enabled:=false;
  105. end;
  106. procedure Tam_dz_cx.ComboBox1Change(Sender: TObject);
  107. begin
  108.   s_zdm:=ss[combobox1.itemindex];//以上是获得下拉框中的值
  109.  if combobox1.Text='登记时间' then
  110.    begin
  111.     combobox2.Clear;
  112.     combobox2.Items.Add('=');
  113.     combobox2.Items.Add('<>');
  114.     combobox2.Items.Add('<');
  115.     combobox2.Items.Add('>');
  116.     combobox2.Items.Add('>=');
  117.     combobox2.Items.Add('<=');
  118.    end
  119.   else
  120.    begin
  121.     combobox2.Clear;
  122.     combobox2.Items.Add('=');
  123.     combobox2.Items.Add('<>');
  124.     combobox2.Items.Add('模糊查询');
  125.    end;
  126. end;
  127. procedure Tam_dz_cx.ComboBox2Change(Sender: TObject);
  128. begin
  129.  if combobox1.Text='登记时间' then
  130.    begin
  131.     DBDateTimeEditEh1.Visible:=true;
  132.     edit1.Visible:=false;
  133.    end
  134.  else
  135.    begin
  136.     DBDateTimeEditEh1.Visible:=false;
  137.     edit1.Visible:=true;
  138.    end;
  139. end;
  140. procedure Tam_dz_cx.ComboBox3Change(Sender: TObject);
  141. begin
  142.  if trim(Combobox1.Text)='' then
  143.    begin
  144.     application.MessageBox('字段名称不能为空','提示',mb_ok+mb_iconinformation);
  145.     exit;
  146.    end;
  147.  if trim(Combobox2.Text)='' then
  148.    begin
  149.     application.MessageBox('条件不能为空','提示',mb_ok+mb_iconinformation);
  150.     exit;
  151.    end;
  152.  s_logic:='';
  153.  case combobox3.ItemIndex of
  154.   0:  s_logic:=' and ';
  155.   1:  s_logic:=' or ';
  156.  end;
  157.  SpeedButton1.Enabled:=true;
  158. end;
  159. procedure Tam_dz_cx.BitBtn1Click(Sender: TObject);
  160. var S_Edit,Hint:string;
  161. begin
  162.  S_Edit:=Edit2.Text;
  163.  if trim(Combobox1.Text)='' then
  164.    begin
  165.     application.MessageBox('字段名称不能为空','提示',mb_ok+mb_iconinformation);
  166.     exit;
  167.    end;
  168.  if trim(Combobox2.Text)='' then
  169.    begin
  170.     application.MessageBox('条件不能为空','提示',mb_ok+mb_iconinformation);
  171.     exit;
  172.    end;
  173.  //----------------------------------
  174.  if trim(Edit2.Text)='' then
  175.   begin
  176.     if Combobox2.Text='模糊查询' then
  177.      str:=s_zdm+' '+' like '+' '+''''+trim(edit1.Text)+'%'+''''
  178.     else
  179.      str:=s_zdm+' '+combobox2.Text+' '+''''+trim(edit1.Text)+'''';
  180.   end
  181.  else
  182.   begin
  183.     if Combobox2.Text='模糊查询' then
  184.        str:=s_Edit+s_zdm+' '+' like '+' '+''''+trim(edit1.Text)+'%'+''''
  185.     else if combobox1.Text='登记时间' then
  186.        str:=s_Edit+s_zdm+' '+combobox2.Text+' '+''''+DBDateTimeEditEh1.Text+''''
  187.     else
  188.        str:=s_Edit+s_zdm+' '+combobox2.Text+' '+''''+trim(edit1.Text)+'''';
  189.   end;
  190.  //---------------------------------
  191.   ClientDataSet1.Close;
  192.   ClientDataSet1.CommandText:='select * from V_DZ where '+str;
  193.   ClientDataSet1.Open;
  194.   dm.v_dz.active:=false;
  195.   dm.v_dz.active:=true;
  196.   dm.V_DZ.Data:=ClientDataSet1.Data;
  197.   if Clientdataset1.RecordCount=0 then
  198.      application.MessageBox('没有找到符合条件的纪录','提示',mb_ok+mb_iconinformation)
  199.   else
  200.    begin
  201.      Hint:='当前表中有'+IntToStr(Clientdataset1.RecordCount)+'条记录符合条件';
  202.      application.MessageBox(Pchar(hint),'提示',mb_ok+mb_iconinformation);
  203.    end;
  204. end;
  205. end.