diff --git "a/\352\271\200\355\230\204\354\262\240/CustomerForm.dfm" "b/\352\271\200\355\230\204\354\262\240/CustomerForm.dfm" new file mode 100644 index 0000000..7a8ccd0 --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/CustomerForm.dfm" @@ -0,0 +1,478 @@ +object frmCustomer: TfrmCustomer + Left = 0 + Top = 0 + Caption = #44256#44061#44288#47532 + ClientHeight = 576 + ClientWidth = 783 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 18 + object CategoryPanelGroup1: TCategoryPanelGroup + Left = 0 + Top = 41 + Width = 783 + Height = 535 + VertScrollBar.Position = 283 + VertScrollBar.Tracking = True + Align = alClient + HeaderFont.Charset = DEFAULT_CHARSET + HeaderFont.Color = clWindowText + HeaderFont.Height = -11 + HeaderFont.Name = 'Tahoma' + HeaderFont.Style = [] + TabOrder = 0 + ExplicitTop = 0 + ExplicitHeight = 576 + object CategoryPanel8: TCategoryPanel + Top = 374 + Caption = #44160#49353#47785#47197 + TabOrder = 0 + object DBText1: TDBText + Left = 352 + Top = 96 + Width = 65 + Height = 17 + end + object DBText2: TDBText + Left = 552 + Top = -616 + Width = 65 + Height = 17 + end + object DBGrid1: TDBGrid + Left = 0 + Top = 0 + Width = 762 + Height = 174 + Align = alClient + DataSource = DataSource1 + Options = [dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] + TabOrder = 0 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -15 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + Columns = < + item + Expanded = False + FieldName = 'serial' + Title.Caption = #44256#44061#48264#54840 + Visible = True + end + item + Expanded = False + FieldName = 'name' + Title.Caption = #51060#47492 + Visible = True + end + item + Expanded = False + FieldName = 'phone' + Title.Caption = #50672#46973#52376 + Visible = True + end + item + Expanded = False + FieldName = 'office_name' + Title.Caption = #51649#51109 + Visible = True + end + item + Expanded = False + FieldName = 'office_position' + Title.Caption = #51649#50948 + Visible = True + end> + end + object DBEdit16: TDBEdit + Left = 584 + Top = -608 + Width = 121 + Height = 26 + TabOrder = 1 + end + end + object CategoryPanel7: TCategoryPanel + Top = 174 + Caption = #44160#49353#51312#44148 + TabOrder = 1 + object Label16: TLabel + Left = 15 + Top = 16 + Width = 49 + Height = 18 + Caption = 'Label16' + end + object Edit1: TEdit + Left = 64 + Top = 8 + Width = 121 + Height = 26 + TabOrder = 0 + Text = 'Edit1' + end + object Edit2: TEdit + Left = 248 + Top = 8 + Width = 121 + Height = 26 + TabOrder = 1 + Text = 'Edit2' + end + end + object CategoryPanel6: TCategoryPanel + Top = 46 + Height = 128 + Caption = #47700#47784 + TabOrder = 2 + object DBMemo1: TDBMemo + Left = 0 + Top = 0 + Width = 762 + Height = 102 + Align = alClient + DataSource = DataSource1 + TabOrder = 0 + end + end + object CategoryPanel3: TCategoryPanel + Top = -18 + Height = 64 + Caption = #51649#51109' '#51221#48372 + TabOrder = 3 + object Label7: TLabel + Left = 25 + Top = 16 + Width = 39 + Height = 18 + Caption = #51649#51109#47749 + end + object Label8: TLabel + Left = 191 + Top = 11 + Width = 52 + Height = 18 + Caption = #51649#51109#51204#54868 + end + object Label9: TLabel + Left = 392 + Top = 15 + Width = 26 + Height = 18 + Caption = #48512#49436 + end + object Label10: TLabel + Left = 592 + Top = 11 + Width = 26 + Height = 18 + Caption = #51649#50948 + end + object DBEdit7: TDBEdit + Left = 64 + Top = 8 + Width = 121 + Height = 26 + DataField = 'office_name' + DataSource = DataSource1 + TabOrder = 0 + end + object DBEdit8: TDBEdit + Left = 248 + Top = 8 + Width = 121 + Height = 26 + DataField = 'office_phone' + DataSource = DataSource1 + TabOrder = 1 + end + object DBEdit9: TDBEdit + Left = 424 + Top = 8 + Width = 121 + Height = 26 + DataField = 'office_part' + DataSource = DataSource1 + TabOrder = 2 + end + object DBEdit10: TDBEdit + Left = 624 + Top = 8 + Width = 121 + Height = 26 + DataField = 'office_position' + DataSource = DataSource1 + TabOrder = 3 + end + end + object CategoryPanel5: TCategoryPanel + Top = -106 + Height = 88 + Caption = #44592#45392#51068 + TabOrder = 4 + object Label14: TLabel + Left = 37 + Top = 11 + Width = 26 + Height = 18 + Caption = #49373#51068 + end + object Label15: TLabel + Left = 359 + Top = 11 + Width = 65 + Height = 18 + Caption = #44208#54844#44592#45392#51068 + end + object DBEdit14: TDBEdit + Left = 64 + Top = 8 + Width = 121 + Height = 26 + DataField = 'birhtday' + DataSource = DataSource1 + TabOrder = 0 + end + object DBEdit15: TDBEdit + Left = 424 + Top = 8 + Width = 121 + Height = 26 + DataField = 'anniversary' + DataSource = DataSource1 + TabOrder = 1 + end + object DBRadioGroup1: TDBRadioGroup + Left = 191 + Top = 8 + Width = 130 + Height = 49 + Caption = #49373#51068' '#44396#48516 + Columns = 2 + Items.Strings = ( + #50577#47141 + #51020#47141) + TabOrder = 2 + end + end + object CategoryPanel4: TCategoryPanel + Top = -178 + Height = 72 + Caption = #44288#49900#49324 + TabOrder = 5 + object Label11: TLabel + Left = 37 + Top = 11 + Width = 26 + Height = 18 + Caption = #51649#50629 + end + object Label12: TLabel + Left = 222 + Top = 11 + Width = 26 + Height = 18 + Caption = #51333#44368 + end + object Label13: TLabel + Left = 392 + Top = 11 + Width = 26 + Height = 18 + Caption = #52712#48120 + end + object DBEdit11: TDBEdit + Left = 64 + Top = 8 + Width = 121 + Height = 26 + DataField = 'job' + DataSource = DataSource1 + TabOrder = 0 + end + object DBEdit12: TDBEdit + Left = 248 + Top = 8 + Width = 121 + Height = 26 + DataField = 'religion' + DataSource = DataSource1 + TabOrder = 1 + end + object DBEdit13: TDBEdit + Left = 424 + Top = 8 + Width = 121 + Height = 26 + DataField = 'hobby' + DataSource = DataSource1 + TabOrder = 2 + end + end + object CategoryPanel1: TCategoryPanel + Top = -283 + Height = 105 + Caption = #44592#48376#51221#48372 + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = 'Tahoma' + Font.Style = [] + ParentFont = False + TabOrder = 6 + object Label1: TLabel + Left = 25 + Top = 16 + Width = 39 + Height = 18 + Caption = #44256#44061#47749 + end + object Label2: TLabel + Left = 209 + Top = 11 + Width = 39 + Height = 18 + Caption = #50689#47928#47749 + end + object Label3: TLabel + Left = 384 + Top = 43 + Width = 39 + Height = 18 + Caption = #44144#47000#52376 + end + object Label4: TLabel + Left = 579 + Top = 43 + Width = 39 + Height = 18 + Caption = #45812#45817#51088 + end + object Label5: TLabel + Left = 25 + Top = 48 + Width = 39 + Height = 18 + Caption = #55092#45824#54256 + end + object Label6: TLabel + Left = 209 + Top = 43 + Width = 39 + Height = 18 + Caption = #51060#47700#51068 + end + object Label18: TLabel + Left = 566 + Top = 16 + Width = 52 + Height = 18 + Caption = #44256#44061#48264#54840 + end + object DBEdit1: TDBEdit + Left = 64 + Top = 8 + Width = 121 + Height = 26 + DataField = 'name' + DataSource = DataSource1 + TabOrder = 0 + end + object DBEdit2: TDBEdit + Left = 248 + Top = 8 + Width = 121 + Height = 26 + DataField = 'name_english' + DataSource = DataSource1 + TabOrder = 1 + end + object DBEdit3: TDBEdit + Left = 424 + Top = 40 + Width = 121 + Height = 26 + DataField = 'partner' + DataSource = DataSource1 + TabOrder = 2 + end + object DBEdit4: TDBEdit + Left = 624 + Top = 40 + Width = 121 + Height = 26 + DataField = 'manager' + DataSource = DataSource1 + TabOrder = 3 + end + object DBEdit5: TDBEdit + Left = 64 + Top = 40 + Width = 121 + Height = 26 + DataField = 'phone' + DataSource = DataSource1 + TabOrder = 4 + end + object DBEdit6: TDBEdit + Left = 248 + Top = 40 + Width = 121 + Height = 26 + DataField = 'email' + DataSource = DataSource1 + TabOrder = 5 + end + object DBEdit18: TDBEdit + Left = 624 + Top = 8 + Width = 121 + Height = 26 + DataField = 'serial' + DataSource = DataSource1 + ReadOnly = True + TabOrder = 6 + end + end + end + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 783 + Height = 41 + Align = alTop + TabOrder = 1 + ExplicitLeft = 304 + ExplicitTop = 288 + ExplicitWidth = 185 + object DBNavigator1: TDBNavigator + Left = 272 + Top = 8 + Width = 240 + Height = 25 + DataSource = DataSource1 + TabOrder = 0 + end + end + object DataSource1: TDataSource + DataSet = FDTable1 + Left = 480 + Top = 441 + end + object FDTable1: TFDTable + Active = True + IndexFieldNames = 'serial' + Connection = DataModule1.FDConnection1 + UpdateOptions.UpdateTableName = 'customer' + TableName = 'customer' + Left = 440 + Top = 441 + end +end diff --git "a/\352\271\200\355\230\204\354\262\240/CustomerForm.pas" "b/\352\271\200\355\230\204\354\262\240/CustomerForm.pas" new file mode 100644 index 0000000..05d1500 --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/CustomerForm.pas" @@ -0,0 +1,83 @@ +unit CustomerForm; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, Vcl.DBCtrls, + Vcl.ExtCtrls, Data.DB, Vcl.Grids, Vcl.DBGrids, FireDAC.Stan.Intf, + FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, + FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, + FireDAC.Comp.DataSet, FireDAC.Comp.Client; + +type + TfrmCustomer = class(TForm) + CategoryPanelGroup1: TCategoryPanelGroup; + CategoryPanel1: TCategoryPanel; + DBEdit1: TDBEdit; + DBEdit2: TDBEdit; + DBEdit3: TDBEdit; + DBEdit4: TDBEdit; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + CategoryPanel3: TCategoryPanel; + Label7: TLabel; + DBEdit7: TDBEdit; + Label8: TLabel; + DBEdit8: TDBEdit; + Label9: TLabel; + DBEdit9: TDBEdit; + Label10: TLabel; + DBEdit10: TDBEdit; + CategoryPanel4: TCategoryPanel; + Label11: TLabel; + DBEdit11: TDBEdit; + Label12: TLabel; + DBEdit12: TDBEdit; + Label13: TLabel; + DBEdit13: TDBEdit; + CategoryPanel5: TCategoryPanel; + Label14: TLabel; + DBEdit14: TDBEdit; + Label15: TLabel; + DBEdit15: TDBEdit; + DBRadioGroup1: TDBRadioGroup; + CategoryPanel6: TCategoryPanel; + DBMemo1: TDBMemo; + CategoryPanel7: TCategoryPanel; + CategoryPanel8: TCategoryPanel; + DBGrid1: TDBGrid; + Edit1: TEdit; + Edit2: TEdit; + Label16: TLabel; + Label5: TLabel; + DBEdit5: TDBEdit; + Label6: TLabel; + DBEdit6: TDBEdit; + Label18: TLabel; + DBEdit16: TDBEdit; + DBText1: TDBText; + DBText2: TDBText; + DBEdit18: TDBEdit; + DataSource1: TDataSource; + FDTable1: TFDTable; + Panel1: TPanel; + DBNavigator1: TDBNavigator; + private + { Private declarations } + public + { Public declarations } + end; + +var + frmCustomer: TfrmCustomer; + +implementation + +{$R *.dfm} + +uses DataModule; + +end. diff --git "a/\352\271\200\355\230\204\354\262\240/DataModule.dfm" "b/\352\271\200\355\230\204\354\262\240/DataModule.dfm" index 92f191b..6d814ab 100644 --- "a/\352\271\200\355\230\204\354\262\240/DataModule.dfm" +++ "b/\352\271\200\355\230\204\354\262\240/DataModule.dfm" @@ -1,12 +1,30 @@ object DataModule1: TDataModule1 OldCreateOrder = False - Height = 150 - Width = 215 + OnCreate = DataModuleCreate + OnDestroy = DataModuleDestroy + Height = 169 + Width = 294 object FDConnection1: TFDConnection Params.Strings = ( 'Database=D:\DelphiProject\EduMaster201901\'#44608#54788#52384'\ttms.sdb' 'DriverID=SQLite') - Left = 31 - Top = 40 + Left = 55 + Top = 96 + end + object FDQueryManager: TFDQuery + Connection = FDConnection1 + SQL.Strings = ( + 'SELECT * ' + 'FROM manager' + 'WHERE pass = :pass') + Left = 159 + Top = 94 + ParamData = < + item + Name = 'PASS' + DataType = ftString + ParamType = ptInput + Value = '1234' + end> end end diff --git "a/\352\271\200\355\230\204\354\262\240/DataModule.pas" "b/\352\271\200\355\230\204\354\262\240/DataModule.pas" index 73b1bc6..0d921b6 100644 --- "a/\352\271\200\355\230\204\354\262\240/DataModule.pas" +++ "b/\352\271\200\355\230\204\354\262\240/DataModule.pas" @@ -7,11 +7,15 @@ interface FireDAC.Stan.Error, FireDAC.UI.Intf, FireDAC.Phys.Intf, FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Stan.Async, FireDAC.Phys, FireDAC.Phys.SQLite, FireDAC.Phys.SQLiteDef, FireDAC.Stan.ExprFuncs, FireDAC.VCLUI.Wait, Data.DB, - FireDAC.Comp.Client; + FireDAC.Comp.Client, FireDAC.Stan.Param, FireDAC.DatS, FireDAC.DApt.Intf, + FireDAC.DApt, FireDAC.Comp.DataSet; type TDataModule1 = class(TDataModule) FDConnection1: TFDConnection; + FDQueryManager: TFDQuery; + procedure DataModuleCreate(Sender: TObject); + procedure DataModuleDestroy(Sender: TObject); private { Private declarations } public @@ -27,4 +31,15 @@ implementation {$R *.dfm} +procedure TDataModule1.DataModuleCreate(Sender: TObject); +begin + FDConnection1.Connected := True; + FDQueryManager.Open; +end; + +procedure TDataModule1.DataModuleDestroy(Sender: TObject); +begin + FDConnection1.Connected := False; +end; + end. diff --git "a/\352\271\200\355\230\204\354\262\240/EventManager.dfm" "b/\352\271\200\355\230\204\354\262\240/EventManager.dfm" index 1d2c618..cb35f7f 100644 --- "a/\352\271\200\355\230\204\354\262\240/EventManager.dfm" +++ "b/\352\271\200\355\230\204\354\262\240/EventManager.dfm" @@ -2,7 +2,7 @@ object frmEvent: TfrmEvent Left = 0 Top = 0 Caption = 'frmEvent' - ClientHeight = 559 + ClientHeight = 648 ClientWidth = 682 Color = clBtnFace Font.Charset = DEFAULT_CHARSET @@ -10,458 +10,621 @@ object frmEvent: TfrmEvent Font.Height = -15 Font.Name = 'Tahoma' Font.Style = [] + KeyPreview = True OldCreateOrder = False - OnCreate = FormCreate + OnActivate = FormActivate + OnDeactivate = FormDeactivate + OnKeyDown = FormKeyDown PixelsPerInch = 96 TextHeight = 18 - object DBText1: TDBText - Left = 74 - Top = 21 - Width = 65 - Height = 17 - DataField = 'serial' - DataSource = DataSource1 - end - object Label1: TLabel - Left = 16 - Top = 21 - Width = 52 - Height = 18 - Caption = #54665#49324#48264#54840 - end - object Label2: TLabel - Left = 218 - Top = 21 - Width = 52 - Height = 18 - Caption = #51217#49688#51068#51088 - end - object Label3: TLabel - Left = 472 - Top = 21 - Width = 52 - Height = 18 - Caption = #51652#54665#51068#51088 - end - object Label4: TLabel - Left = 16 - Top = 56 - Width = 39 - Height = 18 - Caption = #45812#45817#51088 - end - object Label5: TLabel - Left = 216 - Top = 56 - Width = 39 - Height = 18 - Caption = #44144#47000#52376 - end - object Label6: TLabel - Left = 16 - Top = 96 - Width = 39 - Height = 18 - Caption = #54665#49324#47749 - end - object Label7: TLabel - Left = 16 - Top = 144 - Width = 52 - Height = 18 - Caption = #54665#49324#44592#44036 - end - object Label8: TLabel - Left = 16 - Top = 192 - Width = 52 - Height = 18 - Caption = #44256#44061#49457#47749 - end - object Label9: TLabel - Left = 16 - Top = 232 - Width = 52 - Height = 18 - Caption = #51204#54868#48264#54840 - end - object Label10: TLabel - Left = 368 - Top = 232 - Width = 39 - Height = 18 - Caption = #54648#46300#54256 - end - object Label11: TLabel - Left = 16 - Top = 272 - Width = 52 - Height = 18 - Caption = #52636#48156#51068#49884 - end - object Label12: TLabel - Left = 368 - Top = 272 - Width = 39 - Height = 18 - Caption = #51665#44208#51648 - end - object Label13: TLabel - Left = 16 - Top = 312 - Width = 52 - Height = 18 - Caption = #54788#51648#52636#48156 - end - object Label14: TLabel - Left = 368 - Top = 312 - Width = 39 - Height = 18 - Caption = #51665#44208#51648 - end - object Label15: TLabel - Left = 19 - Top = 352 - Width = 39 - Height = 18 - Caption = #49689#49548#47749 - end - object Label16: TLabel - Left = 366 - Top = 352 - Width = 39 - Height = 18 - Caption = #44061#49892#47749 - end - object Label17: TLabel - Left = 462 - Top = 352 - Width = 39 - Height = 18 - Caption = #44061#49892#49688 - end - object DBTextReservationDate: TDBText - Left = 276 - Top = 21 - Width = 65 - Height = 17 - DataField = 'serial' - DataSource = DataSource1 - end - object DBTextProcessDate: TDBText - Left = 530 - Top = 21 - Width = 65 - Height = 17 - DataField = 'serial' - DataSource = DataSource1 - end - object Label18: TLabel - Left = 519 - Top = 101 - Width = 13 - Height = 18 - Caption = #48149 - end - object Label19: TLabel - Left = 583 - Top = 101 - Width = 13 - Height = 18 - Caption = #51068 - end - object Label20: TLabel - Left = 381 - Top = 192 - Width = 26 - Height = 18 - Caption = #51064#50896 - end - object Label21: TLabel - Left = 500 - Top = 192 - Width = 26 - Height = 18 - Caption = #45824#51064 - end - object Label22: TLabel - Left = 585 - Top = 192 - Width = 26 - Height = 18 - Caption = #49548#51064 - end - object Label23: TLabel - Left = 565 - Top = 352 - Width = 39 - Height = 18 - Caption = #44061#49892#49688 - end - object DBNavigator1: TDBNavigator - Left = 184 - Top = 400 - Width = 240 - Height = 25 - DataSource = DataSource1 - TabOrder = 0 - end object DBGrid1: TDBGrid Left = 0 - Top = 439 + Top = 433 Width = 682 - Height = 120 - Align = alBottom + Height = 215 + TabStop = False + Align = alClient DataSource = DataSource1 Options = [dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] - TabOrder = 1 + TabOrder = 0 TitleFont.Charset = DEFAULT_CHARSET TitleFont.Color = clWindowText TitleFont.Height = -15 TitleFont.Name = 'Tahoma' TitleFont.Style = [] end - object DBEdit1: TDBEdit - Left = 72 - Top = 52 - Width = 121 - Height = 26 - DataField = 'manager_name' - DataSource = DataSource1 - TabOrder = 2 - end - object DBEdit2: TDBEdit - Left = 276 - Top = 52 - Width = 121 - Height = 26 - DataField = 'partner_name' - DataSource = DataSource1 - TabOrder = 3 - end - object DBEdit3: TDBEdit - Left = 74 - Top = 93 - Width = 323 - Height = 26 - DataField = 'event_name' - DataSource = DataSource1 - TabOrder = 4 - end - object DBEdit4: TDBEdit - Left = 74 - Top = 141 - Width = 121 - Height = 26 - DataField = 'event_start_date' - DataSource = DataSource1 - TabOrder = 5 - end - object CalendarPicker1: TCalendarPicker - Left = 201 - Top = 141 - Height = 32 - CalendarHeaderInfo.DaysOfWeekFont.Charset = DEFAULT_CHARSET - CalendarHeaderInfo.DaysOfWeekFont.Color = clWindowText - CalendarHeaderInfo.DaysOfWeekFont.Height = -13 - CalendarHeaderInfo.DaysOfWeekFont.Name = 'Segoe UI' - CalendarHeaderInfo.DaysOfWeekFont.Style = [] - CalendarHeaderInfo.Font.Charset = DEFAULT_CHARSET - CalendarHeaderInfo.Font.Color = clWindowText - CalendarHeaderInfo.Font.Height = -20 - CalendarHeaderInfo.Font.Name = 'Segoe UI' - CalendarHeaderInfo.Font.Style = [] - Color = clWindow - Font.Charset = DEFAULT_CHARSET - Font.Color = clGray - Font.Height = -16 - Font.Name = 'Segoe UI' - Font.Style = [] - ParentFont = False - TabOrder = 6 - TextHint = 'select a date' - end - object DatePicker1: TDatePicker - Left = 496 - Top = 141 - Date = 43494.000000000000000000 - DateFormat = 'yyyy/MM/dd' - Font.Charset = DEFAULT_CHARSET - Font.Color = clWindowText - Font.Height = -16 - Font.Name = 'Segoe UI' - Font.Style = [] - TabOrder = 7 - end - object DBEdit5: TDBEdit - Left = 369 - Top = 141 - Width = 121 - Height = 26 - DataField = 'event_end_date' - DataSource = DataSource1 - TabOrder = 8 - end - object DBEdit6: TDBEdit - Left = 488 - Top = 93 - Width = 25 - Height = 26 - DataSource = DataSource1 - TabOrder = 9 - end - object DBEdit7: TDBEdit - Left = 550 - Top = 93 - Width = 27 - Height = 26 - DataSource = DataSource1 - TabOrder = 10 - end - object DBEdit8: TDBEdit - Left = 74 - Top = 189 - Width = 267 - Height = 26 - DataField = 'customer_name' - DataSource = DataSource1 - TabOrder = 11 - end - object DBEdit9: TDBEdit - Left = 413 - Top = 189 - Width = 29 - Height = 26 - DataSource = DataSource1 - TabOrder = 12 - end - object DBEdit10: TDBEdit - Left = 532 - Top = 189 - Width = 29 - Height = 26 - DataField = 'adult_total' - DataSource = DataSource1 - TabOrder = 13 - end - object DBEdit11: TDBEdit - Left = 617 - Top = 189 - Width = 29 - Height = 26 - DataField = 'child_total' - DataSource = DataSource1 - TabOrder = 14 - end - object DBEdit12: TDBEdit - Left = 74 - Top = 229 - Width = 121 - Height = 26 - DataField = 'phone' - DataSource = DataSource1 - TabOrder = 15 - end - object DBEdit13: TDBEdit - Left = 413 - Top = 229 - Width = 233 - Height = 26 - DataField = 'mobile' - DataSource = DataSource1 - TabOrder = 16 - end - object DateTimePicker1: TDateTimePicker - Left = 201 - Top = 269 - Width = 140 - Height = 26 - Date = 43494.000000000000000000 - Time = 0.405322615741170000 - TabOrder = 17 - end - object DBEdit14: TDBEdit - Left = 74 - Top = 269 - Width = 121 - Height = 26 - DataField = 'start_time' - DataSource = DataSource1 - TabOrder = 18 - end - object DBEdit15: TDBEdit - Left = 413 - Top = 269 - Width = 233 - Height = 26 - DataField = 'start_site' - DataSource = DataSource1 - TabOrder = 19 - end - object DBEdit16: TDBEdit - Left = 74 - Top = 309 - Width = 121 - Height = 26 - DataSource = DataSource1 - TabOrder = 20 - end - object DateTimePicker2: TDateTimePicker - Left = 201 - Top = 309 - Width = 140 - Height = 26 - Date = 43494.000000000000000000 - Time = 0.406120844905672100 - TabOrder = 21 - end - object DBEdit17: TDBEdit - Left = 413 - Top = 309 - Width = 233 - Height = 26 - DataSource = DataSource1 - TabOrder = 22 - end - object DBEdit18: TDBEdit - Left = 74 - Top = 349 - Width = 267 - Height = 26 - DataField = 'hotel_name' - DataSource = DataSource1 - TabOrder = 23 - end - object DBEdit19: TDBEdit - Left = 411 - Top = 349 - Width = 121 - Height = 26 - DataField = 'room_name' - DataSource = DataSource1 - TabOrder = 24 - end - object DBEdit20: TDBEdit - Left = 610 - Top = 349 - Width = 36 - Height = 26 - DataField = 'room_number' - DataSource = DataSource1 - TabOrder = 25 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 682 + Height = 433 + Align = alTop + TabOrder = 1 + object DBText1: TDBText + Left = 82 + Top = 22 + Width = 119 + Height = 17 + DataField = 'serial' + DataSource = DataSource1 + end + object Label1: TLabel + Left = 14 + Top = 21 + Width = 62 + Height = 18 + Caption = #54665#49324#48264#54840' :' + end + object Label2: TLabel + Left = 226 + Top = 21 + Width = 62 + Height = 18 + Caption = #51217#49688#51068#51088' :' + end + object Label3: TLabel + Left = 421 + Top = 21 + Width = 62 + Height = 18 + Caption = #51652#54665#51068#51088' :' + end + object Label4: TLabel + Left = 24 + Top = 56 + Width = 39 + Height = 18 + Caption = #45812#45817#51088 + end + object Label5: TLabel + Left = 224 + Top = 56 + Width = 39 + Height = 18 + Caption = #44144#47000#52376 + end + object Label6: TLabel + Left = 24 + Top = 96 + Width = 39 + Height = 18 + Caption = #54665#49324#47749 + end + object Label7: TLabel + Left = 24 + Top = 144 + Width = 52 + Height = 18 + Caption = #54665#49324#44592#44036 + end + object Label8: TLabel + Left = 24 + Top = 192 + Width = 52 + Height = 18 + Caption = #44256#44061#49457#47749 + end + object Label9: TLabel + Left = 24 + Top = 232 + Width = 52 + Height = 18 + Caption = #51204#54868#48264#54840 + end + object Label10: TLabel + Left = 376 + Top = 232 + Width = 39 + Height = 18 + Caption = #54648#46300#54256 + end + object Label11: TLabel + Left = 24 + Top = 272 + Width = 52 + Height = 18 + Caption = #52636#48156#51068#49884 + end + object Label12: TLabel + Left = 376 + Top = 272 + Width = 39 + Height = 18 + Caption = #51665#44208#51648 + end + object Label13: TLabel + Left = 24 + Top = 312 + Width = 52 + Height = 18 + Caption = #54788#51648#52636#48156 + end + object Label14: TLabel + Left = 376 + Top = 312 + Width = 39 + Height = 18 + Caption = #51665#44208#51648 + end + object Label15: TLabel + Left = 27 + Top = 352 + Width = 39 + Height = 18 + Caption = #49689#49548#47749 + end + object Label16: TLabel + Left = 374 + Top = 352 + Width = 39 + Height = 18 + Caption = #44061#49892#47749 + end + object Label17: TLabel + Left = 470 + Top = 352 + Width = 39 + Height = 18 + Caption = #44061#49892#49688 + end + object DBTextReservationDate: TDBText + Left = 294 + Top = 21 + Width = 111 + Height = 17 + DataField = 'reservation_date' + DataSource = DataSource1 + end + object DBTextProcessDate: TDBText + Left = 489 + Top = 21 + Width = 158 + Height = 17 + DataField = 'process_date' + DataSource = DataSource1 + end + object Label18: TLabel + Left = 520 + Top = 145 + Width = 13 + Height = 18 + Caption = #48149 + end + object Label19: TLabel + Left = 584 + Top = 145 + Width = 13 + Height = 18 + Caption = #51068 + end + object Label20: TLabel + Left = 389 + Top = 192 + Width = 26 + Height = 18 + Caption = #51064#50896 + end + object Label21: TLabel + Left = 508 + Top = 192 + Width = 26 + Height = 18 + Caption = #45824#51064 + end + object Label22: TLabel + Left = 593 + Top = 192 + Width = 26 + Height = 18 + Caption = #49548#51064 + end + object Label23: TLabel + Left = 573 + Top = 352 + Width = 39 + Height = 18 + Caption = #44061#49892#49688 + end + object Label24: TLabel + Left = 260 + Top = 140 + Width = 11 + Height = 18 + Caption = '~' + end + object Label25: TLabel + Left = 207 + Top = 272 + Width = 13 + Height = 18 + Caption = #49884 + end + object Label26: TLabel + Left = 245 + Top = 272 + Width = 13 + Height = 18 + Caption = #48516 + end + object Label27: TLabel + Left = 206 + Top = 311 + Width = 13 + Height = 18 + Caption = #49884 + end + object Label28: TLabel + Left = 244 + Top = 311 + Width = 13 + Height = 18 + Caption = #48516 + end + object Label29: TLabel + Left = 127 + Top = 140 + Width = 13 + Height = 18 + Caption = #45380 + end + object Label30: TLabel + Left = 179 + Top = 140 + Width = 13 + Height = 18 + Caption = #50900 + end + object Label31: TLabel + Left = 231 + Top = 140 + Width = 13 + Height = 18 + Caption = #51068 + end + object Label32: TLabel + Left = 332 + Top = 140 + Width = 13 + Height = 18 + Caption = #45380 + end + object Label33: TLabel + Left = 384 + Top = 140 + Width = 13 + Height = 18 + Caption = #50900 + end + object Label34: TLabel + Left = 436 + Top = 140 + Width = 13 + Height = 18 + Caption = #51068 + end + object Label35: TLabel + Left = 115 + Top = 272 + Width = 13 + Height = 18 + Caption = #50900 + end + object Label36: TLabel + Left = 167 + Top = 272 + Width = 13 + Height = 18 + Caption = #51068 + end + object Label37: TLabel + Left = 115 + Top = 311 + Width = 13 + Height = 18 + Caption = #50900 + end + object Label38: TLabel + Left = 167 + Top = 311 + Width = 13 + Height = 18 + Caption = #51068 + end + object DBNavigator1: TDBNavigator + Left = 186 + Top = 391 + Width = 240 + Height = 25 + DataSource = DataSource1 + TabOrder = 0 + end + object DBEditManagerName: TDBEdit + Left = 80 + Top = 52 + Width = 121 + Height = 26 + DataField = 'manager_name' + DataSource = DataSource1 + TabOrder = 1 + end + object edtPartner: TDBEdit + Left = 288 + Top = 52 + Width = 121 + Height = 26 + DataField = 'partner_name' + DataSource = DataSource1 + TabOrder = 2 + OnDblClick = edtPartnerDblClick + end + object DBEdit3: TDBEdit + Left = 82 + Top = 93 + Width = 323 + Height = 26 + DataField = 'event_name' + DataSource = DataSource1 + TabOrder = 3 + OnDblClick = DBEdit3DblClick + end + object DBEditNight: TDBEdit + Left = 489 + Top = 137 + Width = 25 + Height = 26 + DataField = 'night' + DataSource = DataSource1 + TabOrder = 10 + end + object DBEditDay: TDBEdit + Left = 551 + Top = 137 + Width = 27 + Height = 26 + DataField = 'day' + DataSource = DataSource1 + TabOrder = 11 + end + object DBEdit8: TDBEdit + Left = 82 + Top = 189 + Width = 267 + Height = 26 + DataField = 'customer_name' + DataSource = DataSource1 + TabOrder = 12 + end + object DBEdit9: TDBEdit + Left = 421 + Top = 189 + Width = 29 + Height = 26 + DataSource = DataSource1 + TabOrder = 13 + end + object DBEdit10: TDBEdit + Left = 540 + Top = 189 + Width = 29 + Height = 26 + DataField = 'adult_total' + DataSource = DataSource1 + TabOrder = 14 + end + object DBEdit11: TDBEdit + Left = 625 + Top = 189 + Width = 29 + Height = 26 + DataField = 'child_total' + DataSource = DataSource1 + TabOrder = 15 + end + object DBEdit12: TDBEdit + Left = 82 + Top = 229 + Width = 121 + Height = 26 + DataField = 'phone' + DataSource = DataSource1 + TabOrder = 16 + end + object DBEdit13: TDBEdit + Left = 421 + Top = 229 + Width = 233 + Height = 26 + DataField = 'mobile' + DataSource = DataSource1 + TabOrder = 17 + end + object DBEdit15: TDBEdit + Left = 421 + Top = 269 + Width = 233 + Height = 26 + DataField = 'start_site' + DataSource = DataSource1 + TabOrder = 22 + end + object DBEdit17: TDBEdit + Left = 421 + Top = 309 + Width = 233 + Height = 26 + DataField = 'local_start_site' + DataSource = DataSource1 + TabOrder = 27 + end + object DBEdit18: TDBEdit + Left = 82 + Top = 349 + Width = 267 + Height = 26 + DataField = 'hotel_name' + DataSource = DataSource1 + TabOrder = 28 + end + object DBEdit19: TDBEdit + Left = 419 + Top = 349 + Width = 121 + Height = 26 + DataField = 'room_name' + DataSource = DataSource1 + TabOrder = 29 + end + object DBEdit20: TDBEdit + Left = 618 + Top = 349 + Width = 36 + Height = 26 + DataField = 'room_number' + DataSource = DataSource1 + TabOrder = 30 + end + object edtDepartHour: TEdit + Left = 186 + Top = 269 + Width = 20 + Height = 26 + TabOrder = 20 + end + object edtDepartMinute: TEdit + Left = 226 + Top = 269 + Width = 20 + Height = 26 + TabOrder = 21 + end + object edtLocalHour: TEdit + Left = 187 + Top = 309 + Width = 20 + Height = 26 + TabOrder = 25 + end + object edtLocalMinute: TEdit + Left = 225 + Top = 308 + Width = 20 + Height = 26 + TabOrder = 26 + end + object edtFromYear: TEdit + Left = 83 + Top = 137 + Width = 38 + Height = 26 + TabOrder = 4 + OnExit = EventDateExit + end + object edtFromMonth: TEdit + Left = 146 + Top = 137 + Width = 27 + Height = 26 + TabOrder = 5 + OnExit = EventDateExit + end + object edtFromDay: TEdit + Left = 198 + Top = 137 + Width = 27 + Height = 26 + TabOrder = 6 + OnExit = EventDateExit + end + object edtToYear: TEdit + Left = 288 + Top = 137 + Width = 38 + Height = 26 + TabOrder = 7 + OnExit = EventDateExit + end + object edtToMonth: TEdit + Left = 351 + Top = 137 + Width = 27 + Height = 26 + TabOrder = 8 + OnExit = EventDateExit + end + object edtToDay: TEdit + Left = 403 + Top = 137 + Width = 27 + Height = 26 + TabOrder = 9 + OnExit = EventDateExit + end + object edtDepartMonth: TEdit + Left = 82 + Top = 269 + Width = 27 + Height = 26 + TabOrder = 18 + OnExit = EventDateExit + end + object edtDepartDay: TEdit + Left = 134 + Top = 269 + Width = 27 + Height = 26 + TabOrder = 19 + OnExit = EventDateExit + end + object edtLocalMonth: TEdit + Left = 82 + Top = 308 + Width = 27 + Height = 26 + TabOrder = 23 + OnExit = EventDateExit + end + object edtLocalDay: TEdit + Left = 134 + Top = 308 + Width = 27 + Height = 26 + TabOrder = 24 + OnExit = EventDateExit + end + object btnPost: TButton + Left = 80 + Top = 392 + Width = 75 + Height = 25 + Caption = #51200#51109 + TabOrder = 31 + OnClick = btnPostClick + end end object DataSource1: TDataSource DataSet = FDTable1 - Left = 536 - Top = 488 + Left = 528 + Top = 56 end object FDTable1: TFDTable + BeforePost = FDTable1BeforePost + AfterScroll = FDTable1AfterScroll + OnNewRecord = FDTable1NewRecord IndexFieldNames = 'serial' Connection = DataModule1.FDConnection1 UpdateOptions.UpdateTableName = 'event' TableName = 'event' - Left = 464 - Top = 488 + Left = 456 + Top = 56 + end + object FDQuerySerial: TFDQuery + Connection = DataModule1.FDConnection1 + SQL.Strings = ( + 'SELECT serial' + 'FROM event' + 'WHERE serial like '#39'20190130%'#39 + 'ORDER BY serial DESC') + Left = 456 + Top = 384 end end diff --git "a/\352\271\200\355\230\204\354\262\240/EventManager.pas" "b/\352\271\200\355\230\204\354\262\240/EventManager.pas" index 11e8fb0..619b80c 100644 --- "a/\352\271\200\355\230\204\354\262\240/EventManager.pas" +++ "b/\352\271\200\355\230\204\354\262\240/EventManager.pas" @@ -17,11 +17,8 @@ interface type TfrmEvent = class(TForm) - DataSource1: TDataSource; - FDTable1: TFDTable; - DBNavigator1: TDBNavigator; DBGrid1: TDBGrid; - DBEdit1: TDBEdit; + Panel1: TPanel; DBText1: TDBText; Label1: TLabel; Label2: TLabel; @@ -42,38 +39,77 @@ TfrmEvent = class(TForm) Label17: TLabel; DBTextReservationDate: TDBText; DBTextProcessDate: TDBText; - DBEdit2: TDBEdit; - DBEdit3: TDBEdit; - DBEdit4: TDBEdit; - CalendarPicker1: TCalendarPicker; - DatePicker1: TDatePicker; - DBEdit5: TDBEdit; Label18: TLabel; - DBEdit6: TDBEdit; - DBEdit7: TDBEdit; Label19: TLabel; + Label20: TLabel; + Label21: TLabel; + Label22: TLabel; + Label23: TLabel; + Label24: TLabel; + Label25: TLabel; + Label26: TLabel; + Label27: TLabel; + Label28: TLabel; + Label29: TLabel; + Label30: TLabel; + Label31: TLabel; + Label32: TLabel; + Label33: TLabel; + Label34: TLabel; + Label35: TLabel; + Label36: TLabel; + Label37: TLabel; + Label38: TLabel; + DBNavigator1: TDBNavigator; + DBEditManagerName: TDBEdit; + edtPartner: TDBEdit; + DBEdit3: TDBEdit; + DBEditNight: TDBEdit; + DBEditDay: TDBEdit; DBEdit8: TDBEdit; DBEdit9: TDBEdit; DBEdit10: TDBEdit; DBEdit11: TDBEdit; - Label20: TLabel; - Label21: TLabel; - Label22: TLabel; DBEdit12: TDBEdit; DBEdit13: TDBEdit; - DateTimePicker1: TDateTimePicker; - DBEdit14: TDBEdit; DBEdit15: TDBEdit; - DBEdit16: TDBEdit; - DateTimePicker2: TDateTimePicker; DBEdit17: TDBEdit; DBEdit18: TDBEdit; DBEdit19: TDBEdit; - Label23: TLabel; DBEdit20: TDBEdit; - procedure FormCreate(Sender: TObject); + edtDepartHour: TEdit; + edtDepartMinute: TEdit; + edtLocalHour: TEdit; + edtLocalMinute: TEdit; + edtFromYear: TEdit; + edtFromMonth: TEdit; + edtFromDay: TEdit; + edtToYear: TEdit; + edtToMonth: TEdit; + edtToDay: TEdit; + edtDepartMonth: TEdit; + edtDepartDay: TEdit; + edtLocalMonth: TEdit; + edtLocalDay: TEdit; + DataSource1: TDataSource; + FDTable1: TFDTable; + FDQuerySerial: TFDQuery; + btnPost: TButton; + procedure FormActivate(Sender: TObject); + procedure FormDeactivate(Sender: TObject); + procedure FDTable1NewRecord(DataSet: TDataSet); + procedure FDTable1BeforePost(DataSet: TDataSet); + procedure FormKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); + procedure EventDateExit(Sender: TObject); + procedure FDTable1AfterScroll(DataSet: TDataSet); + procedure btnPostClick(Sender: TObject); + procedure DBEdit3DblClick(Sender: TObject); + procedure edtPartnerDblClick(Sender: TObject); private { Private declarations } + procedure SetDate2Edit(Date: TDate; edtYear: TEdit; edtMonth: TEdit; edtDay: TEdit); + procedure SetTime2edit(Time: TDateTime; edtMonth: TEdit; edtDay: TEdit; edtHour: TEdit; edtMinute: TEdit); + function GetNewSerial: string; public { Public declarations } end; @@ -85,15 +121,268 @@ implementation {$R *.dfm} -uses DataModule; +uses DataModule, DateUtils, MyLib, SearchForm; + +{** Çà»ç±â°£ ÀԷ½à ¸î¹Ú ¸îÀÏÀ» ÀÚµ¿À¸·Î °è»ê +*} +procedure TfrmEvent.btnPostClick(Sender: TObject); +begin + FDTable1.Post; +end; + +procedure TfrmEvent.DBEdit3DblClick(Sender: TObject); +begin + frmSearch.DataSource1.DataSet := frmSearch.FDTableEvent; + frmSearch.FDTableEvent.Open; + + if frmSearch.ShowModal = mrOk then + begin + FDTable1.Edit; + FDTable1.FieldByName('event_name').AsString := frmSearch.SearchResult; + end; + + frmSearch.FDTableEvent.Close; +end; + +procedure TfrmEvent.edtPartnerDblClick(Sender: TObject); +begin + frmSearch.DataSource1.DataSet := frmSearch.FDTablePartner; + frmSearch.FDTablePartner.Open; + + if frmSearch.ShowModal = mrOk then + begin + FDTable1.Edit; + FDTable1.FieldByName('partner_name').AsString := frmSearch.SearchResult; + end; + + frmSearch.FDTablePartner.Close; +end; + +procedure TfrmEvent.EventDateExit(Sender: TObject); +var + fromDate, toDate : TDate; + Year, Month, Day: Integer; + Night: Integer; +begin + Convert3TextToDate(fromDate, edtFromYear.Text, edtFromMonth.Text, edtFromDay.Text); + Convert3TextToDate(ToDate, edtToYear.Text, edtToMonth.Text, edtToDay.Text); + +// fromDate := EncodeDate(StrToInt(edtFromYear.Text), +// StrToInt(edtFromMonth.Text), StrToInt(edtFromDay.Text)); +// toDate := EncodeDate(StrToInt(edtToYear.Text), +// StrToInt(edtToMonth.Text), StrToInt(edtToDay.Text)); + + if (toDate <> 0) and (fromDate <> 0) then + begin + Night := DaysBetween(toDate, fromDate); + with FDTable1 do + begin + Edit; + FieldByName('night').AsString := IntToStr(Night); + DBEditNight.Text := IntToStr(Night); + FieldByName('day').AsString := IntToStr(Night + 1); + DBEditDay.Text := IntToStr(Night + 1); + end; + end; + +end; + +{** ³â¿ùÀÏ(TDate)À» ¼¼°³ÀÇ TEdit.Text¿¡ÀúÀå + @param Date ³â¿ùÀÏ + @param Year ³âµµ TEdit + @param Month ¿ù TMonth + @param Day ÀÏ TEdit +*} +procedure TfrmEvent.SetDate2Edit(Date: TDate; edtYear: TEdit; edtMonth: TEdit; edtDay: TEdit); +var + Year, Month, Day: Word; +begin + if Date = 0 then + begin + edtYear.Clear; + edtMonth.Clear; + edtDay.Clear; + end else + begin + DecodeDate(Date, Year, Month, Day); + edtYear.Text := IntToStr(Year); + edtMonth.Text := IntToStr(Month); + edtDay.Text := IntToStr(Day); + end; +end; + +{** ¿ùÀϽúÐÀ» ³×°³ÀÇ TEdit¿¡ ÀÔ·Â + @param Time ³â¿ùÀÏ + @param Month ¿ù TMonth + @param Day ÀÏ TEdit + @param Hour ½Ã TEdit + @param Minute ºÐ ++} +procedure TfrmEvent.SetTime2edit(Time: TDateTime; edtMonth: TEdit; edtDay: TEdit; edtHour: TEdit; edtMinute: TEdit); +var + Year, Month, Day, Hour, Minute, Second, Mili: Word; +begin + if Time = 0 then + begin + edtMonth.Clear; + edtDay.Clear; + edtHour.Clear; + edtMinute.Clear; + end + else begin + DecodeDateTime(Time, Year, Month, Day, Hour, Minute, Second, Mili); + edtMonth.Text := IntToStr(Month); + edtDay.Text := IntToStr(Day); + edtHour.Text := IntToStr(Hour); + edtMinute.Text := IntToStr(Minute); + end; +end; + +{** Çà»ç Å×À̺íÀÇ ·¹ÄÚµå À̵¿½Ã TEdit¸¦ »ç¿ëÇÏ´Â Field °ªÀ» ¹Ý¿µ +*} +procedure TfrmEvent.FDTable1AfterScroll(DataSet: TDataSet); +var + Year, Month, Day, Hour, Minute, Second, Mili: Word; +begin + with FDTable1 do + begin + // DBÀÇ Çà»ç±â°£À» TEdit.Text¿¡ ¹Ý¿µ + SetDate2Edit(FieldByName('event_start_date').AsDateTime, + edtFromYear, edtFromMonth, edtFromDay); + SetDate2Edit(FieldByName('event_end_date').AsDateTime, + edtToYear, edtToMonth, edtToDay); + + // DBÀÇ Ç×°ø Ãâ¹ß½Ã°£À» TEdit.Text¿¡ ¹Ý¿µ + SetTime2Edit(FieldByName('start_time').AsDateTime, + edtDepartMonth, edtDepartDay, edtDepartHour, edtDepartMinute); + + // DBÀÇ ÇöÁö Ãâ¹ß½Ã°£À» TEdit.Text¿¡ ¹Ý¿µ + SetTime2Edit(FieldByName('local_start_time').AsDateTime, + edtLocalMonth, edtLocalDay, edtLocalHour, edtLocalMinute); + end; +end; + +{** + 1. TEdit¸¦ »ç¿ëÇÏ´Â Çʵå(Çà»ç±â°£, Ç×°øÃâ¹ß, ÇöÁöÃâ¹ß)¿¡ µ¥ÀÌÅ͸¦ ¹Ý¿µ + 2. ¼öÁ¤½Ã°£ ¾÷µ¥ÀÌÆ® +*} +procedure TfrmEvent.FDTable1BeforePost(DataSet: TDataSet); +var + EventStartDate, EventEndDate: TDate; + DepartTime, LocalTime: TDateTime; +begin + // Çà»ç±â°£(TDate)À» ±¸ÇÑ´Ù + EventStartDate := EncodeDate(StrToInt(edtFromYear.Text), + StrToInt(edtFromMonth.Text), StrToInt(edtFromDay.Text)); + EventEndDate := EncodeDate(StrToInt(edtToYear.Text), + StrToInt(edtToMonth.Text), StrToInt(edtToDay.Text)); + + // Ç×°ø Ãâ¹ß ½Ã°£(TDateTime)À» ±¸ÇÑ´Ù + DepartTime := EncodeDateTime(StrToInt(edtFromYear.Text), + StrToInt(edtDepartMonth.Text), StrToInt(edtDepartDay.Text), + StrToInt(edtDepartHour.Text), StrToInt(edtDepartMinute.Text), 0, 0); + + // ÇöÁö Ãâ¹ß ½Ã°£(TDateTime)À» ±¸ÇÑ´Ù + LocalTime := EncodeDateTime(StrToInt(edtFromYear.Text), + StrToInt(edtLocalMonth.Text), StrToInt(edtLocalDay.Text), + StrToInt(edtLocalHour.Text), StrToInt(edtLocalMinute.Text), 0, 0); -procedure TfrmEvent.FormCreate(Sender: TObject); + with FDTable1 do + begin + FieldByName('event_start_date').AsDateTime := EventStartDate; + FieldByName('event_end_date').AsDateTime := EventEndDate; + FieldByName('start_time').AsDateTime := DepartTime; + FieldByName('local_start_time').AsDateTime := EventEndDate; + FieldByName('modified_at').AsDateTime := now; + end; +end; + + +{** »õ ·¹ÄÚµå Ãß°¡½Ã »ç¿ëÇÏ´Â serial ±¸ÇÑ´Ù + @return »õ·Î¿î serialÀÇ ¹®ÀÚ¿­ + ÀϷùøÈ£(serial) »ý¼º yyyymmdd001 ex) 20190131001 +*} +function TfrmEvent.GetNewSerial: string; +var + Serial: Integer; +begin + with FDQuerySerial do + begin + Close; + SQL.Clear; + SQL.Add('SELECT serial FROM event WHERE serial like "' + + formatDateTime('yyyymmdd', now) + '%" ORDER BY serial DESC'); + Open; + + // ¿À´Ã³¯Â¥ÀÇ ¿¹¾àÀÌ ¾øÀ» ¶§ '001' ºÎÅÍ ½ÃÀÛ + if FieldByName('serial').AsString = '' then + result := formatDateTime('yyyymmdd', now) + '001' + // ¿À´Ã ³¯Â¥ÀÇ ¿¹¾àÀÌ ÀÖÀ¸¸é 1 Áõ°¡ + else begin + Serial := StrToInt(Copy(FieldByName('serial').AsString, 9, 3)); + result := formatDateTime('yyyymmdd', now) + IntToStr(Serial + 1); + end; + end; +end; + +{** Çà»ç Å×ÀÌºí¿¡ »õ ·¹ÄÚµå Ãß°¡½Ã + 1. »õ·Î¿î ÀϷùøÈ£ »ý¼º + 2. Á¢¼öÀϰú ÁøÇà¾ÞÀ» ¿À´Ã ³¯Â¥·Î + 3. ´ã´çÀÚ¸¦ ·Î±×ÀÎÇÑ »ç¿ëÀÚ·Î + 4. ÃÖÃÊÀÛ¼º½Ã°£À» Áö±ÝÀ¸·Î + 5. Çà»ç±â°£ÀÇ ³âµµ¸¦ ¿ÃÇØ·Î, ¿ùÀÏÀº Clear + 6. Ç×°øÃâ¹ß½Ã°£À» Clear +*} +procedure TfrmEvent.FDTable1NewRecord(DataSet: TDataSet); var NowDate: string; + NowYear: string; begin NowDate := formatDateTime('yyyy-mm-dd', now); -// DBTextReservationDate.Field.AsDateTime := now; -// DBTextProcessDate.Field.AsDate := now; + NowYear := formatDateTime('yyyy', now); + + // 1 ~ 4 + with FDTable1 do + begin + FieldByName('serial').AsString := GetNewSerial; + FieldByName('reservation_date').AsString := NowDate; + FieldByName('process_date').AsString := NowDate; + FieldByName('manager_name').AsString := DataModule1.FDQueryManager.FieldByName('name').AsString; + FieldByName('created_at').AsDateTime := now; + end; + DBTextReservationDate.Field.AsString := NowDate; + + // 5. Çà»ç±â°£ÀÇ ³âµµ¸¦ ¿ÃÇØ·Î, ¿ùÀÏÀº Clear + edtFromYear.Text := NowYear; edtToYear.Text := NowYear; + edtFromMonth.Clear; edtToMonth.Clear; + edtFromDay.Clear; edtToDay.Clear; + + // 6. Ç×°øÃâ¹ß½Ã°£À» Clear + edtDepartMonth.Clear; edtLocalMonth.Clear; + edtDepartDay.Clear; edtLocalDay.Clear; + edtDepartHour.Clear; edtLocalHour.Clear; + edtDepartMinute.Clear; edtLocalMinute.Clear; + + edtPartner.SetFocus; end; + +procedure TfrmEvent.FormActivate(Sender: TObject); +begin + FDTable1.Open; +end; + +procedure TfrmEvent.FormDeactivate(Sender: TObject); +begin + FDTable1.Close; +end; + +procedure TfrmEvent.FormKeyDown(Sender: TObject; var Key: Word; + Shift: TShiftState); +begin + if Key = VK_RETURN then + SelectNext(Activecontrol, True, True); +end; + + end. diff --git "a/\352\271\200\355\230\204\354\262\240/EventManager.vlb" "b/\352\271\200\355\230\204\354\262\240/EventManager.vlb" index 3244107..afcf461 100644 --- "a/\352\271\200\355\230\204\354\262\240/EventManager.vlb" +++ "b/\352\271\200\355\230\204\354\262\240/EventManager.vlb" @@ -1,16 +1,7 @@ -[FDTable1] +[] Coordinates=174,20,60,33 - -[DataSource1] -Coordinates=103,71,77,33 - -[] -Coordinates=84,124,90,33 Visible=True -[DBNavigator1] -Coordinates=330,30,82,51 - [DBGrid1] Coordinates=25,134,56,33 diff --git "a/\352\271\200\355\230\204\354\262\240/MainMenu.dfm" "b/\352\271\200\355\230\204\354\262\240/MainMenu.dfm" index 51cf219..4f60075 100644 --- "a/\352\271\200\355\230\204\354\262\240/MainMenu.dfm" +++ "b/\352\271\200\355\230\204\354\262\240/MainMenu.dfm" @@ -49,7 +49,6 @@ object frmMenu: TfrmMenu Width = 122 Height = 41 Caption = #50696#50557#44288#47532 - Enabled = False TabOrder = 0 OnClick = btnReservationClick end @@ -59,8 +58,8 @@ object frmMenu: TfrmMenu Width = 122 Height = 41 Caption = #54665#49324#44288#47532 - Enabled = False TabOrder = 1 + OnClick = btnEventClick end object btnManager: TButton Left = 143 @@ -72,15 +71,14 @@ object frmMenu: TfrmMenu TabOrder = 2 OnClick = btnManagerClick end - object btnMogaek: TButton + object btnTourist: TButton Left = 15 Top = 63 Width = 122 Height = 41 Caption = #47784#44061#54788#54889 - Enabled = False TabOrder = 3 - OnClick = btnReservationClick + OnClick = btnTouristClick end object btnPartner: TButton Left = 143 @@ -88,8 +86,8 @@ object frmMenu: TfrmMenu Width = 122 Height = 41 Caption = #44144#47000#52376#44288#47532 - Enabled = False TabOrder = 4 + OnClick = btnPartnerClick end object btnCalculate: TButton Left = 15 @@ -126,8 +124,8 @@ object frmMenu: TfrmMenu Width = 122 Height = 41 Caption = #44256#44061#44288#47532 - Enabled = False TabOrder = 8 + OnClick = btnCustomerClick end object btnBanking: TButton Left = 15 @@ -168,18 +166,4 @@ object frmMenu: TfrmMenu TabOrder = 12 end end - object FDQuery1: TFDQuery - Connection = DataModule1.FDConnection1 - SQL.Strings = ( - 'SELECT * ' - 'FROM manager' - 'WHERE pass = :pass') - Left = 216 - Top = 280 - ParamData = < - item - Name = 'PASS' - ParamType = ptInput - end> - end end diff --git "a/\352\271\200\355\230\204\354\262\240/MainMenu.pas" "b/\352\271\200\355\230\204\354\262\240/MainMenu.pas" index 21abf6d..ddbaff9 100644 --- "a/\352\271\200\355\230\204\354\262\240/MainMenu.pas" +++ "b/\352\271\200\355\230\204\354\262\240/MainMenu.pas" @@ -16,12 +16,11 @@ TfrmMenu = class(TForm) edtPass: TEdit; Label1: TLabel; btnPass: TButton; - FDQuery1: TFDQuery; Panel1: TPanel; btnReservation: TButton; btnEvent: TButton; btnManager: TButton; - btnMogaek: TButton; + btnTourist: TButton; btnPartner: TButton; btnCalculate: TButton; btnHotel: TButton; @@ -34,6 +33,10 @@ TfrmMenu = class(TForm) procedure btnReservationClick(Sender: TObject); procedure edtPassKeyPress(Sender: TObject; var Key: Char); procedure btnManagerClick(Sender: TObject); + procedure btnTouristClick(Sender: TObject); + procedure btnCustomerClick(Sender: TObject); + procedure btnEventClick(Sender: TObject); + procedure btnPartnerClick(Sender: TObject); private { Private declarations } procedure SetButton(Button: TButton; Bool: Integer); @@ -49,7 +52,8 @@ implementation {$R *.dfm} -uses DataModule, EventManager, Manager; +uses DataModule, EventManager, Manager, TouristStatusForm, CustomerForm, + ManageEventForm, PartnerForm; procedure TfrmMenu.SetButton(Button: TButton; Bool: Integer); begin @@ -61,7 +65,7 @@ procedure TfrmMenu.SetButton(Button: TButton; Bool: Integer); procedure TfrmMenu.SetAllButton; begin - with FDQuery1 do + with DataModule1.FDQueryManager do begin Close; ParamByName('pass').AsString := edtPass.Text; @@ -75,7 +79,7 @@ procedure TfrmMenu.SetAllButton; else begin SetButton(btnReservation, FieldByName('auth_reservation').AsInteger); SetButton(btnEvent, FieldByName('auth_event').AsInteger); - SetButton(btnMogaek, FieldByName('auth_mogaek').AsInteger); + SetButton(btnTourist, FieldByName('auth_mogaek').AsInteger); SetButton(btnPartner, FieldByName('auth_partner').AsInteger); SetButton(btnCalculate, FieldByName('auth_calculate').AsInteger); SetButton(btnHotel, FieldByName('auth_hotel').AsInteger); @@ -95,11 +99,31 @@ procedure TfrmMenu.btnReservationClick(Sender: TObject); frmEvent.Show; end; +procedure TfrmMenu.btnTouristClick(Sender: TObject); +begin + frmTouristStatus.Show; +end; + +procedure TfrmMenu.btnCustomerClick(Sender: TObject); +begin + frmCustomer.Show; +end; + +procedure TfrmMenu.btnEventClick(Sender: TObject); +begin + frmManageEvent.Show; +end; + procedure TfrmMenu.btnManagerClick(Sender: TObject); begin frmManager.Show; end; +procedure TfrmMenu.btnPartnerClick(Sender: TObject); +begin + frmPartner.Show; +end; + procedure TfrmMenu.edtPassKeyPress(Sender: TObject; var Key: Char); begin if ord(Key) = VK_RETURN then diff --git "a/\352\271\200\355\230\204\354\262\240/ManageEventForm.dfm" "b/\352\271\200\355\230\204\354\262\240/ManageEventForm.dfm" new file mode 100644 index 0000000..76d415f --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/ManageEventForm.dfm" @@ -0,0 +1,92 @@ +object frmManageEvent: TfrmManageEvent + Left = 0 + Top = 0 + Caption = #54665#49324#47749' '#44288#47532 + ClientHeight = 515 + ClientWidth = 478 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + OnActivate = FormActivate + OnDeactivate = FormDeactivate + PixelsPerInch = 96 + TextHeight = 18 + object Panel1: TPanel + Left = 0 + Top = 424 + Width = 478 + Height = 91 + Align = alBottom + TabOrder = 0 + object DBNavigator1: TDBNavigator + Left = 112 + Top = 32 + Width = 240 + Height = 22 + DataSource = DataSource1 + TabOrder = 0 + end + end + object DBGrid1: TDBGrid + Left = 0 + Top = 81 + Width = 478 + Height = 343 + Align = alClient + DataSource = DataSource1 + Options = [dgEditing, dgAlwaysShowEditor, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] + TabOrder = 1 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -15 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + Columns = < + item + Expanded = False + FieldName = 'name' + Visible = True + end> + end + object Panel2: TPanel + Left = 0 + Top = 0 + Width = 478 + Height = 81 + Align = alTop + TabOrder = 2 + object Label1: TLabel + Left = 8 + Top = 31 + Width = 49 + Height = 18 + Caption = #54665#49324#47749' :' + end + object DBEdit1: TDBEdit + Left = 63 + Top = 28 + Width = 121 + Height = 26 + DataField = 'name' + DataSource = DataSource1 + TabOrder = 0 + end + end + object FDTable1: TFDTable + IndexFieldNames = 'name' + Connection = DataModule1.FDConnection1 + UpdateOptions.UpdateTableName = 'event_name' + TableName = 'event_name' + Left = 232 + Top = 264 + end + object DataSource1: TDataSource + DataSet = FDTable1 + Left = 296 + Top = 264 + end +end diff --git "a/\352\271\200\355\230\204\354\262\240/ManageEventForm.pas" "b/\352\271\200\355\230\204\354\262\240/ManageEventForm.pas" new file mode 100644 index 0000000..7bf2bb0 --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/ManageEventForm.pas" @@ -0,0 +1,50 @@ +unit ManageEventForm; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, FireDAC.Stan.Intf, + FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, + FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, + FireDAC.Comp.DataSet, FireDAC.Comp.Client, Vcl.Grids, Vcl.DBGrids, + Vcl.DBCtrls, Vcl.ExtCtrls, Vcl.StdCtrls, Vcl.Mask; + +type + TfrmManageEvent = class(TForm) + Panel1: TPanel; + DBNavigator1: TDBNavigator; + DBGrid1: TDBGrid; + Panel2: TPanel; + FDTable1: TFDTable; + DataSource1: TDataSource; + Label1: TLabel; + DBEdit1: TDBEdit; + procedure FormActivate(Sender: TObject); + procedure FormDeactivate(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + frmManageEvent: TfrmManageEvent; + +implementation + +{$R *.dfm} + +uses DataModule; + +procedure TfrmManageEvent.FormActivate(Sender: TObject); +begin + FDTable1.Open; +end; + +procedure TfrmManageEvent.FormDeactivate(Sender: TObject); +begin + FDTable1.Close; +end; + +end. diff --git "a/\352\271\200\355\230\204\354\262\240/MyLib.pas" "b/\352\271\200\355\230\204\354\262\240/MyLib.pas" new file mode 100644 index 0000000..338d753 --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/MyLib.pas" @@ -0,0 +1,63 @@ +unit MyLib; + +interface + +function Convert3TextToDate(var Date: TDate; Year: string; Month: string; Day: string): Boolean; + +implementation + +uses SysUtils; + +{** ³â¿ùÀÏÀÇ ¼¼°³ string¿¡¼­ TDate¸¦ ±¸ÇÔ. ¿¹¿Ü󸮿ë + @param Date + @return À¯È¿ÇÑ ³¯Â¥·Î º¯È¯ÇÒ ¼ö ÀÖ´Ù¸é True ¾Æ´Ï¸é False +*} +function Convert3TextToDate(var Date: TDate; Year: string; Month: string; Day: string): Boolean; +var + iYear, iMonth, iDay: Integer; +begin + Date := 0; + + if Year <> '' then + begin + if not TryStrToInt(Year, iYear) then begin + result := False; + Exit; + end; + end else + begin + result := False; + Exit; + end; + + if Month <> '' then + begin + if not TryStrToInt(Month, iMonth) then begin + result := False; + Exit; + end; + end else + begin + result := False; + Exit; + end; + + if Day <> '' then + begin + if not TryStrToInt(Day, iDay) then begin + result := False; + Exit; + end; + end else + begin + result := False; + Exit; + end; + + Date := EncodeDate(iYear, iMonth, iDay); + result := True; +end; + + + +end. diff --git "a/\352\271\200\355\230\204\354\262\240/PartnerForm.dfm" "b/\352\271\200\355\230\204\354\262\240/PartnerForm.dfm" new file mode 100644 index 0000000..bd0e915 --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/PartnerForm.dfm" @@ -0,0 +1,214 @@ +object frmPartner: TfrmPartner + Left = 0 + Top = 0 + Caption = 'frmPartner' + ClientHeight = 546 + ClientWidth = 853 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + OnActivate = FormActivate + OnDeactivate = FormDeactivate + PixelsPerInch = 96 + TextHeight = 18 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 853 + Height = 225 + Align = alTop + TabOrder = 0 + ExplicitTop = -6 + object Label1: TLabel + Left = 33 + Top = 32 + Width = 49 + Height = 18 + Caption = #49345#54840#47749' :' + end + object Label2: TLabel + Left = 32 + Top = 64 + Width = 49 + Height = 18 + Caption = #45824#54364#51088' :' + end + object Label3: TLabel + Left = 33 + Top = 97 + Width = 49 + Height = 18 + Caption = #50672#46973#52376' :' + end + object Label4: TLabel + Left = 239 + Top = 95 + Width = 36 + Height = 18 + Caption = 'FAX :' + end + object Label5: TLabel + Left = 438 + Top = 95 + Width = 40 + Height = 18 + Caption = 'Web :' + end + object Label6: TLabel + Left = 216 + Top = 64 + Width = 62 + Height = 18 + Caption = #45812#45817#48512#49436' :' + end + object Label7: TLabel + Left = 429 + Top = 64 + Width = 49 + Height = 18 + Caption = #45812#45817#51088' :' + end + object DBNavigator1: TDBNavigator + Left = 376 + Top = 176 + Width = 240 + Height = 25 + DataSource = DataSource1 + TabOrder = 0 + end + object DBEdit1: TDBEdit + Left = 88 + Top = 24 + Width = 121 + Height = 26 + DataField = 'name' + DataSource = DataSource1 + TabOrder = 1 + end + object DBEdit2: TDBEdit + Left = 88 + Top = 56 + Width = 121 + Height = 26 + DataField = 'president' + DataSource = DataSource1 + TabOrder = 2 + end + object DBEdit3: TDBEdit + Left = 88 + Top = 88 + Width = 121 + Height = 26 + DataField = 'phone' + DataSource = DataSource1 + TabOrder = 5 + end + object DBEdit4: TDBEdit + Left = 280 + Top = 88 + Width = 121 + Height = 26 + DataField = 'fax' + DataSource = DataSource1 + TabOrder = 6 + end + object DBEdit5: TDBEdit + Left = 480 + Top = 92 + Width = 121 + Height = 26 + DataField = 'website' + DataSource = DataSource1 + TabOrder = 7 + end + object DBMemo1: TDBMemo + Left = 88 + Top = 121 + Width = 265 + Height = 89 + DataField = 'memo' + DataSource = DataSource1 + TabOrder = 8 + end + object DBEdit6: TDBEdit + Left = 280 + Top = 56 + Width = 121 + Height = 26 + DataField = 'department' + DataSource = DataSource1 + TabOrder = 3 + end + object DBEdit7: TDBEdit + Left = 480 + Top = 56 + Width = 121 + Height = 26 + DataField = 'manager' + DataSource = DataSource1 + TabOrder = 4 + end + end + object DBGrid1: TDBGrid + Left = 0 + Top = 225 + Width = 853 + Height = 321 + Align = alClient + DataSource = DataSource1 + Options = [dgEditing, dgAlwaysShowEditor, dgTitles, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] + TabOrder = 1 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -15 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + Columns = < + item + Expanded = False + FieldName = 'name' + Width = 182 + Visible = True + end + item + Expanded = False + FieldName = 'president' + Width = 187 + Visible = True + end + item + Expanded = False + FieldName = 'phone' + Width = 120 + Visible = True + end + item + Expanded = False + FieldName = 'fax' + Width = 122 + Visible = True + end + item + Expanded = False + FieldName = 'website' + Visible = True + end> + end + object FDTable1: TFDTable + IndexFieldNames = 'serial' + Connection = DataModule1.FDConnection1 + UpdateOptions.UpdateTableName = 'partner' + TableName = 'partner' + Left = 248 + Top = 320 + end + object DataSource1: TDataSource + DataSet = FDTable1 + Left = 352 + Top = 328 + end +end diff --git "a/\352\271\200\355\230\204\354\262\240/PartnerForm.pas" "b/\352\271\200\355\230\204\354\262\240/PartnerForm.pas" new file mode 100644 index 0000000..a6de2c7 --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/PartnerForm.pas" @@ -0,0 +1,62 @@ +unit PartnerForm; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, FireDAC.Stan.Intf, + FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, + FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, + Vcl.StdCtrls, Vcl.DBCtrls, Vcl.Mask, FireDAC.Comp.DataSet, + FireDAC.Comp.Client, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls; + +type + TfrmPartner = class(TForm) + Panel1: TPanel; + DBGrid1: TDBGrid; + DBNavigator1: TDBNavigator; + FDTable1: TFDTable; + DataSource1: TDataSource; + DBEdit1: TDBEdit; + DBEdit2: TDBEdit; + DBEdit3: TDBEdit; + DBEdit4: TDBEdit; + DBEdit5: TDBEdit; + DBMemo1: TDBMemo; + Label1: TLabel; + Label2: TLabel; + Label3: TLabel; + Label4: TLabel; + Label5: TLabel; + Label6: TLabel; + DBEdit6: TDBEdit; + Label7: TLabel; + DBEdit7: TDBEdit; + procedure FormActivate(Sender: TObject); + procedure FormDeactivate(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + end; + +var + frmPartner: TfrmPartner; + +implementation + +{$R *.dfm} + +uses DataModule; + +procedure TfrmPartner.FormActivate(Sender: TObject); +begin + FDTable1.Open; +end; + +procedure TfrmPartner.FormDeactivate(Sender: TObject); +begin + FDTable1.Close; +end; + +end. diff --git "a/\352\271\200\355\230\204\354\262\240/SearchForm.dfm" "b/\352\271\200\355\230\204\354\262\240/SearchForm.dfm" new file mode 100644 index 0000000..c574e01 --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/SearchForm.dfm" @@ -0,0 +1,81 @@ +object frmSearch: TfrmSearch + Left = 0 + Top = 0 + Caption = 'frmSearch' + ClientHeight = 397 + ClientWidth = 515 + Color = clBtnFace + Font.Charset = DEFAULT_CHARSET + Font.Color = clWindowText + Font.Height = -15 + Font.Name = 'Tahoma' + Font.Style = [] + OldCreateOrder = False + PixelsPerInch = 96 + TextHeight = 18 + object Panel1: TPanel + Left = 0 + Top = 0 + Width = 515 + Height = 73 + Align = alTop + TabOrder = 0 + object Label1: TLabel + Left = 16 + Top = 27 + Width = 54 + Height = 18 + Caption = #54665#49324#47749' : ' + end + object Edit1: TEdit + Left = 72 + Top = 24 + Width = 121 + Height = 26 + TabOrder = 0 + end + end + object DBGrid1: TDBGrid + Left = 0 + Top = 73 + Width = 515 + Height = 324 + Align = alClient + DataSource = DataSource1 + Options = [dgEditing, dgAlwaysShowEditor, dgIndicator, dgColumnResize, dgColLines, dgRowLines, dgTabs, dgConfirmDelete, dgCancelOnExit, dgTitleClick, dgTitleHotTrack] + TabOrder = 1 + TitleFont.Charset = DEFAULT_CHARSET + TitleFont.Color = clWindowText + TitleFont.Height = -15 + TitleFont.Name = 'Tahoma' + TitleFont.Style = [] + OnDblClick = DBGrid1DblClick + Columns = < + item + Expanded = False + FieldName = 'name' + Visible = True + end> + end + object DataSource1: TDataSource + DataSet = FDTablePartner + Left = 328 + Top = 168 + end + object FDTableEvent: TFDTable + IndexFieldNames = 'serial' + Connection = DataModule1.FDConnection1 + UpdateOptions.UpdateTableName = 'event_name' + TableName = 'event_name' + Left = 192 + Top = 168 + end + object FDTablePartner: TFDTable + IndexFieldNames = 'serial' + Connection = DataModule1.FDConnection1 + UpdateOptions.UpdateTableName = 'partner' + TableName = 'partner' + Left = 192 + Top = 232 + end +end diff --git "a/\352\271\200\355\230\204\354\262\240/SearchForm.pas" "b/\352\271\200\355\230\204\354\262\240/SearchForm.pas" new file mode 100644 index 0000000..d66c10e --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/SearchForm.pas" @@ -0,0 +1,45 @@ +unit SearchForm; + +interface + +uses + Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, + Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, FireDAC.Stan.Intf, + FireDAC.Stan.Option, FireDAC.Stan.Param, FireDAC.Stan.Error, FireDAC.DatS, + FireDAC.Phys.Intf, FireDAC.DApt.Intf, FireDAC.Stan.Async, FireDAC.DApt, + FireDAC.Comp.DataSet, FireDAC.Comp.Client, Vcl.StdCtrls, Vcl.Grids, + Vcl.DBGrids, Vcl.ExtCtrls; + +type + TfrmSearch = class(TForm) + Panel1: TPanel; + DBGrid1: TDBGrid; + Label1: TLabel; + Edit1: TEdit; + DataSource1: TDataSource; + FDTableEvent: TFDTable; + FDTablePartner: TFDTable; + procedure DBGrid1DblClick(Sender: TObject); + private + { Private declarations } + public + { Public declarations } + var SearchResult: string; + end; + +var + frmSearch: TfrmSearch; + +implementation + +{$R *.dfm} + +uses DataModule; + +procedure TfrmSearch.DBGrid1DblClick(Sender: TObject); +begin + SearchResult := DataSource1.DataSet.FieldByName('name').AsString; + ModalResult := mrOk; +end; + +end. diff --git "a/\352\271\200\355\230\204\354\262\240/TTMS.dpr" "b/\352\271\200\355\230\204\354\262\240/TTMS.dpr" index b960a8e..d8e6230 100644 --- "a/\352\271\200\355\230\204\354\262\240/TTMS.dpr" +++ "b/\352\271\200\355\230\204\354\262\240/TTMS.dpr" @@ -5,7 +5,13 @@ uses MainMenu in 'MainMenu.pas' {frmMenu}, EventManager in 'EventManager.pas' {frmEvent}, Manager in 'Manager.pas' {frmManager}, - DataModule in 'DataModule.pas' {DataModule1: TDataModule}; + DataModule in 'DataModule.pas' {DataModule1: TDataModule}, + TouristStatusForm in 'TouristStatusForm.pas' {frmTouristStatus}, + CustomerForm in 'CustomerForm.pas' {frmCustomer}, + MyLib in 'MyLib.pas', + ManageEventForm in 'ManageEventForm.pas' {frmManageEvent}, + SearchForm in 'SearchForm.pas' {frmSearch}, + PartnerForm in 'PartnerForm.pas' {frmPartner}; {$R *.res} @@ -16,5 +22,10 @@ begin Application.CreateForm(TfrmEvent, frmEvent); Application.CreateForm(TfrmManager, frmManager); Application.CreateForm(TDataModule1, DataModule1); + Application.CreateForm(TfrmTouristStatus, frmTouristStatus); + Application.CreateForm(TfrmCustomer, frmCustomer); + Application.CreateForm(TfrmManageEvent, frmManageEvent); + Application.CreateForm(TfrmSearch, frmSearch); + Application.CreateForm(TfrmPartner, frmPartner); Application.Run; end. diff --git "a/\352\271\200\355\230\204\354\262\240/TTMS.dproj" "b/\352\271\200\355\230\204\354\262\240/TTMS.dproj" index faf4266..5b6c6a4 100644 --- "a/\352\271\200\355\230\204\354\262\240/TTMS.dproj" +++ "b/\352\271\200\355\230\204\354\262\240/TTMS.dproj" @@ -18,11 +18,6 @@ Base true - - true - Base - true - true Base @@ -68,9 +63,6 @@ 1033 $(BDS)\bin\default_app.manifest - - DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;FireDAC;vcltouch;vcldb;bindcompfmx;FireDACSqliteDriver;FireDACPgDriver;inetdb;soaprtl;DbxCommonDriver;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;fmxobj;vclwinx;rtl;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) - DEBUG;$(DCC_Define) true @@ -115,6 +107,26 @@ dfm TDataModule + +
frmTouristStatus
+ dfm +
+ +
frmCustomer
+
+ + +
frmManageEvent
+ dfm +
+ +
frmSearch
+ dfm +
+ +
frmPartner
+ dfm +
Cfg_2 Base @@ -614,7 +626,6 @@ True - False 12 diff --git "a/\352\271\200\355\230\204\354\262\240/TTMS_FMX/EventForm.fmx" "b/\352\271\200\355\230\204\354\262\240/TTMS_FMX/EventForm.fmx" new file mode 100644 index 0000000..41b7973 --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/TTMS_FMX/EventForm.fmx" @@ -0,0 +1,200 @@ +object Form1: TForm1 + Left = 336 + Top = 0 + Caption = 'Form1' + ClientHeight = 600 + ClientWidth = 538 + Position = Designed + FormFactor.Width = 320 + FormFactor.Height = 480 + FormFactor.Devices = [Desktop] + Left = 336 + DesignerMasterStyle = 3 + object Panel1: TPanel + Align = Top + Size.Width = 538.000000000000000000 + Size.Height = 120.000000000000000000 + Size.PlatformDefault = False + TabOrder = 0 + end + object ListView1: TListView + ItemAppearanceClassName = 'TListItemRightDetailAppearance' + ItemEditAppearanceClassName = 'TListItemRightDetailDeleteAppearance' + HeaderAppearanceClassName = 'TListHeaderObjects' + FooterAppearanceClassName = 'TListHeaderObjects' + ItemIndex = 1 + Align = Client + Size.Width = 538.000000000000000000 + Size.Height = 480.000000000000000000 + Size.PlatformDefault = False + TabOrder = 1 + end + object FDTable1: TFDTable + Active = True + IndexFieldNames = 'serial' + Connection = FDConnection1 + UpdateOptions.UpdateTableName = 'event' + TableName = 'event' + Left = 256 + Top = 56 + object FDTable1serial: TStringField + FieldName = 'serial' + Origin = 'serial' + ProviderFlags = [pfInUpdate, pfInWhere, pfInKey] + Required = True + Size = 11 + end + object FDTable1reservation_date: TDateField + FieldName = 'reservation_date' + Origin = 'reservation_date' + Required = True + end + object FDTable1process_date: TDateField + FieldName = 'process_date' + Origin = 'process_date' + Required = True + end + object FDTable1manager_name: TStringField + FieldName = 'manager_name' + Origin = 'manager_name' + Required = True + Size = 10 + end + object FDTable1partner_name: TStringField + FieldName = 'partner_name' + Origin = 'partner_name' + Size = 40 + end + object FDTable1event_name: TStringField + FieldName = 'event_name' + Origin = 'event_name' + Required = True + Size = 40 + end + object FDTable1event_start_date: TDateField + FieldName = 'event_start_date' + Origin = 'event_start_date' + end + object FDTable1event_end_date: TDateField + FieldName = 'event_end_date' + Origin = 'event_end_date' + end + object FDTable1night: TIntegerField + FieldName = 'night' + Origin = 'night' + end + object FDTable1day: TIntegerField + FieldName = 'day' + Origin = 'day' + end + object FDTable1customer_name: TStringField + FieldName = 'customer_name' + Origin = 'customer_name' + end + object FDTable1adult_total: TIntegerField + FieldName = 'adult_total' + Origin = 'adult_total' + end + object FDTable1child_total: TIntegerField + FieldName = 'child_total' + Origin = 'child_total' + end + object FDTable1phone: TStringField + FieldName = 'phone' + Origin = 'phone' + Size = 13 + end + object FDTable1mobile: TStringField + FieldName = 'mobile' + Origin = 'mobile' + Size = 13 + end + object FDTable1start_time: TDateTimeField + FieldName = 'start_time' + Origin = 'start_time' + end + object FDTable1start_site: TStringField + FieldName = 'start_site' + Origin = 'start_site' + Size = 30 + end + object FDTable1local_start_time: TDateTimeField + FieldName = 'local_start_time' + Origin = 'local_start_time' + end + object FDTable1local_start_site: TStringField + FieldName = 'local_start_site' + Origin = 'local_start_site' + Size = 30 + end + object FDTable1hotel_name: TStringField + FieldName = 'hotel_name' + Origin = 'hotel_name' + Size = 40 + end + object FDTable1room_name: TStringField + FieldName = 'room_name' + Origin = 'room_name' + Size = 10 + end + object FDTable1room_number: TIntegerField + FieldName = 'room_number' + Origin = 'room_number' + end + object FDTable1memo: TWideMemoField + FieldName = 'memo' + Origin = 'memo' + BlobType = ftWideMemo + end + object FDTable1created_at: TSQLTimeStampField + FieldName = 'created_at' + Origin = 'created_at' + Required = True + end + object FDTable1modified_at: TSQLTimeStampField + FieldName = 'modified_at' + Origin = 'modified_at' + Required = True + end + end + object DataSource1: TDataSource + DataSet = FDTable1 + Left = 464 + Top = 56 + end + object BindSourceDB1: TBindSourceDB + DataSet = FDTable1 + ScopeMappings = <> + Left = 360 + Top = 56 + end + object BindingsList1: TBindingsList + Methods = <> + OutputConverters = <> + Left = 20 + Top = 5 + object LinkListControlToField1: TLinkListControlToField + Category = 'Quick Bindings' + DataSource = BindSourceDB1 + FieldName = 'event_name' + Control = ListView1 + FillExpressions = < + item + SourceMemberName = 'event_start_date' + ControlMemberName = 'Detail' + end> + FillHeaderExpressions = <> + FillHeaderFieldName = 'customer_name' + FillBreakGroups = <> + end + end + object FDConnection1: TFDConnection + Params.Strings = ( + 'Database=D:\DelphiProject\EduMaster201901\'#44608#54788#52384'\ttms.sdb' + 'DriverID=SQLite') + Connected = True + LoginPrompt = False + Left = 144 + Top = 56 + end +end diff --git "a/\352\271\200\355\230\204\354\262\240/TTMS_FMX/EventForm.pas" "b/\352\271\200\355\230\204\354\262\240/TTMS_FMX/EventForm.pas" new file mode 100644 index 0000000..be28c78 --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/TTMS_FMX/EventForm.pas" @@ -0,0 +1,68 @@ +unit EventForm; + +interface + +uses + System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants, + FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, + FMX.ListView.Types, FMX.ListView.Appearances, FMX.ListView.Adapters.Base, + FireDAC.Stan.Intf, FireDAC.Stan.Option, FireDAC.Stan.Param, + FireDAC.Stan.Error, FireDAC.DatS, FireDAC.Phys.Intf, FireDAC.DApt.Intf, + FireDAC.Stan.Async, FireDAC.DApt, Data.DB, FireDAC.Comp.DataSet, + FireDAC.Comp.Client, FMX.ListView, FMX.Controls.Presentation, FMX.StdCtrls, + System.Rtti, System.Bindings.Outputs, Fmx.Bind.Editors, Data.Bind.EngExt, + Fmx.Bind.DBEngExt, Data.Bind.Components, Data.Bind.DBScope, FireDAC.UI.Intf, + FireDAC.Stan.Def, FireDAC.Stan.Pool, FireDAC.Phys, FireDAC.Phys.SQLite, + FireDAC.Phys.SQLiteDef, FireDAC.Stan.ExprFuncs, FireDAC.FMXUI.Wait, FMX.Edit; + +type + TForm1 = class(TForm) + Panel1: TPanel; + ListView1: TListView; + FDTable1: TFDTable; + DataSource1: TDataSource; + BindSourceDB1: TBindSourceDB; + BindingsList1: TBindingsList; + LinkListControlToField1: TLinkListControlToField; + FDTable1serial: TStringField; + FDTable1reservation_date: TDateField; + FDTable1process_date: TDateField; + FDTable1manager_name: TStringField; + FDTable1partner_name: TStringField; + FDTable1event_name: TStringField; + FDTable1event_start_date: TDateField; + FDTable1event_end_date: TDateField; + FDTable1night: TIntegerField; + FDTable1day: TIntegerField; + FDTable1customer_name: TStringField; + FDTable1adult_total: TIntegerField; + FDTable1child_total: TIntegerField; + FDTable1phone: TStringField; + FDTable1mobile: TStringField; + FDTable1start_time: TDateTimeField; + FDTable1start_site: TStringField; + FDTable1local_start_time: TDateTimeField; + FDTable1local_start_site: TStringField; + FDTable1hotel_name: TStringField; + FDTable1room_name: TStringField; + FDTable1room_number: TIntegerField; + FDTable1memo: TWideMemoField; + FDTable1created_at: TSQLTimeStampField; + FDTable1modified_at: TSQLTimeStampField; + FDConnection1: TFDConnection; + private + { Private declarations } + public + { Public declarations } + end; + +var + Form1: TForm1; + +implementation + +{$R *.fmx} + +uses DataModule; + +end. diff --git "a/\352\271\200\355\230\204\354\262\240/TTMS_FMX/TTMS_FMX.dpr" "b/\352\271\200\355\230\204\354\262\240/TTMS_FMX/TTMS_FMX.dpr" new file mode 100644 index 0000000..91fda5a --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/TTMS_FMX/TTMS_FMX.dpr" @@ -0,0 +1,16 @@ +program TTMS_FMX; + +uses + System.StartUpCopy, + FMX.Forms, + EventForm in 'EventForm.pas' {Form1}, + DataModule in 'DataModule.pas' {DataModule1: TDataModule}; + +{$R *.res} + +begin + Application.Initialize; + Application.CreateForm(TForm1, Form1); + Application.CreateForm(TDataModule1, DataModule1); + Application.Run; +end. diff --git "a/\352\271\200\355\230\204\354\262\240/TTMS_FMX/TTMS_FMX.dproj" "b/\352\271\200\355\230\204\354\262\240/TTMS_FMX/TTMS_FMX.dproj" new file mode 100644 index 0000000..7a2ed22 --- /dev/null +++ "b/\352\271\200\355\230\204\354\262\240/TTMS_FMX/TTMS_FMX.dproj" @@ -0,0 +1,965 @@ + + + {269C2642-38EB-4ACA-B443-D0552A8720DF} + 18.5 + FMX + TTMS_FMX.dpr + True + Debug + Win32 + 1119 + Application + + + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Base + true + + + true + Cfg_1 + true + true + + + true + Cfg_1 + true + true + + + true + Base + true + + + true + Cfg_2 + true + true + + + true + Cfg_2 + true + true + + + .\$(Platform)\$(Config) + .\$(Platform)\$(Config) + false + false + false + false + false + System;Xml;Data;Datasnap;Web;Soap;$(DCC_Namespace) + true + true + true + true + true + true + true + true + $(BDS)\bin\delphi_PROJECTICON.ico + $(BDS)\bin\delphi_PROJECTICNS.icns + TTMS_FMX + + + DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;IndyIPServer;IndySystem;tethering;fmxFireDAC;FireDAC;bindcompfmx;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;xmlrtl;soapmidas;ibxbindings;rtl;DbxClientDriver;CustomIPTransport;dbexpress;IndyCore;bindcomp;dsnap;FireDACCommon;IndyIPClient;RESTBackendComponents;soapserver;dbxcds;bindengine;CloudService;dsnapxml;dbrtl;IndyProtocols;FireDACCommonDriver;inet;$(DCC_UsePackage) + package=com.embarcadero.$(MSBuildProjectName);label=$(MSBuildProjectName);versionCode=1;versionName=1.0.0;persistent=False;restoreAnyVersion=False;installLocation=auto;largeHeap=False;theme=TitleBar;hardwareAccelerated=true;apiKey= + Debug + true + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_36x36.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_48x48.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_72x72.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_96x96.png + $(BDS)\bin\Artwork\Android\FM_LauncherIcon_144x144.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_426x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_470x320.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_640x480.png + $(BDS)\bin\Artwork\Android\FM_SplashImage_960x720.png + android-support-v4.dex.jar;cloud-messaging.dex.jar;fmx.dex.jar;google-analytics-v2.dex.jar;google-play-billing.dex.jar;google-play-licensing.dex.jar;google-play-services-ads-7.0.0.dex.jar;google-play-services-analytics-7.0.0.dex.jar;google-play-services-base-7.0.0.dex.jar;google-play-services-gcm-7.0.0.dex.jar;google-play-services-identity-7.0.0.dex.jar;google-play-services-maps-7.0.0.dex.jar;google-play-services-panorama-7.0.0.dex.jar;google-play-services-plus-7.0.0.dex.jar;google-play-services-wallet-7.0.0.dex.jar + + + DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;IndyIPServer;IndySystem;tethering;fmxFireDAC;FireDAC;bindcompfmx;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;xmlrtl;soapmidas;ibxbindings;rtl;DbxClientDriver;CustomIPTransport;dbexpress;IndyCore;bindcomp;dsnap;FireDACCommon;IndyIPClient;RESTBackendComponents;soapserver;dbxcds;bindengine;CloudService;dsnapxml;dbrtl;IndyProtocols;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) + CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri + iPhoneAndiPad + true + Debug + $(MSBuildProjectName) + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_320x480.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x960.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1125x2436.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2436x1125.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1004.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x748.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png + + + DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;IndyIPServer;IndySystem;tethering;fmxFireDAC;FireDAC;bindcompfmx;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;xmlrtl;soapmidas;ibxbindings;rtl;DbxClientDriver;CustomIPTransport;dbexpress;IndyCore;bindcomp;dsnap;FireDACCommon;IndyIPClient;RESTBackendComponents;soapserver;dbxcds;bindengine;CloudService;dsnapxml;dbrtl;IndyProtocols;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) + CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri + iPhoneAndiPad + true + Debug + $(MSBuildProjectName) + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_320x480.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x960.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1125x2436.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2436x1125.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1004.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x748.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png + + + DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;IndyIPServer;IndySystem;tethering;fmxFireDAC;FireDAC;bindcompfmx;FireDACSqliteDriver;ibmonitor;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;xmlrtl;soapmidas;ibxbindings;rtl;DbxClientDriver;CustomIPTransport;dbexpress;IndyCore;bindcomp;dsnap;FireDACCommon;IndyIPClient;RESTBackendComponents;soapserver;dbxcds;bindengine;CloudService;dsnapxml;dbrtl;IndyProtocols;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) + CFBundleName=$(MSBuildProjectName);CFBundleDevelopmentRegion=en;CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleInfoDictionaryVersion=7.1;CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;LSRequiresIPhoneOS=true;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);UIDeviceFamily=iPhone & iPad;CFBundleResourceSpecification=ResourceRules.plist;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;FMLocalNotificationPermission=false;UIBackgroundModes=;NSContactsUsageDescription=The reason for accessing the contacts;NSPhotoLibraryUsageDescription=The reason for accessing the photo library;NSPhotoLibraryAddUsageDescription=The reason for adding to the photo library;NSCameraUsageDescription=The reason for accessing the camera;NSFaceIDUsageDescription=The reason for accessing the face id;NSMicrophoneUsageDescription=The reason for accessing the microphone;NSSiriUsageDescription=The reason for accessing Siri + iPhoneAndiPad + true + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_57x57.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_60x60.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_87x87.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_114x114.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_120x120.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_ApplicationIcon_180x180.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_320x480.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x960.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_640x1136.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_750x1334.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1242x2208.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2208x1242.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_1125x2436.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_LaunchImage_2436x1125.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_29x29.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_58x58.png + $(BDS)\bin\Artwork\iOS\iPhone\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_72x72.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_76x76.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_144x144.png + $(BDS)\bin\Artwork\iOS\iPad\FM_ApplicationIcon_152x152.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1004.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_768x1024.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x748.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_1024x768.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2008.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImagePortrait_1536x2048.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1496.png + $(BDS)\bin\Artwork\iOS\iPad\FM_LaunchImageLandscape_2048x1536.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_40x40.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_50x50.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_80x80.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SpotlightSearchIcon_100x100.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_29x29.png + $(BDS)\bin\Artwork\iOS\iPad\FM_SettingIcon_58x58.png + + + DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;IndyIPServer;IndySystem;tethering;fmxFireDAC;FireDAC;bindcompfmx;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;inetdb;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;ibxbindings;fmxobj;rtl;DbxClientDriver;CustomIPTransport;dbexpress;IndyCore;bindcomp;dsnap;FireDACCommon;IndyIPClient;RESTBackendComponents;soapserver;dbxcds;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) + CFBundleName=$(MSBuildProjectName);CFBundleDisplayName=$(MSBuildProjectName);CFBundleIdentifier=$(MSBuildProjectName);CFBundleVersion=1.0.0;CFBundleShortVersionString=1.0.0;CFBundlePackageType=APPL;CFBundleSignature=????;CFBundleAllowMixedLocalizations=YES;CFBundleExecutable=$(MSBuildProjectName);NSHighResolutionCapable=true;LSApplicationCategoryType=public.app-category.utilities;NSLocationAlwaysUsageDescription=The reason for accessing the location information of the user;NSLocationWhenInUseUsageDescription=The reason for accessing the location information of the user;NSLocationAlwaysAndWhenInUseUsageDescription=The reason for accessing the location information of the user;NSContactsUsageDescription=The reason for accessing the contacts + Debug + true + + + DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;svnui;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;TeeDB;FireDAC;vcltouch;vcldb;bindcompfmx;svn;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;inetdb;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;ibxbindings;fmxobj;vclwinx;vclib;rtl;Tee;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;TeeUI;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;Bde;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + DBXSqliteDriver;IndyIPCommon;RESTComponents;bindcompdbx;DBXInterBaseDriver;vcl;IndyIPServer;vclactnband;vclFireDAC;IndySystem;tethering;dsnapcon;FireDACADSDriver;FireDACMSAccDriver;fmxFireDAC;vclimg;TeeDB;FireDAC;vcltouch;vcldb;bindcompfmx;FireDACSqliteDriver;FireDACPgDriver;ibmonitor;inetdb;FMXTee;soaprtl;DbxCommonDriver;FmxTeeUI;ibxpress;fmx;FireDACIBDriver;fmxdae;xmlrtl;soapmidas;ibxbindings;fmxobj;vclwinx;vclib;rtl;Tee;DbxClientDriver;CustomIPTransport;vcldsnap;dbexpress;IndyCore;vclx;bindcomp;appanalytics;dsnap;FireDACCommon;IndyIPClient;bindcompvcl;RESTBackendComponents;TeeUI;VCLRESTComponents;soapserver;dbxcds;VclSmp;adortl;vclie;bindengine;DBXMySQLDriver;CloudService;dsnapxml;FireDACMySQLDriver;dbrtl;IndyProtocols;inetdbxpress;FireDACCommonODBC;FireDACCommonDriver;inet;fmxase;$(DCC_UsePackage) + Winapi;System.Win;Data.Win;Datasnap.Win;Web.Win;Soap.Win;Xml.Win;$(DCC_Namespace) + Debug + true + CompanyName=;FileDescription=$(MSBuildProjectName);FileVersion=1.0.0.0;InternalName=;LegalCopyright=;LegalTrademarks=;OriginalFilename=;ProgramID=com.embarcadero.$(MSBuildProjectName);ProductName=$(MSBuildProjectName);ProductVersion=1.0.0.0;Comments= + 1033 + $(BDS)\bin\default_app.manifest + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_44.png + $(BDS)\bin\Artwork\Windows\UWP\delphi_UwpDefault_150.png + + + DEBUG;$(DCC_Define) + true + false + true + true + true + + + false + true + PerMonitorV2 + + + true + PerMonitorV2 + + + false + RELEASE;$(DCC_Define) + 0 + 0 + + + true + PerMonitorV2 + + + true + PerMonitorV2 + + + + MainSource + + +
Form1
+ fmx +
+ +
DataModule1
+ dfm + TDataModule +
+ + Cfg_2 + Base + + + Base + + + Cfg_1 + Base + +
+ + Delphi.Personality.12 + Application + + + + TTMS_FMX.dpr + + + + + + ic_launcher.png + true + + + + + true + + + + + libTTMS_FMX.so + true + + + + + ic_launcher.png + true + + + + + true + + + + + true + + + + + true + + + + + TTMS_FMX.exe + true + + + + + libTTMS_FMX.so + true + + + + + ic_launcher.png + true + + + + + splash_image.png + true + + + + + true + + + + + ic_launcher.png + true + + + + + splash_image.png + true + + + + + splash_image.png + true + + + + + splash_image.png + true + + + + + ic_launcher.png + true + + + + + true + + + + + libTTMS_FMX.so + true + + + + + true + + + + + styles.xml + true + + + + + true + + + + + true + + + + + classes.dex + true + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + classes + 1 + + + + + res\xml + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + library\lib\armeabi + 1 + + + + + library\lib\mips + 1 + + + + + library\lib\armeabi-v7a + 1 + + + + + res\drawable + 1 + + + + + res\values + 1 + + + + + res\values-v21 + 1 + + + + + res\drawable + 1 + + + + + res\drawable-xxhdpi + 1 + + + + + res\drawable-ldpi + 1 + + + + + res\drawable-mdpi + 1 + + + + + res\drawable-hdpi + 1 + + + + + res\drawable-xhdpi + 1 + + + + + res\drawable-small + 1 + + + + + res\drawable-normal + 1 + + + + + res\drawable-large + 1 + + + + + res\drawable-xlarge + 1 + + + + + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + Contents\MacOS + 1 + .framework + + + Contents\MacOS + 1 + .framework + + + 0 + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .dll;.bpl + + + + + 1 + .dylib + + + 1 + .dylib + + + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + Contents\MacOS + 1 + .dylib + + + 0 + .bpl + + + + + 0 + + + 0 + + + 0 + + + 0 + + + Contents\Resources\StartUp\ + 0 + + + Contents\Resources\StartUp\ + 0 + + + 0 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + 1 + + + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + 1 + + + 1 + + + 1 + + + + + 1 + + + 1 + + + 1 + + + + + ..\$(PROJECTNAME).app.dSYM\Contents\Resources\DWARF + 1 + + + + + ..\ + 1 + + + ..\ + 1 + + + + + Contents + 1 + + + Contents + 1 + + + + + Contents\Resources + 1 + + + Contents\Resources + 1 + + + + + library\lib\armeabi-v7a + 1 + + + 1 + + + 1 + + + 1 + + + 1 + + + Contents\MacOS + 1 + + + Contents\MacOS + 1 + + + 0 + + + + + 1 + + + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + Assets + 1 + + + Assets + 1 + + + + + + + + + + + + + + True + True + True + True + True + True + True + + + 12 + + + + +
diff --git "a/\352\271\200\355\230\204\354\262\240/ttms.sdb" "b/\352\271\200\355\230\204\354\262\240/ttms.sdb" index 356d0c3..2ee3807 100644 Binary files "a/\352\271\200\355\230\204\354\262\240/ttms.sdb" and "b/\352\271\200\355\230\204\354\262\240/ttms.sdb" differ