www.pudn.com > Fxj_Data_Fx.rar > FinData.FxjReader.cs


using System; 
using System.Collections.Generic; 
using System.ComponentModel; 
using System.Data; 
using System.Drawing; 
using System.Text; 
using System.Windows.Forms; 
using Microsoft.Win32; 
using FinData; 
 
namespace FinData 
{ 
    internal partial class DzhReader : Form 
    { 
        public DzhReader() 
        { 
            InitializeComponent(); 
        } 
        string[,] dataArray; 
        private void button1_Click(object sender, EventArgs e) 
        { 
            FinData.DzhData dzh = new  FinData.DzhData(); 
            if (dataType.Text.Trim() == "") 
            { 
                MessageBox.Show("请选择数据类型!", "信息"); 
                return; 
            } 
            try 
            { 
                string callText; 
                string dt = dataType.Text.Split('-')[0]; 
                if (newFileName.Text == "") 
                { 
                    dataArray = dzh.GetData(dt, code.Text); 
                    callText = "dzhdata.GetData(\"" + dt + "\",\"" + code.Text.Trim() + "\")"; 
                } 
                else 
                { 
                    dataArray = dzh.GetData(dt, code.Text, newFileName.Text); 
                    callText = "dzhdata.GetData(\"" + dt + "\",\"" + code.Text.Trim() +"\",\"" + newFileName.Text.Trim() + "\")"; 
                } 
                //statusStrip1.Text = dzh.Msg; 
                if (dzh.Error == 0 && dataArray.GetLength(0) > 0) 
                { 
                    string[,] colname = dzh.GetFields(dt); 
                    dataGridView.DataSource = new ArrayDataView(dataArray); 
                    for (int i = 0; i < dataGridView.Rows.Count; i++) 
                    { 
                        dataGridView.Rows[i].HeaderCell.Value = (i+1).ToString().Trim(); 
                    } 
                    if (colname.GetLength(0) == dataGridView.Columns.Count) 
                    { 
                        for (int i = 0; i < colname.GetLength(0); i++) 
                        { 
                            dataGridView.Columns[i].HeaderText = colname[i, 0] + "(" + colname[i, 1] + ")"; 
                        } 
                    } 
                    methodText.Text = callText; 
                } 
                else 
                { 
                    methodText.Text = ""; 
                    MessageBox.Show("没有数据或发生错误 " + dzh.Msg); 
                } 
            } 
            catch (Exception ex) 
            { 
                methodText.Text = ""; 
                MessageBox.Show(ex.Message); 
            } 
             
        } 
 
        private void DzhReader_Load(object sender, EventArgs e) 
        { 
            DzhData dzh = new DzhData(); 
            //string[] dataTypeNames = dzh.GetTables(""); 
            string[,] tableNames = dzh.GetTables(); 
            for (int i = 0; i < tableNames.GetLength(0); i++) 
            { 
                dataType.Items.Add(tableNames[i,0]+"-"+tableNames[i,1]); 
            } 
        } 
        private void dataType_SelectedIndexChanged(object sender, EventArgs e) 
        { 
            switch (dataType.Text.Split('-')[0].ToLower()) 
            { 
                case "dm": 
                    codeDesc.Text = "(请输入市场代码,沪市为SH,深市为SZ等。)"; 
                    code.Text = "SH"; 
                    newFileNameDesc.Text = "(一般为空)"; 
                    newFileName.Text = ""; 
                    break; 
                case "hqmb": 
                    codeDesc.Text = "(请输入市场代码,沪市为SH,深市为SZ等。)"; 
                    code.Text = "SZ000001"; 
                    newFileNameDesc.Text = "(若要读最新分笔成交不必填写;若要读历史分笔成交,请输入文件名,\n如“20060324.PRP”表示2006年3月24日的分笔成交)"; 
                    newFileName.Text = "";  
                    break; 
                case "bk": 
                    codeDesc.Text = "(若读取所有板块请清空;若读取某个板块请输入板块名称,如“A股板块”等。)"; 
                    code.Text = ""; 
                    newFileNameDesc.Text = "(空,未使用。)"; 
                    newFileName.Text = "";  
                    break; 
                case "pj": 
                    codeDesc.Text = "(若读取所有评级请清空;若读取某只证券的评级请输入证券代码,如“SZ000001”等。)"; 
                    code.Text = ""; 
                    newFileNameDesc.Text = "(空,未使用。)"; 
                    newFileName.Text = "";  
                    break; 
                default: 
                    codeDesc.Text = "(必填,由市场+证券代码组成,如SZ000001、SH000001、SH600000等)"; 
                    code.Text = "SZ000001"; 
                    newFileNameDesc.Text = "(一般为空)"; 
                    newFileName.Text = "";  
                    break;                     
            } 
            methodText.Text = ""; 
        } 
 
 
 
        private void readFieldNames_Click(object sender, EventArgs e) 
        { 
            FinData.DzhData dzh = new FinData.DzhData(); 
            //string[,] s; 
            if (dataType.Text.Trim() == "") 
            { 
                MessageBox.Show("请选择数据类型!","信息"); 
                return; 
            } 
            try 
            { 
                string callText; 
                string dt = dataType.Text.Split('-')[0]; 
                dataArray = dzh.GetFields(dt); 
                callText = "dzhdata.GetFields(\"" + dt + "\")"; 
 
                if (dzh.Error == 0 && dataArray.GetLength(0) > 0) 
                { 
                    dataGridView.DataSource = new ArrayDataView(dataArray); 
                    for (int i = 0; i < dataGridView.Rows.Count; i++) 
                    { 
                        dataGridView.Rows[i].HeaderCell.Value = (i + 1).ToString().Trim(); 
                    } 
                    dataGridView.Columns[0].HeaderText ="字段名称"; 
                    dataGridView.Columns[1].HeaderText = "字段说明"; 
                    dataGridView.Columns[2].HeaderText = "字段类型"; 
                    methodText.Text = callText; 
                } 
                else 
                { 
                    methodText.Text = ""; 
                    MessageBox.Show("没有数据或发生错误 " + dzh.Msg); 
                } 
            } 
            catch (Exception ex) 
            { 
                methodText.Text = ""; 
                MessageBox.Show(ex.Message); 
            } 
             
 
        } 
 
        private void url_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
        { 
            System.Diagnostics.Process process = new System.Diagnostics.Process(); 
            process.StartInfo.FileName = "iexplore.exe"; 
            process.StartInfo.Arguments = "http://www.sasfans.com/"; 
            process.Start(); 
        } 
 
        private void exportData_Click(object sender, EventArgs e) 
        { 
            if (dataArray == null) 
            { 
                MessageBox.Show("没有数据!", "错误", MessageBoxButtons.OK, MessageBoxIcon.Error, MessageBoxDefaultButton.Button1); 
                return; 
            } 
            SaveFileDialog fileDialog = new SaveFileDialog(); 
            fileDialog.AddExtension = true; 
            fileDialog.CheckFileExists = false; 
            fileDialog.CheckPathExists = true; 
            fileDialog.FileName = methodText.Text.ToLower().IndexOf("getfields") > 0 ? dataType.Text.Split('-')[0] + "_fields" : dataType.Text.Split('-')[0] + "_" + code.Text.Trim() + (newFileName.Text.ToLower().IndexOf(".prp") > 0 ? "_" + newFileName.Text.Substring(0,6): ""); 
            fileDialog.DefaultExt = "txt"; 
            fileDialog.Filter = "文本(*.txt)|*.txt"; 
            fileDialog.OverwritePrompt = true; 
            fileDialog.RestoreDirectory = true; 
            DialogResult result = fileDialog.ShowDialog(); 
            System.IO.StreamWriter sw = new System.IO.StreamWriter(fileDialog.FileName); 
            if (result == DialogResult.OK) 
            { 
                try 
                { 
 
                    for (int i = 0; i < dataGridView.ColumnCount; i++) 
                    { 
                        sw.Write(dataGridView.Columns[i].HeaderText + "  ,  "); 
                    } 
                    sw.WriteLine(); 
                    for (int ii = 0; ii < dataArray.GetLength(0); ii++) 
                    { 
                        string s = ""; 
                        for (int jj = 0; jj < dataArray.GetLength(1); jj++) 
                            s += dataArray[ii, jj] + "  ,  "; 
                        sw.WriteLine(s); 
                    } 
                    //sw.Close(); 
 
                } 
                catch(Exception ex) 
                { 
                    MessageBox.Show(ex.Message); 
                } 
                finally 
                { 
                    sw.Close(); 
                } 
            } 
        } 
 
 
  
 
 
 
 
    } 
}