📄 pj_add.pas
字号:
unit pj_add;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Db, DBTables, StdCtrls, Buttons, Mask, ExtCtrls, Printers,
DBCtrls;
type
Tfrm_pj_add = class(TForm)
pe_bh: TPanel;
Label1: TLabel;
pe_info: TPanel;
ds_pj_add: TDataSource;
DBGrid1: TDBGrid;
Panel1: TPanel;
cmd_new: TBitBtn;
cmd_edit: TBitBtn;
cmd_save: TBitBtn;
cmd_cancel: TBitBtn;
cmd_del: TBitBtn;
pe_edit: TPanel;
Label2: TLabel;
txt_kind: TEdit;
Label3: TLabel;
txt_gg: TEdit;
Label11: TLabel;
txt_pj: TEdit;
b1: TBitBtn;
b3: TBitBtn;
b2: TBitBtn;
Label4: TLabel;
txt_sum: TEdit;
Label5: TLabel;
txt_unit: TEdit;
Label6: TLabel;
txt_dj: TEdit;
cb_sb: TCheckBox;
lst_unit: TListBox;
sp_up_pj_add: TStoredProc;
lst_sj: TListBox;
qe_pj_add: TQuery;
qe_pj: TQuery;
qe_gg: TQuery;
qe_name: TQuery;
qe_jy: TQuery;
pe_image: TPanel;
Image1: TImage;
qe_jy1: TQuery;
sp_del_from_pj_add: TStoredProc;
sp_up_pj_ck: TStoredProc;
qe_jy2: TQuery;
lst_kind: TListBox;
lst_gg: TListBox;
lst_name: TListBox;
lst_sum: TListBox;
sp_up_pj_add1: TStoredProc;
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;
cmd_print1: TBitBtn;
cmd_print: TBitBtn;
combo_p: TComboBox;
lbl_jj: TLabel;
txt_jj: TEdit;
lst_jj: TListBox;
lst_id: TListBox;
//
procedure ControlClick1(Sender: TObject);
procedure ControlClick(Sender: TObject);
procedure ControlChange1(Sender: TObject);
procedure ControlKeyPress1(Sender: TObject; var Key: Char);
procedure ControlKeyPress3(Sender: TObject; var Key: Char);
procedure ControlKeyPress4(Sender: TObject; var Key: Char);
procedure ControlEnter(Sender: TObject);
//
procedure b1Click(Sender: TObject);
procedure b3Click(Sender: TObject);
procedure b2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormDestroy(Sender: TObject);
procedure combo_bhChange(Sender: TObject);
private
{ Private declarations }
hideList: array[1..3] of TListBox;
spaceArray: array[0..20] of string;
curState: TDataSetState;
cur_bh: string;
cur_cph: string;
cur_cz: string;
cur_czdw: string;
cur_dph: string;
cur_cx: string;
//
cur_sb: integer;
//
cur_dj: string;
cur_bx: integer;
//
procedure arrayInit;
procedure lstInfoInit;
procedure EnabledComponent(intState: TDataSetState);
procedure controlSetFocus(intpos: integer);
function RuleCheck: integer;
function RuleCheck1: integer;
procedure NewSave;
procedure NewInit;
procedure EditInit;
procedure SaveInit;
procedure CancelInit;
procedure ExeDelandInit;
procedure ExportInit;
procedure InitBHList;
procedure PrintInit;
//
procedure QueryResult;
public
{ Public declarations }
end;
var
frm_pj_add: Tfrm_pj_add;
implementation
{$R *.DFM}
uses
log, main, print;
procedure Tfrm_pj_add.PrintInit;
begin
combo_p.Items.Clear;
combo_p.items.Assign(Printer.Printers);
if combo_p.Items.Count = 0 then begin
MessageBox(Handle, '没有可用的打印机,请添加打印机', '沈阳信德', MB_ICONQUESTION or MB_OK);
Exit;
end;
//
qe_jy.Close;
qe_jy.SQL.Clear;
qe_jy.SQL.Add('SELECT * FROM PJ_ADD WHERE DJ_BH = ''' + cur_bh + ''' AND PJ_XZ_SUM > 0.01');
qe_jy.Open;
qe_jy.First;
if (qe_jy.Bof) and (qe_jy.Eof) then begin
MessageBox(Handle, '没有新增配件,不能打印领料单', '沈阳信德', MB_ICONQUESTION or MB_OK);
qe_jy.Close;
Exit;
end;
frm_print.lbl_cap1.Caption := frm_log.cur_gs_name;
frm_print.lbl_date1.Caption := frm_log.controlDate(DateToStr(Date()));
frm_print.lbl_bh1.Caption := cur_bh;
frm_print.lbl_cph1.Caption := cur_cph;
frm_print.lbl_cx1.Caption := cur_cx;
//frm_print.lbl_dph1.Caption := cur_dph;
frm_print.lbl_cz1.Caption := cur_cz;
frm_print.lbl_czdw1.Caption := cur_czdw;
frm_print.qr_ll.DataSet := qe_jy;
frm_print.txt_kind1.DataSet := qe_jy;
frm_print.txt_gg1.DataSet := qe_jy;
frm_print.txt_name1.DataSet := qe_jy;
frm_print.txt_sum1.DataSet := qe_jy;
frm_print.txt_dw1.DataSet := qe_jy;
frm_print.qr_ll.Print;
qe_jy.Close;
end;
procedure Tfrm_pj_add.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;
////////////////////////////////////////////////////////////////////////////////
// //
// INITALIZING THE SPACE ARRAY //
// //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.arrayInit;
var
i: integer;
begin
for i := 0 to 20 do begin
if i = 0 then spaceArray[i] := '';
if i = 1 then spaceArray[i] := ' ';
if i > 1 then spaceArray[i] := spaceArray[i - 1] + ' ';
end;
end;
////////////////////////////////////////////////////////////////////////////////
// //
// INITALIZING THE INFOMATION LIST //
// //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.lstInfoInit;
var
str_id: string;
str_name: string;
str_pym: string;
i: integer;
intLen: integer;
begin
for i := 1 to 3 do begin
hideList[i] := TListBox.Create(Self);
hideList[i].BorderStyle := bsNone;
hideList[i].Color := clInfoBk;
hideList[i].Width := 300;
hideList[i].Height := 68;
hideList[i].Parent := pe_edit;
hideList[i].Tag := i;
hideList[i].OnClick := frm_pj_add.ControlClick;
hideList[i].Visible := False;
end;
//初始化配件类型列表
qe_pj.Close;
qe_pj.Open;
qe_pj.First;
hideList[1].Items.Add('000' + spaceArray[17] + '(新类型)');
while not qe_pj.Eof do begin
str_id := Trim(qe_pj.FieldByName('pj_kind_id').AsString);
str_name := Trim(qe_pj.FieldByName('pj_kind_name').AsString);
str_pym := Trim(qe_pj.FieldByName('pj_pym').AsString);
if str_id <> '000' then begin
intLen := Length(str_id);
if intLen < 20 then str_id := str_id + spaceArray[20 - intLen];
hideList[1].Items.Add(str_id + str_name + spaceArray[20] + spaceArray[20] + spaceArray[20] + ' ^' + str_pym);
end;
qe_pj.Next;
end;
qe_pj.Close;
hideList[1].Left := 70;
hideList[1].Top := 29;
hideList[1].ItemIndex := -1;
//初始化配件规格列表
hideList[2].Left := 437;
hideList[2].Top := 29;
//初始化配件信息列表
qe_name.Close;
qe_name.Open;
qe_name.First;
hideList[3].Items.Add('000' + spaceArray[17] + '(新类型)');
lst_unit.Items.Add('');
lst_sj.Items.Add('0');
lst_jj.Items.Add('0');
while not qe_name.Eof do begin
str_id := Trim(qe_name.FieldByName('pj_id').AsString);
str_name := Trim(qe_name.FieldByName('pj_name').AsString);
str_pym := Trim(qe_name.FieldByName('pj_pym').AsString);
if str_id <> '000' then begin
intLen := Length(str_id);
if intLen < 20 then str_id := str_id + spaceArray[20 - intLen];
hideList[3].Items.Add(str_id + str_name + spaceArray[20] + spaceArray[20] + spaceArray[20] + ' ^' + str_pym);
//
lst_unit.Items.Add(Trim(qe_name.FieldByName('pj_unit').AsString));
lst_sj.Items.Add('0');
lst_jj.Items.Add('0');
//
end;
qe_name.Next;
end;
qe_name.Close;
hideList[3].Left := 70;
hideList[3].Top := 56;
hideList[3].ItemIndex := -1;
end;
////////////////////////////////////////////////////////////////////////////////
// //
// CONTROLING ENABLED FOR BUTTONS //
// //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.EnabledComponent(intState: TDataSetState);
begin
case intState of
dsBrowse: begin
cmd_new.Enabled := True;
cmd_save.Enabled := False;
cmd_cancel.Enabled := False;
cmd_del.Enabled := True;
cmd_print.Enabled := True;
cmd_print1.Enabled := True;
cmd_edit.Enabled := True;
//
if (qe_pj_add.Bof) and (qe_pj_add.Eof) then begin
cmd_del.Enabled := False;
cmd_print.Enabled := False;
cmd_print1.Enabled := False;
cmd_edit.Enabled := False;
end;
end;
dsEdit : begin
cmd_new.Enabled := False;
cmd_save.Enabled := True;
cmd_cancel.Enabled := True;
cmd_del.Enabled := False;
cmd_print.Enabled := False;
cmd_print1.Enabled := False;
cmd_edit.Enabled := False;
end;
dsInsert: begin
cmd_new.Enabled := True;
cmd_save.Enabled := True;
cmd_cancel.Enabled := True;
cmd_del.Enabled := False;
cmd_print.Enabled := False;
cmd_print1.Enabled := False;
cmd_edit.Enabled := False;
end;
end;
end;
////////////////////////////////////////////////////////////////////////////////
// //
// CONTROLING THE FOCUS WHEN PRESS 'ENTER' //
// //
////////////////////////////////////////////////////////////////////////////////
procedure Tfrm_pj_add.controlSetFocus(intpos: integer);
var
i: integer;
intResult: integer;
begin
case intpos of
1: txt_gg.SetFocus;
2: txt_pj.SetFocus;
3: txt_sum.SetFocus;
4: txt_unit.SetFocus;
5: begin
if txt_dj.Enabled then
txt_dj.SetFocus;
end;
6: if txt_jj.Visible then txt_jj.SetFocus;
7: cb_sb.SetFocus;
8: begin
if curState = dsInsert then begin
for i := 1 to 3 do
hideList[i].Visible := False;
//
if cmd_save.Enabled then begin
intResult := RuleCheck;
if intResult = 1 then
Exit
else begin
NewSave;
qe_pj_add.Close;
qe_pj_add.Open;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -