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

📄 qt_js.pas

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

interface

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

type
  Tfrm_qt_js = class(TForm)
    pe_bh: TPanel;
    Label1: TLabel;
    combo_p: TComboBox;
    pe_info: TPanel;
    DBGrid1: TDBGrid;
    Panel1: TPanel;
    DBGrid2: TDBGrid;
    pe_money: TPanel;
    pe_op: TPanel;
    qe_jy1: TQuery;
    qe_gs_add: TQuery;
    ds_gs_add: TDataSource;
    qe_pj_add: TQuery;
    ds_pj_add: TDataSource;
    Label2: TLabel;
    txt_clf: TEdit;
    txt_gsf: TEdit;
    Label4: TLabel;
    txt_sbf: TEdit;
    Label5: TLabel;
    txt_yj: TEdit;
    lbl_yf: TLabel;
    txt_yf: TEdit;
    cmd_p_qd: TBitBtn;
    cmd_js: TBitBtn;
    qe_jy: TQuery;
    qe_pj1: TQuery;
    qe_pj2: TQuery;
    qe_gs: TQuery;
    qe_yj: TQuery;
    Panel2: TPanel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    txt_time: TDBEdit;
    txt_cph: TDBEdit;
    txt_cx: TDBEdit;
    txt_cz: TDBEdit;
    txt_wx: TDBEdit;
    txt_bx: TDBEdit;
    txt_dw: TDBEdit;
    ds_jy1: TDataSource;
    combo_bh: TComboBox;
    txt_zf: TEdit;
    txt_fjf: TEdit;
    qe_other_add: TQuery;
    ds_other_add: TDataSource;
    Panel3: TPanel;
    DBGrid3: TDBGrid;
    qe_other: TQuery;
    txt_h1: TEdit;
    Label6: TLabel;
    Label11: TLabel;
    txt_h2: TEdit;
    Label3: TLabel;
    Label15: TLabel;
    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;
    cb_clf: TCheckBox;
    cb_print: TCheckBox;
    qe_pj3: TQuery;
    qe_pj_addpj_je1: TStringField;
    qe_pj_addpj_dj1: 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_other_addpj_id: TIntegerField;
    qe_other_adddj_bh: TStringField;
    qe_other_addo_name: TStringField;
    qe_other_addo_je: TFloatField;
    qe_other_addpj_zf_bs: TSmallintField;
    qe_other_addo_je1: TStringField;
    //
    procedure ControlKeyPress4(Sender: TObject; var Key: Char);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormDestroy(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure cmd_p_qdClick(Sender: TObject);
    procedure cmd_jsClick(Sender: TObject);
    procedure combo_bhChange(Sender: TObject);
    //
    procedure ControlChange(Sender: TObject);
    procedure ControlKeyPress(Sender: TObject; var Key: Char);
    procedure qe_pj_addCalcFields(DataSet: TDataSet);
    procedure qe_gs_addCalcFields(DataSet: TDataSet);
    procedure qe_other_addCalcFields(DataSet: TDataSet);
  private
    { Private declarations }
    cur_bh: string;
    cur_cph: string;
    cur_dph: string;
    cur_cx: string;
    cur_fdjh: string;
    cur_cz: string;
    cur_czdw: string;
    cur_tel: string;
    cur_addr: string;
    //
    cur_bx: integer;
    cur_yj: integer;
    cur_bx_kind: string;
    cur_wx_kind: string;
    //
    cur_time: string;
    //
    zz_clf: Double;
    zz_gsf: Double;
    zz_yjf: Double;
    zz_cbf: Double;
    zz_other: Double;
    //
    procedure QueryResult;
    procedure ResultMoney;
    procedure InitBHList;
  public
    { Public declarations }
  end;

var
  frm_qt_js: Tfrm_qt_js;

implementation

{$R *.DFM}

uses
  log, main, print, js_select, o_fy;

procedure Tfrm_qt_js.ControlKeyPress(Sender: TObject; var Key: Char);
begin
  if not (((Key >= '0') and (Key <= '9')) or (Ord(Key) = 8) or (Ord(Key) = 46) or (Ord(Key) = 13)) then
    Key := Chr(0);
end;

procedure Tfrm_qt_js.ControlChange(Sender: TObject);
var
  strText1: string;
  strText2: string;
  //
  v1, v2, v3: Double;
  code1, code2: integer;
begin
  strText1 := Trim(txt_h1.Text);
  strText2 := Trim(txt_h2.Text);
  //
  if (strText1 = '') or (strText2 = '') then begin
    lbl_yf.Caption := '应收金额:';
    txt_yf.Text := '';
    if strText1 = '' then
      txt_clf.Text := ''
    else if strText2 = '' then
      txt_gsf.Text := '';
  end else begin
    Val(strText1, v1, code1);
    Val(strText2, v2, code2);
    if (code1 <> 0) or (code2 <> 0) then begin
      lbl_yf.Caption := '应收金额:';
      txt_yf.Text := '';
      if code1 <> 0 then
        txt_clf.Text := ''
      else if code2 <> 0 then
        txt_gsf.Text := '';  
    end else begin
      v1 := v1 * 0.01 * zz_clf + zz_clf;
      v2 := v2 * 0.01 * zz_gsf + zz_gsf;
      v1 := Int(v1) + Round((Frac(v1)*100))/100;
      v2 := Int(v2) + Round((Frac(v2)*100))/100;
      if v1 < 0.01 then v1 := 0;
      if v2 < 0.01 then v2 := 0;
      v3 := v1 + v2 + zz_other - zz_yjf;
      if Abs(v3) < 0.01 then begin
        lbl_yf.Caption := '应收金额:';
        v3 := 0;
      end else if v3 < 0 then
        lbl_yf.Caption := '应返金额:'
      else if v3 > 0 then
        lbl_yf.Caption := '应收金额:';
      //
      txt_yf.Text := FloatToStr(Abs(v3));
      txt_zf.Text := FloatToStr(v1 + v2 + zz_other);
      txt_clf.Text := FloatToStr(v1);
      txt_gsf.Text := FloatToStr(v2);
    end;
  end;
end;

procedure Tfrm_qt_js.InitBHList;
begin
  qe_jy.Close;
  qe_jy.SQL.Clear;
  qe_jy.SQL.Add('SELECT DJ_BH FROM CL_DJ WHERE DJ_ZF_BS = 0 AND DJ_JS_BS = 0 ORDER BY DJ_BH');
  qe_jy.Open;
  qe_jy.First;
  //
  if (qe_jy.Bof) and (qe_jy.Eof) then begin
    //MessageBox(Handle, '未找到尚未结算的委托编号', '沈阳信德', MB_ICONQUESTION or MB_OK);
    Exit;
  end else begin
    combo_bh.Items.Clear;
    while not qe_jy.Eof do begin
      combo_bh.Items.Add(Trim(qe_jy.FieldByName('dj_bh').AsString));
      qe_jy.Next;
    end;
    combo_bh.ItemIndex := -1;
  end;
end;

procedure Tfrm_qt_js.ControlKeyPress4(Sender: TObject; var Key: Char);
begin
  if Ord(Key) = 13 then QueryResult;
end;

procedure Tfrm_qt_js.ResultMoney;
var
  f_yj: Double;
  f_pj1: Double;
  f_pj2: Double;
  f_other: Double;
  f_h1: Double;
  f_h2: Double;
  f_gs: Double;
  //
  f_fy: Double;
  f_cb: Double;
begin
  //押金
  if cur_yj = 1 then begin
    qe_yj.Close;
    qe_yj.ParamByName('ibh').Value := cur_bh;
    qe_yj.Open;
    qe_yj.First;
    //
    f_yj := qe_yj.FieldByName('dj_yj_zf').Value;
    f_yj := Int(f_yj) + Round((Frac(f_yj)*100))/100;
    if f_yj < 0.01 then f_yj := 0;
    //
    qe_yj.Close;
  end else
    f_yj := 0;
  zz_yjf := f_yj;  
  //正常配件
  qe_pj1.Close;
  qe_pj1.ParamByName('ibh').Value := cur_bh;
  qe_pj1.Open;
  qe_pj1.First;
  f_pj1 := qe_pj1.FieldByName('sum1').Value;
  f_pj1 := Int(f_pj1) + Round((Frac(f_pj1)*100))/100;
  if f_pj1 < 0.01 then f_pj1 := 0;
  zz_clf := f_pj1;
  //
  //配件成本
  qe_pj3.Close;
  qe_pj3.ParamByName('ibh').Value := cur_bh;
  qe_pj3.Open;
  qe_pj3.First;
  f_cb := qe_pj3.FieldByName('sum1').Value;
  f_cb := Int(f_cb) + Round((Frac(f_cb)*100))/100;
  if f_cb < 0.01 then f_cb := 0;
  zz_cbf := f_cb;
  qe_pj3.Close;
  //
  f_h1 := StrToFloat(Trim(txt_h1.Text));
  if f_h1 < 0.01 then f_h1 := 0;
  f_pj1 := f_pj1 * f_h1 * 0.01 + f_pj1;
  f_pj1 := Int(f_pj1) + Round((Frac(f_pj1)*100))/100;
  qe_pj1.Close;
  //三包配件
  qe_pj2.Close;
  qe_pj2.ParamByName('ibh').Value := cur_bh;
  qe_pj2.Open;
  qe_pj2.First;
  f_pj2 := qe_pj2.FieldByName('sum2').Value;
  f_pj2 := Int(f_pj2) + Round((Frac(f_pj2)*100))/100;
  if f_pj2 < 0.01 then f_pj2 := 0;
  qe_pj2.Close;
  //工时费

⌨️ 快捷键说明

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