public List <TemplateStock> Get(int templateId) { List <TemplateStock> stockTemplates = new List <TemplateStock>(); if (templateId < 1) { return(stockTemplates); } var dbCommand = _dbHelper.GetStoredProcCommand(SP_Get); _dbHelper.AddInParameter(dbCommand, "@TemplateId", System.Data.DbType.Int32, templateId); var reader = _dbHelper.ExecuteReader(dbCommand); if (reader.HasRows) { while (reader.Read()) { TemplateStock item = new TemplateStock(); item.TemplateNo = (int)reader["TemplateId"]; item.SecuCode = (string)reader["SecuCode"]; item.Amount = (int)reader["Amount"]; item.MarketCap = (double)(decimal)reader["MarketCap"]; item.MarketCapWeight = (double)(decimal)reader["MarketCapOpt"]; item.SettingWeight = (double)(decimal)reader["SettingWeight"]; stockTemplates.Add(item); } } reader.Close(); _dbHelper.Close(dbCommand); return(stockTemplates); }
private bool Validate(TemplateStock stock) { if (string.IsNullOrEmpty(stock.SecuCode)) { return(false); } return(true); }
private bool Form_LoadData(object sender, object data) { if (data != null && data is TemplateStock) { TemplateStock stock = data as TemplateStock; _templateId = stock.TemplateNo; InitControlData(stock); } return(true); }
private void InitControlData(TemplateStock stock) { AutoItem autoItem = new AutoItem { Id = stock.SecuCode, Name = stock.SecuName }; acSecurity.SetCurrentItem(autoItem); tbAmount.Text = string.Format("{0}", stock.Amount); tbSettingWeight.Text = string.Format("{0}", stock.SettingWeight); }
private bool Validate(TemplateStock stock) { if (string.IsNullOrEmpty(stock.SecuCode)) { MessageDialog.Error(this, msgSecuCodeNoEmpty); return(false); } if (stock.SettingWeight < -0.00001 || stock.SettingWeight > 100.0001) { MessageDialog.Error(this, msgWeightError); return(false); } return(true); }
private void Button_Confirm_Click(object sender, EventArgs e) { TemplateStock stock = GetDialogData(); if (Validate(stock)) { OnSave(this, stock); DialogResult = System.Windows.Forms.DialogResult.OK; } else { //TODO: make the error message //DialogResult = System.Windows.Forms.DialogResult.No; MessageDialog.Error(this, msgSecuCodeNoEmpty); } }
private List <TemplateStock> GenerateData(TSGrid hsGrid) { List <TemplateStock> tempStocks = new List <TemplateStock>(); TemplateStock item1 = new TemplateStock { TemplateNo = 1, SecuCode = "000001", SecuName = "中国平安", Amount = 10200, Exchange = "深圳交易所", MarketCap = 652121.24, MarketCapWeight = 20.25, SettingWeight = 20.0 }; tempStocks.Add(item1); TemplateStock item2 = new TemplateStock { TemplateNo = 1, SecuCode = "000002", SecuName = "万科A", Amount = 7500, Exchange = "深圳交易所", MarketCap = 252102.74, MarketCapWeight = 12.25, SettingWeight = 13.0 }; tempStocks.Add(item2); TemplateStock item3 = new TemplateStock { TemplateNo = 1, SecuCode = "600519", SecuName = "贵州茅台", Amount = 12100, Exchange = "上海交易所", MarketCap = 4200125.02, MarketCapWeight = 30.31, SettingWeight = 30.0 }; tempStocks.Add(item3); return(tempStocks); }
private void ToolStripButton_ModifyStock_Click(object sender, EventArgs e) { List <int> selectIndex = TSDataGridViewHelper.GetSelectRowIndex(secuGridView); if (selectIndex.Count == 0) { MessageDialog.Warn(this, msgSecurityModifySelect); return; } if (selectIndex.Count > 1) { MessageDialog.Warn(this, msgSecurityModifyOnlyOnce); return; } int rowIndex = selectIndex[0]; if (rowIndex < 0 || rowIndex > _spotDataSource.Count) { MessageDialog.Warn(this, msgInvalidSelect); return; } TemplateStock stock = _spotDataSource[rowIndex]; PortfolioSecurityDialog psDialog = new PortfolioSecurityDialog(); psDialog.OnLoadControl(psDialog, DialogType.Modify); psDialog.OnLoadData(psDialog, stock); psDialog.SaveData += new FormLoadHandler(Dialog_SpotSecu_SaveData); psDialog.ShowDialog(); if (psDialog.DialogResult == System.Windows.Forms.DialogResult.OK) { psDialog.Close(); psDialog.Dispose(); } else { psDialog.Close(); psDialog.Dispose(); } }
private void button1_Click(object sender, EventArgs e) { TemplateStock item = new TemplateStock { TemplateNo = 1, SecuCode = "600207", SecuName = "安彩高科", Amount = 12100, Exchange = "上海交易所", MarketCap = 4200125.02, MarketCapWeight = 30.31, SettingWeight = 30.0 }; _tempStocks.Add(item); List <int> selectIndex = TSDataGridViewHelper.GetSelectRowIndex(this.tsDataGridView1); Console.WriteLine(selectIndex); }
private TemplateStock GetDialogData() { TemplateStock stock = new TemplateStock { TemplateNo = _templateId }; var autoItem = acSecurity.GetCurrentItem(); stock.SecuCode = autoItem.Id; stock.SecuName = autoItem.Name; if (rdbAmount.Checked && !string.IsNullOrEmpty(tbAmount.Text)) { int temp = -1; if (int.TryParse(tbAmount.Text, out temp)) { if (temp > 0) { temp = AmountRoundUtil.Round(temp); } else { temp = 0; } stock.Amount = temp; } } if (rdbPercent.Checked && !string.IsNullOrEmpty(tbSettingWeight.Text)) { double temp = 0.0f; if (double.TryParse(tbSettingWeight.Text, out temp)) { stock.SettingWeight = temp; } } return(stock); }
public string Update(TemplateStock tempStock) { var dbCommand = _dbHelper.GetStoredProcCommand(SP_Modify); _dbHelper.AddInParameter(dbCommand, "@TemplateId", System.Data.DbType.Int32, tempStock.TemplateNo); _dbHelper.AddInParameter(dbCommand, "@SecuCode", System.Data.DbType.String, tempStock.SecuCode); _dbHelper.AddInParameter(dbCommand, "@Amount", System.Data.DbType.Int32, tempStock.Amount); _dbHelper.AddInParameter(dbCommand, "@MarketCap", System.Data.DbType.Decimal, tempStock.MarketCap); _dbHelper.AddInParameter(dbCommand, "@MarketCapOpt", System.Data.DbType.Decimal, tempStock.MarketCapWeight); _dbHelper.AddInParameter(dbCommand, "@SettingWeight", System.Data.DbType.Decimal, tempStock.SettingWeight); _dbHelper.AddOutParameter(dbCommand, "@ReturnValue", System.Data.DbType.String, 20); string newid = string.Empty; int ret = _dbHelper.ExecuteNonQuery(dbCommand); if (ret > 0) { newid = (string)dbCommand.Parameters["@ReturnValue"].Value; } return(newid); }
private void ToolStripButton_AddStock_Click(object sender, EventArgs e) { if (tempGridView.CurrentRow == null) { MessageDialog.Warn(this, msgAddTempSelect); return; } int rowIndex = tempGridView.CurrentRow.Index; if (rowIndex < 0 || rowIndex > _tempDataSource.Count) { MessageDialog.Warn(this, msgInvalidSelect); return; } TemplateStock stock = new TemplateStock { TemplateNo = _tempDataSource[rowIndex].TemplateId }; PortfolioSecurityDialog psDialog = new PortfolioSecurityDialog(); psDialog.OnLoadControl(psDialog, DialogType.New); psDialog.OnLoadData(psDialog, stock); psDialog.SaveData += new FormSaveHandler(Dialog_SpotSecu_SaveData); psDialog.ShowDialog(); if (psDialog.DialogResult == System.Windows.Forms.DialogResult.OK) { psDialog.Close(); psDialog.Dispose(); } else { psDialog.Close(); psDialog.Dispose(); } }
private void ToolStripButton_ModifyStock_Click(object sender, EventArgs e) { var selectedStocks = _spotDataSource.Where(p => p.Selection).ToList(); //List<int> selectIndex = TSDataGridViewHelper.GetSelectRowIndex(secuGridView); if (selectedStocks == null || selectedStocks.Count == 0) { MessageDialog.Warn(this, msgSecurityModifySelect); return; } if (selectedStocks.Count > 1) { MessageDialog.Warn(this, msgSecurityModifyOnlyOnce); return; } TemplateStock stock = selectedStocks[0]; PortfolioSecurityDialog psDialog = new PortfolioSecurityDialog(); psDialog.OnLoadControl(psDialog, DialogType.Modify); psDialog.OnLoadData(psDialog, stock); psDialog.SaveData += new FormSaveHandler(Dialog_SpotSecu_SaveData); psDialog.ShowDialog(); if (psDialog.DialogResult == System.Windows.Forms.DialogResult.OK) { psDialog.Close(); psDialog.Dispose(); } else { psDialog.Close(); psDialog.Dispose(); } }
private bool Dialog_SpotSecu_SaveData(object sender, object data) { bool ret = false; if (sender == null || data == null) { throw new Exception("Fail to get the setting from dialog"); } PortfolioSecurityDialog dialog = sender as PortfolioSecurityDialog; if (dialog == null) { return(ret); } if (data is TemplateStock) { TemplateStock stock = data as TemplateStock; switch (dialog.DialogType) { case DialogType.New: { TemplateStock findStock = _spotDataSource.SingleOrDefault(p => p.SecuCode.Equals(stock.SecuCode)); if (findStock != null) { ret = false; MessageDialog.Warn(this, msgCannotAddSameSecurity); } else { _spotDataSource.Add(stock); ret = true; } } break; case DialogType.Modify: { int findIndex = _spotDataSource.ToList().FindIndex(p => p.SecuCode.Equals(stock.SecuCode)); if (findIndex >= 0 && findIndex < _spotDataSource.Count) { ret = true; _spotDataSource[findIndex] = stock; } } break; default: break; } if (ret) { var template = _tempDataSource.Single(p => p.TemplateId == stock.TemplateNo); CalculateAmount(template); SwitchTemplateStockSave(true); this.secuGridView.Invalidate(); } } return(ret); }
private List <TemplateStock> ExcelToGrid(Model.Data.DataTable excelData) { List <TemplateStock> stockList = new List <TemplateStock>(); var template = GetSelectTemplate(); if (template == null) { return(stockList); } //用于获取二维表表头名字与Excel中表头进行匹配,获取Excel DataTable中列的位置 TSGrid hsGrid = _gridConfig.GetGid(GridStock); var gridColumns = hsGrid.Columns; //标签与属性名映射表 var attFieldMap = GridViewBindingHelper.GetPropertyBinding(typeof(TemplateStock)); //实体类标签名与Excel DataTable DataRow.Columns中列索引映射表 Dictionary <string, int> fieldNameColumnIndexMap = new Dictionary <string, int>(); for (int i = 0, count = gridColumns.Count; i < count; i++) { var column = gridColumns[i]; string origtext = column.Text; string text = origtext; if (text.Contains("(%)")) { text = text.Replace("(%)", string.Empty); } if (excelData.ColumnIndex.ContainsKey(origtext)) { if (!fieldNameColumnIndexMap.ContainsKey(column.Name)) { fieldNameColumnIndexMap.Add(column.Name, excelData.ColumnIndex[origtext]); } } else if (excelData.ColumnIndex.ContainsKey(text)) { if (!fieldNameColumnIndexMap.ContainsKey(column.Name)) { fieldNameColumnIndexMap.Add(column.Name, excelData.ColumnIndex[text]); } } } foreach (var row in excelData.Rows) { TemplateStock stock = new TemplateStock(); stock.TemplateNo = template.TemplateId; foreach (var kv in fieldNameColumnIndexMap) { if (!attFieldMap.ContainsKey(kv.Key) || !fieldNameColumnIndexMap.ContainsKey(kv.Key)) { continue; } string fieldName = attFieldMap[kv.Key]; int valIndex = fieldNameColumnIndexMap[kv.Key]; var field = stock.GetType().GetProperty(fieldName); if (field == null || !field.CanWrite) { continue; } DataValueType valType = DataValueType.String; var gridColomn = gridColumns.Find(p => p.Name.Equals(kv.Key)); if (gridColomn != null) { valType = gridColomn.ValueType; } var val = row.Columns[valIndex]; if (val != null) { switch (val.Type) { case DataValueType.Int: field.SetValue(stock, val.GetInt()); break; case DataValueType.Float: field.SetValue(stock, val.GetDouble()); break; case DataValueType.String: if (valType == DataValueType.Int) { field.SetValue(stock, val.GetInt()); } else if (valType == DataValueType.Float) { field.SetValue(stock, val.GetDouble()); } else { field.SetValue(stock, val.GetStr()); } break; default: break; } } else { } } if (!string.IsNullOrEmpty(stock.SecuCode)) { var secuInfo = _securityInfoList.Find(p => p.SecuCode.Equals(stock.SecuCode) && p.SecuType == SecurityType.Stock); if (secuInfo != null) { stock.SecuName = secuInfo.SecuName; stock.Exchange = secuInfo.ExchangeCode; } } stockList.Add(stock); } return(stockList); }