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

📄 storetickets.~pas

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

interface

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

type
  TFormStoreTicket = class(TFormBase)
    pnlClient: TPanel;
    pnlBottom: TPanel;
    Label1: TLabel;
    EdtStartTicketNo: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    EdtEndTicketNo: TEdit;
    BtnStore: TButton;
    GroupBox1: TGroupBox;
    lvHistory: TListView;
    Label4: TLabel;
    cbArea: TComboBox;
    Label5: TLabel;
    EdtCount: TEdit;
    procedure BtnStoreClick(Sender: TObject);
    procedure EdtStartTicketNoKeyPress(Sender: TObject; var Key: Char);
    function  isExistTicketNoParam(ATicketNo: string): Boolean;
    procedure LoadStoreTicketInfo;
    procedure FormShow(Sender: TObject);
    procedure EdtCountMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FormStoreTicket: TFormStoreTicket;

implementation
uses SystemDM, systemPH, CommonFuncLib;
{$R *.dfm}

procedure TFormStoreTicket.BtnStoreClick(Sender: TObject);
var
  StartTicketNo, EndTicketNo: Double;
  I, nTicketCount: Integer;
  sSqlStr: String;
  oListItem: TListItem;
begin
  inherited;
  if not IsNumeric(EdtStartTicketNo.Text) then
  begin
    ShowMessage('起始票号含有非法数字');
    EdtStartTicketNo.SetFocus;
    Exit;
  end;

  if not IsNumeric(EdtEndTicketNo.Text) then
  begin
    ShowMessage('结束票号含有非法数字');
    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 isExistTicketNoParam(Trim(EdtStartTicketNo.Text))then
  begin
    ShowMessage('此号段已经存在于库表中!');
    Exit;
  end;

  try
    Screen.Cursor := crHourGlass;
    nTicketCount := Round(EndTicketNo - StartTicketNo);
    SendMessage(Application.MainForm.Handle, WM_STATUS_MSG, DEF_START_UPDATE, nTicketCount);

    for I := 0 to nTicketCount do
    begin
      sSqlStr := 'INSERT INTO TICKET_NUMBER(PrintCode, isUsed, StoreDate, UserArea)VALUES' +
                 '(' + #39 + FloatToStr(StartTicketNo) + #39 + ','
                     + '0' + ','
                     + #39 + FormatDateTime('YYYY-MM-DD hh:nn:ss', Now) + #39 + ','
                     + IntToStr(cbArea.ItemIndex) + ')';
    if not DMSystem.SQL_Exec(DMSystem.Qry_Temp, sSqlStr) then
      DMSystem.Qry_Temp.SQL.SaveToFile('TICKET_NUMBER_SQL.TXT');

    StartTicketNo := 1 + StartTicketNo;
    SendMessage(Application.MainForm.Handle, WM_STATUS_MSG, DEF_PLAYING_UPDATE, I);
    Application.ProcessMessages;
    end;

    sSqlStr := 'INSERT INTO TICKET_NUMBER_HISTORY(AGENTID, STARTPRINTCODE, TICKETCOUNT, OPERATEDATE, USERAREA)' +
               'VALUES(' + IntToStr(COMPANYAGENTID) + ','
                         + #39 + Trim(EdtStartTicketNo.Text) + #39 + ','
                         + IntToStr(nTicketCount + 1) + ','
                         + #39 + FormatDateTime('YYYY-MM-DD hh:nn:ss', Now) + #39 + ','
                         + IntToStr(cbArea.ItemIndex) + ')';
    if not DMSystem.SQL_Exec(DMSystem.Qry_Temp, sSqlStr) then
      DMSystem.Qry_Temp.SQL.SaveToFile('TICKET_NUMBER_HISTORY_SQL.TXT');

  finally
    SendMessage(Application.MainForm.Handle, WM_STATUS_MSG, DEF_FINISHED_UPDATE, 0);
    ShowMessage('号段入库完毕');
    oListItem := lvHistory.Items.add;
    oListItem.Caption := IntToStr(lvHistory.Items.Count);
    oListItem.SubItems.Add(EdtStartTicketNo.Text);
    oListItem.SubItems.Add(IntToStr(nTicketCount + 1));
    oListItem.SubItems.Add(FormatDateTime('YYYY-MM-DD hh:nn:ss', Now));
    oListItem.SubItems.Add(cbArea.Text);
    EdtStartTicketNo.Text := '';
    EdtEndTicketNo.Text := '';
    EdtCount.Text := '';
    Screen.Cursor := crDefault;
    GlobalStoreCount := GlobalStoreCount +  nTicketCount + 1;
  end;
end;

procedure TFormStoreTicket.EdtStartTicketNoKeyPress(Sender: TObject;
  var Key: Char);
begin
  inherited;
 // if not (Sender is TEdit) then Exit;
 // if not (Key in ['0'..'9', #8]) or ((Length(TEdit(Sender).Text) >=10) and (Key <> #8)) then  Key := #0;
end;

function TFormStoreTicket.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;

procedure TFormStoreTicket.LoadStoreTicketInfo;
var
  sSqlStr: string;
  oListItem: TListItem;
  nIndex: Integer;
begin
  lvHistory.Clear;
  sSqlStr := 'SELECT * FROM TICKET_NUMBER_HISTORY WHERE AGENTID =' + IntToStr(COMPANYAGENTID);
  if DMSystem.SQL_Querys(DMSystem.Qry_Temp, sSqlStr) then
  with DMSystem.Qry_Temp do
  try
    First;
    while not Eof do
    begin
      oListItem := lvHistory.Items.Add;
      oListItem.Caption := IntToStr(lvHistory.Items.Count);
      oListItem.SubItems.Add(Trim(FieldByName('STARTPRINTCODE').AsString));
      oListItem.SubItems.Add(FieldByName('TICKETCOUNT').AsString);
      oListItem.SubItems.Add(FieldByName('OPERATEDATE').AsString);
      nIndex := FieldByName('USERAREA').AsInteger;
      if nIndex <cbArea.Items.Count then
        oListItem.SubItems.Add(cbArea.Items[nIndex]);
      Next;
      Application.ProcessMessages;
    end;
  finally
  end;
end;

procedure TFormStoreTicket.FormShow(Sender: TObject);
begin
  inherited;
  LoadStoreTicketInfo;
end;

procedure TFormStoreTicket.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 TFormStoreTicket.FormCreate(Sender: TObject);
begin
  inherited;
  cbArea.ItemIndex := 0;
end;

end.

⌨️ 快捷键说明

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