📄 pj_wm.pas
字号:
unit pj_wm;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, StdCtrls, Grids, DBGrids, Buttons, Mask, Db, DBTables, Printers;
type
Tfrm_pj_wm = class(TForm)
pe_bh: TPanel;
Label1: TLabel;
combo_p: TComboBox;
pe_info: TPanel;
DBGrid1: TDBGrid;
Panel1: TPanel;
cmd_new: TBitBtn;
cmd_edit: TBitBtn;
cmd_save: TBitBtn;
cmd_cancel: TBitBtn;
cmd_del: TBitBtn;
pe_edit: TPanel;
Label2: TLabel;
Label3: TLabel;
Label11: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
txt_kind: TEdit;
txt_gg: TEdit;
txt_pj: TEdit;
b1: TBitBtn;
b3: TBitBtn;
b2: TBitBtn;
txt_sum: TEdit;
txt_unit: TEdit;
txt_dj: TEdit;
lst_unit: TListBox;
lst_sj: TListBox;
pe_image: TPanel;
Image1: TImage;
qe_wm_gl: TQuery;
ds_wm_gl: TDataSource;
txt_dj_bh: TStaticText;
qe_jy: TQuery;
cmd_print: TBitBtn;
sp_up_pj_ck: TStoredProc;
lst_kind: TListBox;
lst_gg: TListBox;
lst_name: TListBox;
lst_sum: TListBox;
qe_jy2: TQuery;
qe_jy3: TQuery;
Label7: TLabel;
txt_dw: TStaticText;
Label8: TLabel;
txt_zj: TStaticText;
sp_update_mode_for_wm: TStoredProc;
sp_del_from_pj_add: TStoredProc;
sp_insert_into_day: TStoredProc;
sp_insert_into_sj: TStoredProc;
qe_pj: TQuery;
qe_gg: TQuery;
qe_name: TQuery;
//
procedure ControlClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ControlKeyPress3(Sender: TObject; var Key: Char);
procedure ControlKeyPress1(Sender: TObject; var Key: Char);
procedure ControlChange1(Sender: TObject);
procedure ControlEnter(Sender: TObject);
procedure b1Click(Sender: TObject);
procedure b2Click(Sender: TObject);
procedure b3Click(Sender: TObject);
procedure cmd_newClick(Sender: TObject);
procedure cmd_editClick(Sender: TObject);
procedure cmd_saveClick(Sender: TObject);
procedure cmd_cancelClick(Sender: TObject);
procedure cmd_printClick(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormDestroy(Sender: TObject);
procedure cmd_delClick(Sender: TObject);
private
{ Private declarations }
hideList: array[1..3] of TListBox;
spaceArray: array[0..20] of string;
year, month, day: Word;
WM_BH: string;
//
procedure arrayInit;
procedure lstInfoInit;
procedure EnabledComponent(intState: TDataSetState);
procedure SetNewBH;
procedure controlSetFocus(intpos: integer);
procedure controlDj(intState: TDataSetState);
//
function RuleCheck1: integer;
function RuleCheck: integer;
procedure NewInit;
procedure SaveInit;
procedure EditInit;
procedure CancelInit;
procedure ExportInit;
procedure ExeDelandInit;
//
function SetNewBH1(intKind: integer): string;
public
{ Public declarations }
end;
var
frm_pj_wm: Tfrm_pj_wm;
implementation
{$R *.DFM}
uses
log, main, print, yj_select;
function Tfrm_pj_wm.SetNewBH1(intKind: integer): string;
var
intR_m, intR_d: integer;
stryear, strmonth, strday: string;
year1, month1, day1: Word;
strm, strd: string;
strResult: string;
begin
DecodeDate(Now, year1, month1, day1);
stryear := IntToStr(year1);
strmonth := Format('%2.2d', [month1]);
strday := Format('%2.2d', [day1]);
//
qe_jy.Close;
qe_jy.SQL.Clear;
qe_jy.SQL.Add('SELECT * FROM SJ_SUM WHERE SJ_YEAR = ' + IntToStr(year1) + ' AND SJ_MONTH = ' + IntToStr(month1) + ' AND SJ_DAY = ' + IntToStr(day1) + ' AND SJ_KIND = ' + IntToStr(intKind) + ' ');
qe_jy.Open;
qe_jy.Last;
intR_d := qe_jy.RecordCount;
//
qe_jy.Close;
qe_jy.SQL.Clear;
qe_jy.SQL.Add('SELECT * FROM SJ_SUM WHERE SJ_YEAR = ' + IntToStr(year1) + ' AND SJ_MONTH = ' + IntToStr(month1) + ' AND SJ_KIND = ' + IntToStr(intKind) + ' ');
qe_jy.Open;
qe_jy.Last;
intR_m := qe_jy.RecordCount;
qe_jy.Close;
//
if (intR_m = 0) and (intR_d = 0) then begin
strResult := stryear + strmonth + strday + '-' + '001' + '-' + '001';
end else if intR_m = 0 then begin
strResult := stryear + strmonth + strday + '-' + '001' + '-' + '001';
end else if intR_d = 0 then begin
intR_m := intR_m + 1;
strm := Format('%3.3d', [intR_m]);
strResult := stryear + strmonth + strday + '-' + strm + '-' + '001';
end else begin
intR_m := intR_m + 1;
intR_d := intR_d + 1;
strm := Format('%3.3d', [intR_m]);
strd := Format('%3.3d', [intR_d]);
strResult := stryear + strmonth + strday + '-' + strm + '-' + strd;
end;
//
sp_insert_into_sj.ParamByName('@iyear').Value := year1;
sp_insert_into_sj.ParamByName('@imonth').Value := month1;
sp_insert_into_sj.ParamByName('@iday').Value := day1;
sp_insert_into_sj.ParamByName('@ikind').Value := intKind;
sp_insert_into_sj.ExecProc;
//
Result := strResult;
end;
procedure Tfrm_pj_wm.ExeDelandInit;
var
f_zj: Double;
begin
if MessageBox(Handle, '确实要删除当前记录?', '沈阳信德', MB_ICONQUESTION or MB_OKCANCEL) = ID_OK then begin
sp_del_from_pj_add.ParamByName('@iwm_id').Value := qe_wm_gl.FieldByName('wm_id').AsInteger;
sp_del_from_pj_add.ExecProc;
//
qe_wm_gl.Close;
qe_wm_gl.Open;
qe_wm_gl.First;
end;
//
EnabledComponent(dsBrowse);
//
qe_jy3.Close;
qe_jy3.ParamByName('ibh').Value := Trim(txt_dj_bh.Caption);
qe_jy3.Open;
qe_jy3.First;
if (qe_jy3.Bof) and (qe_jy3.Eof) then
txt_zj.Caption := '0'
else begin
f_zj := qe_jy3.FieldByName('pj_zj').Value;
f_zj := Int(f_zj) + Round((Frac(f_zj)*100))/100;
txt_zj.Caption := FloatToStr(f_zj);
end;
qe_jy3.Close;
end;
procedure Tfrm_pj_wm.ExportInit;
var
intXSum, intOSum: Double;
strKind, strGg, strName: string;
intpos: integer;
begin
qe_jy.Close;
qe_jy.SQL.Clear;
qe_jy.SQL.Add('SELECT * FROM WM_GL WHERE WM_BH = ''' + Trim(txt_dj_bh.Caption) + ''' AND WM_ZF_BS = 0');
qe_jy.Open;
qe_jy.First;
//
intpos := 0;
lst_kind.Clear;
lst_gg.Clear;
lst_name.Clear;
lst_sum.Clear;
while not qe_jy.Eof do begin
intXSum := qe_jy.FieldByName('pj_ck_sum').Value;
strKind := Trim(qe_jy.FieldByName('pj_kind_id').AsString);
strGg := Trim(qe_jy.FieldByName('pj_gg_id').AsString);
strName := Trim(qe_jy.FieldByName('pj_id').AsString);
if intXSum > 0.01 then begin
lst_kind.Items.Add(strKind);
lst_gg.Items.Add(strGg);
lst_name.Items.Add(strName);
lst_sum.Items.Add(FloatToStr(intXSum));
end;
//
qe_jy2.Close;
qe_jy2.ParamByName('ikind').Value := strKind;
qe_jy2.ParamByName('igg').Value := strGg;
qe_jy2.ParamByName('iname').Value := strName;
qe_jy2.Open;
qe_jy2.First;
//
if (qe_jy2.Bof) and (qe_jy2.Eof) then begin
MessageBox(Handle, '库存中不存在该配件', '沈阳信德', MB_ICONQUESTION or MB_OK);
intpos := 1;
Break;
end else begin
intOSum := qe_jy2.FieldByName('pj_sum').Value;
if intOSum < intXSum then begin
MessageBox(Handle, '销售数量大于现库存数量,配件出库失败', '沈阳信德', MB_ICONQUESTION or MB_OK);
intpos := 1;
Break;
end;
end;
//
qe_jy.Next;
end;
//
if intpos = 1 then begin
qe_jy.Close;
qe_jy2.Close;
Exit;
end else begin
if lst_kind.Items.Count = 0 then begin
MessageBox(Handle, '没有销售配件可出库', '沈阳信德', MB_ICONQUESTION or MB_OK);
qe_jy.Close;
qe_jy2.Close;
Exit;
end;
for intpos := 0 to lst_kind.Items.Count - 1 do begin
sp_up_pj_ck.ParamByName('@ipos').Value := 1;
sp_up_pj_ck.ParamByName('@ipj_kind_id').Value := lst_kind.Items[intpos];
sp_up_pj_ck.ParamByName('@ipj_gg_id').Value := lst_gg.Items[intpos];
sp_up_pj_ck.ParamByName('@ipj_id').Value := lst_name.Items[intpos];
sp_up_pj_ck.ParamByName('@ipj_sum').Value := StrToFloat(lst_sum.Items[intpos]);
sp_up_pj_ck.ExecProc;
//
end;
//
qe_jy.Close;
qe_jy2.Close;
end;
//
sp_insert_into_day.ParamByName('@idate').Value := frm_log.controlDate(DateToStr(Date()));
sp_insert_into_day.ParamByName('@izy').Value := '(配件销售)-' + Trim(txt_dw.Caption) + '收款';
if frm_log.yj_jsfs = 1 then
sp_insert_into_day.ParamByName('@ikm').Value := '现金'
else
sp_insert_into_day.ParamByName('@ikm').Value := '银行存款';
//
sp_insert_into_day.ParamByName('@ijf').Value := StrToFloat(Trim(txt_zj.Caption));
sp_insert_into_day.ParamByName('@idf').Value := 0;
sp_insert_into_day.ParamByName('@izy_id').Value := 10;
sp_insert_into_day.ParamByName('@idj_bh').Value := '';
sp_insert_into_day.ExecProc;
//
WM_BH := SetNewBH1(0);
frm_print.lbl_cap9.Caption := frm_log.cur_gs_name;
frm_print.lbl_dw9.Caption := Trim(txt_dw.Caption);
frm_print.lbl_zj.Caption := Trim(txt_zj.Caption);
frm_print.lbl_date9.Caption := frm_log.controlDate(DateToStr(Date()));
frm_print.lbl_bh9.Caption := 'SK' + WM_BH;
frm_print.lbl_zcr9.Caption := frm_main.user_name;
if frm_log.yj_jsfs = 1 then
frm_print.lbl_fs9.Caption := '现金'
else
frm_print.lbl_fs9.Caption := '支票';
frm_print.qr_wm_js.DataSet := qe_wm_gl;
frm_print.txt_kind.DataSet := qe_wm_gl;
frm_print.txt_gg.DataSet := qe_wm_gl;
frm_print.txt_name.DataSet := qe_wm_gl;
frm_print.txt_sum.DataSet := qe_wm_gl;
frm_print.txt_unit.DataSet := qe_wm_gl;
frm_print.txt_dj.DataSet := qe_wm_gl;
frm_print.txt_id.DataSet := qe_wm_gl;
frm_print.qr_wm_js.Print;
//
cmd_new.Enabled := False;
cmd_save.Enabled := False;
cmd_cancel.Enabled := False;
cmd_del.Enabled := False;
cmd_print.Enabled := False;
cmd_edit.Enabled := False;
cmd_print.Tag := 0;
end;
procedure Tfrm_pj_wm.CancelInit;
begin
qe_wm_gl.Cancel;
//
pe_bh.Enabled := True;
pe_image.Visible := True;
pe_info.Enabled := True;
pe_edit.Visible := False;
//
txt_kind.Enabled := True;
txt_gg.Enabled := True;
txt_pj.Enabled := True;
b1.Enabled := True;
b2.Enabled := True;
b3.Enabled := True;
//
EnabledComponent(dsBrowse);
end;
procedure Tfrm_pj_wm.SaveInit;
var
f_zj: Double;
begin
pe_bh.Enabled := True;
pe_image.Visible := True;
pe_info.Enabled := True;
pe_edit.Visible := False;
//
txt_kind.Enabled := True;
txt_gg.Enabled := True;
txt_pj.Enabled := True;
b1.Enabled := True;
b2.Enabled := True;
b3.Enabled := True;
//
EnabledComponent(dsBrowse);
//
qe_jy3.Close;
qe_jy3.ParamByName('ibh').Value := Trim(txt_dj_bh.Caption);
qe_jy3.Open;
qe_jy3.First;
if (qe_jy3.Bof) and (qe_jy3.Eof) then
txt_zj.Caption := '0'
else begin
f_zj := qe_jy3.FieldByName('pj_zj').Value;
f_zj := Int(f_zj) + Round((Frac(f_zj)*100))/100;
txt_zj.Caption := FloatToStr(f_zj);
end;
qe_jy3.Close;
end;
procedure Tfrm_pj_wm.EditInit;
begin
pe_edit.Visible := True;
pe_image.Visible := False;
pe_info.Enabled := False;
pe_bh.Enabled := False;
//
txt_kind.Enabled := False;
txt_gg.Enabled := False;
txt_pj.Enabled := False;
b1.Enabled := False;
b2.Enabled := False;
b3.Enabled := False;
//
txt_kind.Text := Trim(qe_wm_gl.FieldByName('pj_kind').AsString);
txt_gg.Text := Trim(qe_wm_gl.FieldByName('pj_gg').AsString);
txt_pj.Text := Trim(qe_wm_gl.FieldByName('pj_name').AsString);
txt_sum.Text := FloatToStr(qe_wm_gl.FieldByName('pj_ck_sum').Value);
txt_unit.Text := Trim(qe_wm_gl.FieldByName('pj_unit').AsString);
txt_dj.Text := FloatToStr(qe_wm_gl.FieldByName('pj_dj').Value);
txt_sum.SetFocus;
//
cmd_edit.Enabled := False;
cmd_new.Enabled := False;
cmd_save.Enabled := False;
cmd_cancel.Enabled := True;
cmd_print.Enabled := False;
cmd_del.Enabled := False;
//
qe_wm_gl.Edit;
end;
procedure Tfrm_pj_wm.NewInit;
begin
pe_bh.Enabled := False;
pe_image.Visible := False;
pe_info.Enabled := False;
pe_edit.Visible := True;
//
cmd_new.Enabled := True;
cmd_save.Enabled := False;
cmd_cancel.Enabled := True;
cmd_del.Enabled := False;
cmd_print.Enabled := False;
cmd_edit.Enabled := False;
//
txt_kind.Text := '';
txt_gg.Text := '';
txt_pj.Text := '';
txt_sum.Text := '';
txt_dj.Text := '';
txt_unit.Text := '';
//
txt_kind.SetFocus;
//
qe_wm_gl.Append;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -