private void populateFieldList()
        {
            string lastError;

            lstChamp.Items.Clear();

            if (cmbTable.SelectedValue == null)
            {
                return;
            }

            var dc = DataTools.Data(SqlCommands.SqlGetColums(
                                        cmbTable.SelectedValue.ToString(),
                                        cmdSchema.SelectedValue.ToString()), ConnectionString, out lastError);//0

            foreach (DataRow dcr in dc.Rows)
            {
                if (TabloidFields.IstabloidField(dcr[0].ToString()) == -1)
                {
                    lstChamp.Items.Add(dcr[0].ToString());
                }
            }

            if (lstChamp.Items.Count > 0)
            {
                lstChamp.SelectedIndex = 0;
            }
        }
        /// <summary>
        /// add field list to combobox from sql request
        /// </summary>
        /// <param name="cmb">Combobox to populate</param>
        /// <param name="table">Table name</param>
        /// <param name="connectionString">connexction string</param>
        /// <param name="DbKeyName">if set field with DbKeyName is not shown</param>
        /// <param name="allowNull">Add selectable null item</param>
        /// <param name="hideTabloidField">if true Tabloid fields are hidden</param>
        public static void displayField(ComboBox cmb, string table, string connectionString, string schema = null, string DbKeyName = "", bool allowNull = false, bool hideTabloidField = true)
        {
            cmb.Items.Clear();
            string lastError;

            if (string.IsNullOrEmpty(schema))
            {
                schema = Program.AppSet.Schema;
            }

            var dc = DataTools.Data(SqlCommands.SqlGetColums(table, schema), connectionString, out lastError);//0

            if (allowNull)
            {
                cmb.Items.Add("");
            }
            foreach (DataRow dcr in dc.Rows)
            {
                if (hideTabloidField || TabloidFields.IstabloidField(dcr[0].ToString()) == -1)
                {
                    cmb.Items.Add(dcr[0].ToString());
                    if (dcr[0].ToString() == DbKeyName)
                    {
                        cmb.SelectedIndex = cmb.Items.Count - 1;
                    }
                }
            }

            if (cmb.Items.Count > 0)
            {
                cmb.SelectedIndex = 0;
            }
        }
示例#3
0
        /// <summary>
        /// verify tabloid table aviability
        /// </summary>
        /// <param name="tableName">table to search</param>
        /// <param name="schema"></param>
        /// <param name="tableConfig"></param>
        /// <param name="avt"></param>
        /// <param name="connectionString"></param>
        /// <returns></returns>
        public static bool GetTable(IWin32Window own, string tableName, string schema, ref TabloidConfigView tableConfig, ref ArrayVerify avt, BaseImporterConfig config)
        {
            var indexTable = TabloidTables.IsTabloidTable(tableName, ref avt);
            var toShow     = indexTable == -1;

            if (!toShow)                                                       //this is a tabloid table
            {
                toShow = !TabloidTables.TabloidTablesArray[indexTable].Hidden; //for tabloid table verify hidden propertie
            }
            if (toShow)                                                        //this is not a tabloid table
            {
                tableConfig        = new TabloidConfigView();
                tableConfig.Nom    = tableConfig.Titre = tableName;
                tableConfig.Titre  = ModifyTitle(tableConfig.Titre, tableName, config);
                tableConfig.Schema = schema;

                string lastError;

                var dc = DataTools.Data(SqlCommands.SqlGetColums(tableName), config.ConnectionString, out lastError);//013

                if (!string.IsNullOrEmpty(lastError))
                {
                    throw new Exception(lastError);
                    //lblState.Text = lastError;
                    return(false);
                }
                //read Fields
                var avc  = new ArrayVerify();
                var cmpt = 0;

                foreach (DataRow dcr in dc.Rows)
                {
                    cmpt++;

                    if (TabloidFields.IstabloidField(dcr[0].ToString(), ref avc) == -1)
                    {
                        var colonneConfig = new TabloidConfigColonne();

                        if (dcr[3].ToString().StartsWith("PRI", StringComparison.InvariantCulture))
                        {
                            tableConfig.DbKey = dcr[0].ToString();
                        }
                        else
                        {
                            colonneConfig.Nom   = "C" + cmpt;
                            colonneConfig.Champ = colonneConfig.Titre = dcr[0].ToString();

                            colonneConfig.Titre = ModifyTitle(colonneConfig.Titre, tableName, config);



                            colonneConfig.Type = dataHelper.DbTypeConverter.Convert(dcr[1].ToString(), SqlCommands.Provider.ToString());

                            tableConfig.Colonnes.Add(colonneConfig);
                        }
                    }
                }

                if (!avc.IsThereAll(TabloidFields.TabloidFieldsArray.Count()))        //is all tabloid field there?
                {
                    var l = avc.NotInIndex(TabloidFields.TabloidFieldsArray.Count()); //list unaviable fields
                    var r = DialogResult.Yes;

                    if (!config.CreateAuto)
                    {
                        //Show message
                        var strCh = string.Join("\n\t- ",
                                                TabloidFields.TabloidFieldsArray
                                                .Where((f, index) => l.Any(i => i == index))
                                                .Select((x, index) => x.Name + "_" + tableName).ToArray());

                        r = MetroMessageBox.Show(own,
                                                 string.Format(
                                                     Resources.NewFromBaseForm_GetTable_,
                                                     tableName, strCh),
                                                 Resources.Information,
                                                 MessageBoxButtons.YesNo,
                                                 MessageBoxIcon.Exclamation);
                    }

                    if (r == DialogResult.Yes)
                    {
                        TabloidFields.CreateField(
                            TabloidFields.TabloidFieldsArray
                            .Where((f, index) => l.Any(i => i == index))
                            .ToList(), tableName, schema, config.ConnectionString);
                    }
                }

                var jr = WizardSQLHelper.SetJoinFromConstraint(tableConfig, config.ConnectionString, ref lastError); //getting join

                if (jr != null && !string.IsNullOrEmpty(lastError))
                {
                    throw new Exception(lastError);                                               //lblState.Text = lastError;
                }
                return(jr != null);
            }

            return(false);
        }