예제 #1
0
        private void btnImportListValues_Click(object sender, EventArgs e)
        {
            Epi.Windows.Dialogs.BaseReadDialog dlg = new Epi.Windows.Dialogs.BaseReadDialog(this);

            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                if (dlg.SelectedDataSource is Project)
                {
                    Epi.Windows.MsgBox.ShowInformation(ImportExportSharedStrings.ERROR_CODE_TABLE_PROJECT_IMPORT_NOT_ALLOWED);
                }
                else
                {
                    Epi.Data.IDbDriver db = (Epi.Data.IDbDriver)dlg.SelectedDataSource;
                    if (string.IsNullOrEmpty(dlg.SQLQuery))
                    {
                        DataTable     DT          = db.GetTopTwoTable(dlg.SelectedDataMember);
                        List <string> columnNames = new List <string>();
                        foreach (DataColumn dc in DT.Columns)
                        {
                            columnNames.Add(dc.ColumnName);
                        }
                        Epi.Windows.ImportExport.Dialogs.FieldSelectionDialog fsd = new Windows.ImportExport.Dialogs.FieldSelectionDialog(columnNames);
                        DialogResult fieldDialogResult = fsd.ShowDialog();
                        if (fieldDialogResult == System.Windows.Forms.DialogResult.OK)
                        {
                            string selectedColumn = fsd.SelectedField;
                            string codeTableName  = "code" + dlg.SelectedDataMember + selectedColumn;

                            try
                            {
                                DT           = db.GetTableData(dlg.SelectedDataMember);
                                DT.TableName = codeTableName;
                                codeTables.Add(DT);

                                codeTableList.Add(codeTableName);
                                ((DataGridViewComboBoxColumn)dgvFormFields.Columns["ListSourceTableName"]).Items.Clear();

                                foreach (string s in codeTableList)
                                {
                                    ((DataGridViewComboBoxColumn)dgvFormFields.Columns["ListSourceTableName"]).Items.Add(s);
                                }
                            }
                            catch (OutOfMemoryException)
                            {
                                Epi.Windows.MsgBox.ShowError(ImportExportSharedStrings.ERROR_OUT_OF_MEMORY_CODE_TABLE);
                                DT.Rows.Clear();
                            }
                        }
                    }
                    else
                    {
                        Epi.Windows.MsgBox.ShowInformation(ImportExportSharedStrings.ERROR_CODE_TABLE_QUERY_IMPORT_NOT_ALLOWED);
                    }
                }
            }
        }
예제 #2
0
        private void btnImportListValues_Click(object sender, EventArgs e)
        {
            Epi.Windows.Dialogs.BaseReadDialog dlg = new Epi.Windows.Dialogs.BaseReadDialog();

            if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                if (dlg.SelectedDataSource is Project)
                {
                    Epi.Windows.MsgBox.ShowInformation(ImportExportSharedStrings.ERROR_CODE_TABLE_PROJECT_IMPORT_NOT_ALLOWED);
                }
                else
                {
                    Epi.Data.IDbDriver db = (Epi.Data.IDbDriver)dlg.SelectedDataSource;
                    if (string.IsNullOrEmpty(dlg.SQLQuery))
                    {
                        DataTable DT = db.GetTopTwoTable(dlg.SelectedDataMember);
                        List<string> columnNames = new List<string>();
                        foreach(DataColumn dc in DT.Columns)
                        {
                            columnNames.Add(dc.ColumnName);
                        }
                        Epi.Windows.ImportExport.Dialogs.FieldSelectionDialog fsd = new Windows.ImportExport.Dialogs.FieldSelectionDialog(columnNames);
                        DialogResult fieldDialogResult = fsd.ShowDialog();
                        if (fieldDialogResult == System.Windows.Forms.DialogResult.OK)
                        {
                            string selectedColumn = fsd.SelectedField;
                            string codeTableName = "code" + dlg.SelectedDataMember + selectedColumn;

                            try
                            {
                                DT = db.GetTableData(dlg.SelectedDataMember);
                                DT.TableName = codeTableName;
                                codeTables.Add(DT);

                                codeTableList.Add(codeTableName);
                                ((DataGridViewComboBoxColumn)dgvFormFields.Columns["ListSourceTableName"]).Items.Clear();

                                foreach (string s in codeTableList)
                                {
                                    ((DataGridViewComboBoxColumn)dgvFormFields.Columns["ListSourceTableName"]).Items.Add(s);
                                }
                            }
                            catch (OutOfMemoryException)
                            {
                                Epi.Windows.MsgBox.ShowError(ImportExportSharedStrings.ERROR_OUT_OF_MEMORY_CODE_TABLE);
                                DT.Rows.Clear();
                            }
                        }
                    }
                    else
                    {
                        Epi.Windows.MsgBox.ShowInformation(ImportExportSharedStrings.ERROR_CODE_TABLE_QUERY_IMPORT_NOT_ALLOWED);
                    }
                }
            }
        }