📄 khzl.pas
字号:
unit khzl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, fram, ImgList, ExtCtrls, ComCtrls, ToolWin, StdCtrls, Buttons;
type
Tf_khzl = class(Tf_fram)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Panel2: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
khdm: TEdit;
khmc: TEdit;
fzr: TEdit;
khjc: TEdit;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
chb: TListBox;
n: TTabSheet;
Panel3: TPanel;
Label5: TLabel;
Label7: TLabel;
ksb: TComboBox;
fktj: TComboBox;
BCopy: TToolButton;
BPaste: TToolButton;
ztch: TCheckBox;
tzsy: TCheckBox;
Label15: TLabel;
Label14: TLabel;
xded: TComboBox;
hcts: TEdit;
xyed: TComboBox;
Label16: TLabel;
jzr: TEdit;
Label17: TLabel;
Label18: TLabel;
wz: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure B1Click(Sender: TObject);
procedure B4Click(Sender: TObject);
procedure B3Click(Sender: TObject);
procedure B2Click(Sender: TObject);
procedure B5Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure khmcKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure Edit3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure chbKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure B9Click(Sender: TObject);
procedure B10Click(Sender: TObject);
procedure B11Click(Sender: TObject);
procedure B12Click(Sender: TObject);
procedure khdmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);Override;
procedure BCopyClick(Sender: TObject);
procedure BPasteClick(Sender: TObject);
procedure chbDblClick(Sender: TObject);
procedure jzrKeyPress(Sender: TObject; var Key: Char);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure chbExit(Sender: TObject);
private
{ Private declarations }
public
Procedure SelectTable(TableName: String);
Procedure FindNext;
Procedure EditClear;
Procedure SetListPos(WinControl: TWinControl);
Procedure EditValue;
Procedure CopyToRecord;
Procedure CopyToForm;
Function EditIsNull: Boolean;
{ Public declarations }
end;
TempKh = Record
Rkhmc: String;
Rkhjc: String;
Rfzr: String;
Rgj: String;
Rsf: String;
Rsx: String;
Rdhhm: String;
Rwz: String;
Rcz: String;
Rjzr: String;
Rhcts: String;
Rfktj: String;
Rksb: String;
Rxyed: String;
Rxded: String;
end;
var
f_khzl: Tf_khzl;
Temp: TempKh;
implementation
uses DataModal;
{$R *.dfm}
{ Tf_khzl }
procedure Tf_khzl.EditClear;
var
Num: Integer;
begin
For Num := 0 to Panel2.ControlCount-1 do
if Panel2.Controls[Num]is TEdit then
TEdit(Panel2.Controls[Num]).Clear;
For Num := 0 to Panel3.ControlCount-1 do
if Panel3.Controls[Num]is TEdit then
TEdit(Panel3.Controls[Num]).Clear;
fktj.ItemIndex := 0;
ksb.ItemIndex := 0;
xyed.ItemIndex := 0;
xded.ItemIndex := 0;
end;
function Tf_khzl.EditIsNull: Boolean;
var
i: Integer;
begin
Result := False;
For i :=0 to Panel2.ControlCount-1 do
if Panel2.Controls[i]is TEdit then
//在保存数据时网址,传真可以为空
if (TEdit(Panel2.Controls[i]).TabOrder<>8)and (TEdit(Panel2.Controls[i]).TabOrder<>9)and(Trim(TEdit(Panel2.Controls[i]).Text)='') then
begin
Result := True;
Exit;
end;
For i := 0 to Panel3.ControlCount-1 do
if Panel3.Controls[i]is TEdit then
begin
if Trim(TEdit(Panel3.Controls[i]).Text)='' then
begin
Result := True;
Exit;
end;
end
else if Panel3.Controls[i]is TCombobox then
if Trim(TComboBox(Panel3.Controls[i]).Text)='' then
begin
Result := True;
Exit;
end;
end;
procedure Tf_khzl.EditValue;
begin
with Data.Query2 do
begin
khdm.Text:= FieldByName('khdm').AsString;
khmc.Text:= FieldByName('khmc').AsString;
khjc.Text:= FieldByName('khjc').AsString;
fzr.Text:= FieldByName('fzr').AsString;
Edit1.Text:= FieldByName('gj').AsString;
Edit2.Text:= FieldByName('sf').AsString;
Edit3.Text:= FieldByName('sx').AsString;
Edit4.Text := FieldByName('cz').AsString;
Edit5.Text:= FieldByName('dhhm').AsString;
wz.Text:= FieldByName('wz').AsString;
fktj.ItemIndex := fktj.Items.IndexOf(Trim(FieldByName('fktj').AsString));
ksb.ItemIndex:= ksb.Items.IndexOf(Trim(FieldByName('ksb').AsString));
if FieldByName('ztch').AsInteger = 0 then
ztch.Checked := True
else
ztch.Checked := False;
if FieldByName('tzsy').AsInteger = 0 then
tzsy.Checked := False
else
tzsy.Checked := True;
xded.ItemIndex := FieldByName('edxz').AsInteger;
jzr.Text := FieldByName('jzr').AsString;
hcts.Text := IntToStr(FieldByName('hcts').AsInteger);
xyed.ItemIndex := xyed.Items.IndexOf(Trim(FieldByName('xyed').AsString));
end;
end;
procedure Tf_khzl.FindNext;
begin
if FindNextControl(ActiveControl,True,True,False)is TEdit then
TEdit(FindNextControl(ActiveControl,True,True,False)).SetFocus
else if FindNextControl(ActiveControl,True,True,False)is TComboBox then
TComboBox(FindNextControl(ActiveControl,True,True,False)).SetFocus
else if FindNextControl(ActiveControl,True,True,False)is TCheckBox then
TCheckBox(FindNextControl(ActiveControl,True,True,False)).SetFocus;
end;
procedure Tf_khzl.SelectTable(TableName: String);
begin
with Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select * from '+ TableName);
Open;
if RecordCount>0 then
begin
chb.Clear;
while Not Eof do
begin
chb.Items.Add(Fields[0].AsString);
Next;
end;
end;
end;
end;
procedure Tf_khzl.SetListPos(WinControl: TWinControl);
begin
chb.Top := WinControl.Top;
chb.Left := WinControl.Left+(WinControl.Width-chb.Width);
chb.Visible := True;
chb.SetFocus;
end;
procedure Tf_khzl.B1Click(Sender: TObject);
begin
inherited;
PageControl1.ActivePage := TabSheet1;
EditClear;
khdm.SetFocus;
B3.Enabled := True;//保存按钮可用
B2.Enabled := False;//修改按钮不可用
B5.Enabled := False;
end;
procedure Tf_khzl.B4Click(Sender: TObject);
begin
inherited;
B3.Enabled := False;//保存按钮不可用
With Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_khzl');
Open;
if RecordCount>0 then
begin
B2.Enabled := True;
B5.Enabled := True;
B9.Enabled := True;
B10.Enabled := True;
B11.Enabled := True;
B12.Enabled := True;
EditValue;
end
else
begin
B2.Enabled := False;//修改按钮不可用
B5.Enabled := False;
B9.Enabled := False;
B10.Enabled := False;
B11.Enabled := False;
B12.Enabled := False;
end;
end;
end;
procedure Tf_khzl.B3Click(Sender: TObject);
begin
inherited;
if EditIsNull = False then
Try
if (StrToInt(jzr.Text)<1)or(StrToInt(jzr.Text)>31)then
begin
Application.MessageBox('结账日必须在1..31之间.','提示',64);
Exit;
end;
if (StrToInt(hcts.Text)>31)then
begin
Application.MessageBox('缓冲天数不能大于31.','提示',64);
Exit;
end;
With Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('insert t_khzl values(:a,:b,:c,:d,:e,:f,:g,:h,:i,:j,:k,:l,:m,:n ,:o,:p,:q,:r)');
ParamByName('a').AsString := Trim(khdm.Text);
ParamByName('b').AsString := Trim(khmc.Text);
ParamByName('c').AsString := Trim(khjc.Text);
ParamByName('d').AsString := Trim(fzr.Text);
ParamByName('e').AsString := Trim(ksb.Text);
if ztch.Checked = True then
ParamByName('f').AsInteger := 0
else
ParamByName('f').AsInteger := 1;
if tzsy.Checked = True then
ParamByName('g').AsInteger := 1
else
ParamByName('g').AsInteger := 0;
ParamByName('h').AsString := Trim(fktj.Text);
ParamByName('i').AsInteger := xded.ItemIndex;
ParamByName('j').AsInteger := StrToInt(hcts.Text);
ParamByName('k').AsString := Trim(xyed.Text);
ParamByName('l').AsString := Trim(jzr.Text);
ParamByName('m').AsString := Trim(Edit1.Text);
ParamByName('n').AsString := Trim(Edit2.Text);
ParamByName('o').AsString := Trim(Edit3.Text);
ParamByName('p').AsString := Trim(Edit5.Text);
ParamByName('q').AsString := Trim(Edit4.Text);
ParamByName('r').AsString := Trim(wz.Text);
ExecSQL;
end;
Application.MessageBox('操作成功.','提示',64);
B4.OnClick(Sender);
EditValue;
B3.Enabled := False;
Except
Application.MessageBox('操作失败.','提示',64);
End
Else
begin
Application.MessageBox('数据项不能为空.','提示',64);
end;
end;
procedure Tf_khzl.B2Click(Sender: TObject);
begin
inherited;
if Application.MessageBox('确实要修改当前记录吗?','提示',mb_YesNo)=ID_Yes then
begin
if EditIsNull = False then
begin
Try
if (StrToInt(jzr.Text)<1)or(StrToInt(jzr.Text)>31)then
begin
Application.MessageBox('结账日必须在1..31之间.','提示',64);
Exit;
end;
if (StrToInt(hcts.Text)>31)then
begin
Application.MessageBox('缓冲天数不能大于31.','提示',64);
Exit;
end;
with Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('update t_khzl set khdm = :a,khmc = :b,khjc = :c,fzr = :d,ksb = :e,ztch =:f,tzsy = :g,fktj = :h,edxz = :i,hcts = :j,xyed = :k,jzr= :l,gj= :m ,sf = :n,sx = :o,dhhm = :p,cz = :q,wz = :r where khdm = :s');
ParamByName('a').AsString := Trim(khdm.Text);
ParamByName('b').AsString := Trim(khmc.Text);
ParamByName('c').AsString := Trim(khjc.Text);
ParamByName('d').AsString := Trim(fzr.Text);
ParamByName('e').AsString := Trim(ksb.Text);
if ztch.Checked = True then
ParamByName('f').AsInteger := 0
else
ParamByName('f').AsInteger := 1;
if tzsy.Checked = True then
ParamByName('g').AsInteger := 1
else
ParamByName('g').AsInteger := 0;
ParamByName('h').AsString := Trim(fktj.Text);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -