📄 repawninput.pas
字号:
unit RepawnInput;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Grids, DBGrids, DBCtrls, ComCtrls, Db, DBTables, Spin;
type
TfrmRePawnInput = class(TForm)
Label1: TLabel;
Label2: TLabel;
txtPawnCode: TEdit;
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
txtName: TEdit;
txtAddress: TEdit;
txtPhone: TEdit;
txtZip: TEdit;
txtCerCode: TEdit;
txtLinkman: TEdit;
GroupBox2: TGroupBox;
dbgDetail: TDBGrid;
Panel2: TPanel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
Label28: TLabel;
Label29: TLabel;
Label30: TLabel;
Label31: TLabel;
Panel1: TPanel;
Label15: TLabel;
Label16: TLabel;
Label19: TLabel;
Label20: TLabel;
Label21: TLabel;
txtMonthRate: TEdit;
txtFeeRate: TEdit;
txtTotalPawnMoney: TEdit;
txtServiceFee: TEdit;
txtRealPayMoney: TEdit;
cmdSave: TButton;
cmdCancel: TButton;
cmdExit: TButton;
Label10: TLabel;
txtRepawnCode: TEdit;
txtCerName: TEdit;
Label11: TLabel;
txtRate: TEdit;
Label12: TLabel;
staRepawn: TStaticText;
Label13: TLabel;
cmbPawnLimit: TComboBox;
cmdPrint: TButton;
txtSysYear: TSpinEdit;
Label17: TLabel;
txtSysMonth: TSpinEdit;
Label18: TLabel;
txtSysDay: TSpinEdit;
Label32: TLabel;
txtPawnBeginYear: TSpinEdit;
txtPawnBeginMonth: TSpinEdit;
txtPawnBeginDay: TSpinEdit;
txtPawnEndYear: TSpinEdit;
txtPawnEndMonth: TSpinEdit;
txtPawnEndDay: TSpinEdit;
procedure cmdExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure txtPawnCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtRepawnCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
//procedure txtPawnBeginYearKeyUp(Sender: TObject; var Key: Word;
// Shift: TShiftState);
//procedure txtPawnBeginMonthKeyUp(Sender: TObject; var Key: Word;
// Shift: TShiftState);
//procedure txtPawnBeginDayKeyUp(Sender: TObject; var Key: Word;
// Shift: TShiftState);
//procedure txtPawnEndYearKeyUp(Sender: TObject; var Key: Word;
// Shift: TShiftState);
//procedure txtPawnEndMonthKeyUp(Sender: TObject; var Key: Word;
// Shift: TShiftState);
//procedure txtPawnEndDayKeyUp(Sender: TObject; var Key: Word;
// Shift: TShiftState);
//procedure txtPawnBeginYearExit(Sender: TObject);
//procedure txtPawnEndYearExit(Sender: TObject);
//procedure txtPawnBeginYearEnter(Sender: TObject);
//procedure txtPawnEndYearEnter(Sender: TObject);
//procedure txtFeeRateExit(Sender: TObject);
// procedure txtPawnEndDayExit(Sender: TObject);
procedure cmdCancelClick(Sender: TObject);
//procedure dbgDetailColExit(Sender: TObject);
procedure txtMonthRateKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtFeeRateKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtTotalPawnMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtServiceFeeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtRealPayMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmdSaveClick(Sender: TObject);
//procedure dbgDetailExit(Sender: TObject);
//procedure txtTotalPawnMoneyEnter(Sender: TObject);
procedure txtServiceFeeEnter(Sender: TObject);
//procedure dbgDetailColEnter(Sender: TObject);
//procedure dbgDetailEnter(Sender: TObject);
procedure txtPawnEndDayExit(Sender: TObject);
procedure txtMonthRateExit(Sender: TObject);
procedure txtFeeRateExit(Sender: TObject);
procedure cmbPawnLimitKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmbPawnLimitExit(Sender: TObject);
procedure cmbPawnLimitClick(Sender: TObject);
procedure txtPawnBeginYearKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtPawnBeginMonthKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtPawnBeginDayKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtPawnEndYearKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtPawnEndMonthKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtPawnEndDayKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmdPrintClick(Sender: TObject);
private
{ Private declarations }
procedure IniCategoryInDg ;
procedure ClearForm;
procedure IniPawnLimit;
procedure ChangePawnEndDate(ChangeYear,ChangeMonth,ChangeDay:integer);
public
{ Public declarations }
end;
var
frmRePawnInput: TfrmRePawnInput;
MonthRate,BuyMoney:Double;
TimeOutServiceMoney:Double;
implementation
uses dmPawn, PawnInput, Msg, Login, Pay, Ransom, Pawn, GlobalVar,
PrintTicket;
var
TimeLimit:Single; //计算典当期限相差的月数
TotalPawnMoney:Double; //计算典当总额
BookMark:TBookMark; //取得查找到的原当票的书签
DayLimit:Single; //计算典当期限相差的月数
CertiEnterTimes:integer;
PawnLimitMark:Boolean; //判断是否超出典当期限规定值
RePawnBeginDate:TDateTime; //原当的典当终到日期成为续当的起始日期供选择典当期限使用
{$R *.DFM}
//如果典当起始日期被改变,典当终到日期应根据选择的典当期限作相应的改变
procedure TfrmRePawnInput.ChangePawnEndDate(ChangeYear,ChangeMonth,ChangeDay:integer);
var
BeginDate:TDateTime;
EndDate:TDateTime;
AddDays:integer;
DayObject:TDayClass; //自定义的类 in GlobalVar
Year,Month,Day:word;
begin
if (txtPawnBeginYear.Text='')or
(txtPawnBeginMonth.Text='')or
(txtPawnBeginDay.Text='') then
begin
messagedlg(Msg.MsgBeginDateInfo,mtWarning,[mbYes],0);
exit;
end;
if ChangeYear<>0 then
begin
//年被改变
try
BeginDate:=EncodeDate(ChangeYear,txtPawnBeginMonth.Value,
txtPawnBeginDay.Value);
except
messagedlg('此月没有31天!',mtWarning,[mbYes],0);
exit;
end;
end;
if ChangeMonth<>0 then
begin
//月被改变
try
BeginDate:=EncodeDate(txtPawnBeginYear.Value,ChangeMonth,
txtPawnBeginDay.Value);
except
messagedlg('此月没有31天!',mtWarning,[mbYes],0);
exit;
end;
end;
if ChangeDay<>0 then
begin
try
BeginDate:=EncodeDate(txtPawnBeginYear.Value,txtPawnBeginMonth.Value,
ChangeDay);
except
messagedlg('此月没有31天!',mtWarning,[mbYes],0);
exit;
end;
end;
//取出此月的天数
DayObject:=TDayClass.Create;
AddDays:=DayObject.GetDays(txtPawnBeginMonth.Value,txtPawnBeginDay.Value);
//释放对象
DayObject.Free;
//取出典当期限
if cmbPawnLimit.ItemIndex=0 then
begin
AddDays:=AddDays div 2;
end
else
begin
AddDays:=AddDays*cmbPawnLimit.ItemIndex;
end;
EndDate:=BeginDate+AddDays;
DecodeDate(EndDate,Year,Month,Day);
txtPawnEndYear.Value:=Year;
txtPawnEndMonth.Value:=Month;
txtPawnEndDay.Value:=Day;
end;
procedure TfrmRePawnInput.IniPawnLimit;
begin
with cmbPawnLimit.Items do
begin
Add('半个月');
Add('一个月');
Add('二个月');
Add('三个月');
Add('四个月');
Add('五个月');
Add('六个月');
Add('七个月');
Add('八个月');
Add('九个月');
Add('十个月');
Add('十一个月');
Add('十二个月');
end;
cmbPawnLimit.ItemIndex :=1;
end;
procedure TfrmRePawnInput.ClearForm;
var
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
txtPawnBeginYear.Value:=Year;
txtPawnBeginMonth.Value:=Month;
txtPawnBeginDay.Value:=Day;
staRepawn.Caption:='';
self.txtRepawnCode.text:='';
cmbPawnLimit.ItemIndex:=1;
txtName.Text :='';
txtCerName.Text :='';
txtCerCode.Text :='';
txtPhone.Text :='' ;
txtZip.Text:='' ;
txtLinkman.Text :='';
txtAddress.Text :='' ;
txtmonthrate.text:='';
txtfeerate.text:='';
txttotalpawnmoney.text:='';
txtservicefee.text:='';
txtrealpaymoney.text:='';
txtpawnendyear.text:='';
txtpawnendmonth.text:='';
txtpawnendday.text:='';
txtRate.Text:='';
dmPawnFrm.dqDetailUn.Close;
//dmPawnFrm.tblDetailTemp.Close;
//dmPawnFrm.tblDetailTemp.EmptyTable ;
//dmPawnFrm.tblDetailTemp.Open;
//dmPawn.LineNo :=0;
txtRepawncode.setfocus;
end;
procedure TfrmRePawnInput.IniCategoryInDg ;
begin
with dbgDetail.Columns[1].picklist do
begin
with dmPawnFrm do
begin
tblCategory.First ;
while not tblCategory.Eof do
begin
Add(tblCategory.FieldByName('Name').asstring);
tblCategory.Next ;
end;
end;
end;
end;
procedure TfrmRePawnInput.cmdExitClick(Sender: TObject);
begin
with dmPawnFrm do
begin
tblHead.close;
tblDetail.close;
tblStockpile.Close;
tblDetailTemp.Close;
tblDetailTemp.EmptyTable ;
tblCertificate .close;
tblCategory.close;
dqDetailUn.Close;
end;
close;
end;
procedure TfrmRePawnInput.FormShow(Sender: TObject);
var
Present: TDateTime;
Year, Month, Day: Word;
NewCode:string;
begin
//取出数据库中当票号最大的编号
GlobalVar.MaxTicketCode:=frmMain.MaxCode;
//将数据库中最大的当票编号加1成为新的当票编号
NewCode:=frmMain.CodePlus(GlobalVar.MaxTicketCode);
txtPawnCode.Text:=NewCode;
Present:= Now;
DecodeDate(Present, Year, Month, Day);
txtSysYear.Value:=Year;
txtSysMonth.Value:=Month;
txtSysDay.Value:=Day;
//txtsysdate.text := IntToStr(Year) + '年'
//+ IntToStr(Month) + '月' + IntToStr(Day)+'日';
txtPawnBeginYear.Value:=Year;
txtPawnBeginMonth.Value:=Month;
txtPawnBeginDay.Value:=Day;
with dmPawnFrm do
begin
tblHead.Open;
tblDetail.Open;
tblStockpile.Open;
tblDetailTemp.close;
//clear tmpdetail tbl
tblDetailTemp.EmptyTable ;
tblDetailTemp.open;
tblCertificate.open;
tblCategory.Open;
dqDetailUn.Close;
end;
IniCategoryInDg;
IniPawnLimit;
end;
procedure TfrmRePawnInput.txtPawnCodeKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if txtPawnCode.text=''then
begin
messagedlg(Msg.MsgPawnCodeInput,mtWarning,[mbYes],0);
txtPawnCode.SetFocus ;
exit;
end
else
begin
with dmPawnFrm do
begin
tblHead.Open;
tblHead.IndexFieldNames:='PawnTicketCode';
tblHead.SetKey ;
tblHead.FieldByName('PawnTicketCode').AsString:=trim(txtPawnCode.text);
if tblHead.GotoKey then
begin
//ClearForm;
messagedlg(Msg.MsgPawnCodeExist,mtInformation,[mbYes],0);
txtPawnCode.SetFocus ;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -