⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.pas

📁 这是用DELPHI制作的一个简单的闭路电视收费
💻 PAS
📖 第 1 页 / 共 5 页
字号:
procedure TFormMain.DateEx32CloseUp(Sender: TObject);
var
  StartYear,StartMonth,StartDay:Word;
  EndYear,EndMonth,EndDay:Word;
  Fee:Word;
begin
  DecodeDate(DateEx31.Date,StartYear,StartMonth,StartDay);
  DecodeDate(DateEx32.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;
    EdtExFee3.Text:=IntToStr(Fee);
  end;
end;

procedure TFormMain.DateEx42CloseUp(Sender: TObject);
var
  StartYear,StartMonth,StartDay:Word;
  EndYear,EndMonth,EndDay:Word;
  Fee:Word;
begin
  DecodeDate(DateEx41.Date,StartYear,StartMonth,StartDay);
  DecodeDate(DateEx42.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;
    EdtExFee4.Text:=IntToStr(Fee);
  end;
end;

procedure TFormMain.EdtExFee1Change(Sender: TObject);
var
  t:Integer;
begin
  t:=StrToInt(EdtExFee1.Text)+StrToInt(EdtExFee2.Text)+StrToInt(EdtExFee3.Text)+StrToInt(EdtExFee4.Text);
  EdtEx9.Text:=IntToStr(t);
end;

function TFormMain.ServNumberEx: Integer;
var
  i,j:Integer;
begin
  j:=0;
  for i:=1 to 4 do
    if (FindComponent('CheckEx'+IntToStr(i)) as TCheckBox).Checked then
      j:=j+1;
  Result:=j;
end;

procedure TFormMain.CalcServEx;
var
  i,j,k:Integer;
  y1,m1,d1,y2,m2,d2:Word;
  Temp:TCheckBox;
  TmpDate1,TmpDate2:TwwDBDateTimePicker;
begin
  j:=ServNumberEx;
  k:=0;
  SetLength(TmpArray,j);
  for i:=1 to 4 do
  begin
    Temp:=FindComponent('CheckEx'+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('DateEx'+IntToStr(i)+'1') as TwwDBDateTimePicker;
      TmpDate2:=FindComponent('DateEx'+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('EdtExFee'+IntToStr(i)) as Tedit).Text);
      k:=k+1;
    end;
  end;
end;

procedure TFormMain.BtnEx1Click(Sender: TObject); //续费确定按钮
var
  i:Integer;
  TmpID:String;
  y1,m1,d1,y2,m2,d2:Word;
  TmpDate1,TmpDate2:TwwDBDateTimePicker;
begin
  for i:=1 to 4 do
  begin
    TmpDate1:=FindComponent('DateEx'+IntToStr(i)+'1') as TwwDBDateTimePicker;
    TmpDate2:=FindComponent('DateEx'+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;
  CalcServEx;
  if  ServNumberEx > 0 then
  begin
    TmpID:= DataM.QueryUser.FieldByName('UserID').AsString;
    with DataM.QueryService1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT ServName, ServTypeID, StartYear, StartMonth, StartDay, ServTime, Fee, UserID');
      SQL.Add('FROM "Service.DB" Service');
      SQL.Add('WHERE "Service".UserID="'+TmpID+'"');
      Open;
      Edit;
      RequestLive:=True;
      First;
      for i:=0 to Length(TmpArray)-1 do
      begin
        //不管有否记录,另增加记录
        Append;
        FieldByName('ServName').AsString:=TmpArray[i].SName;
        FieldByName('UserID').AsString:=TmpID;
        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;
        Next;
      end;
        //覆盖记录
        {if FieldByName('ServTypeID').AsString = TmpArray[i].SID then
        begin
          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;
          Next;
        end  
        else
        begin
          with DataM.TableService1 do
          begin
            Open;
            Insert;
            FieldByName('UserID').AsString := TmpID;
            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;
            Close;
          end;
        end;
      end;}
      //RequestLive:=False;
      //Close;
    end;
    //DataM.QueryUser.Close;
    //DataM.QueryAgent.Close;
    BtnEx1.Enabled:=False;
    BtnEx2.Enabled:=False;
    BtnEx3.Enabled:=True;
  end
  else
    MessageDlg('你没有选择续费项目',mtWarning,[mbOK],0);
end;

procedure TFormMain.BtnEx2Click(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;
    TmpDate:=FindComponent('DateEx'+IntToStr(i)+'1') as TwwDBDateTimePicker;
    TmpDate.Date:=Date();
    TmpDate.Enabled:=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.Clear;
    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;
end;

procedure TFormMain.BtnEx5Click(Sender: TObject);//续费“下一条”按钮
begin
  PageControl.ActivePage:=TabSheet8;
end;

//修改用户
procedure TFormMain.ModifyUser(i: Integer; S: String);
begin
  with DataM.QueryUser do
  begin
    Close;
    SQL.Clear;
    SQL.Add('SELECT UserID, Name, IDcard, Phone, Address, CardNo, UserCardNo,UserZIP, AgentID,UserRemark,PrintMark');
    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;
  DataM.TableAgent.Open;
end;

procedure TFormMain.BtnModify1Click(Sender: TObject);
var
  UID:Integer;
begin
  if (EdtModify1.Text='') or (EdtModify5.Text='') or (EdtModify6.Text='') then
    MessageDlg('用户名、用户证、卡号不能为空!',mtWarning,[mbOK],0)
  else if Application.MessageBox('确定修改吗?','修改用户',MB_OKCANCEL) = IDOK then
  begin
    DataM.QueryUser.RequestLive:=True;
    DataM.QueryUser.Edit;
    DataM.QueryUser.Post;
    UID:=DataM.QueryUser.FieldByName('UserID').AsInteger;
    DataM.QueryUser.DisableControls;
    //DataM.QueryUser.Close;
    //DataM.QueryUser.RequestLive:=False;
    DataM.TableAgent.DisableControls;
    //DataM.TableAgent.Close;
    with DataM.QueryPrint do
    begin
      Close;
      SQL.Clear;
      SQL.Add('SELECT CardNo, UserID');
      SQL.Add('FROM "PrintNo.DB" PrintNo');
      SQL.Add('WHERE UserID ='+IntToStr(UID));
      Open;
      Close;
      SQL.Clear;
      SQL.Add('UPDATE "PrintNo.DB" PrintNo');
      SQL.Add('SET PN = 0');
      SQL.Add('SET CardNo = "'+EdtModify6.Text+'"');
      SQL.Add('WHERE UserID ='+IntToStr(UID));
      PrePare;
      ExecSQL;
      Close;
      UnPrepare;
      BtnModify1.Enabled:=False;
      BtnModify3.Enabled:=False;
    end;
  end;
end;

procedure TFormMain.TabSheet4Show(Sender: TObject);
var
  i:Integer;
begin
  DataM.QueryUser.Close;
  DataM.TableAgent.Close;
  UserUpdateEnable(False);
  for i:=1 to 6 do
    (FindComponent('EdtModify'+IntToStr(i)) as TwwDBEdit).Text:='';
  //ComboModify1.Text:='';
  Panel4.Enabled:=True;
  BtnModify2.Enabled:=True;
  for i:=0 to Panel4.ControlCount-1 do
    Panel4.Controls[i].Enabled:=True;
  RBtnUpdate1.Checked:=True;
  EdtUpdate2.Enabled:=False;
  EdtUpdate3.Enabled:=False;
  EdtUpdate1.Text:='';
  EdtUpdate2.Text:='';
  EdtUpdate3.Text:='';
  EdtUpdate1.Enabled:=True;
 // EdtUpdate1.SetFocus;
end;

procedure TFormMain.BtnModify2Click(Sender: TObject);
var
  Sel,i:Integer;
  Str:String;
begin
  if RBtnUpdate1.Checked then
  begin
    Sel:=1;
    Str:=EdtUpdate1.Text;
  end
  else if RBtnUpdate2.Checked then
  begin
    Sel:=2;
    Str:=EdtUpdate2.Text;
  end
  else
  begin
    Sel:=3;
    Str:=EdtUpdate3.Text;
  end;
  if (Findcomponent('EdtUpdate'+IntToStr(Sel)) as TEdit).Text = '' then
    MessageDlg('请输入参数!',mtConfirmation,[mbOK],0)
  else
  begin
    ModifyUser(Sel,Str);
    if  DataM.QueryUser.RecordCount >= 1 then
    begin
      UserUpdateEnable(True);
      for i:=0 to Panel4.ControlCount-1 do
      begin
        if Panel4.Controls[i] is TEdit then
          (Panel4.Controls[i] as Tedit).Text:='';
        RBtnUpdate1.Checked:=True;
        Panel4.Controls[i].Enabled:=False;
        BtnModify2.Enabled:=False;
      end;
    end
    else
      MessageDlg('没有此用户!',mtConfirmation,[mbOK],0);
  end;
end;

procedure TFormMain.BtnModify5Click(Sender: TObject);
var
  i:Integer;
begin
  UserUpdateEnable(False);
  Panel4.Enabled:=True;
  for i:=0 to Panel4.ControlCount-1 do
  begin
    Panel4.Controls[i].Enabled:=True;
    if Panel4.Controls[i] is TEdit then
     (Panel4.Controls[i] as Tedit).Text:='';
  end;
  RBtnUpdate1.Checked:=True;
  EdtUpdate2.Enabled:=False;
  EdtUpdate3.Enabled:=False;
  BtnModify2.Enabled:=True;
  {for i:=0 to TabSheet4.ControlCount-1 do
  begin
    if TabSheet4.Controls[i] is TwwDBEdit then
      (TabSheet4.Controls[i] as TwwDBEdit).Text:='';
    BtnModify5.Enabled:=False;
  end;}
  DataM.QueryUser.Close;
  DataM.TableAgent.Close;
end;

procedure TFormMain.BtnModify3Click(Sender: TObject);//删除
var
  TmpID:String;
begin
  if Application.MessageBox('确定删除吗?','删除用户',MB_OKCANCEL) = IDOK then
  begin
    TmpID:=DataM.QueryUser.FieldByName('UserID').AsString;
    with DataM.QueryService1 do
    begin
      //删除用户服务信息
      Close;
      SQL.Clear;
      SQL.Add('DELETE FROM Service');
      SQL.Add('WHERE UserID ="'+TmpID+'"');
      Prepare;
      ExecSQL;
      Close;
      UnPrepare;

      //删除用户打印标记
      Close;
      SQL.Clear;
      SQL.Add('DELETE FROM PrintNo');
      SQL.Add('WHERE UserID ="'+TmpID+'"');
      Prepare;
      ExecSQL;
      Close;
      UnPrepare;

      //删除用户
      SQL.Clear;
      SQL.Add('DELETE FROM UserInfo');
      SQL.Add('WHERE UserID ="'+TmpID+'"');
      Prepare;
      ExecSQL;
      Close;
      UnPrepare;
    end;
    DataM.QueryAgent.Close;
    DataM.QueryUser.Close;
    BtnModify1.Enabled:=False;
    BtnModify3.Enabled:=False;
    BtnModify4.Enabled:=False;
  end;
end;

procedure TFormMain.RBtnUpdate1Click(Sender: TObject);
begin
  EdtUpdate1.Enabled:=True;
  EdtUpdate1.SetFocus;
  EdtUpdate2.Enabled:=False;
  EdtUpdate3.Enabled:=False;
  EdtUpdate2.Text:='';
  EdtUpdate3.Text:='';
end;

procedure TFormMain.RBtnupdate2Click(Sender: TObject);
begin
  EdtUpdate1.Enabled:=False;
  EdtUpdate1.Text:='';
  EdtUpdate2.Enabled:=True;
  EdtUpdate2.SetFocus;
  EdtUpdate3.Enabled:=False;
  EdtUpdate3.Text:='';
end;

procedure TFormMain.RBtnupdate3Click(Sender: TObject);
begin
  EdtUpdate1.Enabled:=False;
  EdtUpdate1.Text:='';
  EdtUpdate2.Enabled:=False;
  EdtUpdate2.Text:='';
  EdtUpdate3.Enabled:=True;
  EdtUpdate3.SetFocus;
end;

//查询
procedure TFormMain.TabSheet5S

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -