📄 spjcxx.pas
字号:
unit spjcxx;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, fram, ImgList, ExtCtrls, ComCtrls, ToolWin, StdCtrls, ActnList;
type
Tf_spjcxx = class(Tf_fram)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
spdm: TEdit;
spmc: TEdit;
cs: TComboBox;
jbdw: TComboBox;
cd: TEdit;
gg: TEdit;
wsj: TEdit;
hsj: TEdit;
sl: TEdit;
se: TEdit;
BCopy: TToolButton;
BPaste: TToolButton;
Label11: TLabel;
cgdw: TComboBox;
Label12: TLabel;
Edit1: TEdit;
Label13: TLabel;
Edit2: TEdit;
Label14: TLabel;
spzl: TComboBox;
procedure spdmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure B1Click(Sender: TObject);
procedure B2Click(Sender: TObject);
procedure B3Click(Sender: TObject);
procedure B4Click(Sender: TObject);
procedure B5Click(Sender: TObject);
procedure B9Click(Sender: TObject);
procedure B10Click(Sender: TObject);
procedure B11Click(Sender: TObject);
procedure B12Click(Sender: TObject);
procedure BCopyClick(Sender: TObject);
procedure BPasteClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure wsjKeyPress(Sender: TObject; var Key: Char);
procedure wsjChange(Sender: TObject);
procedure hsjChange(Sender: TObject);
procedure slChange(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);override;
procedure wsjEnter(Sender: TObject);
procedure hsjEnter(Sender: TObject);
procedure jbdwChange(Sender: TObject);
procedure cgdwChange(Sender: TObject);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
Procedure FindNext;
Procedure EditClear;
Procedure CopyToRecord;
Procedure CopyToForm;
Procedure EditValue;
Function EditIsNull: Boolean;
end;
TempSP = Record
Rspmc: String;
Rcs: integer;
Rjbdw: integer;
Rcgdw: Integer;
Rjhsgx: String;
Rhsgx: String;
Rcd: String;
Rspzl: integer;
Rgg: String;
Rwsj: String;
Rhsj: String;
Rsl: String;
Rse: String;
end;
var
f_spjcxx: Tf_spjcxx;
Temp: TempSP;
Copydisable: Boolean= False;//在复制时不触发未税价,含税价,税率的OnChange事件
disableChange:Boolean= False;//在未税价变化时防止触发含税价的OnChange事件,在含税价变化时防止触发未税价的OnChange事件
insertState1: Boolean= False;//确定当前是否处于插入状态,如果是,在输入为税价时,含税价为只读,
//输入含税价时,未税价为只读,如果没有处于插入状态,在修改未税价时,可以修改含税价,修改含税价时,也
//可以修改未税价
implementation
uses DataModal;
{$R *.dfm}
{ Tf_spjcxx }
procedure Tf_spjcxx.EditClear;
var
Num: Integer;
begin
For Num := 0 to Panel1.ControlCount-1 do
begin
if Panel1.Controls[Num]is TEdit then
TEdit(Panel1.Controls[Num]).Clear
end;
sl.Text := '0.17';
Edit1.Text := '1';
jbdw.ItemIndex := 0;
cgdw.ItemIndex := 0;
cs.ItemIndex := 0;
end;
procedure Tf_spjcxx.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;
end;
procedure Tf_spjcxx.spdmKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if Key = vk_Return then
FindNext;
end;
procedure Tf_spjcxx.B1Click(Sender: TObject);
begin
inherited;
insertState1 := True;
wsj.ReadOnly := False;
hsj.ReadOnly := False;
EditClear;
spdm.SetFocus;
B3.Enabled := True;//保存按钮可用
B2.Enabled := False;//修改按钮不可用
B5.Enabled := False;
end;
function Tf_spjcxx.EditIsNull: Boolean;
var
i: Integer;
begin
Result := False;
For i := 0 to Panel1.ControlCount-1 do
begin
if Panel1.Controls[i]is TEdit then
begin
if Trim(TEdit(Panel1.Controls[i]).Text)='' then
begin
Result := True;
Exit;
end;
end
else if Panel1.Controls[i]is TComboBox then
begin
if Trim(TComboBox(Panel1.Controls[i]).Text)='' then
begin
Result := True;
Exit;
end;
end;
end;
end;
procedure Tf_spjcxx.B2Click(Sender: TObject);
begin
inherited;
if Application.MessageBox('确实要修改当前记录吗?','提示',mb_YesNo)=ID_Yes then
begin
if EditIsNull = False then
begin
if StrToInt(Edit2.Text)<1 then
begin
Application.MessageBox('换算关系小于1.','提示',64);
Edit2.SetFocus;
Exit;
end;
Try
with Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('update t_spjcxx set spdm = :a,spmc = :b,cs = :c,jbdw = :d,cgdw =:aa,hsgx = :bb,cd = :e,gg =:f,wsj = :g,hsj = :h,sl = :i,se = :j,spzl = :l where spdm = :k');
ParamByName('a').AsString := Trim(spdm.Text);
ParamByName('b').AsString := Trim(spmc.Text);
ParamByName('c').AsString := Trim(cs.Text);
ParamByName('d').AsString := Trim(jbdw.Text);
ParamByName('aa').AsString := Trim(cgdw.Text);
ParamByName('bb').AsInteger := StrToInt(Edit2.Text);
ParamByName('e').AsString := Trim(cd.Text);
ParamByName('f').AsString := Trim(gg.Text);
ParamByName('g').AsFloat := StrToFloat(wsj.Text);
ParamByName('h').AsFloat := StrToFloat(hsj.Text);
ParamByName('i').AsFloat := StrToFloat(sl.Text);
ParamByName('j').AsFloat := StrToFloat(se.Text);
ParamByName('l').AsString := Trim(spzl.Text);
ParamByName('k').AsString := Trim(Data.Query2.FieldByName('spdm').AsString);
ExecSQL;
end;
Application.MessageBox('修改成功.','提示',64);
B4.OnClick(Sender);
Except
Application.MessageBox('修改失败.','提示',64);
End;
end
else
Application.MessageBox('数据项不能为空.','提示',64);
end;
end;
procedure Tf_spjcxx.B3Click(Sender: TObject);
begin
inherited;
if EditIsNull = False then
Try
if StrToInt(Edit2.Text)<1 then
begin
Application.MessageBox('换算关系小于1.','提示',64);
Edit2.SetFocus;
Exit;
end;
With Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('insert t_spjcxx values(:a,:b,:c,:d,:aa,:bb,:e,:f,:g,:h,:i,:j,:k)');
ParamByName('a').AsString := Trim(spdm.Text);
ParamByName('b').AsString := Trim(spmc.Text);
ParamByName('c').AsString := Trim(cs.Text);
ParamByName('d').AsString := Trim(jbdw.Text);
ParamByName('aa').AsString := Trim(cgdw.Text);
ParamByName('bb').AsInteger := StrToInt(Edit2.Text);
ParamByName('e').AsString := Trim(cd.Text);
ParamByName('f').AsString := Trim(gg.Text);
ParamByName('g').AsFloat := StrToFloat(wsj.Text);
ParamByName('h').AsFloat := StrToFloat(hsj.Text);
ParamByName('i').AsFloat := StrToFloat(sl.Text);
ParamByName('j').AsFloat := StrToFloat(se.Text);
ParamByName('k').AsString := Trim(spzl.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_spjcxx.B4Click(Sender: TObject);
begin
inherited;
insertState1 := False;
wsj.ReadOnly := False;
hsj.ReadOnly := False;
B3.Enabled := False;//保存按钮不可用
With Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select * from t_spjcxx');
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;
EditClear;
end;
end;
end;
procedure Tf_spjcxx.B5Click(Sender: TObject);
begin
if Application.MessageBox('确实要删除当前记录吗?','提示',mb_YesNo)=ID_Yes then
begin
Try
With Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('delete t_spjcxx where spdm = :a');
ParamByName('a').AsString := Trim(Data.Query2.FieldByName('spdm').AsString);
ExecSQL;
end;
Application.MessageBox('删除成功.','提示',64);
B4.OnClick(Sender);
Except
Application.MessageBox('操作失败.','提示',64);
end;
end;
end;
procedure Tf_spjcxx.B9Click(Sender: TObject);
begin
inherited;
insertState1 := False;
Data.Query2.First;
B2.Enabled := True;
B5.Enabled := True;
B3.Enabled := False;
B9.Enabled := False;
B10.Enabled := False;
B11.Enabled := True;
B12.Enabled := True;
EditValue;
wsj.ReadOnly := False;
hsj.ReadOnly := False;
end;
procedure Tf_spjcxx.B10Click(Sender: TObject);
begin
inherited;
insertState1 := False;
Data.Query2.Prior;
B2.Enabled := True;
B5.Enabled := True;
B3.Enabled := False;
B11.Enabled := True;
B12.Enabled := True;
if Data.Query2.Bof = True then
begin
B9.Enabled := False;
B10.Enabled := False;
end;
EditValue;
wsj.ReadOnly := False;
hsj.ReadOnly := False;
end;
procedure Tf_spjcxx.B11Click(Sender: TObject);
begin
inherited;
insertState1 := False;
Data.Query2.Next;
B2.Enabled := True;
B5.Enabled := True;
B3.Enabled := False;
B9.Enabled := True;
B10.Enabled := True;
if Data.Query2.Eof = True then
begin
B11.Enabled := False;
B12.Enabled := False;
end;
EditValue;
wsj.ReadOnly := False;
hsj.ReadOnly := False;
end;
procedure Tf_spjcxx.B12Click(Sender: TObject);
begin
inherited;
Data.Query2.Last;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -