📄 mainfrm.~pas
字号:
unit MainFrm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, TBX, TB2Item, TB2Dock, TB2Toolbar, TBXSwitcher, Menus,
ImgList, ActnList, TBXDkPanels, TBXStatusBars, systemPH,ComCtrls, ExtCtrls,IniOptions;
type
TOperateMode = (omNone, omDoApply, omAgentLQ, omPersonalLQ, omViewTicket, omStoreTicket,
omDisTicket, omStatics, omRefund);
TFormMain = class(TForm)
TBImageList1: TTBImageList;
TBXToolbar1: TTBXToolbar;
TBXSubmenuItem1: TTBXSubmenuItem;
ActionList1: TActionList;
TBXSubmenuItem3: TTBXSubmenuItem;
TBXSubmenuItem4: TTBXSubmenuItem;
TBXSubmenuItem5: TTBXSubmenuItem;
TBXItem1: TTBXItem;
TBXItem2: TTBXItem;
TBXSeparatorItem1: TTBXSeparatorItem;
TBXItem3: TTBXItem;
TBXDock1: TTBXDock;
TBXToolbar2: TTBXToolbar;
TBXItem4: TTBXItem;
TBXItem5: TTBXItem;
bxStb: TTBXStatusBar;
PnlControl: TTBXDockablePanel;
TBXItem6: TTBXItem;
TBXItem7: TTBXItem;
TBXItem9: TTBXItem;
actDoApply: TAction;
acInputTicket: TAction;
acAgentLQ: TAction;
acDisTickets: TAction;
acSatistics: TAction;
acExit: TAction;
acEdtPwd: TAction;
acReLogin: TAction;
TBXItem8: TTBXItem;
acViewTicket: TAction;
TBXItem10: TTBXItem;
TBXItem11: TTBXItem;
TBXItem12: TTBXItem;
TBXItem13: TTBXItem;
TBXSeparatorItem2: TTBXSeparatorItem;
acHelp: TAction;
acAbout: TAction;
TBXItem14: TTBXItem;
TBXSeparatorItem3: TTBXSeparatorItem;
TBXItem15: TTBXItem;
TBXItem16: TTBXItem;
TBXItem17: TTBXItem;
TBXItem18: TTBXItem;
TBXSwitcher1: TTBXSwitcher;
TBXSeparatorItem4: TTBXSeparatorItem;
pb: TProgressBar;
TBXItem19: TTBXItem;
TBXItem20: TTBXItem;
TBXSeparatorItem5: TTBXSeparatorItem;
TBXItem21: TTBXItem;
acOther: TAction;
acPersonalLQ: TAction;
TBXItem22: TTBXItem;
acRefund: TAction;
TBXItem23: TTBXItem;
TBXSeparatorItem6: TTBXSeparatorItem;
Tr_ConnectDB: TTimer;
procedure acAgentLQExecute(Sender: TObject);
procedure acDisTicketsExecute(Sender: TObject);
procedure acSatisticsExecute(Sender: TObject);
procedure acExitExecute(Sender: TObject);
procedure acEdtPwdExecute(Sender: TObject);
procedure acReLoginExecute(Sender: TObject);
procedure TBXItem8Click(Sender: TObject);
procedure acViewTicketExecute(Sender: TObject);
procedure actDoApplyExecute(Sender: TObject);
procedure acInputTicketExecute(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
procedure FormCreate(Sender: TObject);
procedure StaticsOnClick(Sender: TObject);
procedure acOtherExecute(Sender: TObject);
procedure acPersonalLQExecute(Sender: TObject);
procedure acRefundExecute(Sender: TObject);
procedure Tr_ConnectDBTimer(Sender: TObject);
private
{ Private declarations }
FCurOperateMode: TOperateMode;
FConnectSecord: Integer;
procedure UpdateApplyCaption(ACaption: string; AOperateMode: TOperateMode);
procedure WMDoStatusChange(var Message: TMessage); message WM_STATUS_MSG;
procedure WMDISCONECTDB(var message: TMessage); message DM_CONNECTDB;
function GetStoreCount: Integer;
public
{ Public declarations }
end;
var
FormMain: TFormMain;
implementation
uses
DisTicketFrm, ViewTicketsFrm, DoApplyFrm, AgentLQFrm, StoreTickets, PensonalLQFrm,
StaticsFrm, CommonFuncLib, SystemDM, RefundFrm;
{$R *.dfm}
var
FFormDisTicket: TFormDisTickets;
FFormViewTickets: TFormViewTicket;
FFormDoApply: TFormDoApply;
FFormAgentLQ: TFormAgentLQ;
FFormStoreTickets: TFormStoreTicket;
FFormStatics: TFormStatics;
FFormPersonalLQ: TFrmPersonalLQ;
FFormRefund: TFrmRefund;
procedure TFormMain.acAgentLQExecute(Sender: TObject);
begin
if not Assigned(FFormAgentLQ) then
begin
FFormAgentLQ := TFormAgentLQ.Create(PnlControl);
with FFormAgentLQ do
begin
Parent := PnlControl;
Align := alClient;
BorderStyle := bsNone;
Color := clAppWorkSpace;
Visible := True;
SetAgentLQFormActive;
end;
end
else begin
FFormAgentLQ.InitComponentEditInfo;
FFormAgentLQ.SetAgentLQFormActive;
end;
UpdateApplyCaption(FFormAgentLQ.Caption, omAgentLQ);
end;
procedure TFormMain.acDisTicketsExecute(Sender: TObject);
begin
if not Assigned(FFormDisTicket) then
begin
FFormDisTicket := TFormDisTickets.Create(PnlControl);
with FFormDisTicket do
begin
Parent := PnlControl;
Align := alClient;
BorderStyle := bsNone;
Color := clAppWorkSpace;
Visible := True;
BringToFront;
end;
end
else
FFormDisTicket.BringToFront;
UpdateApplyCaption(FFormDisTicket.Caption, omDisTicket);
end;
procedure TFormMain.acSatisticsExecute(Sender: TObject);
begin
if not Assigned(FFormStatics) then
begin
FFormStatics := TFormStatics.Create(PnlControl);
with FFormStatics do
begin
Parent := PnlControl;
Align := alClient;
BorderStyle := bsNone;
Color := clAppWorkSpace;
Visible := True;
BringToFront;
end;
end
else
FFormStatics.BringToFront;
UpdateApplyCaption(FFormStatics.Caption, omStatics);
end;
procedure TFormMain.acExitExecute(Sender: TObject);
begin
Close;
end;
procedure TFormMain.acEdtPwdExecute(Sender: TObject);
begin
//
end;
procedure TFormMain.acReLoginExecute(Sender: TObject);
begin
//
end;
procedure TFormMain.TBXItem8Click(Sender: TObject);
begin
//
end;
procedure TFormMain.acViewTicketExecute(Sender: TObject);
begin
if not Assigned(FFormViewTickets) then
begin
FFormViewTickets := TFormViewTicket.Create(PnlControl);
with FFormViewTickets do
begin
Parent := PnlControl;
Align := alClient;
BorderStyle := bsNone;
Color := clAppWorkSpace;
Visible := True;
BringToFront;
end;
end
else
FFormViewTickets.BringToFront;
UpdateApplyCaption(FFormViewTickets.Caption, omViewTicket);
end;
procedure TFormMain.actDoApplyExecute(Sender: TObject);
begin
if not Assigned(FFormDoApply) then
begin
FFormDoApply := TFormDoApply.Create(PnlControl, FFormDoApply);
with FFormDoApply do
begin
Parent := PnlControl;
Align := alClient;
BorderStyle := bsNone;
Color := clAppWorkSpace;
Visible := True;
BringToFront;
end;
TFormDoApply.InitDoApplyData(FFormDoApply);
end
else
FFormDoApply.BringToFront;
UpdateApplyCaption(FFormDoApply.Caption, omDoApply);
end;
procedure TFormMain.acInputTicketExecute(Sender: TObject);
begin
if not Assigned(FFormStoreTickets) then
begin
FFormStoreTickets := TFormStoreTicket.Create(PnlControl);
with FFormStoreTickets do
begin
Parent := PnlControl;
Align := alClient;
BorderStyle := bsNone;
Color := clAppWorkSpace;
Visible := True;
BringToFront;
end;
end
else
FFormStoreTickets.BringToFront;
UpdateApplyCaption(FFormStoreTickets.Caption, omStoreTicket);
end;
procedure TFormMain.UpdateApplyCaption(ACaption: string; AOperateMode: TOperateMode);
begin
Caption := SystemConst_AppExplain + ' - [' + ACaption + ']';
if FCurOperateMode <> AOperateMode then
begin
FCurOperateMode := AOperateMode;
bxStb.Panels[0].Caption := '';
end;
end;
procedure TFormMain.FormDestroy(Sender: TObject);
begin
if Assigned(FFormViewTickets) then FreeAndNil(FFormViewTickets);
if Assigned(FFormStoreTickets) then FreeAndNil(FFormStoreTickets);
if Assigned(FFormDisTicket) then FreeAndNil(FFormDisTicket);
if Assigned(FFormDoApply) then FreeAndNil(FFormDoApply);
if Assigned(FFormAgentLQ) then FreeAndNil(FFormAgentLQ);
end;
procedure TFormMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
if Application.MessageBox('确定退出系统?', '提示', MB_OKCANCEL+MB_ICONINFORMATION) = IDOK then
CanClose := True
else
CanClose := False;
end;
procedure TFormMain.FormCreate(Sender: TObject);
begin
Caption := SystemConst_AppExplain;
FCurOperateMode := omNone;
GlobalStoreCount := GetStoreCount;
FConnectSecord := 20;
end;
procedure TFormMain.WMDoStatusChange(var Message: TMessage);
var
nPosition: Integer;
begin
if Message.Msg = WM_STATUS_MSG then
begin
case Message.WParam of
DEF_START_UPDATE:
begin
bxStb.Panels[0].Caption := '加载数据中,请稍候......';
pb.Max := Message.LParam;
pb.Visible := True;
pb.Position := 0;
end;
DEF_PLAYING_UPDATE:
begin
nPosition := Message.LParam;
if nPosition <= pb.Max then
pb.Position := nPosition;
end;
DEF_FINISHED_UPDATE:
begin
bxStb.Panels[0].Caption := '';
pb.Visible := False;
end;
DEF_RECORDCOUNT:
begin
bxStb.Panels[0].Caption := '总共记录数:' + IntToStr(Message.LParam);
pb.Visible := False;
end;
end;
end;
end;
procedure TFormMain.StaticsOnClick(Sender: TObject);
begin
if not (Sender is TTBXItem)then Exit;
acSatistics.Execute;
SendMessage(FFormStatics.Handle, WM_STATICS_MSG, TTBXItem(Sender).Tag, 0);
end;
procedure TFormMain.acOtherExecute(Sender: TObject);
var
nYLTicketCount: Integer;
begin
//最低库存票;
nYLTicketCount := GlobalIniOptions.configYLTicketCount;
nYLTicketCount := StrToIntDef(GoldenInputBox('设置', '请输入公司要预留的票数:', IntToStr(nYLTicketCount)), -1);
if nYLTicketCount <> -1 then
begin
GlobalIniOptions.configYLTicketCount := nYLTicketCount;
GlobalIniOptions.SaveToFile(ExtractFilePath(ParamStr(0)) + 'TicketsManager.ini');
end else
ShowMessage('输入的信息不正确,请重新输入!');
end;
procedure TFormMain.acPersonalLQExecute(Sender: TObject);
begin
//个人领取
if not Assigned(FFormPersonalLQ) then
begin
FFormPersonalLQ := TFrmPersonalLQ.Create(PnlControl);
with FFormPersonalLQ do
begin
Parent := PnlControl;
Align := alClient;
BorderStyle := bsNone;
Color := clAppWorkSpace;
Visible := True;
SetPensonalFormActive;
end;
end
else
FFormPersonalLQ.SetPensonalFormActive;
UpdateApplyCaption(FFormPersonalLQ.Caption, omStoreTicket);
end;
function TFormMain.GetStoreCount: Integer;
var
sSqlStr: string;
begin
Result := 0;
sSqlStr := 'SELECT Count(PRINTCODE) AS TOTALCOUNT FROM TICKET_NUMBER WHERE ISUSED = 0';
if DMSystem.SQL_Querys(DMSystem.Qry_Temp, sSqlStr) then
Result := DMSystem.Qry_Temp.FieldByName('TOTALCOUNT').AsInteger;
end;
procedure TFormMain.acRefundExecute(Sender: TObject);
begin
if not Assigned(FFormRefund) then
begin
FFormRefund := TFrmRefund.Create(PnlControl);
with FFormRefund do
begin
Parent := PnlControl;
Align := alClient;
BorderStyle := bsNone;
Color := clAppWorkSpace;
Visible := True;
BringToFront;
end;
end
else
FFormRefund.BringToFront;
UpdateApplyCaption(FFormRefund.Caption, omRefund);
end;
procedure TFormMain.WMDISCONECTDB(var message: TMessage);
begin
if not Tr_ConnectDB.Enabled then
begin
bxStb.Panels[0].Caption := Format(DM_CONNECTINFO, [IntToStr(FConnectSecord)]);
Tr_ConnectDB.Enabled := True;
end;
end;
procedure TFormMain.Tr_ConnectDBTimer(Sender: TObject);
begin
if not DMSystem.ConnMain.Connected then
begin
FConnectSecord := FConnectSecord - 1;
bxStb.Panels[0].Caption := Format(DM_CONNECTINFO, [IntToStr(FConnectSecord)]);
if FConnectSecord = 0 then
try
bxStb.Panels[0].Caption := '连接中,请稍候......';
DMSystem.ConnMain.Open;
except
if FConnectSecord = 0 then FConnectSecord := 20;
bxStb.Panels[0].Caption := Format(DM_CONNECTINFO, [IntToStr(FConnectSecord)]);
end;
end else
begin
bxStb.Panels[0].Caption := '与数据库连接成功!';
FConnectSecord := 20;
Tr_ConnectDB.Enabled := False;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -