📄 qt_js.pas
字号:
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 + -