⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zfrm_projectqueryu.pas

📁 专业的评标管理系统
💻 PAS
字号:
{
'┌───────────────────────────────────┐
'│**********************************************************************│
'│*** 文件名称:zfrm_ProjectQueryU                                     *│
'│*** 功能描述:                                                       *│
'│*** 编写人员:朱华                                *│
'│*** 编写日期:2001-06-06                             *│
'│*** 修改人员:                                    *│
'│*** 修改日期:                                                       *│
'│**********************************************************************│
'└───────────────────────────────────┘
}

unit zfrm_ProjectQueryU;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, ComCtrls,zfrm_ProjectNewU;

type
  TQueryRec=record
    Comp:TComponent;//控件
    StrSql:String[30];//查询Sql的where
    ComType:integer;  //控件类型  0_TEdit,1_TComboBox,2_BeginTime,3_EndTime
  end;
  PQueryRec=^TQueryRec;
  Tzfrm_ProjectQuery = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    GroupBox1: TGroupBox;
    BitBtn1: TBitBtn;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label6: TLabel;
    Label10: TLabel;
    ComboBox1: TComboBox;
    ComboBox2: TComboBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Button2: TButton;
    DateTimePicker1: TDateTimePicker;
    DateTimePicker2: TDateTimePicker;
    Label1: TLabel;
    DateTimePicker3: TDateTimePicker;
    DateTimePicker4: TDateTimePicker;
    Label5: TLabel;
    ComboBox3: TComboBox;
    ComboBox4: TComboBox;
    Label7: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Button1: TButton;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure Edit3KeyPress(Sender: TObject; var Key: Char);
    procedure DateTimePicker1Change(Sender: TObject);
    procedure DateTimePicker3Change(Sender: TObject);
    procedure DateTimePicker4Change(Sender: TObject);
    procedure DateTimePicker2Change(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    QueryList:TList;
    procedure Proc_Clear;
  public
    { Public declarations }
  end;

var
  zfrm_ProjectQuery: Tzfrm_ProjectQuery;

implementation

uses zfrm_MainBiddingU, zfrm_ProjectSetup1U;

{$R *.DFM}
//---------------------------
procedure Tzfrm_ProjectQuery.Proc_Clear;
var
   i:integer;
begin
     for i:=0 to Self.ComponentCount-1 do
     begin
          if (Self.Components[i] is TEdit) then
             (Self.Components[i] as TEdit).Text:='';
          if (Self.Components[i] is TComboBox) then
             (Self.Components[i] As TComboBox).ItemIndex:=-1;
     end;
end;
//---------------------------

procedure Tzfrm_ProjectQuery.Button1Click(Sender: TObject);
var
   i:integer;
   StrSql,StrWhere:string;
   QRec:TQueryRec;
   EndTime:String;
begin
  // 开始查询
   StrSql:='Select * From tm_projectinfo ';
   StrWhere:='';
   for i:=0 to QueryList.Count-1 do
   begin
       QRec:=PQueryRec(QueryList.Items[i])^;

       Case QRec.ComType of
       0,2:
       begin
           if Trim((Qrec.Comp as TEdit).Text)<>'' then
           begin
               if Pos('where',StrWhere)<=0 then
               begin
                   if QRec.ComType= 0 then
                        StrWhere:=StrWhere+' where '+QRec.StrSql+''''+'%'+Trim((Qrec.Comp as TEdit).Text)+'%'+''''
                   else

                        StrWhere:=StrWhere+' where '+QRec.StrSql+''''+Trim((Qrec.Comp as TEdit).Text)+'''';
               end
               else
                    if  QRec.ComType= 0 then
                        StrWhere:=StrWhere+' and '+QRec.StrSql+''''+'%'+Trim((Qrec.Comp as TEdit).Text)+'%'+''''
                    else
                        StrWhere:=StrWhere+' and '+QRec.StrSql+''''+Trim((Qrec.Comp as TEdit).Text)+''''
           end;

       end;
       1:
       begin
           if Trim((Qrec.Comp as TComboBox).Text)<>'' then
           begin
               if Pos('where',StrWhere)<=0 then
               begin
                    StrWhere:=StrWhere+' where '+QRec.StrSql+''''+Trim((Qrec.Comp as TComboBox).Text)+'''';
               end
               else
                    StrWhere:=StrWhere+' and '+QRec.StrSql+''''+Trim((Qrec.Comp as TComboBox).Text)+'''';
           end;

       end;

       3:
       begin
           if Trim((Qrec.Comp as TEdit).Text)<>'' then
           begin

               EndTime:=DateToStr(StrToDate(Trim((Qrec.Comp as TEdit).Text))+1);
               if Pos('where',StrWhere)<=0 then
               begin
                    StrWhere:=StrWhere+' where '+QRec.StrSql+''''+EndTime+'''';
               end
               else
                    StrWhere:=StrWhere+' and '+QRec.StrSql+''''+EndTime+'''';
           end;

       end;
       end;
   end;
   StrSql:=StrSql+StrWhere+' order by g_pi_id';
   zfrm_MainBidding.z_FlashProjectListView1P(StrSql);
  //
end;

procedure Tzfrm_ProjectQuery.Button2Click(Sender: TObject);
begin
  // 取消
  zfrm_MainBidding.z_FlashProjectListView1P('ALL');
  Close ;
  //
end;

procedure Tzfrm_ProjectQuery.FormClose(Sender: TObject;
  var Action: TCloseAction);
var
  i:integer;
begin
  //
  zfrm_MainBidding.ztool_Project4.Down := False ;
  zfrm_MainBidding.z_Project4.Enabled := True ;
  for i:= 0 to QueryList.Count-1 do
      FreeMem(QueryList.Items[i]);
  //
end;

procedure Tzfrm_ProjectQuery.FormShow(Sender: TObject);
var
  QRec:PQueryRec;
begin
   Proc_Clear;
   QueryList:=TList.Create;
   zfrm_ProjectNew.AddListBox(ComboBox1,'Select BT_NAME from TM_PI_BIDTYPEA') ;
   zfrm_ProjectNew.AddListBox(ComboBox2,'Select ST_NAME from TM_PI_SENDTYPEA') ;
   zfrm_ProjectNew.AddListBox(ComboBox3,'Select PT_NAME from TM_PI_PROJECTTYPEA') ;
   if (ComboBox1.Items.Count=0) or (ComboBox2.Items.Count=0) or (ComboBox3.Items.Count=0) then
   begin
       Application.MessageBox('请您首先设置工程参数','提示信息', MB_OK+MB_ICONASTERISK);
       zfrm_ProjectSetup.ShowModal;
       zfrm_ProjectNew.AddListBox(ComboBox1,'Select BT_NAME from TM_PI_BIDTYPEA') ;
       zfrm_ProjectNew.AddListBox(ComboBox2,'Select ST_NAME from TM_PI_SENDTYPEA') ;
       zfrm_ProjectNew.AddListBox(ComboBox3,'Select PT_NAME from TM_PI_PROJECTTYPEA') ;
   end;

   if (ComboBox1.Items.Count=0) or (ComboBox2.Items.Count=0) or (ComboBox3.Items.Count=0) then
       PostMessage(Handle,WM_CLOSE,0,0);


   ComboBox1.Items.Add('');
   ComboBox2.Items.Add('');
   ComboBox3.Items.Add('');
   GetMem(QRec,SizeOf(TQueryRec));
   QRec^.Comp:=Edit1;
   QRec^.StrSql:=' pi_Name like ';
   QRec^.ComType:=0;
   QueryList.Add(QRec);

   GetMem(QRec,SizeOf(TQueryRec));
   QRec^.Comp:=Edit2;
   QRec^.StrSql:=' pi_BidUnit like ';
   QRec^.ComType:=0;
   QueryList.Add(QRec);

   GetMem(QRec,SizeOf(TQueryRec));
   QRec^.Comp:=ComboBox1;
   QRec^.StrSql:=' pi_bidtype=';
   QRec^.ComType:=1;
   QueryList.Add(QRec);

   GetMem(QRec,SizeOf(TQueryRec));
   QRec^.Comp:=ComboBox2;
   QRec^.StrSql:=' pi_sendtype=';
   QRec^.ComType:=1;
   QueryList.Add(QRec);

   GetMem(QRec,SizeOf(TQueryRec));
   QRec^.Comp:=ComboBox3;
   QRec^.StrSql:=' pi_projecttype=';
   QRec^.ComType:=1;
   QueryList.Add(QRec);

   GetMem(QRec,SizeOf(TQueryRec));
   QRec^.Comp:=Edit3;
   QRec^.StrSql:=' pi_Datetime>=';
   QRec^.ComType:=2;
   QueryList.Add(QRec);

   GetMem(QRec,SizeOf(TQueryRec));
   QRec^.Comp:=Edit6;
   QRec^.StrSql:=' pi_Datetime<';
   QRec^.ComType:=3;
   QueryList.Add(QRec);


   GetMem(QRec,SizeOf(TQueryRec));
   QRec^.Comp:=Edit4;
   QRec^.StrSql:=' pi_opendate>=';
   QRec^.ComType:=2;
   QueryList.Add(QRec);

   GetMem(QRec,SizeOf(TQueryRec));
   QRec^.Comp:=Edit5;
   QRec^.StrSql:=' pi_opendate<';
   QRec^.ComType:=3;
   QueryList.Add(QRec);

   GetMem(QRec,SizeOf(TQueryRec));
   QRec^.Comp:=combobox4;
   QRec^.StrSql:=' pi_statetype=';
   QRec^.ComType:=1;
   QueryList.Add(QRec);


end;

procedure Tzfrm_ProjectQuery.Edit3KeyPress(Sender: TObject; var Key: Char);
begin
     if key=#8 then (Sender As TEdit).Text:='';
end;

procedure Tzfrm_ProjectQuery.DateTimePicker1Change(Sender: TObject);
begin

   if  (DateTimepicker2.Date<DateTimepicker1.Date) and (Edit6.Text<>'')then
      Application.MessageBox('终止时间不能小于起始时间','提示信息', MB_OK+MB_ICONASTERISK)
   else
      Edit3.Text:=FormatDateTime('yyyy-mm-dd',DateTimepicker1.Date);
      //Edit3.Text:=DateToStr();
     
end;

procedure Tzfrm_ProjectQuery.DateTimePicker3Change(Sender: TObject);
begin


   if  (DateTimepicker4.Date<DateTimepicker3.Date) and  (Edit5.Text<>'') then
     Application.MessageBox('终止时间不能小于起始时间','提示信息', MB_OK+MB_ICONASTERISK)
   else
      Edit4.Text:=FormatDateTime('yyyy-mm-dd',DateTimepicker3.Date);



end;

procedure Tzfrm_ProjectQuery.DateTimePicker4Change(Sender: TObject);
begin
   if  (DateTimepicker4.Date<DateTimepicker3.Date) and (Edit4.Text<>'')  then
      Application.MessageBox('终止时间不能小于起始时间','提示信息', MB_OK+MB_ICONASTERISK)

   else
      Edit5.Text:=FormatDateTime('yyyy-mm-dd',DateTimepicker4.Date);

end;

procedure Tzfrm_ProjectQuery.DateTimePicker2Change(Sender: TObject);
begin

   if  (DateTimepicker2.Date<DateTimepicker1.Date) and  (Edit3.Text<>'')then
      Application.MessageBox('终止时间不能小于起始时间','提示信息', MB_OK+MB_ICONASTERISK)
   else
      Edit6.Text:=FormatDateTime('yyyy-mm-dd',DateTimepicker2.Date);

end;

procedure Tzfrm_ProjectQuery.BitBtn1Click(Sender: TObject);
begin
     Proc_Clear;
end;

procedure Tzfrm_ProjectQuery.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
   //处理按键,进行回车跳转


       If (Key = Vk_Return)  Then
       Begin
          Perform(WM_NextDlgCtl, 0, 0);
          key := vk_Tab;
       End;

end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -