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

📄 refundfrm.pas

📁 这个是个简单的关于出票申请的处理
💻 PAS
字号:
unit RefundFrm;

interface

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

type
  TFrmRefund = class(TFormBase)
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label5: TLabel;
    EdtStartTicketNo: TEdit;
    EdtEndTicketNo: TEdit;
    EdtCount: TEdit;
    BtnRefund: TButton;
    procedure EdtCountMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure BtnRefundClick(Sender: TObject);
  private
    { Private declarations }
    function  isExistTicketNoParam(ATicketNo: string): Boolean;
  public
    { Public declarations }
  end;

var
  FrmRefund: TFrmRefund;

implementation

uses SystemDM, CommonFuncLib, systemPH;

{$R *.dfm}

procedure TFrmRefund.EdtCountMouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  inherited;
  EdtCount.Text := FloatToStr(Abs(StrToFloatDef(EdtEndTicketNo.Text, 0) -
                              StrToFloatDef(EdtStartTicketNo.Text, 0)) + 1) ;
end;

procedure TFrmRefund.BtnRefundClick(Sender: TObject);
var
  sSqlStr: string;
  StartTicketNo, EndTicketNo: Double;
  I, nTicketCount: Integer;
begin
  inherited;
  if not DMSystem.isConnectionDB then Exit;

  if not IsNumeric(EdtStartTicketNo.Text) then
  begin
    ShowMessage('起始票号含有非法数字');
    EdtStartTicketNo.Text := '';
    EdtStartTicketNo.SetFocus;
    Exit;
  end;

  if not IsNumeric(EdtEndTicketNo.Text) then
  begin
    ShowMessage('结束票号含有非法数字');
    EdtEndTicketNo.Text := '';
    EdtEndTicketNo.SetFocus;
    Exit;
  end;

  if Trim(EdtStartTicketNo.Text) = '' then
  begin
    ShowMessage('起始票号不能为空');
    EdtStartTicketNo.SetFocus;
    Exit;
  end;

  if Trim(EdtEndTicketNo.Text) = '' then
  begin
    ShowMessage('结束票号不能为空');
    EdtEndTicketNo.SetFocus;
    Exit;
  end;

  StartTicketNo := StrToFloatDef(Trim(EdtStartTicketNo.Text), 0);
  EndTicketNo := StrToFloatDef(Trim(EdtEndTicketNo.Text), 0);
  if EndTicketNo < StartTicketNo then
  begin
    ShowMessage('结束号不能小于起始号!');
    EdtEndTicketNo.SetFocus;
    Exit;
  end;

  if not isExistTicketNoParam(Trim(EdtStartTicketNo.Text))then
  begin
    ShowMessage('此号段不存在于库表中, 不能进行退票处理!');
    Exit;
  end;

  try
    nTicketCount := Round(EndTicketNo - StartTicketNo);
    SendMessage(Application.MainForm.Handle, WM_STATUS_MSG, DEF_START_UPDATE, nTicketCount);
    for I := 0 to nTicketCount do
    begin
      sSqlStr := 'UPDATE TICKET_NUMBER SET ISUSED = 0 WHERE PRINTCODE = ' + #39 + FloatToStr(StartTicketNo) + #39;
      if DMSystem.SQL_Exec(DMSystem.Qry_Temp, sSqlStr) then
        GlobalStoreCount := GlobalStoreCount + 1;

      StartTicketNo := 1 + StartTicketNo;
      SendMessage(Application.MainForm.Handle, WM_STATUS_MSG, DEF_PLAYING_UPDATE, I);
      Application.ProcessMessages;
    end;
  finally
    SendMessage(Application.MainForm.Handle, WM_STATUS_MSG, DEF_FINISHED_UPDATE, 0);
    ShowMessage('退票处理完毕.');
    EdtStartTicketNo.Text := '';
    EdtEndTicketNo.Text := '';
    EdtCount.Text := '';
  end;
end;

function TFrmRefund.isExistTicketNoParam(ATicketNo: string): Boolean;
var
  sSqlStr: string;
begin
  Result := False;
  sSqlStr := 'SELECT ID FROM TICKET_NUMBER WHERE PRINTCODE = ' + #39 + ATicketNo + #39;
  if DMSystem.SQL_Querys(DMSystem.Qry_Temp, sSqlStr) then
    Result := True;
end;

end.

⌨️ 快捷键说明

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