Beispiel #1
0
        public void InitTableData()
        {
            dataSources.Clear();
            foreach (TableData Data in dataSourceInfo)
            {
                AnalysisParameters(Data.DataFilter, parameterList);

                if (Data is DbTableData)
                {
                    DbTableData data = Data as DbTableData;
                    data.DataAdapter = new BackstageDataAdapter();
                    dataSources.Add(data.GetTableText().ToLower(), data.GetDataSource());
                }
                else if (Data is JoinTableData)
                {
                    JoinTableData data = Data as JoinTableData;
                    data.DataAdapter = new BackstageDataAdapter();
                    dataSources.Add(data.GetTableText().ToLower(), data.GetDataSource());
                }
                else
                {
                    dataSources.Add(Data.GetTableText().ToLower(), Data.GetDataSource());
                }
            }
        }
        private void ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            if (sender == MenuItem_String)
            {
                EditColumnDialog Dialog = new EditColumnDialog();
                if (DialogResult.OK == Dialog.ShowDialog())
                {
                    TableData.AddStringColumn(Dialog.TextBoxColumn.Text);
                }
            }
            else if (sender == MenuItem_Integer)
            {
                EditColumnDialog Dialog = new EditColumnDialog();
                if (DialogResult.OK == Dialog.ShowDialog())
                {
                    TableData.AddIntegerColumn(Dialog.TextBoxColumn.Text);
                }
            }
            else if (sender == MenuItem_Float)
            {
                EditColumnDialog Dialog = new EditColumnDialog();
                if (DialogResult.OK == Dialog.ShowDialog())
                {
                    TableData.AddFloatColumn(Dialog.TextBoxColumn.Text);
                }
            }
            else if (sender == MenuItem_Date)
            {
                EditColumnDialog Dialog = new EditColumnDialog();
                if (DialogResult.OK == Dialog.ShowDialog())
                {
                    TableData.AddDateColumn(Dialog.TextBoxColumn.Text);
                }
            }
            else if (sender == Button_RenameColumn)
            {
                String           Column = FpSpread_Panel.ActiveColumn.Tag.ToString();
                EditColumnDialog Dialog = new EditColumnDialog();
                Dialog.TextBoxColumn.Text = Column;
                if (DialogResult.OK == Dialog.ShowDialog())
                {
                    TableData.EditColumn(Column, Dialog.TextBoxColumn.Text);
                }
            }
            else if (sender == Button_DeleteColumn)
            {
                String Column = FpSpread_Panel.ActiveColumn.Tag.ToString();
                if (DialogResult.OK == MessageBox.Show("你确定要删除列‘" + Column + "’吗?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Information))
                {
                    TableData.DeleteColumn(Column);
                }
            }
            else if (sender == Button_ColumnOrder)
            {
                DataTable         Table  = TableData.GetSchema();
                ColumnOrderDialog Dialog = new ColumnOrderDialog(Table.Columns);
                Dialog.ShowDialog();
            }
            else if (sender == Button_FieldSetting)
            {
                DataFieldSelector DataFieldSelector = new DataFieldSelector();
                Form Owner = Cache.CustomCache[SystemString.主窗口] as Form;
                DataFieldSelector.Location = Owner.PointToScreen(Owner.ClientRectangle.Location);
                DataFieldSelector.Size     = Owner.ClientRectangle.Size;
                if (DialogResult.OK == DataFieldSelector.ShowDialog())
                {
                    try
                    {
                        List <String> ModelFields = DataFieldSelector.ModelFields;

                        DataRow Row = TableData.AddRow();
                        Row.ItemArray = ModelFields.ToArray();
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                    }
                }
            }
            else if (sender == Button_ImportData)
            {
                openFileDialog1.Filter           = "xml files (*.xml)|*.xml";
                openFileDialog1.FilterIndex      = 2;
                openFileDialog1.InitialDirectory = Application.StartupPath;
                openFileDialog1.RestoreDirectory = true;
                if (openFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    using (TextReader tr = new StreamReader(openFileDialog1.FileName))
                    {
                        object obj = BinarySerializer.Deserialize(tr.ReadToEnd());
                        if (obj is JoinTableData)
                        {
                            TableData = obj as JoinTableData;
                        }
                        else
                        {
                            MessageBox.Show("选择的文件的数据格式有错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
                        }
                    }
                }
            }
            else if (sender == Button_ExportData)
            {
                saveFileDialog1.Filter           = "xml files (*.xml)|*.xml";
                saveFileDialog1.FilterIndex      = 2;
                saveFileDialog1.InitialDirectory = Application.StartupPath;
                saveFileDialog1.RestoreDirectory = true;
                if (saveFileDialog1.ShowDialog() == DialogResult.OK)
                {
                    using (TextWriter sw = new StreamWriter(saveFileDialog1.FileName))
                    {
                        sw.Write(BinarySerializer.Serialize(TableData));
                        sw.Close();
                    }
                }
            }

            ShowJoinTableData();
        }