📄 zl_ll.pas
字号:
unit zl_ll;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
ExtCtrls, Mask, Grids, DBGrids, StdCtrls, Buttons, Db, DBTables, Printers;
type
Tfrm_zy_ll = class(TForm)
pe_select: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
txt_kind: TEdit;
txt_gg: TEdit;
txt_pj: TEdit;
cmd_query: TBitBtn;
pe_pj_ck: TPanel;
DBGrid1: TDBGrid;
pe_ck_op: TPanel;
cmd_edit: TBitBtn;
cmd_cancel: TBitBtn;
cmd_save: TBitBtn;
pe_pj_tk: TPanel;
DBGrid2: TDBGrid;
pe_tk_op: TPanel;
cmd_del: TBitBtn;
cmd_print: TBitBtn;
pe_edit: TPanel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Bevel1: TBevel;
txt_zy_time: TMaskEdit;
txt_pj_dj: TEdit;
txt_sum: TEdit;
txt_lyr: TEdit;
pe_image: TPanel;
Image1: TImage;
qe_pj_ck: TQuery;
ds_pj_ck: TDataSource;
qe_kind: TQuery;
qe_gg: TQuery;
qe_pj: TQuery;
qe_zy_gl: TQuery;
ds_zy_gl: TDataSource;
sp_update_mode_for_zy: TStoredProc;
sp_insert_into_zy: TStoredProc;
sp_del_from_zy: TStoredProc;
combo_p: TComboBox;
b1: TBitBtn;
b2: TBitBtn;
b3: TBitBtn;
//
procedure ControlClick(Sender: TObject);
procedure ControlChange1(Sender: TObject);
procedure ControlChange2(Sender: TObject);
procedure ControlEnter(Sender: TObject);
procedure ControlKeyPress1(Sender: TObject; var Key: Char);
procedure ControlKeyPress3(Sender: TObject; var Key: Char);
procedure cmd_editClick(Sender: TObject);
procedure cmd_saveClick(Sender: TObject);
procedure cmd_cancelClick(Sender: TObject);
procedure cmd_delClick(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 cmd_queryClick(Sender: TObject);
procedure cmd_printClick(Sender: TObject);
procedure b1Click(Sender: TObject);
procedure b2Click(Sender: TObject);
procedure b3Click(Sender: TObject);
private
{ Private declarations }
hideList: array[1..3] of TListBox;
spaceArray: array[0..20] of string;
//
procedure lstInfoInit;
procedure arrayInit;
procedure controlSetFocus(intpos: integer);
procedure EnabledComponent(intState: TDataSetState);
//
procedure EditInit;
procedure SaveInit;
procedure CancelInt;
procedure ExeDelandInit;
public
{ Public declarations }
function RuleCheck: integer;
end;
var
frm_zy_ll: Tfrm_zy_ll;
implementation
{$R *.DFM}
uses
log, main, print;
procedure Tfrm_zy_ll.EnabledComponent(intState: TDataSetState);
begin
case intState of
dsBrowse: begin
cmd_edit.Enabled := True;
cmd_save.Enabled := False;
cmd_cancel.Enabled := False;
if (qe_pj_ck.Bof) and (qe_pj_ck.Eof) then begin
cmd_edit.Enabled := False;
cmd_save.Enabled := False;
cmd_cancel.Enabled := False;
end;
end;
dsEdit : begin
cmd_edit.Enabled := False;
cmd_save.Enabled := True;
cmd_cancel.Enabled := True;
end;
end;
end;
procedure Tfrm_zy_ll.controlSetFocus(intpos: integer);
begin
case intpos of
1: txt_gg.SetFocus;
2: txt_pj.SetFocus;
3: frm_zy_ll.cmd_queryClick(nil);
4: txt_pj_dj.SetFocus;
5: txt_sum.SetFocus;
6: txt_lyr.SetFocus;
end;
end;
procedure Tfrm_zy_ll.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;
procedure Tfrm_zy_ll.lstInfoInit;
var
str_id: string;
str_name: 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 := 253;
hideList[i].Height := 78;
hideList[i].Parent := pe_select;
hideList[i].Tag := i;
hideList[i].OnClick := frm_zy_ll.ControlClick;
hideList[i].Visible := False;
end;
//初始化配件类型列表
qe_kind.Close;
qe_kind.Open;
qe_kind.First;
while not qe_kind.Eof do begin
str_id := Trim(qe_kind.FieldByName('pj_kind_id').AsString);
str_name := Trim(qe_kind.FieldByName('pj_kind_name').AsString);
intLen := Length(str_id);
if intLen < 20 then str_id := str_id + spaceArray[20 - intLen];
hideList[1].Items.Add(str_id + str_name);
qe_kind.Next;
end;
qe_kind.Close;
hideList[1].Left := 39;
hideList[1].Top := 35;
hideList[1].ItemIndex := -1;
//初始化配件规格列表
hideList[2].Left := 39;
hideList[2].Top := 58;
//初始化配件信息列表
qe_pj.Close;
qe_pj.Open;
qe_pj.First;
while not qe_pj.Eof do begin
str_id := Trim(qe_pj.FieldByName('pj_id').AsString);
str_name := Trim(qe_pj.FieldByName('pj_name').AsString);
intLen := Length(str_id);
if intLen < 20 then str_id := str_id + spaceArray[20 - intLen];
hideList[3].Items.Add(str_id + str_name);
qe_pj.Next;
end;
qe_pj.Close;
hideList[3].Left := 39;
hideList[3].Top := 81;
hideList[3].ItemIndex := -1;
end;
procedure Tfrm_zy_ll.ControlClick(Sender: TObject);
var
intIndex: integer;
str_name: string;
begin
intIndex := TListBox(Sender).Tag;
if (intIndex <= 3) and (intIndex > 0) then begin
case intIndex of
1: begin
str_name := Copy(hideList[1].Items[hideList[1].ItemIndex], 21, 60);
txt_kind.Text := str_name;
txt_kind.SetFocus;
end;
2: begin
str_name := Copy(hideList[2].Items[hideList[2].ItemIndex], 21, 60);
txt_gg.Text := str_name;
txt_gg.SetFocus;
end;
3: begin
str_name := Copy(hideList[3].Items[hideList[3].ItemIndex], 21, 60);
txt_pj.Text := str_name;
txt_pj.SetFocus;
end;
end;
end;
end;
procedure Tfrm_zy_ll.ControlChange1(Sender: TObject);
var
strText: string;
i: integer;
intPos: integer;
//
intIndex: integer;
str_id: string;
begin
intIndex := TWinControl(Sender).Tag;
if (intIndex <= 3) and (intIndex > 0) then begin
hideList[intIndex].Visible := True;
strText := Trim(TEdit(Sender).Text);
//第一次
for i := 0 to hideList[intIndex].Items.Count - 1 do begin
str_id := Copy(hideList[intIndex].Items[i], 1, 20);
intPos := Pos(strText, str_id);
if intPos = 1 then begin
hideList[intIndex].ItemIndex := i;
Break;
end else begin
hideList[intIndex].ItemIndex := 0;
end;
end;
//第二次
if intPos <> 1 then begin
for i := 0 to hideList[intIndex].Items.Count - 1 do begin
str_id := Copy(hideList[intIndex].Items[i], 21, 60);
intPos := Pos(strText, str_id);
if intPos = 1 then begin
hideList[intIndex].ItemIndex := i;
Break;
end else begin
hideList[intIndex].ItemIndex := 0;
end;
end;
end;
end;
end;
procedure Tfrm_zy_ll.ControlChange2(Sender: TObject);
begin
if (qe_pj_ck.State = dsEdit) then
EnabledComponent(dsEdit);
end;
procedure Tfrm_zy_ll.ControlEnter(Sender: TObject);
var
i: integer;
str_name: string;
str_id: string;
intLen: integer;
begin
for i := 1 to 3 do
hideList[i].Visible := False;
//
if TWinControl(Sender).Tag = 2 then begin
if (Trim(txt_kind.Text) = '') or (hideList[1].ItemIndex = -1) then begin
MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_kind.SetFocus;
Exit;
end else begin
str_name := Copy(hideList[1].Items[hideList[1].ItemIndex], 21, 60);
if Trim(str_name) <> Trim(txt_kind.Text) then begin
MessageBox(Handle, '请确定配件类型', '沈阳信德', MB_ICONQUESTION or MB_OK);
txt_kind.SetFocus;
Exit;
end else begin
str_id := Copy(hideList[1].Items[hideList[1].ItemIndex], 1, 20);
if Trim(str_id) <> Trim(qe_gg.ParamByName('ipj_kind_id').Value) then begin
qe_gg.Close;
qe_gg.ParamByName('ipj_kind_id').Value := Trim(str_id);
qe_gg.Open;
qe_gg.First;
if (qe_gg.Bof) and (qe_gg.Eof) then begin
MessageBox(Handle, '该类型的配件规格不存在', '沈阳信德', MB_ICONQUESTION or MB_OK);
qe_gg.ParamByName('ipj_kind_id').Value := '***';
txt_kind.SetFocus;
Exit;
end;
qe_gg.First;
hideList[2].Items.Clear;
while not qe_gg.Eof do begin
str_id := Trim(qe_gg.FieldByName('pj_gg_id').AsString);
str_name := Trim(qe_gg.FieldByName('pj_gg_name').AsString);
intLen := Length(str_id);
if intLen < 20 then str_id := str_id + spaceArray[20 - intLen];
hideList[2].Items.Add(str_id + str_name);
qe_gg.Next;
end;
qe_gg.Close;
hideList[2].ItemIndex := -1;
//
txt_gg.Text := '';
end;
end;
end;
end;
end;
procedure Tfrm_zy_ll.ControlKeyPress1(Sender: TObject; var Key: Char);
var
intIndex: integer;
str_name: string;
begin
if Ord(Key) = 13 then begin
intIndex := TEdit(Sender).Tag;
if (intIndex <= 3) and (intIndex > 0) then begin
if hideList[intIndex].ItemIndex > -1 then begin
str_name := Copy(hideList[intIndex].Items[hideList[intIndex].ItemIndex], 21, 60);
TEdit(Sender).Text := str_name;
end;
hideList[intIndex].Visible := False;
controlSetFocus(TWinControl(Sender).Tag);
end else begin
controlSetFocus(TWinControl(Sender).Tag);
end;
end;
end;
procedure Tfrm_zy_ll.ControlKeyPress3(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);
if Ord(Key) = 13 then controlSetFocus(TWinControl(Sender).Tag);
end;
procedure Tfrm_zy_ll.ExeDelandInit;
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -