📄 pawnmodify.~pa
字号:
unit PawnModify;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, ExtCtrls, Grids, DBGrids, DBCtrls, ComCtrls, Db, DBTables, Spin,
Mask;
type
TfrmPawnModify = class(TForm)
Label2: TLabel;
txtPawnCode: TEdit;
GroupBox1: TGroupBox;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
txtName: 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;
Label1: TLabel;
cmdQuery: TButton;
txtCerCode: TEdit;
txtAddress: TEdit;
txtPhone: TEdit;
txtZip: TEdit;
txtLinkman: TEdit;
Label10: TLabel;
cmbCerName: TComboBox;
staModify: TStaticText;
Label11: TLabel;
txtRate: TEdit;
txtSysYear: TSpinEdit;
Label14: TLabel;
txtSysMonth: TSpinEdit;
Label17: TLabel;
txtSysDay: TSpinEdit;
Label18: TLabel;
Label12: TLabel;
cmbPawnLimit: TComboBox;
GroupBox3: TGroupBox;
Label32: TLabel;
Label33: TLabel;
Label34: TLabel;
Label35: TLabel;
Label36: TLabel;
Label37: TLabel;
Label38: TLabel;
Label39: TLabel;
txtPawnName: TDBEdit;
txtPawnSpec: TDBEdit;
txtPawnNumber: TDBEdit;
txtLineNum: TDBEdit;
txtAppriseValue: TDBEdit;
txtDiscountRate: TDBEdit;
txtPawnMoney: TDBEdit;
cmbPawnCategory: TDBComboBox;
cmdDel: TButton;
cmdAdd: TButton;
txtPawnBeginYear: TSpinEdit;
txtPawnBeginMonth: TSpinEdit;
txtPawnBeginDay: TSpinEdit;
txtPawnEndYear: TSpinEdit;
txtPawnEndMonth: TSpinEdit;
txtPawnEndDay: TSpinEdit;
procedure cmdQueryClick(Sender: TObject);
procedure cmdExitClick(Sender: TObject);
procedure txtPawnCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmbCerNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtCerCodeKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtPhoneKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtZipKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtLinkmanKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtAddressKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
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 FormShow(Sender: TObject);
procedure cmdCancelClick(Sender: TObject);
//procedure dbgDetailColExit(Sender: TObject);
procedure cmdSaveClick(Sender: TObject);
//procedure txtPawnBeginDayKeyUp(Sender: TObject; var Key: Word;
//Shift: TShiftState);
//procedure txtPawnBeginMonthKeyUp(Sender: TObject; var Key: Word;
//Shift: TShiftState);
//procedure txtPawnBeginYearExit(Sender: TObject);
//procedure txtPawnEndDayKeyUp(Sender: TObject; var Key: Word;
//Shift: TShiftState);
//procedure txtPawnEndMonthKeyUp(Sender: TObject; var Key: Word;
//Shift: TShiftState);
//procedure txtPawnEndYearKeyUp(Sender: TObject; var Key: Word;
//Shift: TShiftState);
//procedure txtPawnBeginYearKeyUp(Sender: TObject; var Key: Word;
// Shift: TShiftState);
//procedure txtPawnEndYearExit(Sender: TObject);
//procedure txtPawnBeginYearEnter(Sender: TObject);
//procedure txtPawnEndYearEnter(Sender: TObject);
//procedure txtPawnEndDayExit(Sender: TObject);
procedure txtFeeRateExit(Sender: TObject);
//procedure dbgDetailColEnter(Sender: TObject);
//procedure dbgDetailExit(Sender: TObject);
procedure txtMonthRateExit(Sender: TObject);
procedure cmbPawnLimitKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmbPawnLimitExit(Sender: TObject);
procedure txtPawnNameKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmbPawnCategoryKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtPawnSpecKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtPawnNumberKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtAppriseValueKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtAppriseValueKeyPress(Sender: TObject; var Key: Char);
procedure txtDiscountRateKeyPress(Sender: TObject; var Key: Char);
procedure txtDiscountRateKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtPawnMoneyEnter(Sender: TObject);
procedure txtPawnMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure dbgDetailCellClick(Column: TColumn);
procedure cmbPawnLimitClick(Sender: TObject);
procedure txtSysYearChange(Sender: TObject);
procedure txtSysMonthChange(Sender: TObject);
procedure txtSysDayChange(Sender: TObject);
//procedure FormKeyDown(Sender: TObject; var Key: Word;
// Shift: TShiftState);
procedure txtPawnNameEnter(Sender: TObject);
procedure txtPawnSpecEnter(Sender: TObject);
procedure txtPawnNumberEnter(Sender: TObject);
procedure txtAppriseValueEnter(Sender: TObject);
procedure txtDiscountRateEnter(Sender: TObject);
procedure cmbPawnCategoryEnter(Sender: TObject);
procedure cmdDelClick(Sender: TObject);
procedure cmdAddClick(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);
private
{ Private declarations }
procedure ClearForm;
procedure IniDBCombox;
procedure IniControlBox;
procedure IniCategoryInDg;
procedure IniPawnLimit;
procedure GetTotalMoney;
procedure ChangePawnEndDate(ChangeYear,ChangeMonth,ChangeDay:integer);
public
{ Public declarations }
end;
var
frmPawnModify: TfrmPawnModify;
QueryPawnCode:string;
HeadBookMark:TBookMark;
ModifyMark:Boolean;
implementation
uses PawnQuery, dmPawn, Msg, PawnInput, GlobalVar;
{$R *.DFM}
var
CertiEnterTimes:Integer; //证件名称选择时用到
TotalPawnMoney:Double; //计算典当总额
TimeLimit:Single; //计算典当期限
//selValue:variant; //当焦点进入某一栏时的值
//selMark:Boolean; //同时标记一下
DetailBookMark:TBookMark; //标记显示在文本框中的记录的书签
DBookMarkExist:Boolean; //标记细表的书签是否未被释放
PawnLimitMark:Boolean; //判断是否超出典当期限规定值
ModifyTableOpenMark:Boolean; //判断tblModifyDetail是否打开
DataModifyMark:Boolean; //判断数据是否被修改的标志
tempName:string;
tempCategory :string;
tempSpec:string;
tempNumber:integer;
tempValue:Double;
tempDiscount:Double;
tempMoney:Double;
//记录被修改的记录的行号
LineNumberArray: array of integer;
MaxIndex:integer;
ArrayIndex:integer;
//是否添加一新记录标记
AddMark:Boolean;
//如果典当起始日期被改变,典当终到日期应根据选择的典当期限作相应的改变
procedure TfrmPawnModify.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 TfrmPawnModify.GetTotalMoney;
begin
TotalPawnMoney:=0;
with dmPawnFrm do
begin
tblModifyDetail.First;
while not tblModifyDetail.Eof do
begin
TotalPawnMoney:=TotalPawnMoney+tblModifyDetail.FieldByName('PawnMoney').AsFloat;
tblModifyDetail.Next ;
end;
end;
{if TotalPawnMoney>3000 then
begin
txtMonthRate.Text:='0.5';
end
else
txtMonthRate.Text:='0.5';
txtFeeRate.Text:='4.5'; }
txtTotalPawnMoney.Text :=format('%8.1f',[TotalPawnMoney]);
end;
//初始化典当期限组合框
procedure TfrmPawnModify.IniPawnLimit;
begin
with cmbPawnLimit.Items do
begin
Add('半个月');
Add('一个月');
Add('二个月');
Add('三个月');
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -