vcdhz.pas

来自「一个关于VCD销售的系统」· PAS 代码 · 共 779 行 · 第 1/2 页

PAS
779
字号
       e_yjid.SetFocus();
      end;
    2:begin
       GROUP_HY.Visible:=false;
       group_lz.Visible:=false;
       group_qp.Visible:=true;
       e_zlname.Text:='';
       e_zlsex.Text:='';
       e_zlzlx.Text:='';
       e_zlyj.Text:='';
       e_zltel.Text:='';
       e_hyid.Text:='';
       e_yjid.Text:='';
       e_yj.Text:='0.00';
       e_ss.Enabled:=false;
       e_ss.Color:=cl3dlight;
       e_thyj.Enabled:=false;
       e_thyj.Color:=cl3dlight;
       e_vcdid.SetFocus();
       //生成租借临时库
      dm.adoq_czbtmp.Close;
      dm.adoq_czbtmp.SQL.Clear;
      sqlz:='insert into czbtmp select * from czb where 证号='+'"'+'亲朋'+'"';
      dm.adoq_czbtmp.SQL.Add(sqlz);
      dm.adoq_czbtmp.ExecSQL;
      dm.ADO_czbtmp.close;
      dm.ADO_czbtmp.Open;
      end;
    end;
end;
procedure Tfrm_vcdhz.e_hyidChange(Sender: TObject);
begin
       e_zlname.Text:='';
       e_zlsex.Text:='';
       e_zlzlx.Text:='';
       e_zlyj.Text:='';
       e_zltel.Text:='';
       e_qk.Text:='0.00';
       e_ys.Text:='0.00';
       e_ss.Text:='0.00';
       e_thyj.Text:='0.00';
       dm.adoq_czbtmp.SQL.Clear;
       dm.ADOQ_czbtmp.SQL.Add('delete from czbtmp');
       dm.ADOQ_czbtmp.ExecSQL;
       dm.adoq_czbtmp.Close;
       dm.ADO_czbtmp.Close;
end;

procedure Tfrm_vcdhz.e_ssKeyPress(Sender: TObject; var Key: Char);
begin
  if not ( Key in ['0'..'9',#13,#8,'.']) then Key := #0;
end;

procedure Tfrm_vcdhz.e_thyjKeyPress(Sender: TObject; var Key: Char);
begin
   if not ( Key in ['0'..'9',#13,#8,'.']) then Key := #0;
end;

procedure Tfrm_vcdhz.FormKeyPress(Sender: TObject; var Key: Char);
begin
   if key=#13 then
   begin
    key:=#0;
    perform(wm_nextdlgctl,0,0);
   end;
end;

procedure Tfrm_vcdhz.e_hyidExit(Sender: TObject);
begin
  if e_hyid.text='' then exit;
  if Length(e_hyid.Text)<5 then
       case Length(e_hyid.Text) of
          1: e_hyid.text:='0000'+e_hyid.text;
          2: e_hyid.text:='000'+e_hyid.text;
          3: e_hyid.text:='00'+e_hyid.text;
          4: e_hyid.text:='0'+e_hyid.text;
       end;
   if dm.ADO_czbtmp.IsEmpty=false then exit;
   dm.ADO_czdt.Open;
   dm.ADO_czdt.First;
   dm.ADO_czdt.Sort:='证号';
   if not dm.ADO_czdt.Locate('证号',e_hyid.Text,[]) then
     begin
       Application.MessageBox(PChar('证号错误或无此用户租借记录,请重新录入!')
      , PChar('提示'),MB_ICONEXCLAMATION);
      e_hyid.Text:='';
      e_hyid.SetFocus();
     end
   else
     begin
      dm.ADO_vip.Open;
      dm.ADO_vip.First;
      dm.ADO_vip.Locate('证号',e_hyid.Text,[]);
      e_zlname.Text:=dm.ADO_vip.fieldbyname('姓名').asstring;
      e_zlsex.Text:=dm.ADO_vip.fieldbyname('性别').asstring;
      e_zlzlx.Text:=dm.ADO_vip.fieldbyname('证类型').asstring;
      e_zlyj.Text:=formatfloat('0.00',dm.ADO_vip.fieldbyname('押金').asfloat);
      e_zltel.Text:=dm.ADO_vip.fieldbyname('电话').asstring;
      dm.ADO_vip.Close;
      //生成租借临时库
      dm.adoq_czbtmp.Close;
      dm.adoq_czbtmp.SQL.Clear;
      sqlz:='insert into czbtmp select * from czb where 证号='+'"'+e_hyid.text+'"';
      dm.adoq_czbtmp.SQL.Add(sqlz);
      dm.adoq_czbtmp.ExecSQL;
      dm.ADO_czbtmp.close;
      dm.ADO_czbtmp.Open;
      //查询有无欠款
      dm.ado_qk.open;
      dm.ado_qk.first;
      if dm.ado_qk.locate('证号',e_hyid.Text,[]) then
         e_qk.Text:=formatfloat('0.00',dm.ado_qk.fieldbyname('金额').asfloat);
      dm.ado_qk.Close;
      e_vcdid.SetFocus();
     end;
end;

procedure Tfrm_vcdhz.e_yjidExit(Sender: TObject);
begin
   if e_yjid.Text='' then exit;
   if dm.ADO_czbtmp.IsEmpty=false then exit;
   dm.ADO_czdt.Open;
   dm.ADO_czdt.First;
   dm.ADO_czdt.Sort:='证号';
   if not dm.ADO_czdt.Locate('证号',e_yjid.Text,[]) then
     begin
       Application.MessageBox(PChar('无此零租用户租借记录,请重新录入!')
      , PChar('提示'),MB_ICONEXCLAMATION);
      e_yjid.Text:='';
      e_yjid.SetFocus();
     end
     else
      begin
       e_yj.Text:=formatfloat('0.00',dm.ADO_czdt.fieldbyname('押金').Asfloat);
       dm.adoq_czbtmp.Close;
       dm.adoq_czbtmp.SQL.Clear;
       sqlz:='insert into czbtmp select * from czb where 证号='+'"'+e_yjid.text+'"';
       dm.adoq_czbtmp.SQL.Add(sqlz);
       dm.adoq_czbtmp.ExecSQL;
       dm.ADO_czbtmp.close;
       dm.ADO_czbtmp.Open;
       dm.ado_qk.open;
       dm.ado_qk.first;
       if dm.ado_qk.locate('证号',e_yjid.Text,[]) then
          e_qk.Text:=formatfloat('0.00',dm.ado_qk.fieldbyname('金额').asfloat);
          dm.ado_qk.Close;
       e_vcdid.SetFocus();
      end;
end;

procedure Tfrm_vcdhz.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   dm.adoq_czbtmp.SQL.Clear;
   dm.ADOQ_czbtmp.SQL.Add('delete from czbtmp');
   dm.ADOQ_czbtmp.ExecSQL;
   dm.adoq_czbtmp.Close;
   dm.ADO_czbtmp.Close;
   dm.ADO_czb.Close;
   dm.ADO_czdt.Close;
   dm.ADO_qk.Close;
   dm.ADO_cash.Close;
   dm.ADO_vip.Close;
   dm.ADO_vcd.Close;
   release;
end;

procedure Tfrm_vcdhz.e_vcdidExit(Sender: TObject);
begin
   if e_vcdid.Text='' then exit;
   case group_zlr.ItemIndex of
     0:if e_hyid.Text='' then hylzcx;
     1:if e_yjid.Text='' then hylzcx;
   end;
   if not dm.ADO_czbtmp.Locate('编号',e_vcdid.Text,[]) then
     begin
      Application.MessageBox(PChar('用户未租借此图书(影碟),请检查!')
      , PChar('提示'),MB_ICONEXCLAMATION);
      e_vcdid.Text:='';
      e_vcdid.SetFocus();
      exit;
     end
   else
     begin
      dm.ADO_czbtmp.Edit;
      dm.ADO_czbtmp.FieldByName('状态').AsString:='已还';
      dm.ADO_czbtmp.Post;
     end;
   ysje;
   e_vcdid.Text:='';
   e_vcdid.SetFocus();
end;

procedure Tfrm_vcdhz.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if dm.ADO_czbtmp.FieldByName('状态').AsString='已还' then
   DBGrid1.Canvas.Font.Color := clred;
   DBGrid1.DefaultDrawColumnCell(Rect, DataCol, Column, State);
end;

procedure Tfrm_vcdhz.e_yjidChange(Sender: TObject);
begin
       e_zlname.Text:='';
       e_zlsex.Text:='';
       e_zlzlx.Text:='';
       e_zlyj.Text:='';
       e_zltel.Text:='';
       e_yj.Text:='0.00';
       e_qk.Text:='0.00';
       e_ys.Text:='0.00';
       e_ss.Text:='0.00';
       e_thyj.Text:='0.00';
       dm.adoq_czbtmp.SQL.Clear;
       dm.ADOQ_czbtmp.SQL.Add('delete from czbtmp');
       dm.ADOQ_czbtmp.ExecSQL;
       dm.adoq_czbtmp.Close;
       dm.ADO_czbtmp.Close;
end;

procedure Tfrm_vcdhz.b_okClick(Sender: TObject);
begin
   if (dm.ADO_czbtmp.IsEmpty) or not dm.ADO_czbtmp.Locate('状态','已还',[]) then
     begin
       application.MessageBox(pchar('无图书、影碟的还租资料,不能结算!')
          ,pchar('提示'),MB_ICONEXCLAMATION);
       exit;
     end;
   if group_zlr.ItemIndex=1 then
    begin
     if strtofloat(e_thyj.text)>strtofloat(e_yj.Text) then
      begin
       application.MessageBox(pchar('退还押金大于原预收押金,请检查!')
             ,pchar('提示'),MB_ICONEXCLAMATION);
       exit;
      end;
     end;
   //恢复tsvcd库中已租记录
   dm.ADO_czbtmp.First;
   while not dm.ADO_czbtmp.eof do
     begin
      if dm.ADO_czbtmp.FieldByName('状态').AsString='已还' then
        begin
          dm.ADO_vcd.Open;
          dm.ADO_vcd.Locate('编号',dm.ADO_czbtmp.fieldbyname('编号').AsString,[]);
          dm.ADO_vcd.Edit;
          dm.ado_vcd.FieldByName('状态').AsString:='未租';
          dm.ADO_vcd.Post;
          dm.ADO_vcd.Close;
        end;
      dm.ADO_czbtmp.Next;
     end;
     //删除czb中多余记录
  case group_zlr.ItemIndex of
   0: begin
       dm.ADOQ_czbtmp.Close;
       dm.ADOQ_czbtmp.SQL.Clear;
       dm.ADOQ_czbtmp.SQL.Add('delete from czb where 证号='+'"'+e_hyid.Text+'"');
       dm.adoq_czbtmp.ExecSQL;
       dm.ADOQ_czbtmp.Close;
      end;
    1:begin
       dm.ADOQ_czbtmp.Close;
       dm.ADOQ_czbtmp.SQL.Clear;
       dm.ADOQ_czbtmp.SQL.Add('delete from czb where 证号='+'"'+e_yjid.Text+'"');
       dm.adoq_czbtmp.ExecSQL;
       dm.ADOQ_czbtmp.Close;
      end;
  end;
   //添加记录
   dm.ADOQ_czbtmp.Close;
   dm.ADOQ_czbtmp.SQL.Clear;
   dm.ADOQ_czbtmp.SQL.Add('insert into czb select * from czbtmp where 状态='+'"'+'未还'+'"');
   dm.adoq_czbtmp.ExecSQL;
   dm.ADOQ_czbtmp.Close;
   //判断能否删除czdt记录
   dm.ADO_czbtmp.First;
   if dm.ADO_czbtmp.Locate('状态','未还',[]) then
    else
     begin
      case group_zlr.ItemIndex of
        0:begin
           dm.ADOQ_czbtmp.Close;
           dm.ADOQ_czbtmp.SQL.Clear;
           dm.ADOQ_czbtmp.SQL.Add('delete from czdt where 证号='+'"'+e_hyid.Text+'"');
           dm.adoq_czbtmp.ExecSQL;
           dm.ADOQ_czbtmp.Close;
          end;
        1:begin
          if strtofloat(e_thyj.Text)=strtofloat(e_yj.Text) then
            begin
             dm.ADOQ_czbtmp.Close;
             dm.ADOQ_czbtmp.SQL.Clear;
             dm.ADOQ_czbtmp.SQL.Add('delete from czdt where 证号='+'"'+e_yjid.Text+'"');
             dm.adoq_czbtmp.ExecSQL;
             dm.ADOQ_czbtmp.Close;
            end;
          end;
      end;
  end;
  //欠款及现金库写入
   case group_zlr.ItemIndex of
     0:hylzbh:=e_hyid.Text;
     1:hylzbh:=e_yjid.Text;
     2:exit;
   end;
   dm.ADO_qk.Open;
   if (strtofloat(e_ys.Text)+ strtofloat(e_qk.Text)-strtofloat(e_ss.Text)>0)
       or (strtofloat(e_ys.Text)+ strtofloat(e_qk.Text)-strtofloat(e_ss.Text)<0) then
     begin
      if not dm.ADO_qk.Locate('证号',hylzbh,[]) then
        dm.ADO_qk.AppendRecord([hylzbh,(strtofloat(e_ys.Text)+ strtofloat(e_qk.Text)-strtofloat(e_ss.Text))])
      else
       begin
        dm.ADO_qk.Edit;
        dm.ADO_qk.FieldByName('金额').AsFloat:=strtofloat(e_ys.Text)+ strtofloat(e_qk.Text)-strtofloat(e_ss.Text);
        dm.ADO_qk.Post;
       end;
     end
   else
     begin
      if dm.ADO_qk.Locate('证号',hylzbh,[]) then
        begin
         //dm.ADO_qk.Edit;
         dm.ADO_qk.Delete;
         //dm.ADO_qk.Post;
        end;
     end;
   dm.ADO_qk.Close;
   if e_ss.text<>'0.00' then
    begin
     dm.ADO_cash.Open;
     dm.ADO_cash.AppendRecord([hylzbh,date(),'收租金',e_ss.text]);
     dm.ADO_cash.Close;
    end;
   //退押金
  if group_zlr.ItemIndex=1 then
   begin
   if strtofloat(e_thyj.text)<strtofloat(e_yj.Text) then
     begin
       dm.ADO_czdt.Open;
       dm.ADO_czdt.First;
       dm.ADO_czdt.Locate('证号',hylzbh,[]);
       dm.ADO_czdt.Edit;
       dm.ADO_czdt.fieldbyname('押金').asfloat:=strtofloat(e_yj.Text)-strtofloat(e_thyj.text);
       dm.ado_czdt.Post;
       dm.ado_czdt.Close;
     end;
     if e_thyj.Text<>'0.00' then
      begin
       dm.ADO_cash.Open;
       dm.ADO_cash.AppendRecord([hylzbh,date(),'退零租押金','0.00',e_thyj.text]);
       dm.ADO_cash.Close;
      end;
   end;
   e_hyid.Text:='';
   e_yjid.Text:='';
   e_yj.Text:='0.00';
   e_zlname.Text:='';
   e_zlsex.Text:='';
   e_zlzlx.Text:='';
   e_zlyj.Text:='';
   e_zltel.Text:='';
   e_qk.Text:='0.00';
   e_ys.Text:='0.00';
   e_ss.Text:='0.00';
   e_thyj.Text:='0.00';
   //删除临时记录
   dm.ADOQ_czbtmp.SQL.Clear;
   dm.ADOQ_czbtmp.SQL.Add('delete from czbtmp');
   dm.adoq_czbtmp.ExecSQL;
   dm.ADO_czbtmp.Close;
   e_vcdid.SetFocus();
end;

procedure Tfrm_vcdhz.e_thyjExit(Sender: TObject);
begin
   if e_thyj.text='' then e_thyj.Text:='0.00';
   e_thyj.Text:=formatfloat('0.00',strtofloat(e_thyj.text));
end;

procedure Tfrm_vcdhz.e_ssExit(Sender: TObject);
begin
   if e_ss.text='' then e_ss.Text:='0.00';
   e_ss.Text:=formatfloat('0.00',strtofloat(e_ss.text));
end;

end.

⌨️ 快捷键说明

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