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

📄 q_js.pas

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

interface

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

type
  Tfrm_q_js = 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;
    cmd_print: TBitBtn;
    Panel3: TPanel;
    DBGrid1: TDBGrid;
    ds_cl: TDataSource;
    qe_cl: TQuery;
    qe_pj_add: TQuery;
    ds_pj_add: TDataSource;
    qe_gs_add: TQuery;
    ds_gs_add: TDataSource;
    qe_bx: TQuery;
    Panel1: TPanel;
    Label9: TLabel;
    Label10: TLabel;
    txt_clf: TEdit;
    txt_zf: TEdit;
    Label11: TLabel;
    txt_clf1: TEdit;
    Label7: TLabel;
    txt_gsf: TEdit;
    Label12: TLabel;
    txt_other: TEdit;
    Panel5: TPanel;
    DBGrid3: TDBGrid;
    DBGrid2: TDBGrid;
    DBGrid4: TDBGrid;
    qe_other: TQuery;
    ds_other: TDataSource;
    Panel2: TPanel;
    combo_p: TComboBox;
    qe_pj_addpj_id: TIntegerField;
    qe_pj_adddj_bh: TStringField;
    qe_pj_addpj_kind_id: TStringField;
    qe_pj_addpj_kind: TStringField;
    qe_pj_addpj_gg_id: TStringField;
    qe_pj_addpj_gg: TStringField;
    qe_pj_addpj_iid: TStringField;
    qe_pj_addpj_name: TStringField;
    qe_pj_addpj_sy_sum: TFloatField;
    qe_pj_addpj_ck_sum: TFloatField;
    qe_pj_addpj_xz_sum: TFloatField;
    qe_pj_addpj_fk_sum: TFloatField;
    qe_pj_addpj_unit: TStringField;
    qe_pj_addpj_dj: TFloatField;
    qe_pj_addpj_jj: TFloatField;
    qe_pj_addpj_sb: TStringField;
    qe_pj_addpj_zf_bs: TSmallintField;
    qe_pj_addpj_js_bs: TSmallintField;
    qe_pj_addpj_date: TStringField;
    qe_pj_addpj_dj1: TStringField;
    qe_pj_addpj_je1: TStringField;
    qe_gs_addpj_id: TIntegerField;
    qe_gs_adddj_bh: TStringField;
    qe_gs_addgs_text: TStringField;
    qe_gs_addgs_sum: TFloatField;
    qe_gs_addgs_dj: TFloatField;
    qe_gs_addgs_zj: TFloatField;
    qe_gs_addgs_pg: TStringField;
    qe_gs_addgs_pg_id: TStringField;
    qe_gs_addgs_zf_bs: TSmallintField;
    qe_gs_addgs_dj1: TStringField;
    qe_gs_addgs_zj1: TStringField;
    qe_otherpj_id: TIntegerField;
    qe_otherdj_bh: TStringField;
    qe_othero_name: TStringField;
    qe_othero_je: TFloatField;
    qe_otherpj_zf_bs: TSmallintField;
    qe_othero_je1: TStringField;
    //
    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 FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure cmd_printClick(Sender: TObject);
    procedure qe_pj_addCalcFields(DataSet: TDataSet);
    procedure qe_gs_addCalcFields(DataSet: TDataSet);
    procedure qe_otherCalcFields(DataSet: TDataSet);
  private
    { Private declarations }
    strSQL: string;
    //
    function RuleCheck: integer;
  public
    { Public declarations }
    
  end;

var
  frm_q_js: Tfrm_q_js;

implementation

{$R *.DFM}

uses
  log, main, print, o_fy;

function Tfrm_q_js.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 = 1 ';
  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_JSTIME = ''' + 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_JSTIME >= ''' + Trim(txt_time_xx.EditText) + ''' AND DJ_JSTIME <= ''' + 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_js.qe_clAfterScroll(DataSet: TDataSet);
var
  f_clf, f_other, f_gsf: Double;
  f_hj: Double;
begin
  if (qe_cl.Bof) and (qe_cl.Eof) then Exit;
  //
  f_clf := qe_cl.FieldByName('dj_pj_je').Value;
  if f_clf < 0.01 then f_clf := 0;
  f_gsf := qe_cl.FieldByName('dj_gs_je').Value;
  if f_gsf < 0.01 then f_gsf := 0;
  f_other := qe_cl.FieldByName('dj_fj_je').Value;
  if f_other < 0.01 then f_other := 0;
  f_hj := f_clf + f_gsf + f_other;
  if f_hj < 0.01 then f_hj := 0;
  //
  qe_pj_add.Close;
  qe_pj_add.ParamByName('ibh').Value := Trim(qe_cl.FieldByName('dj_bh').AsString);

⌨️ 快捷键说明

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