private void TranDataMain() { while (true) { if (Codes.Count > 0) { try { var tranData = Program.AASServiceClient.GetHkTran(Codes.ToArray()); if (!string.IsNullOrEmpty(tranData)) { var dict = tranData.FromJSON <Dictionary <string, string> >(); foreach (var item in dict) { var data = Tool.ChangeDataStringToTable(item.Value); DictTran[item.Key] = data; } } } catch (Exception ex) { Program.logger.LogRunning("HK 逐笔获取线程异常:{0}", ex.Message); } Thread.Sleep(100); } else { Thread.Sleep(1000); } } }
private void PubStocks_Load(object sender, EventArgs e) { try { var result = Program.AASServiceClient.QueryPubStock(""); if (result.StartsWith("0|")) { var resultDataStr = result.Substring(2); if (!string.IsNullOrEmpty(resultDataStr)) { var dt = Tool.ChangeDataStringToTable(resultDataStr); DeleteTableData(dt); PublicStockList = new List <PublicStock>(); foreach (DataRow row in dt.Rows) { PublicStockList.Add(new PublicStock() { StockCode = row["证券代码"].ToString(), StockName = row["证券名称"].ToString(), CanSaleCount = int.Parse(row["可卖数量"].ToString()), Market = (byte)((row["交易所名称"].ToString()).IndexOf("上海") > 0 ? 1 : 0), }); } //var code = row.Cells["证券代码"].Value + ""; //var name = row.Cells["证券名称"].Value + ""; //var market = (row.Cells["交易所名称"].Value + "").IndexOf("上海") > 0 ? (byte)1 : (byte)0; this.bindingSource公共券池.DataSource = PublicStockList; dataGridView公共券池.DataSource = this.bindingSource公共券池; foreach (DataGridViewColumn column in this.dataGridView公共券池.Columns) { column.Visible = DisplayColumn.Contains(column.HeaderText); } dataGridView公共券池.Columns["帐号类别"].Visible = false; } } else { MessageBox.Show(result.Substring(2)); } } catch (Exception ex) { Program.logger.LogRunning("公共券池查询异常!\r\n Message:{0}\r\n StackTrace:{1}", ex.Message, ex.StackTrace); } }
private void button测试帐号_Click(object sender, EventArgs e) { string[] JyServerInfo = this.comboBox交易服务器.Text.Split(new char[] { ':' }); string Ret = Program.AASServiceClient.Test(JyServerInfo[1], short.Parse(JyServerInfo[2]), this.textBox版本号.Text, (short)this.numericUpDown营业部代码.Value, this.textBox登录帐号.Text, this.textBox交易帐号.Text, this.textBox交易密码.Text, this.textBox通讯密码.Text); string[] Data = Ret.Split('|'); if (Data[1] != string.Empty) { MessageBox.Show(Data[1], "测试失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } this.dataGridView股东列表.DataSource = Tool.ChangeDataStringToTable(Data[0]); }
private void timer1_Tick(object sender, EventArgs e) { try { if (Program.AASServiceClient.State == System.ServiceModel.CommunicationState.Opened) { var result = Program.AASServiceClient.QueryPubStock(""); if (result.StartsWith("0|")) { var resultDataStr = result.Substring(2); if (!string.IsNullOrEmpty(resultDataStr)) { var dt = Tool.ChangeDataStringToTable(resultDataStr); //DeleteTableData(dt); List <string> codes = new List <string>(); foreach (DataRow row in dt.Rows) { var code = row["证券代码"] + ""; codes.Add(code); var entity = PublicStockList.FirstOrDefault(_ => _.StockCode == code); if (entity == null) { //帐号类别,交易所名称,证券代码,证券名称,融券保证金比例,可卖数量,备注,保留信息 PublicStockList.Add(new PublicStock() { StockCode = code, StockName = row["证券代码"].ToString(), CanSaleCount = int.Parse(row["可卖数量"].ToString()), Market = (byte)(row["可卖数量"].ToString().IndexOf("") > 0 ? 1 : 0) }); } else { entity.CanSaleCount = int.Parse(row["可卖数量"].ToString()); } } if (codes.Count < PublicStockList.Count) { foreach (var item in PublicStockList) { if (!codes.Contains(item.StockCode)) { item.CanSaleCount = 0; } } } } } else { this.timer1.Stop(); //Program.logger.LogRunning("公共券池查询错误,{0}", result.Substring(2)); } } } catch (Exception ex) { Program.logger.LogRunning("公共券池查询异常,{0}", ex.Message); } }
private void button测试帐号_Click(object sender, EventArgs e) { this.textBox上海股东代码.Text = string.Empty; this.textBox深圳股东代码.Text = string.Empty; string[] JyServerInfo = this.comboBox交易服务器.Text.Split(new char[] { ':' }); string Ret = GetTestResult(JyServerInfo); string[] Data = Ret.Split('|'); if (Data[1] != string.Empty) { MessageBox.Show(Data[1], "测试失败", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } DataTable GddmDataTable = Tool.ChangeDataStringToTable(Data[0]); List <string> GddmList = new List <string>(); foreach (DataRow GddmDataRow in GddmDataTable.Rows) { GddmList.Add(GddmDataRow["股东代码"] as string); } if (this.comboBox券商.Text == "模拟测试") { this.textBox上海股东代码.Text = GddmList[0]; this.textBox深圳股东代码.Text = GddmList[1]; } else { if (this.comboBox类型.Text == "普通") { if (GddmList.Any(r => r.StartsWith("A"))) { this.textBox上海股东代码.Text = GddmList.First(r => r.StartsWith("A")); } else if (GddmList.Any(r => r.StartsWith("B"))) { this.textBox上海股东代码.Text = GddmList.First(r => r.StartsWith("B")); } else { MessageBox.Show("未获取到上海股东代码"); } this.textBox深圳股东代码.Text = GddmList.FirstOrDefault(r => Regex.IsMatch(r, "^0[0128]")) ?? string.Empty; if (string.IsNullOrEmpty(this.textBox深圳股东代码.Text)) { MessageBox.Show("未获取到深圳股东代码"); } } else { if (GddmList.Any(r => r.StartsWith("E"))) { this.textBox上海股东代码.Text = GddmList.First(r => r.StartsWith("E")); } else { MessageBox.Show("未获取到上海股东代码"); } if (GddmList.Any(r => r.StartsWith("06"))) { this.textBox深圳股东代码.Text = GddmList.First(r => r.StartsWith("06")); } else { MessageBox.Show("未获取到深圳股东代码"); } } } this.dataGridView股东列表.DataSource = GddmDataTable; if (GddmDataTable.Columns.Contains("资金帐号")) { string 资金帐号 = GddmDataTable.Rows[0]["资金帐号"] as string; if (资金帐号 != this.textBox交易帐号.Text) { MessageBox.Show(string.Format("所填交易帐号 {0} 与表中资金帐号 {1} 不一致", this.textBox交易帐号.Text, 资金帐号)); return; } } }