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

📄 q_wjs.pas

📁 汽配前台收费,一个具有详细功能的小系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit q_wjs;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  StdCtrls, Buttons, Mask, ExtCtrls, Grids, DBGrids, Db, DBTables, Printers,
  QRCtrls;

type
  Tfrm_q_wjs = class(TForm)
    pe_select: TPanel;
    cb_bh: TCheckBox;
    pe_bh: TPanel;
    Label4: TLabel;
    Label5: TLabel;
    txt_bh_xx: TMaskEdit;
    txt_bh_sx: TMaskEdit;
    pe_wx: TPanel;
    Label6: TLabel;
    combo_wx_kind: TComboBox;
    cmd_q_sel: TBitBtn;
    cb_cph: TCheckBox;
    pe_cph: TPanel;
    Label8: TLabel;
    txt_cph: TEdit;
    cb_time: TCheckBox;
    pe_time: TPanel;
    Label1: TLabel;
    Label2: TLabel;
    txt_time_xx: TMaskEdit;
    txt_time_sx: TMaskEdit;
    rb_wx: TRadioButton;
    rb_bx: TRadioButton;
    pe_bx: TPanel;
    Label3: TLabel;
    combo_bx_kind: TComboBox;
    Panel3: TPanel;
    Panel4: TPanel;
    qe_cl: TQuery;
    ds_cl: TDataSource;
    DBGrid1: TDBGrid;
    qe_pj_add: TQuery;
    ds_pj_add: TDataSource;
    DBGrid2: TDBGrid;
    qe_gs_add: TQuery;
    ds_gs_add: TDataSource;
    qe_bx: TQuery;
    cmd_print: TBitBtn;
    DBGrid3: TDBGrid;
    DBGrid4: TDBGrid;
    Panel2: TPanel;
    qe_other: TQuery;
    ds_other: TDataSource;
    procedure qe_clAfterScroll(DataSet: TDataSet);
    procedure cb_bhClick(Sender: TObject);
    procedure cb_timeClick(Sender: TObject);
    procedure cb_cphClick(Sender: TObject);
    procedure rb_wxClick(Sender: TObject);
    procedure rb_bxClick(Sender: TObject);
    procedure cmd_q_selClick(Sender: TObject);
    procedure cmd_q_allClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure cmd_printClick(Sender: TObject);
  private
    { Private declarations }
    strSQL: string;
    //
    function RuleCheck: integer;
  public
    { Public declarations }
  end;

var
  frm_q_wjs: Tfrm_q_wjs;

implementation

{$R *.DFM}

uses
  log, main, o_fy, print;

function Tfrm_q_wjs.RuleCheck: integer;
var
  intResult: integer;
  strYear, strMonth, strDay: string;
begin
  intResult := 0;
  strSQL := 'SELECT * FROM CL_DJ WHERE DJ_ZF_BS = 0 AND DJ_JS_BS = 0 ';
  //
  if cb_time.Checked then begin
    if Trim(txt_time_xx.EditText) = '0000-00-00' then begin
      if Trim(txt_time_sx.EditText) = '0000-00-00' then begin
        MessageBox(Handle, '请确定登记时间', '沈阳信德', MB_ICONQUESTION or MB_OK);
        intResult := 1;
      end else begin
        MessageBox(Handle, '请确定登记时间下限', '沈阳信德', MB_ICONQUESTION or MB_OK);
        intResult := 1;
      end;
    end else begin
      strYear := Copy(Trim(txt_time_xx.EditText), 1, 4);
      strMonth := Copy(Trim(txt_time_xx.EditText), 6, 2);
      strDay := Copy(Trim(txt_time_xx.EditText), 9, 2);
      if (StrToInt(strYear) < 1980) or (StrToInt(strMonth) = 0) or (StrToInt(strMonth) > 12) or (StrToInt(strDay) = 0) or (StrToInt(strDay) > 31) then begin
        MessageBox(Handle, '登记下限时间无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
        txt_time_xx.SetFocus;
        intResult := 1;
      end else begin
        if Trim(txt_time_sx.EditText) = '0000-00-00' then
          strSQL := strSQL + 'AND DJ_TIME = ''' + Trim(txt_time_xx.EditText) + ''' '
        else begin
          strYear := Copy(Trim(txt_time_sx.EditText), 1, 4);
          strMonth := Copy(Trim(txt_time_sx.EditText), 6, 2);
          strDay := Copy(Trim(txt_time_sx.EditText), 9, 2);
          if (StrToInt(strYear) < 1980) or (StrToInt(strMonth) = 0) or (StrToInt(strDay) = 0) then begin
            MessageBox(Handle, '登记上限时间无效', '沈阳信德', MB_ICONQUESTION or MB_OK);
            txt_time_sx.SetFocus;
            intResult := 1;
          end else
            strSQL := strSQL + 'AND DJ_TIME >= ''' + Trim(txt_time_xx.EditText) + ''' AND DJ_TIME <= ''' + Trim(txt_time_sx.EditText) + ''' ';
        end;
      end;
    end;
  end;
  //
  if cb_bh.Checked then begin
    if Trim(txt_bh_xx.EditText) = '00000000-000-000' then begin
      if Trim(txt_bh_sx.EditText) = '00000000-000-000' then begin
        MessageBox(Handle, '请确定委托编号', '沈阳信德', MB_ICONQUESTION or MB_OK);
        intResult := 1;
      end else begin
        MessageBox(Handle, '请确定委托编号下限', '沈阳信德', MB_ICONQUESTION or MB_OK);
        intResult := 1;
      end;
    end else begin
      if Trim(txt_bh_sx.EditText) = '00000000-000-000' then
        strSQL := strSQL + 'AND DJ_BH = ''' + Trim(txt_bh_xx.EditText) + ''' '
      else begin
        strSQL := strSQL + 'AND DJ_BH >= ''' + Trim(txt_bh_xx.EditText) + ''' AND DJ_BH <= ''' + Trim(txt_bh_sx.EditText) + ''' ';
      end;
    end;
  end;
  //
  if cb_cph.Checked then begin
    if Trim(txt_cph.Text) = '' then begin
      MessageBox(Handle, '请确定车牌号', '沈阳信德', MB_ICONQUESTION or MB_OK);
      intResult := 1;
    end else begin
      strSQL := strSQL + 'AND DJ_CPH LIKE ''%' + Trim(txt_cph.Text) + '%'' ';
    end;
  end;
  //
  if rb_wx.Checked then begin
    if combo_wx_kind.ItemIndex = -1 then begin
      MessageBox(Handle, '请确定维修类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
      intResult := 1;
    end else begin
      strSQL := strSQL + 'AND DJ_WX_KIND = ''' + combo_wx_kind.Text + ''' ';
    end;
  end;
  //
  if rb_bx.Checked then begin
    if combo_bx_kind.ItemIndex = -1 then begin
      MessageBox(Handle, '请确定保险类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
      intResult := 1;
    end else begin
      strSQL := strSQL + 'AND DJ_BX_KIND = ''' + combo_bx_kind.Text + ''' ';
    end;
  end;
  //
  if (not cb_time.Checked) and (not cb_bh.Checked) and (not cb_cph.Checked) and (not rb_bx.Checked) and (not rb_wx.Checked) then begin
    MessageBox(Handle, '请确定查询条件', '沈阳信德', MB_ICONQUESTION or MB_OK);
    intResult := 1;
  end;
  //
  Result := intResult;
end;

procedure Tfrm_q_wjs.qe_clAfterScroll(DataSet: TDataSet);
begin
  if (qe_cl.Bof) and (qe_cl.Eof) then Exit;
  //
  qe_pj_add.Close;
  qe_pj_add.ParamByName('ibh').Value := Trim(qe_cl.FieldByName('dj_bh').AsString);
  qe_pj_add.Open;
  qe_pj_add.First;
  //
  qe_gs_add.Close;
  qe_gs_add.ParamByName('ibh').Value := Trim(qe_cl.FieldByName('dj_bh').AsString);
  qe_gs_add.Open;
  qe_gs_add.First;
  //
  qe_other.Close;
  qe_other.ParamByName('ibh').Value := Trim(qe_cl.FieldByName('dj_bh').AsString);
  qe_other.Open;
  qe_other.First;
end;

procedure Tfrm_q_wjs.cb_bhClick(Sender: TObject);
begin
  if cb_bh.Checked then begin
    pe_bh.Enabled := True;
    txt_bh_xx.SetFocus;
  end else begin
    txt_bh_xx.Text := '';
    txt_bh_sx.Text := '';
    //
    pe_bh.Enabled := False;
  end;
end;

procedure Tfrm_q_wjs.cb_timeClick(Sender: TObject);
begin
  if cb_time.Checked then begin
    pe_time.Enabled := True;
    txt_time_xx.SetFocus;
  end else begin
    txt_time_xx.Text := '';
    txt_time_sx.Text := '';
    //
    pe_time.Enabled := False;
  end;
end;

procedure Tfrm_q_wjs.cb_cphClick(Sender: TObject);
begin
  if cb_cph.Checked then begin
    pe_cph.Enabled := True;
    txt_cph.SetFocus;
  end else begin
    txt_cph.Text := '';
    pe_cph.Enabled := False;
  end;
end;

procedure Tfrm_q_wjs.rb_wxClick(Sender: TObject);
begin
  pe_bx.Enabled := False;
  combo_bx_kind.ItemIndex := -1;
  //
  pe_wx.Enabled := True;
  combo_wx_kind.SetFocus;
end;

procedure Tfrm_q_wjs.rb_bxClick(Sender: TObject);
begin
  pe_wx.Enabled := False;
  combo_wx_kind.ItemIndex := -1;
  //
  pe_bx.Enabled := True;
  combo_bx_kind.SetFocus;
end;

procedure Tfrm_q_wjs.cmd_q_selClick(Sender: TObject);
var
  intResult: integer;
begin
  intResult := RuleCheck;
  if intResult = 1 then
    Exit
  else begin
    qe_cl.Close;
    qe_cl.SQL.Clear;
    qe_cl.SQL.Add(strSQL);
    qe_cl.Open;
    qe_cl.First;
    //
    if (qe_cl.Bof) and (qe_cl.Eof) then begin
      MessageBox(Handle, '没有找到满足条件记录', '沈阳信德', MB_ICONQUESTION or MB_OK);
      qe_cl.Close;
      qe_pj_add.Close;
      qe_gs_add.Close;
      cmd_print.Enabled := False;
      //
      Exit;
    end else
      cmd_print.Enabled := True;
  end;
end;

procedure Tfrm_q_wjs.cmd_q_allClick(Sender: TObject);
begin
  strSQL := 'SELECT * FROM CL_DJ WHERE DJ_ZF_BS = 0 AND DJ_JS_BS = 0';
  qe_cl.Close;
  qe_cl.SQL.Clear;
  qe_cl.SQL.Add(strSQL);
  qe_cl.Open;
  //
  if (qe_cl.Eof) and (qe_cl.Bof) then begin
    MessageBox(Handle, '没有找到未结算的记录', '沈阳信德', MB_ICONQUESTION or MB_OK);
    qe_cl.Close;
    qe_pj_add.Close;
    qe_gs_add.Close;
  end;
end;

procedure Tfrm_q_wjs.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  qe_cl.Close;
  qe_pj_add.Close;
  qe_gs_add.Close;
  qe_other.Close;
  //
  frm_main.mu_cx_cl_wjs.Enabled := True;
  frm_main.current_handle := 0;
  //
  Action := caFree;
end;

procedure Tfrm_q_wjs.FormDestroy(Sender: TObject);
begin
  qe_cl := nil;
  qe_pj_add := nil;
  qe_gs_add := nil;
  qe_other := nil;

⌨️ 快捷键说明

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