📄 refundfrm.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 + -