主题:delphi如何实现多功能组合查询
wj2310
[专家分:0] 发布于 2006-06-22 12:37:00
delphi如何实现多功能组合式查询
回复列表 (共1个回复)
沙发
hanwb2002 [专家分:1340] 发布于 2006-06-22 14:10:00
unit uMtQy;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ADODB, ComCtrls, cxDropDownEdit, cxTextEdit,
cxMaskEdit, cxCalendar, cxControls, cxContainer, cxEdit, cxCheckBox,
cxLookAndFeelPainters, cxButtons, cxGroupBox;
type
TFrmMtQy = class(TForm)
cxGroupBox1: TcxGroupBox;
cxGroupBox2: TcxGroupBox;
Label6: TLabel;
DTdate: TcxDateEdit;
CheckBox6: TcxCheckBox;
cxGroupBox3: TcxGroupBox;
Label2: TLabel;
ComboBox6: TcxComboBox;
CheckBox2: TcxCheckBox;
Label4: TLabel;
ComboBox4: TcxComboBox;
CheckBox4: TcxCheckBox;
cxGroupBox4: TcxGroupBox;
Label3: TLabel;
ComboBox2: TcxComboBox;
CheckBox3: TcxCheckBox;
BtnOK: TcxButton;
BtnCancel: TcxButton;
cxGroupBox5: TcxGroupBox;
procedure BtnCancelClick(Sender: TObject);
procedure BtnOKClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure CheckBox6Click(Sender: TObject);
procedure CheckBox2Click(Sender: TObject);
procedure CheckBox3Click(Sender: TObject);
procedure CheckBox4Click(Sender: TObject);
procedure DTdateExit(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FrmMtQy: TFrmMtQy;
sMtQy : string;
implementation
uses uGlobal;
{$R *.dfm}
procedure TFrmMtQy.BtnCancelClick(Sender: TObject);
begin
sMtQy := '';
ModalResult := mrCancel;
end;
procedure TFrmMtQy.BtnOKClick(Sender: TObject);
var
sSQLO, sSQLT, sSQLS, sSQLF: string;
begin
if (CheckBox2.Checked = False) and (CheckBox3.Checked = False)
and (CheckBox4.Checked = False) and (CheckBox6.Checked = False) then
begin
MessageBox(Handle,'请选择查询方式!',sSysName,MB_ICONINFORMATION);
Exit;
end;
if CheckBox6.Checked = True then
begin
if DTdate.Text = '' then
begin
MessageBox(Handle,'请输入日期!',sSysName,MB_ICONINFORMATION);
DTdate.SetFocus;
Exit;
end;
sSQLO := 'DATE = ''' + DateToStr(DTDate.Date) + '''';
end
else
begin
sSQLO := '1 = 1';
end;
if CheckBox2.Checked = True then
begin
if (ComboBox6.Text = '请选择或输入设备名称') or (ComboBox6.Text = '') then
begin
MessageBox(Handle,'请选择或输入设备名称!',sSysName,MB_ICONINFORMATION);
ComboBox6.SetFocus;
Exit;
end;
sSQLT := 'EQUIPMENT_NAME = ''' + ComboBox6.Text + '''';
end
else
begin
sSQLT := '1 = 1';
end;
if CheckBox3.Checked = True then
begin
if (ComboBox2.Text = '请选择维修类别') or (ComboBox2.Text = '') then
begin
MessageBox(Handle,'请选择维修类别!',sSysName,MB_ICONINFORMATION);
ComboBox2.SetFocus;
Exit;
end;
sSQLS := 'TYPE = ''' + ComboBox2.Text + '''';
end
else
begin
sSQLS := '1 = 1';
end;
if CheckBox4.Checked = True then
begin
if (ComboBox4.Text = '请选择或输入维修负责人') or (ComboBox4.Text = '') then
begin
MessageBox(Handle,'请选择或输入维修负责人!',sSysName,MB_ICONINFORMATION);
ComboBox4.SetFocus;
Exit;
end;
sSQLF := 'PRIMCIPAL = ''' + ComboBox4.Text + '''';
end
else
begin
sSQLF := '1 = 1';
end;
sMtQy := 'SELECT * FROM MAINTAIN_RECODR WHERE ( 1 = 1 )' +
' AND (' + sSQLO + ') AND (' + sSQLT + ') AND (' + sSQLS +
') AND (' + sSQLF + ') ORDER BY DATE DESC';
ModalResult := mrOk;
end;
procedure TFrmMtQy.CheckBox6Click(Sender: TObject);
begin
if CheckBox6.Checked = True then
begin
DTDate.Enabled := True;
DTDate.SetFocus;
end
else
begin
DTDate.Enabled := False;
end;
end;
procedure TFrmMtQy.CheckBox2Click(Sender: TObject);
begin
if CheckBox2.Checked = True then
begin
ComboBox6.Enabled := True;
ComboBox6.SetFocus;
end
else
begin
ComboBox6.Enabled := False;
end;
end;
procedure TFrmMtQy.CheckBox3Click(Sender: TObject);
begin
if CheckBox3.Checked = True then
begin
ComboBox2.Enabled := True;
ComboBox2.SetFocus;
end
else
begin
ComboBox2.Enabled := False;
end;
end;
procedure TFrmMtQy.CheckBox4Click(Sender: TObject);
begin
if CheckBox4.Checked = True then
begin
ComboBox4.Enabled := True;
ComboBox4.SetFocus;
end
else
begin
ComboBox4.Enabled := False;
end;
end;
procedure TFrmMtQy.DTdateExit(Sender: TObject);
begin
if (DTdate.Text <> '') AND (DTdate.Text < '1799-12-31') then
begin
MessageBox(Handle,'您输入的日期有误!',sSysName,MB_ICONINFORMATION);
DTdate.SetFocus;
end;
end;
end.
我来回复