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

📄 cardloss.pas

📁 1. 发卡服务端:Server 项目文件:autojet.prj 2. 计费客户端:Client 项目文件:internet.prj Explorer.prj 先启动Exp
💻 PAS
字号:
unit CardLoss;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls;

type
  TFrm_CardLoss = class(TForm)
    Label5: TLabel;
    Label6: TLabel;
    Label8: TLabel;
    Lb_kysj: TLabel;
    Lb_ZS: TLabel;
    Lb_X: TLabel;
    Lb_Y: TLabel;
    LB_CardType: TLabel;
    Lb_Deposit: TLabel;
    LB_Payment: TLabel;
    Label10: TLabel;
    Label9: TLabel;
    LB_Gift: TLabel;
    LB_JSSS: TLabel;
    Label11: TLabel;
    LB_SYJE: TLabel;
    Label7: TLabel;
    Label4: TLabel;
    LB_CardDate: TLabel;
    LB_CardTime: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    edt_HT: TEdit;
    Btn_Read: TButton;
    Btn_Dele: TButton;
    Btn_Close: TButton;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    LB_Tele: TLabel;
    edt_Gname: TEdit;
    edt_IdentityNo: TEdit;
    Bevel1: TBevel;
    Bevel2: TBevel;
    procedure FormShow(Sender: TObject);
    procedure Btn_ReadClick(Sender: TObject);
    procedure Btn_DeleClick(Sender: TObject);
  private
    procedure ValidCheck(Sender: TObject);
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Frm_CardLoss: TFrm_CardLoss;

implementation

uses sys_dm, sys_global;

{$R *.dfm}
var
  checkFlag: char;

procedure TFrm_CardLoss.FormShow(Sender: TObject);
begin
  edt_Gname.Text := '';
  edt_IdentityNo.Text := '' ;
  LB_CardType.Caption := '' ;
  Lb_Deposit.Caption := '' ;
  LB_Payment.Caption := '' ;
  LB_Gift.Caption := '' ;
  LB_JSSS.Caption := '' ;
  LB_SYJE.Caption := '' ;
  LB_CardDate.Caption  := '' ;
  LB_CardTime.Caption  := '' ;
  LB_Tele.Caption  := '' ;
end;

procedure TFrm_CardLoss.Btn_ReadClick(Sender: TObject);
begin
  edt_Gname.Text := trim(edt_Gname.Text);
  edt_IdentityNo.Text := trim(edt_IdentityNo.Text);
  if (edt_Gname.Text='') and  (edt_IdentityNo.Text='') then begin
     messagebox(handle,' 请输入姓名或身份证号码 ', '提示', mb_ok+MB_ICONWARNING);
     edt_Gname.SetFocus ;
     exit ;
  end;
  with frm_sys_dm.Qr_tmp1 do
  begin
    close;
    sql.clear;
    sql.text := 'select * from card where IdentityNo=''' + edt_IdentityNo.Text + '''  or  Gname='''+ edt_Gname.Text+'''' ;
    open;
    if eof then begin
       messagebox(handle,'没有符合条件的资料','提示',mb_ok+mb_iconstop);
       exit;
    end;

    if RecordCount>=2 then begin
       messagebox(handle,pchar('有'+intTostr(RecordCount)+'张卡在使用, 不可挂失'),'提示',mb_ok+mb_iconstop);
       exit;
    end;

    m_ICno := intTostr(fieldbyname('IcNo').asinteger) ;
    m_ICdate := fieldbyname('ICDate').asdatetime ;

    LB_CardType.Caption := fieldbyname('icType').AsString ;
    Lb_Deposit.Caption := floatTostr(fieldbyname('Deposit').AsFloat);
    LB_Payment.Caption := floatTostr(fieldbyname('Payment').AsFloat);
    LB_Gift.Caption := floatTostr(fieldbyname('Gift').AsFloat);
    LB_JSSS.Caption := floatTostr(fieldbyname('JSSS').AsFloat /60) ;
    if LB_CardType.Caption='计时卡' then begin  // 计时卡
       m_ICmoney := fieldbyname('SYSJ').AsFloat ;
       LB_SYJE.caption := GetHourMinute(Trunc(m_ICmoney)) ;
       edt_HT.Text := Lb_Deposit.Caption ;
    end else begin
       m_ICmoney := fieldbyname('SYJE').AsFloat ;
       LB_SYJE.caption := floatTostr(m_ICmoney)+'   元' ;
       edt_HT.Text := floatTostr(m_ICmoney+strTofloat(Lb_Deposit.Caption)) ;
    end;
    LB_CardDate.Caption := dateTostr(m_ICdate);
    LB_CardTime.Caption := timeTostr(m_ICdate);
    LB_Tele.caption := fieldbyname('Tele').AsString ;

    Btn_Read.Tag := 1 ;

  end;

end;


procedure TFrm_CardLoss.ValidCheck(Sender: TObject);
begin
  // 检查网络是否正常
  m_Stop := '0' ;
  ServerDateTime ;
  if m_Stop = '9' then begin
     messagebox(handle,' 网络不通, 该卡暂时不能注销! ', '提示', mb_ok+MB_ICONWARNING);
     checkFlag :='0' ;
     exit ;
  end;

  edt_HT.text := trim(edt_HT.text);
  if Trim(edt_HT.text)='' then  edt_HT.text := '0' ;
  try
    strTofloat(edt_HT.text)
  except
    MessageBox(handle, ' 退回的金额有错!','提示', mb_ok+mb_iconstop);
    edt_HT.SetFocus ;
    checkFlag :='0' ;
    exit;
  end;
end;


procedure TFrm_CardLoss.Btn_DeleClick(Sender: TObject);
begin
  if Btn_Read.Tag = 0 then begin
     messagebox(handle, '没有有效资料, 不可挂失.', '提示', mb_ok+mb_iconstop);
     exit ;
  end;

  checkFlag := '1' ;     // 假定能通过有效性检查
  ValidCheck(sender);    // 进行有效性检查
  if checkFlag='0' then exit; // 若检查通不过, 则自动退出
  if messagebox(handle,pchar('退回客人 '+edt_ht.Text+' 元'+#13+#13+' 您确定吗? '), '提示',mb_okcancel+mb_iconquestion)=idcancel then
     exit ;

  // 删除CARD中相应的记录, 在delcard 中插入一条记录
  with frm_sys_dm.Qr_tmp1 do
  begin
    close;
    sql.clear;
    sql.text := 'delete from card where Icno='+intTostr(strToint(m_ICno)) ;
    try
      execsql;
    except
      beep;
    end;

    close ;
    sql.clear;
    sql.text := 'insert into DelCard (CardNo, DelTime)  values (:CardNo, :DelTime)' ;
    Parameters.parambyname('CardNo').Value := strToint(m_ICno) ;
    Parameters.parambyname('DelTime').value := now ;
    try
      execsql;
    except
      beep;
    end;
  end;

  // 向借贷表插入一条记录
  if strTofloat(edt_HT.text)>=0.5 then
  with frm_sys_dm.Qr_tmp1 do
  begin
    close;
    sql.clear;
    sql.Text := 'insert into Pbill (icNo, Edate, itemName, DF, Operator) values (:icNo, :Edate, :itemName, :DF, :Operator)' ;
    Parameters.parambyname('icNo').Value := strToint(m_ICno) ;
    Parameters.parambyname('Edate').value := now ;
    Parameters.parambyname('itemName').value := 'HT' ;
    Parameters.parambyname('DF').value := strTofloat(edt_HT.text);
    Parameters.parambyname('Operator').value := m_OpName ;
    try
      execsql;
    except
      beep;
    end;
  end;
  messagebox(handle,pchar(edt_Gname.Text+'的卡已挂失成功'), '提示',mb_ok+MB_ICONINFORMATION) ;

end;

end.

⌨️ 快捷键说明

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