📄 frmrechargeableu.pas
字号:
unit frmRechargeableU;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, ComCtrls, ExtCtrls;
type
TfrmRechargeable = class(TForm)
Label1: TLabel;
edLeaseNo: TEdit;
Label2: TLabel;
edName: TEdit;
rbbtn2: TRadioButton;
rabtn1: TRadioButton;
Panel4: TPanel;
Panel3: TPanel;
Panel2: TPanel;
Label11: TLabel;
Panel1: TPanel;
Label7: TLabel;
Label6: TLabel;
Label5: TLabel;
Label4: TLabel;
Label3: TLabel;
Label10: TLabel;
edBalance: TEdit;
dtBagMoTim: TDateTimePicker;
comBagMonth: TComboBox;
bitOK: TBitBtn;
bitCancel: TBitBtn;
procedure bitCancelClick(Sender: TObject);
procedure rabtn1Click(Sender: TObject);
procedure rabtn1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure rbbtn2Click(Sender: TObject);
procedure rbbtn2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure bitOKClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure comBagMonthChange(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
procedure Search(LeaseNO:String);
end;
var
frmRechargeable: TfrmRechargeable;
implementation
uses DMU, frmAddReaderU, frmReaderU;
{$R *.dfm}
procedure TfrmRechargeable.bitCancelClick(Sender: TObject);
begin
Close;
end;
procedure TfrmRechargeable.Search(LeaseNO: String);
begin
Dm.adoTemp.Close;
Dm.adoTemp.SQL.Clear;
Dm.adoTemp.SQL.Text:='Select LeaseNo,Name from Reader where LeaseNo='+QuotedStr(LeaseNo);
Dm.adoTemp.Open;
edLeaseNo.Text:=LeaseNo;
edName.Text:=Dm.adoTemp.FieldByName('Name').AsString;
Dm.adoTemp.Close;
end;
procedure TfrmRechargeable.rabtn1Click(Sender: TObject);
begin
comBagMonth.Enabled:=rabtn1.Checked;
end;
procedure TfrmRechargeable.rabtn1KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
comBagMonth.Enabled:=rabtn1.Checked;
end;
procedure TfrmRechargeable.rbbtn2Click(Sender: TObject);
begin
comBagMonth.Enabled:=rabtn1.Checked;
end;
procedure TfrmRechargeable.rbbtn2KeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
comBagMonth.Enabled:=rabtn1.Checked;
end;
procedure TfrmRechargeable.bitOKClick(Sender: TObject);
var
Money:Single;
Str:String;
begin
if edBalance.Text=''then
begin
MessageBox(0,'预付金不能为空','提示',MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION);
edBalance.SetFocus;
exit;
end;
if StrToFloat(edBalance.Text)<0 then
begin
MessageBox(0,'预付金不能为负数','提示',MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION);
edBalance.SetFocus;
exit;
end;
money:=0;
Str:='为借书证号:'+edLeaseNo.Text+'姓名:'+edName.Text+'的用户冲值成功。'+chr(13)+'应收取';
//======================================
Dm.adoRechargeable.Close;
Dm.adoRechargeable.SQL.Clear;
Dm.adoRechargeable.SQL.Text:='select * from Rechargeable';
Dm.adoRechargeable.Open;
DM.adoTemp.Close;
Dm.adoTemp.SQL.Clear;
Dm.adoTemp.SQL.Text:='Select * from LoanOption';
Dm.adoTemp.Open;
Dm.adoTemp2.Close;
Dm.adoTemp2.SQL.Clear;
Dm.adoTemp2.SQL.Text:='Select * from Reader where LeaseNO='+QuotedStr(edLeaseNo.Text);
Dm.adoTemp2.Open;
//============计算收费=========
if Dm.adoTemp2.FieldByName('PressGold').AsString=''then //按金
begin
Money:=Money+StrToFloat(Dm.adoTemp.FieldByName('PressGold').AsString);
Str:=Str+chr(13)+'按金:'+Dm.adoTemp.FieldByName('PressGold').AsString+'元';
end;
Money:=Money+StrToFloat(edBalance.Text); //预付金
Str:=Str+Chr(13)+'预付金:'+edBalance.Text+'元';
if rabtn1.Checked then //包月金
begin
Money:=Money+StrToInt(comBagMonth.Text)*StrToFloat(Dm.adoTemp.FieldByName('BagMonthMoney').AsString);
Str:=Str+Chr(13)+comBagMonth.Text+'个月的包月金:'+FloatToStr(StrToFloat(comBagMonth.Text)*StrToFloat(Dm.adoTemp.FieldByName('BagMonthMoney').AsString))+'元';
end;
Str:=Str+Chr(13)+'共计人民币'+FloatToStr(Money)+'元';
MessageBox(0,Pchar(Str),'提示',MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION);
//============保存信息=========
Dm.adoRechargeable.Append;
Dm.adoTemp2.Edit;
Dm.adoRechargeable.FieldByName('LeaseNo').AsString:=edLeaseNo.Text;//借书证号
if Dm.adoTemp2.FieldByName('PressGold').AsString=''then //按金
begin
Dm.adoRechargeable.FieldByName('PressGold').AsString:=Dm.adoTemp.FieldByName('PressGold').AsString;
Dm.adoTemp2.FieldByName('PressGold').AsString:=Dm.adoTemp.FieldByName('PressGold').AsString;
end;
Dm.adoRechargeable.FieldByName('Balance').AsString:=edBalance.Text;//预付金
if Dm.adoTemp2.FieldByName('Balance').AsString='' then
Dm.adoTemp2.FieldByName('Balance').AsString:='0';
Dm.adoTemp2.FieldByName('Balance').AsString:=FloatToStr(StrToFloat(Dm.adoTemp2.FieldByName('Balance').AsString)+StrToFloat(edBalance.Text));
if rabtn1.Checked then //包月
begin
if comBagMonth.ItemIndex <>0 then
begin
Dm.adoRechargeable.FieldByName('BagMonthMoney').AsString:=FloatToStr(StrToInt(comBagMonth.Text)*StrToFloat(Dm.adoTemp.FieldByName('BagMonthMoney').AsString));//包月金
Dm.adoTemp2.FieldByName('BagMonth').AsString:='0';//借阅方式改为包月制
Dm.adoTemp2.FieldByName('BagMoTim').AsString:=DateToStr(dtBagMoTim.Date);//包月到期日
if Dm.adoTemp2.FieldByName('BagMoStTim').AsString=''then
Dm.adoTemp2.FieldByName('BagMoStTim').AsString:=DateToStr(Date);
end
end
else
Dm.adoTemp2.FieldByName('BagMonth').AsString:='1';
Dm.adoRechargeable.FieldByName('WTWK').AsString:='0';//冲值性质 0为冲值
Dm.adoRechargeable.FieldByName('Date').AsString:=DateTimeToStr(Date());//冲值日期
Dm.adoTemp2.Post;
Dm.adoRechargeable.Post;
//----------保存BalaCcou表-----
Dm.adoTemp.Close;
Dm.adoTemp.SQL.Clear;
Dm.adoTemp.SQL.Text:='Select * From BalaCcou';
Dm.adoTemp.Open;
Dm.adoTemp.Edit;
Dm.adoTemp.FieldByName('Money').AsString:=FloatToStr(StrToFloat(Dm.adoTemp.FieldByName('Money').AsString)+Money);
Dm.adoTemp.Post;
//=============================
Dm.adoTemp.Close;
Dm.adoRechargeable.Close;
Dm.adoTemp2.Close;
if Dm.adoReader.Active then
frmReader.Search();
if Dm.adoAddReader.Active then
frmAddReader.Search(edLeaseNo.Text);
Close;
end;
procedure TfrmRechargeable.FormShow(Sender: TObject);
var
MyDate:String;
begin
edBalance.Text:='0';
comBagMonth.ItemIndex:=0;
rabtn1.Checked:=True;
//===============
Dm.adoTemp2.Close;
Dm.adoTemp2.SQL.Clear;
Dm.adoTemp2.SQL.Text:='Select * from Reader where LeaseNO='+QuotedStr(edLeaseNo.Text);
Dm.adoTemp2.Open;
if Dm.adoTemp2.FieldByName('BagMoTim').AsString='' then
dtBagMoTim.Date:=IncMonth(Date,comBagMonth.ItemIndex)
else
dtBagMoTim.Date:=IncMonth(Dm.adoTemp2.FieldByName('BagMoTim').AsDateTime,comBagMonth.ItemIndex);
//===============
if Dm.adoTemp2.FieldByName('BagMoTim').AsString<>''then
begin
myDate:=Dm.adoTemp2.FieldByName('BagMoTim').AsString;
if myDate>=DateTimeToStr(now) then
rbbtn2.Enabled:=False
else
rbbtn2.Enabled:=True;
end
else
rbbtn2.Enabled:=True;
Dm.adoTemp2.Close;
end;
procedure TfrmRechargeable.comBagMonthChange(Sender: TObject);
begin
Dm.adoTemp2.Close;
Dm.adoTemp2.SQL.Clear;
Dm.adoTemp2.SQL.Text:='Select * from Reader where LeaseNO='+QuotedStr(edLeaseNo.Text);
Dm.adoTemp2.Open;
if Dm.adoTemp2.FieldByName('BagMoTim').AsString='' then
dtBagMoTim.Date:=IncMonth(Date(),comBagMonth.ItemIndex)
else
dtBagMoTim.Date:=IncMonth(Dm.adoTemp2.FieldByName('BagMoTim').AsDateTime,comBagMonth.ItemIndex);
Dm.adoTemp2.Close;
//ShowMessage(datetimetoStr(IncMonth(now,1)));
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -