diff --git a/Million Hunter/HunterSubForm/ResultViewerForm.Designer.cs b/Million Hunter/HunterSubForm/ResultViewerForm.Designer.cs index 6057eb4..adbc33d 100644 --- a/Million Hunter/HunterSubForm/ResultViewerForm.Designer.cs +++ b/Million Hunter/HunterSubForm/ResultViewerForm.Designer.cs @@ -30,37 +30,390 @@ namespace Million_Hunter.HunterSubForm private void InitializeComponent() { this.panelControl_IndicatorCondition = new DevExpress.XtraEditors.PanelControl(); + this.groupBox_ = new System.Windows.Forms.GroupBox(); + this.groupBox9 = new System.Windows.Forms.GroupBox(); + this.textEdit_SellRegularExpression = new DevExpress.XtraEditors.TextEdit(); + this.groupBox8 = new System.Windows.Forms.GroupBox(); + this.textEdit_BuyRegularExpression = new DevExpress.XtraEditors.TextEdit(); + this.textEdit_SavedDateTime = new DevExpress.XtraEditors.TextEdit(); + this.textEdit_EndDateTime = new DevExpress.XtraEditors.TextEdit(); + this.textEdit_StartDateTime = new DevExpress.XtraEditors.TextEdit(); + this.splitContainer_SetupPanel = new System.Windows.Forms.SplitContainer(); + this.groupBox3 = new System.Windows.Forms.GroupBox(); + this.treeList_BuySetupList = new DevExpress.XtraTreeList.TreeList(); + this.treeListColumn_IndexString = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn_IndicatorType = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn_Description = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.groupBox4 = new System.Windows.Forms.GroupBox(); + this.treeList_SellSetupList = new DevExpress.XtraTreeList.TreeList(); + this.treeListColumn1 = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn2 = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn3 = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.labelControl5 = new DevExpress.XtraEditors.LabelControl(); + this.labelControl4 = new DevExpress.XtraEditors.LabelControl(); + this.labelControl3 = new DevExpress.XtraEditors.LabelControl(); this.treeList_ResultData = new DevExpress.XtraTreeList.TreeList(); + this.treeListColumn4 = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn5 = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn6 = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn7 = new DevExpress.XtraTreeList.Columns.TreeListColumn(); + this.treeListColumn8 = new DevExpress.XtraTreeList.Columns.TreeListColumn(); ((System.ComponentModel.ISupportInitialize)(this.panelControl_IndicatorCondition)).BeginInit(); + this.panelControl_IndicatorCondition.SuspendLayout(); + this.groupBox_.SuspendLayout(); + this.groupBox9.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.textEdit_SellRegularExpression.Properties)).BeginInit(); + this.groupBox8.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.textEdit_BuyRegularExpression.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.textEdit_SavedDateTime.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.textEdit_EndDateTime.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.textEdit_StartDateTime.Properties)).BeginInit(); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer_SetupPanel)).BeginInit(); + this.splitContainer_SetupPanel.Panel1.SuspendLayout(); + this.splitContainer_SetupPanel.Panel2.SuspendLayout(); + this.splitContainer_SetupPanel.SuspendLayout(); + this.groupBox3.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.treeList_BuySetupList)).BeginInit(); + this.groupBox4.SuspendLayout(); + ((System.ComponentModel.ISupportInitialize)(this.treeList_SellSetupList)).BeginInit(); ((System.ComponentModel.ISupportInitialize)(this.treeList_ResultData)).BeginInit(); this.SuspendLayout(); // // panelControl_IndicatorCondition // + this.panelControl_IndicatorCondition.Controls.Add(this.groupBox_); this.panelControl_IndicatorCondition.Dock = System.Windows.Forms.DockStyle.Top; this.panelControl_IndicatorCondition.Location = new System.Drawing.Point(0, 0); this.panelControl_IndicatorCondition.Name = "panelControl_IndicatorCondition"; - this.panelControl_IndicatorCondition.Size = new System.Drawing.Size(1271, 120); + this.panelControl_IndicatorCondition.Size = new System.Drawing.Size(1275, 231); this.panelControl_IndicatorCondition.TabIndex = 3; // + // groupBox_ + // + this.groupBox_.Controls.Add(this.groupBox9); + this.groupBox_.Controls.Add(this.groupBox8); + this.groupBox_.Controls.Add(this.textEdit_SavedDateTime); + this.groupBox_.Controls.Add(this.textEdit_EndDateTime); + this.groupBox_.Controls.Add(this.textEdit_StartDateTime); + this.groupBox_.Controls.Add(this.splitContainer_SetupPanel); + this.groupBox_.Controls.Add(this.labelControl5); + this.groupBox_.Controls.Add(this.labelControl4); + this.groupBox_.Controls.Add(this.labelControl3); + this.groupBox_.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox_.Location = new System.Drawing.Point(2, 2); + this.groupBox_.Name = "groupBox_"; + this.groupBox_.Size = new System.Drawing.Size(1271, 227); + this.groupBox_.TabIndex = 1; + this.groupBox_.TabStop = false; + this.groupBox_.Text = "메뉴"; + // + // groupBox9 + // + this.groupBox9.Controls.Add(this.textEdit_SellRegularExpression); + this.groupBox9.Location = new System.Drawing.Point(6, 168); + this.groupBox9.Name = "groupBox9"; + this.groupBox9.Size = new System.Drawing.Size(661, 45); + this.groupBox9.TabIndex = 8; + this.groupBox9.TabStop = false; + this.groupBox9.Text = "판매 조건 조합"; + // + // textEdit_SellRegularExpression + // + this.textEdit_SellRegularExpression.Dock = System.Windows.Forms.DockStyle.Fill; + this.textEdit_SellRegularExpression.Location = new System.Drawing.Point(3, 18); + this.textEdit_SellRegularExpression.Name = "textEdit_SellRegularExpression"; + this.textEdit_SellRegularExpression.Size = new System.Drawing.Size(655, 20); + this.textEdit_SellRegularExpression.TabIndex = 0; + // + // groupBox8 + // + this.groupBox8.Controls.Add(this.textEdit_BuyRegularExpression); + this.groupBox8.Location = new System.Drawing.Point(673, 169); + this.groupBox8.Name = "groupBox8"; + this.groupBox8.Size = new System.Drawing.Size(589, 45); + this.groupBox8.TabIndex = 9; + this.groupBox8.TabStop = false; + this.groupBox8.Text = "구매 조건 조합"; + // + // textEdit_BuyRegularExpression + // + this.textEdit_BuyRegularExpression.Dock = System.Windows.Forms.DockStyle.Fill; + this.textEdit_BuyRegularExpression.Location = new System.Drawing.Point(3, 18); + this.textEdit_BuyRegularExpression.Name = "textEdit_BuyRegularExpression"; + this.textEdit_BuyRegularExpression.Size = new System.Drawing.Size(583, 20); + this.textEdit_BuyRegularExpression.TabIndex = 0; + // + // textEdit_SavedDateTime + // + this.textEdit_SavedDateTime.Location = new System.Drawing.Point(650, 16); + this.textEdit_SavedDateTime.Name = "textEdit_SavedDateTime"; + this.textEdit_SavedDateTime.Properties.EditFormat.FormatString = "u"; + this.textEdit_SavedDateTime.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + this.textEdit_SavedDateTime.Properties.Mask.EditMask = "u"; + this.textEdit_SavedDateTime.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTime; + this.textEdit_SavedDateTime.Properties.ReadOnly = true; + this.textEdit_SavedDateTime.Size = new System.Drawing.Size(193, 20); + this.textEdit_SavedDateTime.TabIndex = 7; + // + // textEdit_EndDateTime + // + this.textEdit_EndDateTime.Location = new System.Drawing.Point(356, 16); + this.textEdit_EndDateTime.Name = "textEdit_EndDateTime"; + this.textEdit_EndDateTime.Properties.EditFormat.FormatString = "u"; + this.textEdit_EndDateTime.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + this.textEdit_EndDateTime.Properties.Mask.EditMask = "u"; + this.textEdit_EndDateTime.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTime; + this.textEdit_EndDateTime.Properties.ReadOnly = true; + this.textEdit_EndDateTime.Size = new System.Drawing.Size(193, 20); + this.textEdit_EndDateTime.TabIndex = 7; + // + // textEdit_StartDateTime + // + this.textEdit_StartDateTime.Location = new System.Drawing.Point(74, 16); + this.textEdit_StartDateTime.Name = "textEdit_StartDateTime"; + this.textEdit_StartDateTime.Properties.EditFormat.FormatString = "u"; + this.textEdit_StartDateTime.Properties.EditFormat.FormatType = DevExpress.Utils.FormatType.DateTime; + this.textEdit_StartDateTime.Properties.Mask.EditMask = "u"; + this.textEdit_StartDateTime.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.DateTime; + this.textEdit_StartDateTime.Properties.ReadOnly = true; + this.textEdit_StartDateTime.Size = new System.Drawing.Size(193, 20); + this.textEdit_StartDateTime.TabIndex = 7; + // + // splitContainer_SetupPanel + // + this.splitContainer_SetupPanel.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) + | System.Windows.Forms.AnchorStyles.Right))); + this.splitContainer_SetupPanel.Location = new System.Drawing.Point(6, 39); + this.splitContainer_SetupPanel.Name = "splitContainer_SetupPanel"; + // + // splitContainer_SetupPanel.Panel1 + // + this.splitContainer_SetupPanel.Panel1.Controls.Add(this.groupBox3); + // + // splitContainer_SetupPanel.Panel2 + // + this.splitContainer_SetupPanel.Panel2.Controls.Add(this.groupBox4); + this.splitContainer_SetupPanel.Size = new System.Drawing.Size(1259, 131); + this.splitContainer_SetupPanel.SplitterDistance = 662; + this.splitContainer_SetupPanel.TabIndex = 2; + // + // groupBox3 + // + this.groupBox3.Controls.Add(this.treeList_BuySetupList); + this.groupBox3.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox3.Location = new System.Drawing.Point(0, 0); + this.groupBox3.Name = "groupBox3"; + this.groupBox3.Size = new System.Drawing.Size(662, 131); + this.groupBox3.TabIndex = 0; + this.groupBox3.TabStop = false; + this.groupBox3.Text = "구매 조건 조합"; + // + // treeList_BuySetupList + // + this.treeList_BuySetupList.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { + this.treeListColumn_IndexString, + this.treeListColumn_IndicatorType, + this.treeListColumn_Description}); + this.treeList_BuySetupList.Cursor = System.Windows.Forms.Cursors.Default; + this.treeList_BuySetupList.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeList_BuySetupList.Location = new System.Drawing.Point(3, 18); + this.treeList_BuySetupList.Name = "treeList_BuySetupList"; + this.treeList_BuySetupList.OptionsBehavior.Editable = false; + this.treeList_BuySetupList.OptionsView.ShowIndicator = false; + this.treeList_BuySetupList.OptionsView.ShowRoot = false; + this.treeList_BuySetupList.Size = new System.Drawing.Size(656, 110); + this.treeList_BuySetupList.TabIndex = 1; + // + // treeListColumn_IndexString + // + this.treeListColumn_IndexString.Caption = "번호"; + this.treeListColumn_IndexString.FieldName = "IndexString"; + this.treeListColumn_IndexString.Name = "treeListColumn_IndexString"; + this.treeListColumn_IndexString.Visible = true; + this.treeListColumn_IndexString.VisibleIndex = 0; + this.treeListColumn_IndexString.Width = 45; + // + // treeListColumn_IndicatorType + // + this.treeListColumn_IndicatorType.Caption = "지표"; + this.treeListColumn_IndicatorType.FieldName = "IndicatorType"; + this.treeListColumn_IndicatorType.Name = "treeListColumn_IndicatorType"; + this.treeListColumn_IndicatorType.UnboundType = DevExpress.XtraTreeList.Data.UnboundColumnType.Object; + this.treeListColumn_IndicatorType.Visible = true; + this.treeListColumn_IndicatorType.VisibleIndex = 1; + this.treeListColumn_IndicatorType.Width = 41; + // + // treeListColumn_Description + // + this.treeListColumn_Description.Caption = "내용"; + this.treeListColumn_Description.FieldName = "Description"; + this.treeListColumn_Description.Name = "treeListColumn_Description"; + this.treeListColumn_Description.Visible = true; + this.treeListColumn_Description.VisibleIndex = 2; + this.treeListColumn_Description.Width = 395; + // + // groupBox4 + // + this.groupBox4.Controls.Add(this.treeList_SellSetupList); + this.groupBox4.Dock = System.Windows.Forms.DockStyle.Fill; + this.groupBox4.Location = new System.Drawing.Point(0, 0); + this.groupBox4.Name = "groupBox4"; + this.groupBox4.Size = new System.Drawing.Size(593, 131); + this.groupBox4.TabIndex = 0; + this.groupBox4.TabStop = false; + this.groupBox4.Text = "판매 조건 조합"; + // + // treeList_SellSetupList + // + this.treeList_SellSetupList.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { + this.treeListColumn1, + this.treeListColumn2, + this.treeListColumn3}); + this.treeList_SellSetupList.Cursor = System.Windows.Forms.Cursors.Default; + this.treeList_SellSetupList.Dock = System.Windows.Forms.DockStyle.Fill; + this.treeList_SellSetupList.Location = new System.Drawing.Point(3, 18); + this.treeList_SellSetupList.Name = "treeList_SellSetupList"; + this.treeList_SellSetupList.OptionsBehavior.Editable = false; + this.treeList_SellSetupList.OptionsView.ShowIndicator = false; + this.treeList_SellSetupList.OptionsView.ShowRoot = false; + this.treeList_SellSetupList.Size = new System.Drawing.Size(587, 110); + this.treeList_SellSetupList.TabIndex = 2; + // + // treeListColumn1 + // + this.treeListColumn1.Caption = "번호"; + this.treeListColumn1.FieldName = "IndexString"; + this.treeListColumn1.Name = "treeListColumn1"; + this.treeListColumn1.Visible = true; + this.treeListColumn1.VisibleIndex = 0; + this.treeListColumn1.Width = 41; + // + // treeListColumn2 + // + this.treeListColumn2.Caption = "지표"; + this.treeListColumn2.FieldName = "IndicatorType"; + this.treeListColumn2.Name = "treeListColumn2"; + this.treeListColumn2.UnboundType = DevExpress.XtraTreeList.Data.UnboundColumnType.Object; + this.treeListColumn2.Visible = true; + this.treeListColumn2.VisibleIndex = 1; + this.treeListColumn2.Width = 41; + // + // treeListColumn3 + // + this.treeListColumn3.Caption = "내용"; + this.treeListColumn3.FieldName = "Description"; + this.treeListColumn3.Name = "treeListColumn3"; + this.treeListColumn3.Visible = true; + this.treeListColumn3.VisibleIndex = 2; + this.treeListColumn3.Width = 341; + // + // labelControl5 + // + this.labelControl5.Location = new System.Drawing.Point(592, 19); + this.labelControl5.Name = "labelControl5"; + this.labelControl5.Size = new System.Drawing.Size(52, 14); + this.labelControl5.TabIndex = 1; + this.labelControl5.Text = "저장시간 : "; + // + // labelControl4 + // + this.labelControl4.Location = new System.Drawing.Point(298, 19); + this.labelControl4.Name = "labelControl4"; + this.labelControl4.Size = new System.Drawing.Size(52, 14); + this.labelControl4.TabIndex = 1; + this.labelControl4.Text = "종료시간 : "; + // + // labelControl3 + // + this.labelControl3.Location = new System.Drawing.Point(16, 19); + this.labelControl3.Name = "labelControl3"; + this.labelControl3.Size = new System.Drawing.Size(52, 14); + this.labelControl3.TabIndex = 1; + this.labelControl3.Text = "시작시간 : "; + // // treeList_ResultData // + this.treeList_ResultData.Columns.AddRange(new DevExpress.XtraTreeList.Columns.TreeListColumn[] { + this.treeListColumn4, + this.treeListColumn5, + this.treeListColumn6, + this.treeListColumn7, + this.treeListColumn8}); this.treeList_ResultData.Dock = System.Windows.Forms.DockStyle.Fill; - this.treeList_ResultData.Location = new System.Drawing.Point(0, 120); + this.treeList_ResultData.Location = new System.Drawing.Point(0, 231); this.treeList_ResultData.Name = "treeList_ResultData"; - this.treeList_ResultData.Size = new System.Drawing.Size(1271, 681); + this.treeList_ResultData.OptionsView.CheckBoxStyle = DevExpress.XtraTreeList.DefaultNodeCheckBoxStyle.Check; + this.treeList_ResultData.Size = new System.Drawing.Size(1275, 670); this.treeList_ResultData.TabIndex = 4; // + // treeListColumn4 + // + this.treeListColumn4.Caption = "treeListColumn4"; + this.treeListColumn4.FieldName = "Key"; + this.treeListColumn4.Name = "treeListColumn4"; + this.treeListColumn4.Visible = true; + this.treeListColumn4.VisibleIndex = 0; + // + // treeListColumn5 + // + this.treeListColumn5.Caption = "treeListColumn5"; + this.treeListColumn5.FieldName = "treeListColumn5"; + this.treeListColumn5.Name = "treeListColumn5"; + this.treeListColumn5.Visible = true; + this.treeListColumn5.VisibleIndex = 1; + // + // treeListColumn6 + // + this.treeListColumn6.Caption = "treeListColumn6"; + this.treeListColumn6.FieldName = "treeListColumn6"; + this.treeListColumn6.Name = "treeListColumn6"; + this.treeListColumn6.Visible = true; + this.treeListColumn6.VisibleIndex = 2; + // + // treeListColumn7 + // + this.treeListColumn7.Caption = "treeListColumn7"; + this.treeListColumn7.FieldName = "treeListColumn7"; + this.treeListColumn7.Name = "treeListColumn7"; + this.treeListColumn7.Visible = true; + this.treeListColumn7.VisibleIndex = 3; + // + // treeListColumn8 + // + this.treeListColumn8.Caption = "treeListColumn8"; + this.treeListColumn8.FieldName = "treeListColumn8"; + this.treeListColumn8.Name = "treeListColumn8"; + this.treeListColumn8.Visible = true; + this.treeListColumn8.VisibleIndex = 4; + // // ResultViewerForm // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 14F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1271, 801); + this.ClientSize = new System.Drawing.Size(1275, 901); this.Controls.Add(this.treeList_ResultData); this.Controls.Add(this.panelControl_IndicatorCondition); this.Name = "ResultViewerForm"; this.Text = "결과 뷰"; ((System.ComponentModel.ISupportInitialize)(this.panelControl_IndicatorCondition)).EndInit(); + this.panelControl_IndicatorCondition.ResumeLayout(false); + this.groupBox_.ResumeLayout(false); + this.groupBox_.PerformLayout(); + this.groupBox9.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.textEdit_SellRegularExpression.Properties)).EndInit(); + this.groupBox8.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.textEdit_BuyRegularExpression.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.textEdit_SavedDateTime.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.textEdit_EndDateTime.Properties)).EndInit(); + ((System.ComponentModel.ISupportInitialize)(this.textEdit_StartDateTime.Properties)).EndInit(); + this.splitContainer_SetupPanel.Panel1.ResumeLayout(false); + this.splitContainer_SetupPanel.Panel2.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.splitContainer_SetupPanel)).EndInit(); + this.splitContainer_SetupPanel.ResumeLayout(false); + this.groupBox3.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.treeList_BuySetupList)).EndInit(); + this.groupBox4.ResumeLayout(false); + ((System.ComponentModel.ISupportInitialize)(this.treeList_SellSetupList)).EndInit(); ((System.ComponentModel.ISupportInitialize)(this.treeList_ResultData)).EndInit(); this.ResumeLayout(false); @@ -70,5 +423,32 @@ namespace Million_Hunter.HunterSubForm private DevExpress.XtraEditors.PanelControl panelControl_IndicatorCondition; private DevExpress.XtraTreeList.TreeList treeList_ResultData; + private System.Windows.Forms.GroupBox groupBox_; + private DevExpress.XtraEditors.TextEdit textEdit_SavedDateTime; + private DevExpress.XtraEditors.TextEdit textEdit_EndDateTime; + private DevExpress.XtraEditors.TextEdit textEdit_StartDateTime; + private System.Windows.Forms.SplitContainer splitContainer_SetupPanel; + private System.Windows.Forms.GroupBox groupBox3; + private DevExpress.XtraTreeList.TreeList treeList_BuySetupList; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_IndexString; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_IndicatorType; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn_Description; + private System.Windows.Forms.GroupBox groupBox4; + private DevExpress.XtraTreeList.TreeList treeList_SellSetupList; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn1; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn2; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn3; + private DevExpress.XtraEditors.LabelControl labelControl5; + private DevExpress.XtraEditors.LabelControl labelControl4; + private DevExpress.XtraEditors.LabelControl labelControl3; + private System.Windows.Forms.GroupBox groupBox9; + private DevExpress.XtraEditors.TextEdit textEdit_SellRegularExpression; + private System.Windows.Forms.GroupBox groupBox8; + private DevExpress.XtraEditors.TextEdit textEdit_BuyRegularExpression; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn4; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn5; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn6; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn7; + private DevExpress.XtraTreeList.Columns.TreeListColumn treeListColumn8; } } \ No newline at end of file diff --git a/Million Hunter/HunterSubForm/ResultViewerForm.cs b/Million Hunter/HunterSubForm/ResultViewerForm.cs index 66e556f..2d4e3ee 100644 --- a/Million Hunter/HunterSubForm/ResultViewerForm.cs +++ b/Million Hunter/HunterSubForm/ResultViewerForm.cs @@ -9,6 +9,8 @@ using System.Text; using System.Threading.Tasks; using System.Windows.Forms; using Million.SaveData; +using Million.FileDBManagement; +using Million.Data; namespace Million_Hunter.HunterSubForm { @@ -29,6 +31,89 @@ namespace Million_Hunter.HunterSubForm private void InitForm() { // 1. 결과 데이터 TreeList에 표기 + // 시간 데이터 추가 + //_savedResultData.SearchResultList.ToLookup() + textEdit_StartDateTime.Text = _savedResultData.StartDateTime.Date.ToString(); + textEdit_EndDateTime.Text = _savedResultData.EndDateTime.Date.ToString(); + textEdit_SavedDateTime.Text = _savedResultData.SavedDateTime.Date.ToString(); + textEdit_BuyRegularExpression.Text = _savedResultData.BuyRegularExpression; + textEdit_SellRegularExpression.Text = _savedResultData.SellRegularExpression; + + // Buy/Sell 리스트에 데이터 추가 + treeList_BuySetupList.DataSource = _savedResultData.BuySetupList; + treeList_SellSetupList.DataSource = _savedResultData.SellSetupList; + treeList_BuySetupList.RefreshDataSource(); + treeList_SellSetupList.RefreshDataSource(); + + // 데이터 가공하기 + Dictionary wrapperList = new Dictionary(); + // CodeFullName으로 리스트 분리하기 + var list = _savedResultData.SearchResultList.ToLookup(item => item.BuyList.ConGoodsData.CodeFullName); + var oderbyList = list.OrderBy(item => item.Key); + + // Parent Node + foreach(var groupItem in oderbyList) + { + var firstChildNode = groupItem.First(); + var parentNode = treeList_ResultData.Nodes.Add(groupItem.Key, firstChildNode); + + // Child Node + foreach (var item in groupItem) + { + parentNode.Nodes.Add(item.BuyList.ConGoodsData.CodeFullName); + } + } + + //FileManager.SaveToBinaryFile(treeList_ResultData.Nodes, null, _savedResultData.SavedResultAnalysisDataPath); + + //var loadedData = FileManager.LoadFormBinaryFile(_savedResultData.SavedResultAnalysisDataPath); + + + } + + [Serializable] + public class AnalysisData + { + // 결과에 포함 및 제외 조건 + bool inclusion { get; set; } = true; + + // 거래소 + string ExchangePlace { get; set; } + + // 종목 코드 + string CodeFullName { get; set; } + // 종목 이름 + string KorName { get; set; } + + // 기간 내 총 구매 횟수 + int BuyCountForTime { get; set; } + + // 기간 내 구매 회수 변경 설정 + int SetBuyCountForTime { get; set; } + + // 구매 시간 + DateTime StartDate { get; set; } + + // 구매 가격 + double BuyValue { get; set; } + + // 판매 시간 + DateTime EndDate { get; set; } + + // 판매 가격 + double SellValue { get; set; } + + // 기타 기입 내용 + string Description { get; set; } + + // 승률 + double EarningRate { get; set; } + + // 수익률 + double WinCount { get; set; } + + // 원본 데이터 참조 + SearchResult OriginalSearchResult { get; set; } } } -} \ No newline at end of file +} \ No newline at end of file diff --git a/Million Hunter/HunterSubForm/SavedResultViewerForm.cs b/Million Hunter/HunterSubForm/SavedResultViewerForm.cs index 71e5a67..df17cd2 100644 --- a/Million Hunter/HunterSubForm/SavedResultViewerForm.cs +++ b/Million Hunter/HunterSubForm/SavedResultViewerForm.cs @@ -49,8 +49,18 @@ namespace Million_Hunter.HunterSubForm } // 결과 데이터 정보 가져오기 - foreach (var filePath in Directory.GetFiles(CommonProperty.SaveProgramDirecotryPath).ToList().FindAll(item => item.Contains(CommonProperty.InfoExtend))) - savedResultDatas.Add(FileManager.LoadResultDataInfoFromFile(filePath)); + foreach (var filePath in Directory.GetFiles(CommonProperty.SaveProgramDirecotryPath).ToList() + .FindAll(item => item.Contains(CommonProperty.InfoExtend))) + { + var savedResult = FileManager.LoadResultDataInfoFromFile(filePath); + savedResult.SavedInfoDataPath = filePath; + savedResult.SavedResultDataPath = + filePath.Replace(CommonProperty.InfoExtend, CommonProperty.DataExtend); + savedResult.SavedResultAnalysisDataPath = + filePath.Replace(CommonProperty.InfoExtend, CommonProperty.AnalysisExtend); + savedResultDatas.Add(savedResult); + } + // 트리 리스트에 추가 treeList_SavedResultData.DataSource = savedResultDatas; @@ -105,14 +115,22 @@ namespace Million_Hunter.HunterSubForm var selectedResultData = (SavedResultData)treeList.GetDataRecordByNode(hitInfo.Node); - // Main 폼의 SaveResultData 초기화 + //Main 폼의 SaveResultData 초기화 _mainForm._saveResultData = null; - // Main 폼의 SaveResultData 초기화 (클론 복사 해야할 수 있음) + //Main 폼의 SaveResultData 초기화 (클론 복사 해야할 수 있음) _mainForm._saveResultData = selectedResultData.Clone(); + _mainForm._saveResultData.SearchResultList = + FileManager.LoadResultDataFromFile(selectedResultData.SavedResultDataPath); + + _mainForm._saveResultData.SavedInfoDataPath = selectedResultData.SavedResultDataPath; + _mainForm._saveResultData.SavedResultDataPath = selectedResultData.SavedResultDataPath; + _mainForm._saveResultData.SavedResultAnalysisDataPath = selectedResultData.SavedResultAnalysisDataPath; + + this.DialogResult = DialogResult.OK; this.Close(); } } -} \ No newline at end of file +} \ No newline at end of file diff --git a/Million Hunter/MainForm.Designer.cs b/Million Hunter/MainForm.Designer.cs index ae0f544..b21acfc 100644 --- a/Million Hunter/MainForm.Designer.cs +++ b/Million Hunter/MainForm.Designer.cs @@ -210,7 +210,7 @@ namespace Million_Hunter this.panelControl_IndicatorSetup.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) | System.Windows.Forms.AnchorStyles.Left) | System.Windows.Forms.AnchorStyles.Right))); - this.panelControl_IndicatorSetup.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder; + this.panelControl_IndicatorSetup.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Flat; this.panelControl_IndicatorSetup.Location = new System.Drawing.Point(19, 83); this.panelControl_IndicatorSetup.Name = "panelControl_IndicatorSetup"; this.panelControl_IndicatorSetup.Size = new System.Drawing.Size(885, 263); diff --git a/Million Hunter/MainForm.cs b/Million Hunter/MainForm.cs index 5bbab21..bf01989 100644 --- a/Million Hunter/MainForm.cs +++ b/Million Hunter/MainForm.cs @@ -15,6 +15,7 @@ using Million.Manager; using Million.SaveData; using Microsoft.CodeAnalysis.CSharp.Scripting; using System.Threading.Tasks; +using DevExpress.Data.Helpers; namespace Million_Hunter { @@ -385,7 +386,7 @@ namespace Million_Hunter return; } - var resultViewerForm = new ResultViewerForm(_saveResultData) { StartPosition = FormStartPosition.CenterScreen }; + var resultViewerForm = new ResultViewerForm(_saveResultData) { StartPosition = FormStartPosition.CenterScreen}; resultViewerForm.Visible = true; } @@ -428,7 +429,8 @@ namespace Million_Hunter _saveResultData.StartDateTime = dateEdit_StartDateTime.DateTime; _saveResultData.EndDateTime = dateEdit_EndDateTime.DateTime; _saveResultData.SavedDateTime = DateTime.Now; - _saveResultData.SearchResultList = new List(); + if(_saveResultData == null) + _saveResultData.SearchResultList = new List(); _saveResultData.BuyRegularExpression = textEdit_BuyRegularExpression.Text; _saveResultData.SellRegularExpression = textEdit_SellRegularExpression.Text; diff --git a/Million Hunter/Million Hunter.csproj b/Million Hunter/Million Hunter.csproj index 5358c22..4a3de8d 100644 --- a/Million Hunter/Million Hunter.csproj +++ b/Million Hunter/Million Hunter.csproj @@ -179,6 +179,7 @@ MainForm.cs + ResXFileCodeGenerator Resources.Designer.cs diff --git a/Million/CommonProperty.cs b/Million/CommonProperty.cs index 65adf79..7d9d4ce 100644 --- a/Million/CommonProperty.cs +++ b/Million/CommonProperty.cs @@ -296,6 +296,8 @@ namespace Million public static string InfoExtend = ".info"; // Save 결과 리스트 파일 확장자 public static string DataExtend = ".data"; + // Save 결과 분석 데이터 + public static string AnalysisExtend = ".analysis"; #endregion } diff --git a/Million/Data/BollingerData.cs b/Million/Data/BollingerData.cs index 90d0c23..16fa9ab 100644 --- a/Million/Data/BollingerData.cs +++ b/Million/Data/BollingerData.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; namespace Million.Data { + [Serializable] public class BollingerData : IndicatorData { public MovingAverageData movingAverage; diff --git a/Million/Data/CandleData.cs b/Million/Data/CandleData.cs index 4160c22..e58879c 100644 --- a/Million/Data/CandleData.cs +++ b/Million/Data/CandleData.cs @@ -4,6 +4,7 @@ using static Million.CommonProperty; namespace Million.Data { + [Serializable] public class CandleData { // 시간 @@ -23,13 +24,10 @@ namespace Million.Data public int CandleTimeType { get; set; } public Dictionary IndicatorDic { get; set; } = new Dictionary(); - public Dictionary SellLogicFlag { get; set; } = new Dictionary(); - public Dictionary CalculateFlag { get; set; } = new Dictionary(); - public CandleType CandleType { get; set; } = CandleType.None; /// diff --git a/Million/Data/CandleDataList.cs b/Million/Data/CandleDataList.cs index cc49a83..abf69f2 100644 --- a/Million/Data/CandleDataList.cs +++ b/Million/Data/CandleDataList.cs @@ -1,7 +1,9 @@ -using System.Collections.Generic; +using System; +using System.Collections.Generic; namespace Million.Data { + [Serializable] public class CandleDataList { // 코인 종목 diff --git a/Million/Data/IchimokData.cs b/Million/Data/IchimokData.cs index c9bf3aa..afb1ec9 100644 --- a/Million/Data/IchimokData.cs +++ b/Million/Data/IchimokData.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; namespace Million.Data { + [Serializable] public class IchimokData : IndicatorData { /// diff --git a/Million/Data/IndicatorData.cs b/Million/Data/IndicatorData.cs index a7dbfaa..b3dbe5e 100644 --- a/Million/Data/IndicatorData.cs +++ b/Million/Data/IndicatorData.cs @@ -9,43 +9,44 @@ namespace Million.Data /// /// 결과값 저장 클레스 원형 /// + [Serializable] public class IndicatorData { /// /// 종가값 위,아래 비교 - 시가 돌파여부 검색 /// - public CommonProperty.Indicator_over indicator_over = CommonProperty.Indicator_over.없음; + public CommonProperty.Indicator_over indicator_over { get; set; } = CommonProperty.Indicator_over.없음; /// /// 종가로 계산할때 해당 봉 고가 값 /// - public double highValue = 0; + public double highValue { get; set; } = 0; /// /// 종가로 계산할때 해당 봉 고가 값 /// - public double lowValue = 0; + public double lowValue { get; set; } = 0; /// /// 종가로 계산할때 해당 봉 시가 값 /// - public double startValue = 0; + public double startValue { get; set; } = 0; /// /// 값 /// - public double value = 0; + public double value { get; set; } = 0; /// /// 돌파지점과 종가가 같아지는 값 /// 0이면 값 없음 /// - public double overlapValue = 0; + public double overlapValue { get; set; } = 0; /// /// 상,하 돌파 여부 /// - public CommonProperty.OverStatus overStatus = CommonProperty.OverStatus.None; + public CommonProperty.OverStatus overStatus { get; set; } = CommonProperty.OverStatus.None; /// /// 데이터 존재 여부 반환 diff --git a/Million/Data/MarketData.cs b/Million/Data/MarketData.cs index 908838f..ac85beb 100644 --- a/Million/Data/MarketData.cs +++ b/Million/Data/MarketData.cs @@ -1,5 +1,8 @@ -namespace Million.Data +using System; + +namespace Million.Data { + [Serializable] public class MarketData { // 거래소 diff --git a/Million/Data/MovingAverageData.cs b/Million/Data/MovingAverageData.cs index f930fa6..78eef73 100644 --- a/Million/Data/MovingAverageData.cs +++ b/Million/Data/MovingAverageData.cs @@ -6,6 +6,7 @@ using System.Threading.Tasks; namespace Million.Data { + [Serializable] public class MovingAverageData { public int period; diff --git a/Million/Data/SearchResult.cs b/Million/Data/SearchResult.cs index 0dcfb4b..fc88aca 100644 --- a/Million/Data/SearchResult.cs +++ b/Million/Data/SearchResult.cs @@ -32,9 +32,9 @@ namespace Million.Data public List BuyEarningRate { get; set; } = new List(); public List BuyValueList { get; set; } = new List(); - public double SellValue; + public double SellValue { get; set; } - public double TotalEarningRate; + public double TotalEarningRate { get; set; } public int WinCount { get; set; } = 0; public int LoseCount { get; set; } = 0; diff --git a/Million/FileManagement/FileContoler.cs b/Million/FileManagement/FileContoler.cs index 2ac456d..b0e7ff5 100644 --- a/Million/FileManagement/FileContoler.cs +++ b/Million/FileManagement/FileContoler.cs @@ -6,6 +6,7 @@ using System.Runtime.Serialization.Formatters.Binary; using System.Text; using System.Threading.Tasks; using DevExpress.Xpo; +using DevExpress.XtraTreeList.Nodes; using DocumentFormat.OpenXml.Drawing; using Million.Data; using Million.SaveData; @@ -75,11 +76,12 @@ namespace Million.FileDBManagement try { - // saveResultData 저장하기 - SaveToBinaryFile(savedResultData.SearchResultList, guid.ToString() + CommonProperty.DataExtend); // Info Data 저장하기 SaveToBinaryFile(savedResultData, guid.ToString() + CommonProperty.InfoExtend); + // saveResultData 저장하기 + SaveToBinaryFile(savedResultData.SearchResultList, guid.ToString() + CommonProperty.DataExtend); + return true; } catch (Exception) { return false; } @@ -100,8 +102,15 @@ namespace Million.FileDBManagement } + // 결과 분석 데이터 불러오기 + public static TreeListNodes LoadResultAnalysisDataFromFile(string fileFullPath) + { + var savedResultData = (TreeListNodes)LoadFormBinaryFile(fileFullPath); + return savedResultData; + } + // 클래스 Binary 파일로 저장 - public static bool SaveToBinaryFile(object saveData, string fileName) + public static bool SaveToBinaryFile(object saveData, string fileName, string fileFullName = null) { var baBinaryFormatter = new BinaryFormatter(); Stream stream = null; @@ -111,6 +120,8 @@ namespace Million.FileDBManagement var directoryInfo = new DirectoryInfo(CommonProperty.SaveProgramDirecotryPath); var fileFullPath = string.Format(@"{0}\{1}", directoryInfo.FullName, fileName); + if (fileFullName != null) + fileFullPath = fileFullName; // 폴더 없으면 파일 생성 if (!directoryInfo.Exists) @@ -122,7 +133,7 @@ namespace Million.FileDBManagement return true; } - catch (Exception) + catch (Exception e) { return false; } diff --git a/Million/SaveData/SavedResultData.cs b/Million/SaveData/SavedResultData.cs index 5e1f4b2..0610910 100644 --- a/Million/SaveData/SavedResultData.cs +++ b/Million/SaveData/SavedResultData.cs @@ -30,6 +30,16 @@ namespace Million.SaveData // 정규식 (Sell) public string SellRegularExpression { get; set; } + [field: NonSerialized] + // 실제 데이터 경로 (Data Info) + public string SavedInfoDataPath { get; set; } + // 실제 데이터 경로 (결과 Data) + [field: NonSerialized] + public string SavedResultDataPath { get; set; } + // 실제 데이터 경로 (결과 분석 데이터) + [field: NonSerialized] + public string SavedResultAnalysisDataPath { get; set; } + [field: NonSerialized] // 결과 데이터 public List SearchResultList { get; set; }