📄 main.pas
字号:
if EndYear < StartYear then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else if (EndYear = StartYear) and (EndMonth < StartMonth) then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else
begin
Fee:=((EndYear-StartYear)*12+EndMonth-StartMonth)*IntegrateRate;
EdtFee1.Text:=IntToStr(Fee);
end;
end;
procedure TFormMain.DateNew22Exit(Sender: TObject);
var
StartYear,StartMonth,StartDay:Word;
EndYear,EndMonth,EndDay:Word;
Fee:Word;
begin
DecodeDate(DateNew21.Date,StartYear,StartMonth,StartDay);
DecodeDate(DateNew22.Date,EndYear,EndMonth,EndDay);
if EndYear < StartYear then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else if (EndYear = StartYear) and (EndMonth < StartMonth) then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else
begin
Fee:=((EndYear-StartYear)*12+EndMonth-StartMonth)*StockRate;
EdtFee2.Text:=IntToStr(Fee);
end;
end;
procedure TFormMain.DateNew32Exit(Sender: TObject);
var
StartYear,StartMonth,StartDay:Word;
EndYear,EndMonth,EndDay:Word;
Fee:Word;
begin
DecodeDate(DateNew31.Date,StartYear,StartMonth,StartDay);
DecodeDate(DateNew32.Date,EndYear,EndMonth,EndDay);
if EndYear < StartYear then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else if (EndYear = StartYear) and (EndMonth < StartMonth) then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else
begin
Fee:=((EndYear-StartYear)*12+EndMonth-StartMonth)*EducationRate;
EdtFee3.Text:=IntToStr(Fee);
end;
end;
procedure TFormMain.DateNew42Exit(Sender: TObject);
var
StartYear,StartMonth,StartDay:Word;
EndYear,EndMonth,EndDay:Word;
Fee:Word;
begin
DecodeDate(DateNew41.Date,StartYear,StartMonth,StartDay);
DecodeDate(DateNew42.Date,EndYear,EndMonth,EndDay);
if EndYear < StartYear then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else if (EndYear = StartYear) and (EndMonth < StartMonth) then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else
begin
Fee:=((EndYear-StartYear)*12+EndMonth-StartMonth)*VideoRate;
EdtFee4.Text:=IntToStr(Fee);
end;
end;
procedure TFormMain.EdtFee1Change(Sender: TObject);
var
t:Integer;
begin
if (Sender as TEdit).Text <> '' then
begin
t:=StrToInt(EdtFee1.Text)+StrToInt(EdtFee2.Text)+StrToInt(EdtFee3.Text)+StrToInt(EdtFee4.Text);
EdtNew8.Text:=IntToStr(t);
end
else
(Sender as TEdit).Text:='0';
end;
procedure TFormMain.BtnNew1Click(Sender: TObject);
var
i:Integer;
y,m,d,y1,m1,d1,y2,m2,d2:Word;
TmpDate1,TmpDate2:TwwDBDateTimePicker;
begin
if (EdtNew1.Text='') or (EdtNew5.Text='') or (EdtNew6.Text='') then
begin
MessageDlg('用户名、用户证、卡号不能为空!',mtWarning,[mbOK],0);
Exit;
end;
for i:=1 to 4 do
begin
TmpDate1:=FindComponent('DateNew'+IntToStr(i)+'1') as TwwDBDateTimePicker;
TmpDate2:=FindComponent('DateNew'+IntToStr(i)+'2') as TwwDBDateTimePicker;
DecodeDate(TmpDate1.Date,y1,m1,d1);
DecodeDate(TmpDate2.Date,y2,m2,d2);
if y2 < y1 then
begin
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0);
Exit;
end
else if (y2 = y1) and (m2 < m1) then
begin
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0);
Exit;
end;
end;
DecodeDate(Date(),y,m,d);
StatusBar.Panels[3].Text:='新增用户...';
AddUser(y,m,d);
BtnNew1.Enabled:=False;
BtnNew2.Enabled:=False;
BtnNew3.Enabled:=True;
end;
procedure TFormMain.AddUser(Year,Month,Day:Integer);
var
TmpID,i:Integer;
begin
with DataM.TableUser do
begin
Close;
TableName:='Userinfo';
Open;
Append;
FieldByName('Name').AsString:=EdtNew1.Text;
FieldByName('IDcard').AsString:=EdtNew2.Text;
FieldByName('Address').AsString:=EdtNew3.Text;
FieldByName('Phone').AsString:=EdtNew4.Text;
FieldByName('UserCardNo').AsString:=EdtNew5.Text;
FieldByName('CardNo').AsString:=EdtNew6.Text;
FieldByName('ResistYear').AsInteger:=Year;
FieldByName('ResistMonth').AsInteger:=Month;
FieldByName('ResistDay').AsInteger:=Day;
FieldByName('UserZIP').AsString:=EdtNew7.Text;
FieldByName('AgentID').AsInteger:=
AgentIDCreate(ComboNew1.Items.IndexOf(ComboNew1.Text));
FieldByName('UserRemark').AsVariant:=MemoNew1.Lines.Text;
Post;
Last;
TmpID:=FieldByName('UserID').AsInteger;
Close;
//增加用户服务信息
CalcServ;
TableName:='Service';
Open;
for i:=0 to Length(TmpArray)-1 do
begin
Append;
FieldByName('UserID').AsInteger:=TmpID;
FieldByName('ServName').AsString:=TmpArray[i].SName;
FieldByName('ServTypeID').AsString:=TmpArray[i].SID;
FieldByName('StartYear').AsInteger:=TmpArray[i].SYear;
FieldByName('StartMonth').AsInteger:=TmpArray[i].SMonth;
FieldByName('StartDay').AsInteger:=TmpArray[i].SDay;
FieldByName('ServTime').AsInteger:=TmpArray[i].Stime;
FieldByName('Fee').AsInteger:=TmpArray[i].SFee;
Post;
end;
Close;
//增加用户打印标记
TableName:='PrintNo';
Open;
Append;
FieldByName('UserID').AsInteger:=TmpID;
FieldByName('CardNo').AsString:=EdtNew6.Text;
Post;
Close;
end;
StatusBar.Panels[3].Text:='新增成功';
end;
function TFormMain.ServNumber: Integer;
var
i,j:Integer;
begin
j:=0;
for i:=1 to 4 do
if (FindComponent('CheckNew'+IntToStr(i)) as TCheckBox).Checked then
j:=j+1;
Result:=j;
end;
procedure TFormMain.CalcServ;
var
i,j,k:Integer;
y1,m1,d1,y2,m2,d2:Word;
Temp:TCheckBox;
TmpDate1,TmpDate2:TwwDBDateTimePicker;
begin
j:=ServNumber;
k:=0;
SetLength(TmpArray,j);
for i:=1 to 4 do
begin
Temp:=FindComponent('CheckNew'+IntToStr(i)) as TCheckBox;
if Temp.Checked then
begin
TmpArray[k].SName:=Temp.Caption;
case i of
1:TmpArray[k].SID:='528';
2:TmpArray[k].SID:='544';
3:TmpArray[k].SID:='560';
4:TmpArray[k].SID:='576';
end;
TmpDate1:=FindComponent('DateNew'+IntToStr(i)+'1') as TwwDBDateTimePicker;
TmpDate2:=FindComponent('DateNew'+IntToStr(i)+'2') as TwwDBDateTimePicker;
DecodeDate(TmpDate1.Date,y1,m1,d1);
DecodeDate(TmpDate2.Date,y2,m2,d2);
TmpArray[k].SYear:=y1;
TmpArray[k].SMonth:=m1;
TmpArray[k].SDay:=d1;
TmpArray[k].Stime:=(y2-y1)*12+m2-m1;
TmpArray[k].SFee:=StrToInt((FindComponent('EdtFee'+IntToStr(i)) as Tedit).Text);
k:=k+1;
end;
end;
end;
function TFormMain.AgentIDCreate(i: Integer): Integer;
begin
Result:=i+48;
end;
procedure TFormMain.BtnNew2Click(Sender: TObject);//取消
var
i:Integer;
begin
if BtnNew1.Enabled then
begin
for i:=1 to 7 do
(FindComponent('EdtNew'+IntToStr(i)) as TEdit).Text:='';
ComboNew1.Text:='';
EdtNew8.Text:='0';
EdtFee1.Text:='0';
EdtFee2.Text:='0';
EdtFee3.Text:='0';
EdtFee4.Text:='0';
MemoNew1.Lines.Clear;
for i:=1 to 4 do
(FindComponent('CheckNew'+IntToStr(i)) as TCheckBox).Checked:=False;
TabSheet3Show(self);
end;
end;
procedure TFormMain.BtnNew4Click(Sender: TObject); //新增页面“下一条”
var
i:Integer;
begin
for i:=1 to 7 do
(FindComponent('EdtNew'+IntToStr(i)) as TEdit).Text:='';
ComboNew1.Text:='';
EdtNew8.Text:='0';
EdtFee1.Text:='0';
EdtFee2.Text:='0';
EdtFee3.Text:='0';
EdtFee4.Text:='0';
MemoNew1.Lines.Clear;
for i:=1 to 4 do
(FindComponent('CheckNew'+IntToStr(i)) as TCheckBox).Checked:=False;
TabSheet3Show(self);
end;
procedure TFormMain.BtnLookupTOKClick(Sender: TObject);
var
Sel:Integer;
Str:String;
begin
if RadioButton1.Checked then
begin
Sel:=1;
Str:=LookupT1.Text;
end
else if RadioButton2.Checked then
begin
Sel:=2;
Str:=LookupT2.Text;
end
else
begin
Sel:=3;
Str:=LookupT3.Text;
end;
if (Findcomponent('LookupT'+IntToStr(Sel)) as TEdit).Text = '' then
MessageDlg('请输入参数!',mtConfirmation,[mbOK],0)
else
begin
if ExtendFee(Sel,Str) then
PageControl.ActivePage:=TabSheet9
else
MessageDlg('没有此用户!',mtConfirmation,[mbOK],0)
end;
end;
procedure TFormMain.BtnLookupTCancelClick(Sender: TObject);
begin
LookupT1.Text:='';
LookupT2.Text:='';
LookupT3.Text:='';
end;
function TFormMain.ExtendFee(i: Integer; s: String):Boolean;
begin
Result:=False;
with DataM.QueryUser do
begin
Close;
SQL.Clear;
SQL.Add('SELECT UserID, Name, IDcard, Phone, Address, CardNo, UserCardNo,UserZIP, AgentID,UserRemark');
SQL.Add('FROM "Userinfo.DB" Userinfo');
if i =1 then
SQL.Add('WHERE CardNo = "' +s+'"')
else if i = 2 then
SQL.Add('WHERE UserCardNo = "' +s+'"')
else if i = 3 then
SQL.Add('WHERE Name = "' +s+'"');
Open;
end;
if DataM.QueryUser.RecordCount = 1 then
Result:=True
else if DataM.QueryUser.RecordCount > 1 then
begin
Result:=True;
MessageDlg('有多个同名用户!'+#13+'按“卡号”或“用户证”查询,'+#13+
'可唯一定位' ,mtConfirmation,[mbOK],0);
end;
with DataM.QueryAgent do
begin
Close;
SQL.Clear;
SQL.Add('SELECT AgentName, AgentID');
SQL.Add('FROM "Agent.DB" Agent');
SQL.Add('WHERE Agent.AgentID=:"AgentID"');
Open;
end;
end;
procedure TFormMain.Delay(Seconds, Millisec: Word);
var
TimeOut:TDateTime;
begin
TimeOut:=Now + EncodeTime(0,Seconds div 60,Seconds mod 60,MilliSec);
while Now < TimeOut do
Application.ProcessMessages;
end;
//续费处理
procedure TFormMain.CheckEx1Click(Sender: TObject);
var
i,t,f:Integer;
begin
for i:=1 to 3 do
(FindComponent('LblEx'+IntToStr((Sender as TCheckBox).Tag)+IntToStr(i)) as TLabel).Enabled:=
(Sender as TCheckBox).Checked;
for i:=1 to 2 do
(FindComponent('DateEx'+IntToStr((Sender as TCheckBox).Tag)+IntToStr(i)) as TwwDBDateTimePicker).Enabled:=
(Sender as TCheckBox).Checked;
(FindComponent('EdtExFee'+IntToStr((Sender as TCheckBox).Tag)) as TEdit).Enabled:=
(Sender as TCheckBox).Checked;
if not((Sender as TCheckBox).Checked) then
begin
(FindComponent('DateEx'+IntToStr((Sender as TCheckBox).Tag)+'1') as TwwDBDateTimePicker).Date:=Date();
(FindComponent('DateEx'+IntToStr((Sender as TCheckBox).Tag)+'2') as TwwDBDateTimePicker).Date:=Date();
t:=StrToInt(EdtEx9.Text);
f:=StrToInt((FindComponent('EdtExFee'+IntToStr((Sender as TCheckBox).Tag)) as TEdit).Text);
t:=t-f;
EdtEx9.Text:=IntToStr(t);
(FindComponent('EdtExFee'+IntToStr((Sender as TCheckBox).Tag)) as TEdit).Text:='0';
end
else
(FindComponent('DateEx'+IntToStr((Sender as TCheckBox).Tag)+'2') as TwwDBDateTimePicker).Date:=
(FindComponent('DateEx'+IntToStr((Sender as TCheckBox).Tag)+'1') as TwwDBDateTimePicker).Date;
for i:=1 to 4 do
if (FindComponent('CheckEx'+IntToStr(i)) as TCheckBox).Checked then
begin
BtnEx1.Enabled:=True;
BtnEx2.Enabled:=True;
Break;
end
else
begin
BtnEx1.Enabled:=False;
BtnEx2.Enabled:=False;
end;
end;
procedure TFormMain.TabSheet9Show(Sender: TObject);
var
i,j:Integer;
Temp:TCheckBox;
TmpDate:TwwDBDateTimePicker;
begin
for i:=1 to 4 do
begin
Temp:=FindComponent('CheckEx'+IntToStr(i)) as TCheckBox;
Temp.Checked:=False;
for j:=1 to 3 do
(FindComponent('LblEx'+IntToStr(Temp.Tag)+IntToStr(j)) as TLabel).Enabled:=
False;
for j:=1 to 2 do
begin
TmpDate:=FindComponent('DateEx'+IntToStr(Temp.Tag)+IntToStr(j)) as TwwDBDateTimePicker;
TmpDate.Enabled:=False;
TmpDate.Date:=Date();
end;
(FindComponent('EdtExFee'+IntToStr(Temp.Tag)) as TEdit).Enabled:=False;
(FindComponent('EdtExFee'+IntToStr(Temp.Tag)) as TEdit).Text:='0';
end;
BtnEx1.Enabled:=False;
BtnEx2.Enabled:=False;
BtnEx3.Enabled:=False;
end;
procedure TFormMain.DateEx12CloseUp(Sender: TObject);
var
StartYear,StartMonth,StartDay:Word;
EndYear,EndMonth,EndDay:Word;
Fee:Word;
begin
DecodeDate(DateEx11.Date,StartYear,StartMonth,StartDay);
DecodeDate(DateEx12.Date,EndYear,EndMonth,EndDay);
if EndYear < StartYear then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else if (EndYear = StartYear) and (EndMonth < StartMonth) then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else
begin
Fee:=((EndYear-StartYear)*12+EndMonth-StartMonth)*IntegrateRate;
EdtExFee1.Text:=IntToStr(Fee);
end;
end;
procedure TFormMain.DateEx22CloseUp(Sender: TObject);
var
StartYear,StartMonth,StartDay:Word;
EndYear,EndMonth,EndDay:Word;
Fee:Word;
begin
DecodeDate(DateEx21.Date,StartYear,StartMonth,StartDay);
DecodeDate(DateEx22.Date,EndYear,EndMonth,EndDay);
if EndYear < StartYear then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else if (EndYear = StartYear) and (EndMonth < StartMonth) then
MessageDlg('时限日期不能小于起始日期!',mtWarning,[mbOK],0)
else
begin
Fee:=((EndYear-StartYear)*12+EndMonth-StartMonth)*StockRate;
EdtExFee2.Text:=IntToStr(Fee);
end;
end;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -