📄 urc_2.pas
字号:
unit urc_2;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, dialogs, Grids, DBGridEh, Menus, ComCtrls, Mask,
DBCtrlsEh, DBLookupEh, DBCtrls, ActnList, sncCurrency, sncDBCurrency,
FlEdit, ImgList;
type
Trc_2 = class(TForm)
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label17: TLabel;
Label18: TLabel;
Label19: TLabel;
L_b: TLabel;
DBGridEh2: TDBGridEh;
GroupBox1: TGroupBox;
Label23: TLabel;
Label13: TLabel;
Label14: TLabel;
Edit13: TEdit;
Edit14: TEdit;
DateTimePicker1: TDateTimePicker;
Label30: TLabel;
sncCurrencyLabel1: TsncCurrencyLabel;
sncCurrencyLabel2: TsncCurrencyLabel;
sncCurrencyLabel3: TsncCurrencyLabel;
sncDBCurrencyEdit1: TsncDBCurrencyEdit;
sncDBCurrencyEdit2: TsncDBCurrencyEdit;
sncDBCurrencyEdit3: TsncDBCurrencyEdit;
sncDBCurrencyEdit4: TsncDBCurrencyEdit;
sncDBCurrencyEdit5: TsncDBCurrencyEdit;
sncDBCurrencyEdit6: TsncDBCurrencyEdit;
sncDBCurrencyEdit7: TsncDBCurrencyEdit;
sncDBCurrencyEdit8: TsncDBCurrencyEdit;
sncDBCurrencyEdit9: TsncDBCurrencyEdit;
Panel1: TPanel;
Splitter1: TSplitter;
p1: TPanel;
Label1: TLabel;
Edit1: TEdit;
la1: TLabel;
Edit2: TEdit;
c_py: TCheckBox;
c_bh: TCheckBox;
b_find: TBitBtn;
TreeView1: TTreeView;
Label15: TLabel;
Label16: TLabel;
Label10: TLabel;
Label12: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label28: TLabel;
l_zq: TLabel;
DBText7: TDBText;
Label29: TLabel;
DBText8: TDBText;
sncCurrencyLabel4: TsncCurrencyLabel;
Label3: TLabel;
GroupBox5: TGroupBox;
b_save: TBitBtn;
b_cancel: TBitBtn;
Edit10: TEdit;
Edit12: TEdit;
GroupBox3: TGroupBox;
edit9: TsncCurrencyEdit;
edit11: TsncCurrencyEdit;
sncCurrencyEdit3: TsncCurrencyEdit;
Edit4: TEdit;
CheckBox1: TCheckBox;
CheckBox2: TCheckBox;
ActionList1: TActionList;
a_cancel: TAction;
a_save: TAction;
d_find: TDBGridEh;
Button1: TButton;
Button2: TButton;
DBGridEh1: TDBGridEh;
procedure CancelBtnClick(Sender: TObject);
procedure b_findClick(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit4Change(Sender: TObject);
procedure Edit9Change(Sender: TObject);
procedure Edit11Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
procedure Edit2KeyPress(Sender: TObject; var Key: Char);
procedure Edit9KeyPress(Sender: TObject; var Key: Char);
procedure Edit11KeyPress(Sender: TObject; var Key: Char);
procedure a_cancelExecute(Sender: TObject);
procedure a_cancelUpdate(Sender: TObject);
procedure a_saveExecute(Sender: TObject);
procedure a_saveUpdate(Sender: TObject);
procedure Edit13Change(Sender: TObject);
procedure Edit14Change(Sender: TObject);
procedure d_findKeyPress(Sender: TObject; var Key: Char);
procedure TreeView1DblClick(Sender: TObject);
procedure d_findDblClick(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClick(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure DBGridEh1DblClick(Sender: TObject);
private
procedure Load_data;
{ Private declarations }
public
procedure Save_fp;
{ Public declarations }
end;
var
rc_2: Trc_2;
implementation
uses DB, u_dm, ADODB, u_main, RICH_SYS, ufp_query;
{$R *.dfm}
procedure Trc_2.CancelBtnClick(Sender: TObject);
begin
close;
end;
procedure Trc_2.b_findClick(Sender: TObject);
var
s: string;
begin
if ((edit1.Text = '') and (edit2.Text = '')) then exit;
if edit2.Text = '' then
begin
if Length(trim(edit1.Text)) <> 7 then
begin
MessageDlg('你输入的编号不正确!', mtWarning, [mbok], 0);
Edit1.SetFocus;
exit;
end;
end;
with dm1.A_person_find do
begin
close;
sql.Clear;
s := 'exec p_find_person ' + string_sqlText(Edit2.Text) + ',' +
string_sqlText(edit1.Text);
sql.Add(s);
// Parameters.ParamByName('name').Value := '21656';
Open;
if recordcount > 1 then
begin
d_find.Visible := True;
d_find.SetFocus;
Exit;
end;
//b_select.Visible := recordcount > 1;
if recordcount < 1 then
begin
if c_py.Enabled then
begin
edit2.SelectAll;
edit2.SetFocus;
end
else
begin
edit1.SelectAll;
edit1.SetFocus;
end;
exit;
end;
if recordcount = 1 then
begin
Load_data;
end;
b_save.Enabled := sncCurrencyEdit3.Value > 0;
end;
end;
procedure Trc_2.Edit1Change(Sender: TObject);
begin
if edit2.Text <> '' then edit2.Text := '';
end;
procedure Trc_2.Edit2Change(Sender: TObject);
begin
if edit1.Text <> '' then edit1.Text := '';
end;
procedure Trc_2.FormCreate(Sender: TObject);
begin
if FileExists(main.App_path + 'rc.txt') then
TreeView1.LoadFromFile(main.App_path + 'rc.txt');
// main.Scale_form(0, Self);
//
edit13.Text := main.User_1;
edit14.Text := main.user_2;
DateTimePicker1.Date := Date;
dm1.A_rc_item.Close;
end;
procedure Trc_2.Edit4Change(Sender: TObject);
begin
try
l_zq.Caption := '应找人民币:' + CurrToStr(StrToCurr(edit4.Text) -
sncCurrencyEdit3.Value) + '元';
except
exit;
end;
end;
procedure Trc_2.Edit9Change(Sender: TObject);
begin
if not CheckBox1.Checked then
if edit10.Text = '' then
if edit9.Value > 0 then
edit10.Text := main.F_s1;
if not CheckBox2.Checked then
if edit12.Text = '' then
if edit11.Value > 0 then
edit12.Text := main.F_s2;
try
sncCurrencyEdit3.Value := edit9.Value + edit11.Value;
except
edit9.SetFocus;
end;
end;
procedure Trc_2.Edit11Change(Sender: TObject);
begin
if not CheckBox1.Checked then
if edit10.Text = '' then
if edit9.Value > 0 then
edit10.Text := main.F_s1;
if not CheckBox2.Checked then
if edit12.Text = '' then
if edit11.Value > 0 then
edit12.Text := main.F_s2;
try
sncCurrencyEdit3.Value := edit9.Value + edit11.Value;
except
edit11.SetFocus;
end;
end;
procedure Trc_2.Save_fp;
var
s: string;
begin
//保存发票号
if Edit10.Text <> '' then
begin
s := 'exec p_update_f_s1 ' + string_sqlText(Edit10.Text);
dm1.EXE_SQL(s);
main.F_s1 := Edit10.Text;
Edit9.Value := 0;
main.F_s1 := incno(main.F_s1, 1);
end;
if edit12.Text <> '' then
begin
s := 'exec p_update_f_s2 ' + string_sqlText(Edit12.Text);
dm1.EXE_SQL(s);
main.F_s2 := Edit12.Text;
Edit10.Text := '0';
main.F_s2 := incno(main.F_s2, 1);
end;
end;
procedure Trc_2.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
b_find.Click;
end;
end;
procedure Trc_2.Edit2KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
b_find.Click;
end;
end;
procedure Trc_2.Edit9KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
edit11.SetFocus;
end;
end;
procedure Trc_2.Edit11KeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
if ((edit9.Value > 0) or (edit11.Value > 0)) then
b_save.SetFocus
else
begin
MessageDlg('你没有录入金额!', mtWarning, [mbok], 0);
edit9.SetFocus;
end;
end;
end;
procedure Trc_2.a_cancelExecute(Sender: TObject);
begin
edit9.Value := 0;
edit11.Value := 0;
edit9.OnChange(self);
edit10.Text := '';
edit12.Text := '';
edit9.SetFocus;
end;
procedure Trc_2.a_cancelUpdate(Sender: TObject);
begin
a_cancel.Enabled := b_save.Enabled;
end;
procedure Trc_2.a_saveExecute(Sender: TObject);
var
s, c_no: string;
begin
if ((Edit9.Value = 0) and (edit11.Value = 0)) then exit;
if edit13.Text = '' then
begin
MessageDlg('对不起,你没有输入收款人姓名,操作已被取消!', mtWarning,
[mbok], 0);
edit13.SetFocus;
exit;
end;
if edit14.Text = '' then
begin
MessageDlg('对不起,你没有输入操作员姓名,操作已被取消!', mtWarning,
[mbok], 0);
edit14.SetFocus;
exit;
end;
s := 'exec p_get_max_c_no ' +
dm1.A_person_find.fieldbyname('person_id').AsString +
',' + main.Acount_id;
c_no := dm1.Get_data(s);
if c_no <> '' then
c_no := incno(dm1.Get_data(s), 1)
else
c_no := '1';
if ((Edit9.Value <> 0) and (edit11.Value <> 0)) then
begin
s :=
'insert into rc(acount_id,c_no,person_id,rc_date,s1,s2,s1_no,s2_no,user_name,m_name) values(';
s := s + main.Acount_id + ',' +
c_no + ',' +
dm1.A_person_find.fieldbyname('person_id').AsString + ',' +
string_sqlText(DateToStr(DateTimePicker1.Date)) + ',' +
CurrToStr(edit9.Value) + ',' +
CurrToStr(edit11.Value) + ',' +
string_sqlText(edit10.Text) + ',' +
string_sqlText(edit12.Text) + ',' +
string_sqlText(edit14.Text) + ',' +
string_sqlText(edit13.Text) + ')';
end;
if ((Edit9.Value > 0) and (edit11.Value = 0)) then
begin
s :=
'insert into rc(acount_id,c_no,person_id,rc_date,s1,s2,s1_no,user_name,m_name) values(';
s := s + main.Acount_id + ',' +
c_no + ',' +
dm1.A_person_find.fieldbyname('person_id').AsString + ',' +
string_sqlText(DateToStr(DateTimePicker1.Date)) + ',' +
CurrToStr(edit9.Value) + ',0,' +
string_sqlText(edit10.Text) + ',' +
string_sqlText(edit14.Text) + ',' +
string_sqlText(edit13.Text) + ')';
end;
if ((Edit9.Value = 0) and (edit11.Value <> 0)) then
begin
s :=
'insert into rc(acount_id,c_no,person_id,rc_date,s1,s2,s2_no,user_name,m_name) values(';
s := s + main.Acount_id + ',' +
c_no + ',' +
dm1.A_person_find.fieldbyname('person_id').AsString + ',' +
string_sqlText(DateToStr(DateTimePicker1.Date)) + ',0,' +
CurrToStr(edit11.Value) + ',' +
string_sqlText(edit12.Text) + ',' +
string_sqlText(edit14.Text) + ',' +
string_sqlText(edit13.Text) + ')';
end;
dm1.EXE_SQL(s);
b_find.Click;
//保存发票号
Save_fp;
a_cancel.Execute;
edit9.ReadOnly := True;
edit11.ReadOnly := true;
MessageDlg('入库成功!', mtWarning, [mbok], 0);
if c_py.Checked then
begin
edit2.SelectAll;
edit2.SetFocus;
end
else
begin
edit1.SelectAll;
edit1.SetFocus;
end;
end;
procedure Trc_2.a_saveUpdate(Sender: TObject);
begin
a_save.Enabled := sncCurrencyEdit3.Value > 0;
end;
procedure Trc_2.Edit13Change(Sender: TObject);
var
s: string;
begin
if edit13.Text <> '' then
begin
s := 'exec p_update_user1 ' +
string_sqlText(Edit13.Text);
dm1.EXE_SQL(s);
main.user_1 := Edit13.Text;
end;
end;
procedure Trc_2.Edit14Change(Sender: TObject);
var
s: string;
begin
if edit14.Text <> '' then
begin
s := 'exec p_update_user2 ' +
string_sqlText(Edit14.Text);
dm1.EXE_SQL(s);
main.user_2 := Edit14.Text;
end;
end;
procedure Trc_2.d_findKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
begin
d_find.Visible := false;
Load_data;
end;
end;
procedure Trc_2.TreeView1DblClick(Sender: TObject);
var
s: string;
begin
with dm1.A_person_find do
begin
if TreeView1.selected.Level = 3 then
begin
close;
sql.Clear;
s := 'select * from person where left(name, 1) = ' +
string_sqlText(TreeView1.Selected.Text) +
' and left(pno,3)=' +
string_sqlText(LeftStr(TreeView1.Selected.Parent.Parent.Text, 2) +
LeftStr(TreeView1.Selected.Parent.Text, 1));
SQL.Add(s);
open;
if recordcount > 1 then
begin
d_find.Visible := True;
d_find.SetFocus;
end;
end;
end;
end;
procedure Trc_2.Load_data;
var
s: string;
begin
with dm1.A_rc_item do
begin
close;
Parameters.ParamByName('person_id').Value :=
dm1.A_person_find.fieldbyname('person_id').AsInteger;
Parameters.ParamByName('acount_id').Value :=
strtoint(main.Acount_id);
open;
end;
with dm1.A_rc_sum do
begin
close;
Parameters.ParamByName('@acount_id').Value :=
strtoint(main.Acount_id);
Parameters.ParamByName('@person_id').Value :=
dm1.A_person_find.fieldbyname('person_id').AsInteger;
open;
{ str((FieldByName('y_count').AsFloat /
FieldByName('r_count').AsFloat * 100): 7: 2, s);
L_b.Caption := '已完成任务:' + s + '%';
}
edit9.ReadOnly := false;
edit11.ReadOnly := false;
Edit9.SetFocus;
end;
end;
procedure Trc_2.d_findDblClick(Sender: TObject);
begin
d_find.Visible := false;
Load_data;
end;
procedure Trc_2.Button1Click(Sender: TObject);
begin
main.add_tv(TreeView1);
TreeView1.SaveToFile(main.App_path + 'rc.txt');
end;
procedure Trc_2.FormClick(Sender: TObject);
begin
if d_find.Visible then d_find.Visible := false;
end;
procedure Trc_2.Button2Click(Sender: TObject);
begin
DBGridEh1.Visible := true;
dm1.a_rc_fp.open;
end;
procedure Trc_2.DBGridEh1DblClick(Sender: TObject);
begin
DBGridEh1.Visible := false;
with Tfp_query.Create(self) do
begin
edit1.Text := dm1.a_rc_fp.fieldbyname('s1_no').asstring;
BitBtn1.Click;
ShowModal;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -