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

📄 del_money_un.pas

📁 布林电话收费管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
     //这里先不考虑,如果用户中间进行了服务业务的变更的问题.以后升级时加以考虑.

      if dm.q_e.Recordset.RecordCount >0 then
       begin
        dm.q_e.Last ;

        bsskinedit6.text:=floattostr((monthof(strtodate(sys_end))-monthof(
                      dateof(dm.q_e.FieldValues ['交费时间'])))*strtofloat(bsskinedit9.Text)+
                      strtofloat(bsskinedit8.Text )+(yearof(strtodate(sys_end))-yearof(
                      dateof(dm.q_e.FieldValues ['交费时间'])))*strtofloat(bsskinedit9.Text)*12);
       end
      else
       begin
        bsskinedit6.text:=floattostr((monthof(strtodate(sys_end))-monthof(
                      dateof(dm.q_a.FieldValues['tel_time'])))*strtofloat(bsskinedit9.Text)+
                      strtofloat(bsskinedit8.Text )+(yearof(strtodate(sys_end))-yearof(
                      dateof(dm.q_a.FieldValues['tel_time'])))*strtofloat(bsskinedit9.Text)*12);
       end;
      //取出用户的累计交款余额

      with dm do
       begin
        q_f.Close;
        q_f.SQL.Clear;
        q_f.SQL.Add('select up_ye from TEL_UP where UP_TEL=:up_tel and UP_SFZH=:up_sfzh');
        q_f.Parameters.ParamByName('up_tel').Value:=trim(bsskinedit12.Text );
        q_f.Parameters.ParamByName('up_sfzh').Value:=trim(bsskinedit2.Text );
        q_f.Prepared;
        q_f.Open;
       end;

      if dm.q_f.Recordset.RecordCount >0 then
       begin
        dm.q_f.last;
        if dm.q_f.FieldValues ['up_ye']>0 then
        bsskinedit7.Text:=floattostr(dm.q_f.FieldValues ['up_ye']);
       end
     else  
       bsskinedit7.Text:='0.00';

  //  bsskinedit5.SetFocus;
    exit;
 end;           
end;

procedure Tdel_money.bsSkinXFormButton6Click(Sender: TObject);
begin
  inherited;
   screen_xt;
   bsskinedit12.SetFocus;
end;

procedure Tdel_money.bsSkinEdit5Exit(Sender: TObject);
var
 i,j:integer;
begin
  inherited;
if trim(bsskinedit12.Text)<>'' then
   begin
       if trim(bsskinedit5.Text )<>'' then
       begin
        j:=0;
       for i:=1 to  length(trim(bsskinedit5.Text)) do
        begin
         if pos(copy(trim(bsskinedit5.Text),i,1),'0123456789.-')=0 then
          j:=1
        end;
       if j=1 then
        begin
         bsskinmessage1.MessageDlg('当前输入的交款金额中存在非法字符!!!!!'+CHR(13)+'可以输入的字符为:0到9的数字及小数点和负号',mterror,[mbyes],0);
         bsskinedit5.Clear;
         bsskinedit5.SetFocus;
         exit;
        end;
       end;
   end
else
 bsskinedit12.SetFocus;
end;

procedure Tdel_money.bsSkinEdit5KeyPress(Sender: TObject; var Key: Char);
var
 i,j:integer;
begin
  inherited;
 if key=#13 then
  begin
   ///
         if trim(bsskinedit5.Text )<>'' then
           if trim(bsskinedit12.Text)<>'' then
             begin
                 if trim(bsskinedit5.Text )<>'' then
                 begin
                  j:=0;
                 for i:=1 to  length(trim(bsskinedit5.Text)) do
                  begin
                   if pos(copy(trim(bsskinedit5.Text),i,1),'0123456789.-')=0 then
                    j:=1
                  end;
                 if j=1 then
                  begin
                   bsskinmessage1.MessageDlg('当前输入的交款金额中存在非法字符!!!!!'+CHR(13)+'可以输入的字符为:0到9的数字及小数点和负数',mterror,[mbyes],0);
                   bsskinedit5.Clear;
                   bsskinedit5.SetFocus;
                   exit;
                  end
                 else
                  begin
                   if trim(bsskinedit5.Text)<>'' then
                         if strtofloat(bsskinedit6.Text )> strtofloat(bsskinedit5.Text )+strtofloat(bsskinedit7.Text )  then
                           begin
                            bsskinmessage1.MessageDlg('用户实交与余额之和不能小于应交款金额!!',mterror,[mbok],0);
                            bsskinedit5.Text:='';
                            bsskinedit12.SetFocus;
                           end
                         else
                           if bsskinmessage1.MessageDlg('你是否确定保存用户交款数据?',mtconfirmation,[mbyes,mbcancel],0)=mryes then
                              bsSkinXFormButton5Click(nil)
                           else
                            bsskinedit12.SetFocus
                    else
                     bsskinedit5.SetFocus;
                   end;
                 end;
             end
          else
           bsskinedit12.SetFocus;
  ///


  end;
 if key=#27 then
  begin
   screen_xt;
   bsskinedit12.SetFocus;
  end;
end;

procedure Tdel_money.bsSkinXFormButton5Click(Sender: TObject);
var
 prin_fp:tprin_fp;
 st1,st2:string;
 key_temp:char;
begin
  inherited;
 //进行交款数据的保存操作
 //要进行数据保存的表分别为:收据明细,收据汇总,将用户的余额写入用户中,
 //将交款数据从NO表中导入YES表中.
 //write to TEL_UP_MX table;

 dm:=tdm.Create(nil);
  with dm do
  begin
   q_b.Close;
   q_b.SQL.Add('select * from tel_user where tel_num=:tel_num');
   q_b.Parameters.ParamByName('tel_num').Value:= trim(bsskinedit12.Text );
   q_b.Prepared;
   q_b.Open;
  end;
 if dm.q_b.Recordset.RecordCount >0 then
  begin
  main.stu.Caption:='正用保存用户的交费信息,请稍候。。。。。当前为收据明细';
  ga1.Value:=15;
        with dm do
         begin
          q_a.Close;
          q_a.SQL.Clear;
          q_a.SQL.Add('insert into tel_up_mx (UP_BH,UP_TEL,UP_SFZH,UP_NAME,UP_JE,');
          q_a.SQL.Add('UP_DATE,UP_USER,Up_qj,UP_LB,Up_fw,UP_SKJZ,User_time,UP_ye,up_hf,up_fwje,up_prn ) ');
          q_a.SQL.Add('values(:UP_BH,:UP_TEL,:UP_SFZH,:UP_NAME,:UP_JE,');
          q_a.SQL.Add(':UP_DATE,:UP_USER,:Up_qj,:UP_LB,:Up_fw,:UP_SKJZ,:User_time,:UP_ye,:up_hf,:up_fwje,:up_prn )');
          q_a.Parameters.ParamByName('UP_BH').Value:=trim(bsskinedit11.Text);
          q_a.Parameters.ParamByName('UP_TEL').Value:=trim(bsskinedit12.Text);
          q_a.Parameters.ParamByName('UP_sfzh').Value:=trim(bsskinedit2.Text);
          q_a.Parameters.ParamByName('UP_name').Value:=trim(bsskinedit1.Text);
          q_a.Parameters.ParamByName('UP_je').Value:=strtofloat(trim(bsskinedit5.Text));
          q_a.Parameters.ParamByName('UP_date').Value:=strtodatetime(sys_end);
          q_a.Parameters.ParamByName('UP_user').Value:=user_id;
          q_a.Parameters.ParamByName('UP_prn').Value:='0';
          q_a.Parameters.ParamByName('UP_qj').Value:=inttostr(yearof(strtodate(sys_end)))+inttostr(monthof(strtodate(sys_end)));
          q_a.Parameters.ParamByName('UP_lb').Value:=SYS_OPER;
          q_a.Parameters.ParamByName('UP_fw').Value:=trim(dm.q_b.FieldValues['tel_fw'] );
          q_a.Parameters.ParamByName('UP_skjz').Value:='1';
          q_a.Parameters.ParamByName('user_time').Value:=now;
          q_a.Parameters.ParamByName('UP_ye').Value:=strtofloat(bsskinedit7.Text)+strtofloat(bsskinedit5.Text)-strtofloat(bsskinedit6.Text);
          q_a.Parameters.ParamByName('UP_hf').Value:=strtofloat(bsskinedit8.Text);
          q_a.Parameters.ParamByName('UP_fwje').Value:=strtofloat(bsskinedit6.Text)-strtofloat(bsskinedit8.Text);
          q_a.Prepared;
       //   Q_A.Last;
          q_a.ExecSQL;
          //开始写收据汇总
        main.stu.Caption:='正用保存用户的交费信息,请稍候。。。。。当前为收据汇总';
        ga1.Value:=30;
          q_c.Close;
          q_c.SQL.Clear;
          q_c.SQL.Add('insert into TEL_UP ( UP_BH1,UP_TEL,UP_SFZH,UP_NAME,UP_B_TIME,');
          q_c.SQL.Add('UP_E_TIME,UP_COUNT,DOWN_COUNT,Up_fw,UP_YE,UP_STUT)');
          q_c.SQL.Add('values( :UP_BH1,:UP_TEL,:UP_SFZH,:UP_NAME,:UP_B_TIME,');
          q_c.SQL.Add(':UP_E_TIME,:UP_COUNT,:DOWN_COUNT,:Up_fw,:UP_YE,:UP_STUT)');
          q_c.Parameters.ParamByName('UP_BH1').Value:=trim(bsskinedit11.Text);
          q_c.Parameters.ParamByName('UP_TEL').Value:=trim(bsskinedit12.Text);
          q_c.Parameters.ParamByName('UP_sfzh').Value:=trim(bsskinedit2.Text);
          q_c.Parameters.ParamByName('UP_name').Value:=trim(bsskinedit1.Text);
          q_c.Parameters.ParamByName('UP_B_TIME').Value:=b_time;
          q_c.Parameters.ParamByName('UP_E_TIME').Value:=e_time;
         // q_c.Parameters.ParamByName('UP_prn').Value:='0';
          q_c.Parameters.ParamByName('UP_COUNT').Value:=strtofloat(bsskinedit10.Text)+strtofloat(bsskinedit5.Text);
          q_c.Parameters.ParamByName('down_COUNT').Value:=strtofloat(bsskinedit10.Text)-strtofloat(bsskinedit7.Text)+strtofloat(bsskinedit6.Text);
          q_c.Parameters.ParamByName('UP_fw').Value:=trim(dm.q_b.FieldValues['tel_fw'] );
          q_c.Parameters.ParamByName('UP_ye').Value:=strtofloat(bsskinedit7.Text)+strtofloat(bsskinedit5.Text)-strtofloat(bsskinedit6.Text);
          q_c.Parameters.ParamByName('UP_stut').Value:=trim(dm.q_b.FieldValues['YW_STUT'] );
          q_c.Prepared;
       //   q_c.Last;
          q_c.ExecSQL;
          //置用户表中的用户的余额
         main.stu.Caption:='正用保存用户的交费信息,请稍候。。。。。当前为保存余额数据';
        ga1.Value:=45;
          q_d.Close;
          q_d.SQL.Clear;
          q_d.SQL.Add('update tel_user set TEL_YCFS=:TEL_YCFS where tel_num=:tel_num ');
          q_d.Parameters.ParamByName('tel_num').Value:= trim(bsskinedit12.Text );
          q_d.Parameters.ParamByName('TEL_YCFS').Value:=strtofloat(bsskinedit7.Text)+strtofloat(bsskinedit5.Text)-strtofloat(bsskinedit6.Text);
          q_d.Prepared;
          q_d.ExecSQL;
          //将表NO中的数导入YES中
        main.stu.Caption:='正用保存用户的交费信息,请稍候。。。。。正在将收费数据导出。';
        ga1.Value:=40;
          q_e.Close;
          q_e.SQL.Clear;
          q_e.SQL.Add('select * from tel_no');
          q_e.SQL.Add(' where zj_tel=:zj_tel and b_time<:b_time and tel_sfzh=:tel_sfzh');
          q_e.Parameters.ParamByName('zj_tel').Value:=trim(bsskinedit12.Text);
          q_e.Parameters.ParamByName('b_time').Value:=strtodatetime(sys_end);
          q_e.Parameters.ParamByName('tel_sfzh').Value:=trim(bsskinedit2.Text);
          q_e.Open;
          if q_e.Recordset.RecordCount >0 then
           begin
            q_e.First;
              main.stu.Caption:='正用保存用户的交费信息,请稍候。。。。。正在将收费数据导出。';
              ga1.Value:=60;
            while not q_e.Eof do
             begin
              q_1.Close;
              q_1.SQL.Clear;
              q_1.SQL.Add('insert into TEL_YES (TEL_SFZH ,TEL_NAME,TEL_JFSJ,ZJ_TEL,');
              q_1.SQL.Add('BJ_TEL,B_DATE,E_DATE,B_TIME,E_TIME,TEL_UNIT,FL_NAME, ');
              q_1.SQL.Add('TOTAL_MONEY,JBFL,USER_ID,USER_TIME)');
              q_1.SQL.Add('values(:TEL_SFZH ,:TEL_NAME,:TEL_JFSJ,:ZJ_TEL,');
              q_1.SQL.Add(':BJ_TEL,:B_DATE,:E_DATE,:B_TIME,:E_TIME,:TEL_UNIT,:FL_NAME,');
              q_1.SQL.Add(':TOTAL_MONEY,:JBFL,:USER_ID,:USER_TIME)');
              q_1.Parameters.ParamByName('TEL_SFZH').Value:=q_e.FieldValues ['TEL_SFZH'];
              q_1.Parameters.ParamByName('TEL_NAME').Value:=q_e.FieldValues ['TEL_NAME'];
              q_1.Parameters.ParamByName('TEL_JFSJ').Value:=strtodatetime(sys_end);
              q_1.Parameters.ParamByName('ZJ_TEL').Value:=q_e.FieldValues ['ZJ_TEL'];
              q_1.Parameters.ParamByName('BJ_TEL').Value:=q_e.FieldValues ['BJ_TEL'];
              q_1.Parameters.ParamByName('B_DATE').Value:=q_e.FieldValues ['B_DATE'];
              q_1.Parameters.ParamByName('B_TIME').Value:=q_e.FieldValues ['B_TIME'];
              q_1.Parameters.ParamByName('E_TIME').Value:=q_e.FieldValues ['E_TIME'];
              q_1.Parameters.ParamByName('TEL_UNIT').Value:=q_e.FieldValues ['TEL_UNIT'];
              q_1.Parameters.ParamByName('FL_NAME').Value:=q_e.FieldValues ['FL_NAME'];
              q_1.Parameters.ParamByName('TOTAL_MONEY').Value:=q_e.FieldValues ['TOTAL_MONEY'];
              q_1.Parameters.ParamByName('JBFL').Value:=q_e.FieldValues ['JBFL'];
              q_1.Parameters.ParamByName('USER_ID').Value:=q_e.FieldValues ['USER_ID'];
              q_1.Parameters.ParamByName('USER_TIME').Value:=q_e.FieldValues ['USER_TIME'];
              q_1.Prepared;
          //    q_1.Last;
              q_1.ExecSQL;
              q_e.Next;
             end;
           end;
           //删除NO表中的数据
              main.stu.Caption:='正用保存用户的交费信息,请稍候。。。。。收费数据导出完毕。';
              ga1.Value:=80;
          q_e.Close;
          q_e.SQL.Clear;
          q_e.SQL.Add('delete from tel_no');
          q_e.SQL.Add(' where zj_tel=:zj_tel and b_time<:b_time and tel_sfzh=:tel_sfzh');
          q_e.Parameters.ParamByName('zj_tel').Value:=trim(bsskinedit12.Text);
          q_e.Parameters.ParamByName('b_time').Value:=strtodatetime(sys_end);
          q_e.Parameters.ParamByName('tel_sfzh').Value:=trim(bsskinedit2.Text);
          q_e.Prepared;
          q_e.ExecSQL;
         end;
         st1:= bsskinedit5.Text;
         writetolog(st1);
        main.stu.Caption:='正在保存用户的交费信息,请稍候。。。。。用户收费数据保存完毕。';
        ga1.Value:=100;
      bsskinmessage1.MessageDlg('用户数据保存完毕,以下将进行用户收据的打印操作...'+CHR(13)+'请准备好打印机及打印纸...',mtinformation,[mbyes],0);
     //进行用户收据的打印.并将打印印次数记入收据细表中
      st1:=bsskinedit11.text;
      prin_fp:=tprin_fp.Create(del_money);
      prin_fp.start_data(st1);
      prin_fp.QuickRep1.Prepare;
      prin_fp.QuickRep1.Print;
      prin_fp.Free;
 {      st1:=bsskinedit12.text;
       st2:=bsskinedit2.text;
       //quickrep1.Print;
       prin:=tprin.Create(del_money);
       prin.load_data(st1,st2);
       prin.bsSkinEdit2.Enabled:=false;
       prin.ShowModal;
       prin.Free;}
      if SYS_OPER='收费' then
       begin
        screen_xt;
        bsskinedit12.SetFocus;
       end
      else
       close;
  end
 else
  begin
   bsskinmessage1.MessageDlg('用户电话号码有误,请重新输入....',mterror,[mbyes],0);
   screen_xt;
  end;
end;

procedure Tdel_money.bsSkinXFormButton3Click(Sender: TObject);
var
 prin:tprin;
 st1,st2:string;
begin
  inherited;
  st1:=bsskinedit12.text;
  st2:=bsskinedit2.text;
  //quickrep1.Print;
  prin:=tprin.Create(del_money);
  prin.load_data(st1,st2);
  prin.bsSkinEdit2.Enabled:=false;
  prin.ShowModal;
  prin.Free;
end;

procedure Tdel_money.FormActivate(Sender: TObject);
begin
  inherited;
  if bsskinedit12.Text ='' then
  screen_xt ;
end;

procedure Tdel_money.bsSkinEdit5Enter(Sender: TObject);
begin
  inherited;
  if bsskinedit12.Text='' then
   bsskinedit12.SetFocus;
   bsskinxformbutton5.Enabled:=false; 
end;

procedure Tdel_money.bsSkinXFormButton5MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
var
 key_temp:char;  
begin
  inherited;
if trim(bsskinedit5.text)<>'' then
  begin
    key_temp:=#13;
    bsskinedit5keypress(nil,key_temp);
    exit;
  end
else
 begin
  bsskinedit5.SetFocus;
  exit;
 end; 
end;

procedure Tdel_money.bsSkinEdit5Change(Sender: TObject);
begin
  inherited;
 if trim(bsskinedit5.Text)=''then
  bsskinxformbutton5.Enabled:=false
 else
  bsskinxformbutton5.Enabled:=true;
end;

end.

⌨️ 快捷键说明

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