/// <summary> /// 执行秒表方法 /// </summary> /// <param name="timerID">秒表ID</param> public void OnTimer(int timerID) { if (m_timerID == timerID) { if (m_task != null) { int runningState = m_task.RunningState; if (runningState != m_runningState) { int size = m_task.GetSecurityInfosSize(); int matchCount = m_task.MatchCount; String title = "条件选股"; if (runningState == -1) { if (size > 0) { title += " 符合条件数:(" + matchCount.ToString() + "/" + size.ToString() + ")"; } } else if (runningState == 0) { title += "(正在下载数据...)"; } else { if (size > 0) { title += "(计算中,进度:" + runningState.ToString() + "/" + size.ToString() + ",符合数:" + matchCount.ToString() + ")"; } } if (runningState != m_runningState && runningState == -1) { List <GridColumn> columns = m_gridFilterResult.GetColumns(); GridColumn filterColumn = null; int columnsSize = columns.Count; for (int i = 0; i < columnsSize; i++) { if (columns[i].Name == "FILTER") { filterColumn = columns[i]; break; } } if (filterColumn != null) { m_gridFilterResult.SortColumn(m_gridFilterResult, filterColumn, GridColumnSortMode.Desc); m_gridFilterResult.Update(); } } m_window.Text = title; m_runningState = runningState; m_window.Invalidate(); } } } }
/// <summary> /// 表格选中行改变方法 /// </summary> public void OnGridSelectedRowsChanged() { String layoutID = ""; List <GridRow> selectedRows = m_gridLayouts.SelectedRows; int selectedRowsSize = selectedRows.Count; if (selectedRowsSize > 0) { layoutID = selectedRows[0].GetCell(0).Text; } IndicatorLayout layout = new IndicatorLayout(); m_indicatorLayoutService.GetLayoutByID(layoutID, ref layout); m_layout = layout; LoadLayout(m_layout); m_window.Invalidate(); }
/// <summary> /// 表格选中行改变方法 /// </summary> public void OnGridSelectedRowsChanged() { String macroID = ""; List <GridRow> selectedRows = m_gridMacros.SelectedRows; int selectedRowsSize = selectedRows.Count; if (selectedRowsSize > 0) { macroID = selectedRows[0].GetCell(0).Text; } Macro macro = new Macro(); m_macroService.GetMacroByID(macroID, ref macro); m_macro = macro; LoadMacro(m_macro); m_window.Invalidate(); }
/// <summary> /// 显示 /// </summary> public override void Show() { List <UserSecurityCategory> categories = new List <UserSecurityCategory>(); m_userSecurityService.GetCategories(categories); LoadUserSecurityCategories(categories); m_window.Location = new POINT(-m_window.Width, -m_window.Height); m_window.AnimateShow(true); m_window.Invalidate(); }
/// <summary> /// 显示 /// </summary> public virtual void Show() { if (m_isWinForm) { SIZE windowSize = new SIZE(); List <ControlA> controls = m_window.m_controls; int controlsSize = controls.Count; m_winForm = new BugHoleForm(); for (int i = 0; i < controlsSize; i++) { ControlA subControl = controls[i]; if (!(subControl is WindowButton)) { windowSize = subControl.Size; subControl.Margin = new PADDING(0, 0, 0, 0); m_winForm.AddBugHole(Native, subControl); break; } } Native = m_winForm.Native; m_winForm.Text = m_window.Text; if (m_window.WindowState == WindowStateA.Max) { m_winForm.WindowState = FormWindowState.Maximized; } else if (m_window.WindowState == WindowStateA.Min) { m_winForm.WindowState = FormWindowState.Minimized; } else { m_winForm.ClientSize = new Size(windowSize.cx, windowSize.cy); } m_winForm.Window = this; m_winForm.Show(); } else { m_window.Location = new POINT(-m_window.Width, -m_window.Height); m_window.AnimateShow(false); m_window.Invalidate(); } }
/// <summary> /// 表格选中行改变方法 /// </summary> public void OnGridSelectedRowsChanged() { if (m_tvList != null) { String indicatorID = ""; List <GridRow> selectedRows = m_tvList.SelectedRows; int selectedRowsSize = selectedRows.Count; if (selectedRowsSize > 0) { TreeNodeA node = selectedRows[0].GetCell(0) as TreeNodeA; indicatorID = node.Name; } Indicator indicator = new Indicator(); m_indicatorService.GetIndicatorByID(indicatorID, ref indicator); m_indicator = indicator; LoadIndicator(m_indicator); m_window.Invalidate(); } }
/// <summary> /// 表格选中行改变方法 /// </summary> public void OnGridSelectedRowsChanged() { String templateID = ""; List <GridRow> selectedRows = m_gridTemplate.SelectedRows; int selectedRowsSize = selectedRows.Count; if (selectedRowsSize > 0) { templateID = selectedRows[0].GetCell(0).Text; } SecurityFilterTemplate template = new SecurityFilterTemplate(); m_securityFilterService.GetTemplate(templateID, ref template); m_template = template; LoadTemplate(m_template); m_window.Invalidate(); }
/// <summary> /// 把指定日期K线的高开低收数据设置到画面的数值控件上 /// </summary> /// <param name="date">日期</param> private void SetSpinValue(double date) { ChartA chart = m_chart.Chart; CTable dataSource = chart.DataSource; int rowsCount = dataSource.RowsCount; if (rowsCount > 0) { int index = dataSource.GetRowIndex(date); if (index < 1) { index = rowsCount - 1; } SpinA spinOpen = GetSpin("txtOpen"); SpinA spinClose = GetSpin("txtClose"); SpinA spinHigh = GetSpin("txtHigh"); SpinA spinLow = GetSpin("txtLow"); SpinA spinVolume = GetSpin("txtVolume"); SpinA spinAmount = GetSpin("txtAmount"); LabelA lblDate = GetLabel("lblDate"); spinOpen.Value = dataSource.Get2(index, KeyFields.OPEN_INDEX); spinClose.Value = dataSource.Get2(index, KeyFields.CLOSE_INDEX); spinHigh.Value = dataSource.Get2(index, KeyFields.HIGH_INDEX); spinLow.Value = dataSource.Get2(index, KeyFields.LOW_INDEX); spinVolume.Value = dataSource.Get2(index, KeyFields.VOL_INDEX); spinAmount.Value = dataSource.Get2(index, KeyFields.AMOUNT_INDEX); DateTime dateTime = CStrA.ConvertNumToDate(date); int m_cycle = m_chart.Cycle; if (m_cycle <= 60) { lblDate.Text = dateTime.ToString("yyyy-MM-dd HH:mm:ss"); } else { lblDate.Text = dateTime.ToString("yyyy-MM-dd"); } m_window.Invalidate(); } }
/// <summary> /// 调用控件线程方法 /// </summary> /// <param name="args">参数</param> public void OnInvoke(object args) { CMessage message = (CMessage)args; if (message.m_serviceID == m_quoteService.ServiceID) { LatestDataInfo dataInfo = new LatestDataInfo(); List <SecurityLatestData> datas = new List <SecurityLatestData>(); QuoteService.GetLatestDatas(ref dataInfo, datas, message.m_body, message.m_bodyLength); int datasSize = datas.Count; for (int i = 0; i < datasSize; i++) { m_latestDatas[datas[i].m_securityCode] = datas[i]; } datas.Clear(); } else { List <UserSecurityCategory> categories = new List <UserSecurityCategory>(); UserSecurityService.GetCategories(categories, message.m_body, message.m_bodyLength); UserSecurityCategory category = categories[0]; switch (message.m_functionID) { case UserSecurityService.FUNCTIONID_USERSECURITY_ADDCATEGORIES: AddCategoriesToCategoryGrid(categories); break; case UserSecurityService.FUNCTIONID_USERSECURITY_DELETECATEGORIES: RemoveCategoriesFromCategoryGrid(categories); break; case UserSecurityService.FUNCTIONID_USERSECURITY_UPDATECATEGORIES: UpdateCategoriesToCategoryGrid(categories); break; case UserSecurityService.FUNCTIONID_USERSECURITY_ADDSECURITIES: case UserSecurityService.FUNCTIONID_USERSECURITY_DELETESECURITIES: { String categoryID = ""; List <GridRow> selectedRows = m_gridCategory.SelectedRows; int selectedRowsSize = selectedRows.Count; if (selectedRowsSize > 0) { categoryID = selectedRows[0].GetCell(0).Text; } if (categoryID != null && categoryID == category.m_categoryID) { List <Security> securities = new List <Security>(); m_securityService.GetSecuritiesByCodes(category.m_codes, securities); if (message.m_functionID == UserSecurityService.FUNCTIONID_USERSECURITY_ADDSECURITIES) { AddSecuritiesToSecuritiesGrid(securities); } else if (message.m_functionID == UserSecurityService.FUNCTIONID_USERSECURITY_DELETESECURITIES) { RemoveSecuritiesFromSecuritiesGrid(securities); } } break; } } } m_window.Invalidate(); }
/// <summary> /// 显示 /// </summary> public override void Show() { m_window.Location = new POINT(-m_window.Width, -m_window.Height); m_window.AnimateShow(false); m_window.Invalidate(); }