コード例 #1
0
        /// <summary>
        /// Display field list
        /// </summary>
        void upDateList()
        {
            if (cmbTypeJointure.SelectedItem == null)
            {
                return;
            }

            var tableToJoin = (string)cmbTable.SelectedItem;                    //getNewJoinedTable();
            var is1N        = cmbTypeJointure.SelectedItem.ToString() == "1:N"; //1:N complex list

            if (is1N)
            {
                lblChampRef2.Text = string.Format(Properties.Resources.RefFieldForTable, tableToJoin);
                lblChampRef.Text  = string.Format(Properties.Resources.RefFieldForTable, getJoinParentView());

                WizardSQLHelper.displayField(cmbChampRef2, tableToJoin, _connectionString, "");
                WizardSQLHelper.displayField(cmbChampRef, getJoinParentView().NomTable, _connectionString, getJoinParentView().Schema, "", false, !chkCmbChRefHT.Checked);
            }
            else
            {
                lblChampRef.Text = string.Format(Properties.Resources.RefFieldForTable, getJoinParentView());//1:N
                WizardSQLHelper.displayField(cmbChampRef, getJoinParentView().NomTable, _connectionString, getJoinParentView().Schema, "", false, !chkCmbChRefHT.Checked);
            }

            WizardSQLHelper.displayField(cmbOrder, tableToJoin, _connectionString, getJoinParentView().Schema, "", true);
        }
コード例 #2
0
        private void Button_end(object sender, PageEventArgs e)
        {
            var table          = radNewTable.Checked ? txtTable.Text.ToLower() : ((TabloidConfigView)cmbView.SelectedItem).NomTable;
            var schemaNewTable = radNewTable.Checked ? null : ((TabloidConfigView)cmbView.SelectedItem).Schema;
            var newDbKey       = radNewTable.Checked ? "id_" + txtTable.Text.ToLower() : ((TabloidConfigView)cmbView.SelectedItem).DbKey;

            var refField = radExistingField.Checked ? cmbExistingField.SelectedItem.ToString() : TxtRef.Text;
            var alias    = radUseAlias.Checked ? txtalias.Text : "";
            var useJoin  = radUseAlias.Checked ? null : existingJoin[0];

            JoinListUpdated = useJoin == null;

            e.Cancel = !WizardSQLHelper.SetDataBaseForList(
                this,
                false,
                _view.Schema,
                table,
                newDbKey,
                txtViewName.Text,
                chkAddToparamMenu.Checked,
                _view,
                refField,
                _connectionString,
                _provider,
                true,
                false,
                alias,
                radUseTable.Checked,
                schemaNewTable,
                useJoin,
                radExistingField.Checked);
        }
コード例 #3
0
        /// <summary>
        ///     Create table in base from a list
        /// </summary>
        /// <param name="tl"></param>
        /// <param name="connectionString"></param>
        public static bool CreateTable(IEnumerable <Table> tl, string connectionString, IWin32Window own)
        {
            foreach (var t in tl)
            {
                if (string.Equals(t.Name, "utilisateurs", StringComparison.InvariantCultureIgnoreCase))
                {
                    var utilFrm = new UtilEditor();
                    utilFrm.btnCancel.Enabled = false;
                    if (utilFrm.ShowDialog() == System.Windows.Forms.DialogResult.OK)//for user table need to ask for user 0
                    {
                        Program.AppSet.grainDeSable = Classes.WizardEvents.GetUniqueKey(7);
                        TabloidConfig.Config.updateCurrentKey(Program.AppSet.grainDeSable);
                        var param = new string[] { utilFrm.txtLogin.Text, utilFrm.txtNom.Text, utilFrm.txtPrenom.Text, utilFrm.txtMail.Text, Tabloid.Classes.Tools.SecurityHelper.EncryptPassword(utilFrm.txtMdp1.Text) };
                        WizardSQLHelper.ExecuteFromFile(t.SqlFile, param, connectionString, own);

                        Program.AppSet.ModeAuthentification = utilFrm.cmbAuth.SelectedIndex == 0 ? AuthenticationHandler.AuthenticationType.Formulaire : AuthenticationHandler.AuthenticationType.Windows;
                    }
                    else
                    {
                        return(false);
                    }
                }
                else
                {
                    SqlCommands.SqlFromFile(t.SqlFile, connectionString, false);
                }
            }
            return(true);
        }
コード例 #4
0
        //créer dans la liste {0} les élément à partir de {1}
        //à la création d'un enregistrement de {0} compléter la liste {1} :
        private void Info_CloseFromNext(object sender, PageEventArgs e)
        {
            // add insertselect function
            e.Cancel = !WizardSQLHelper.ExecuteFromFile("functions\\insertselect.sql", new string[] { _view.Schema }, Program.AppSet.ConnectionString, this);

            var where = string.IsNullOrEmpty(txtWhere.Text) ? "'1=1'" : txtWhere.Text;

            var dest = ((TabloidConfigJointure)cmbListe.SelectedItem);

            var src = ((TabloidConfigJointure)cmbSrc.SelectedItem);

            var srcFields  = $"concat('{src.DbKey},',New.{_view.DbKey})";
            var destFields = $"'{src.ChampDeRef},{dest.ChampDeRef2}'";

            var function = $"PERFORM {_view.Schema}.insertselect('{_view.Schema}.{src.NomTable}',{where},{srcFields},'{_view.Schema}.{dest.NomTable}',{destFields});";

            if (!string.IsNullOrEmpty(txtIf.Text))
            {
                function = $"if {txtIf.Text} Then " + function + "end if;";
            }


            var param = new string[] {
                _view.Schema,
                triggerName + _view.NomTable,
                _view.NomTable,
                "AFTER INSERT",
                _view.Schema + "." + triggerName + _view.NomTable,
                function
            };

            e.Cancel = !WizardSQLHelper.ExecuteFromFile("trigger.sql", param, Program.AppSet.ConnectionString, this);
        }
コード例 #5
0
        private void Info_CloseFromNext(object sender, PageEventArgs e)
        {
            if (txtGeomFiled.Text == "")
            {
                MetroMessageBox.Show(this, Properties.Resources.FieldNameNeeded, Properties.Resources.Erreur, MessageBoxButtons.OK, MessageBoxIcon.Error);
            }

            var param = new string[] { _view.Nom, txtGeomFiled.Text, $"geometry({cmbType.SelectedItem},{txtSrid.Text})", _view.Schema };

            WizardSQLHelper.ExecuteFromFile("addField.sql", param, Program.AppSet.ConnectionString, this);

            TabloidConfigGeoLoc.GeoLocType geoLocType;
            Enum.TryParse(cmbType.SelectedItem.ToString(), out geoLocType);

            _view.GeoLoc.Type        = geoLocType;
            _view.GeoLoc.TitreCouche = _view.Titre;
            _view.GeoLoc.Geom        = txtGeomFiled.Text;
            _view.GeoLoc.Srid        = txtSrid.Text;
            _view.GeoLoc.ForcerSRID  = true;

            if (chkAddMenu.Checked)
            {
                WizardSQLHelper.AddToMenu(this, _view, "Carte " + _view.Titre, TabloidConfigMenuItem.MenuType.Carte, null);
            }
        }
コード例 #6
0
 /// <summary>
 /// Build Module base table
 /// </summary>
 public static bool Activate(ModuleTableType moduleType, IWin32Window own)
 {
     foreach (string tableName in TableList[moduleType])
     {
         WizardSQLHelper.ExecuteFromFile(tableName + ".sql", null, Program.AppSet.ConnectionString, own);
     }
     return(true);
 }
コード例 #7
0
        public void BuildConstraint()
        {
            var key = WizardSQLHelper.GetPrimaryKeyName(Join.NomTable);

            //var param = new string[] { View.Schema, Join.NomTable, View.NomTable, Join.ChampDeRef, View.Schema, key };
            //WizardHelper.ExecuteFromFile("addConstraint.sql", param, Program.AppSet.ConnectionString);
            WizardSQLHelper.addConstraint(View.Schema, Join.NomTable, View.NomTable, Join.ChampDeRef, View.Schema, key, _own);
        }
コード例 #8
0
        private void RenameTable(object sender, EventArgs e)
        {
            var frmRename = new Rename(ParentTableResult.TableName);

            if (frmRename.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                var param = new string[] { Program.AppSet.Schema, ParentTableResult.TableName, frmRename.txtNewName.Text };
                WizardSQLHelper.ExecuteFromFile("renameTable.sql", param, Program.AppSet.ConnectionString, _own);
            }
        }
コード例 #9
0
        /// <summary>
        /// Function creation wizard
        /// </summary>
        /// <param name="schema">Name of postgres schema or database name for mysql</param>
        public WizardFunction(string schema)
        {
            InitializeComponent();

            string lastError;

            var dt = DataTools.Data(WizardSQLHelper.BuildSQLFromFile("functionList.sql", new String[] { schema }), Program.AppSet.ConnectionString, out lastError);

            cmbFunction.DataSource    = dt;
            cmbFunction.DisplayMember = dt.Columns[1].ColumnName;
        }
コード例 #10
0
        void Button_end(object sender, PageEventArgs e)
        {
            if (Tools.isTableExist(txtTable.Text))
            {
                MetroMessageBox.Show(this, "Ce nom de table existe déja !", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
                e.Cancel = true;
                return;
            }

            e.Cancel = !WizardSQLHelper.ConvertSimpleList(_view, _field, txtTable.Text, this);
        }
コード例 #11
0
 void Button_end(object sender, PageEventArgs e)
 {//e.Cancel = !WizardSQLHelper.SetDataBaseForList(true, _view.Schema, txtTable.Text, txtViewName.Text, "id_"+ txtViewName.Text, false, _view, null, _connectionString, _provider, chkName.Checked, chkDistinct.Checked); JD 2/9/19
     if (radioCrea.Checked)
     {
         e.Cancel = !WizardSQLHelper.SetDataBaseForList(this, true, _view.Schema, txtTable.Text, "id_" + txtTable.Text, txtViewName.Text, false, _view, null, _connectionString, _provider, chkName.Checked, chkDistinct.Checked);
     }
     else
     {
         e.Cancel =
             !WizardSQLHelper.AddGridviewField(_view, txtViewName.Text, (TabloidConfigJointure)cmbJoin.SelectedValue, cmbChamp.SelectedItem.ToString(), _ctrl == TemplateType.GridView, chkDistinct.Checked);
     }
 }
コード例 #12
0
        void Button_end(object sender, PageEventArgs e)
        {
            var newTable = WizardSQLHelper.TitleToSystemName(txtTable.Text);

            if (Tools.isTableExist(newTable))
            {
                MetroMessageBox.Show(this, Properties.Resources.TableAlreadyExist, Properties.Resources.Error, MessageBoxButtons.OK, MessageBoxIcon.Error);
                e.Cancel = true;
                return;
            }

            e.Cancel = !WizardSQLHelper.ConvertFieldToList(_view, _field, newTable, this);
        }
コード例 #13
0
        /// <summary>
        /// create sql command if necessary
        /// </summary>
        /// <param name="chkNewField"></param>
        /// <param name="cmbField"></param>
        /// <param name="txtField"></param>
        /// <returns></returns>
        private string buildField(RadioButton chkNewField, ComboBox cmbField, TextBox txtField, ref string sql)
        {
            if (chkNewField.Checked)
            {
                var param = new string[] { _view.NomTable, txtField.Text, "timestamp", _view.Schema };

                sql += WizardSQLHelper.BuildSQLFromFile("addField.sql", param);

                return(txtField.Text);
            }

            return(cmbField.Text);
        }
コード例 #14
0
        /// <summary>
        /// Remove Module base table
        /// </summary>
        public static bool Remove(ModuleTableType moduleType, IWin32Window own)
        {
            foreach (string tableName in TableList[moduleType])
            {
                var competedTableName = tableName;
                if (Program.AppSet.ProviderType == Provider.Postgres)
                {
                    competedTableName = CurrentContext.CurrentView.Schema + "." + tableName;
                }

                WizardSQLHelper.ExecuteFromFile("supTable.sql", new string[] { competedTableName }, Program.AppSet.ConnectionString, own);
            }
            return(true);
        }
コード例 #15
0
        private void addToMenu(TabloidConfigView t)
        {
            if (!chkAjMenu.Checked)
            {
                return;
            }

            if (radMnMain.Checked)
            {
                WizardSQLHelper.AddToMenu(this, t);
            }
            else
            {
                WizardSQLHelper.AddToParamMenu(t, this);
            }
        }
コード例 #16
0
        public void setTableList(IServiceProvider provider, object value)
        {
            if (provider != null)
            {
                // This service is in charge of popping our ListBox.
                _service = ((IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)));
                _list    = new ListBox();

                if (_service != null)
                {
                    _list.Click += ListBox_Click;
                    WizardSQLHelper.displayTable(_list, Program.AppSet.ConnectionString, (string)value, true);

                    _service.DropDownControl(_list);
                }
            }
        }
コード例 #17
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Button_end(object sender, PageEventArgs e)
        {
            if (radAuto.Checked)
            {
                foreach (TabloidConfigJointure Tj in lstAutoJoin.SelectedItems)
                {
                    Tools.AddWithUniqueName(_view.Jointures, Tj, "J", _parentJoin == null ? null : _parentJoin.Jointures);
                }
            }
            else
            {
                var newTable = cmbTable.SelectedItem.ToString();
                var dbKey    = WizardSQLHelper.GetPrimaryKeyName(newTable);

                if (dbKey == null)
                {
                    MetroMessageBox.Show(this, Properties.Resources.CantFindPrimaryKey, Properties.Resources.Erreur, MessageBoxButtons.OK, MessageBoxIcon.Error);
                    return;
                }


                var is1N = cmbTypeJointure.SelectedItem.ToString() == "1:N";

                var Tj = new TabloidConfigJointure
                {
                    NomTable    = newTable,
                    Relation    = cmbTypeJointure.SelectedItem.ToString(),
                    DbKey       = dbKey,
                    Parent      = _parentJoin,
                    ChampDeRef  = is1N ? getJoinParentView().NomTable + "." + cmbChampRef.SelectedItem : cmbChampRef.SelectedItem.ToString(),
                    ChampDeRef2 = is1N ? cmbChampRef2.SelectedItem.ToString() : "",
                };

                if (cmbOrder.SelectedIndex > 0)
                {
                    Tj.Order = cmbOrder.SelectedItem + " " + (cmbOrderType.SelectedIndex == 0 ? "asc" : "desc");
                }


                Tj.Visu = WizardSQLHelper.GetVisibiliteFromCheckedListBox(lstVisibilites);

                Tools.AddWithUniqueName(_view.Jointures, Tj, "J", _parentJoin == null ? null : _parentJoin.Jointures);
            }
        }
コード例 #18
0
        /// <summary>
        /// Delete column in table
        /// Remove constraint if exist
        /// </summary>
        /// <param name="table">Field table name without schema</param>
        /// <param name="schema"></param>
        public static void DropColumn(string table, string column, string schema, IWin32Window own)
        {
            string error;
            var    constraints = DataTools.Data(SqlCommands.SqlGetForeignKey(table, schema), Program.AppSet.ConnectionString, out error);

            var columnConstraints = new DataView(constraints,
                                                 constraints.Columns[0].ColumnName + " like '" + column + "'",
                                                 "", DataViewRowState.Unchanged);

            foreach (DataRowView dr in columnConstraints)
            {
                var param1 = new string[] { schema, dr[3].ToString(), table };
                WizardSQLHelper.ExecuteFromFile("DropForeignKey.sql", param1, Program.AppSet.ConnectionString, own);
            }

            var param = new string[] { schema + "." + table, ChampTools.RemoveTableName(column) };

            WizardSQLHelper.ExecuteFromFile("supField.sql", param, Program.AppSet.ConnectionString, own);
        }
コード例 #19
0
        public TableFieldSelectorForm(TabloidConfigView view, string value, string tableName = null)
        {
            Value = value;
            InitializeComponent();

            WizardSQLHelper.displayTable(fieldSelector1.cmbTable, Program.AppSet.ConnectionString, view.NomTable);

            fieldSelector1.ConnectionString     = Program.AppSet.ConnectionString;
            fieldSelector1.cmdSchema.DataSource = AppSetting.GetSchemaList(Program.AppSet.ProviderType);

            fieldSelector1.lstChamp.SelectedIndexChanged += cmbChamp_SelectedIndexChanged;

            if (!string.IsNullOrEmpty(tableName))
            {
                fieldSelector1.cmbTable.SelectedIndex = fieldSelector1.cmbTable.FindStringExact(tableName);
            }
            if (!string.IsNullOrEmpty(value))
            {
                fieldSelector1.lstChamp.SelectedIndex = fieldSelector1.lstChamp.FindStringExact(value);
            }
        }
コード例 #20
0
        public WizardJoin(TabloidConfigView view, TabloidConfigJointure parentJoin, string connectionString)
        {
            _connectionString = connectionString;
            _view             = view;
            _parentJoin       = parentJoin;

            InitializeComponent();

            wjStart.CloseFromNext += wjRef_CloseFromNext;
            wjRef2.ShowFromNext   += Rel_ShowFromNext;
            wjRef2.ShowFromBack   += Back_Rel_ShowFromNext;
            Fin.CloseFromBack     += Fin_CloseFromBack;

            _srcView = parentJoin == null ? view : TabloidConfig.Config.Views[parentJoin.NomTable];

            upDateList();

            WizardSQLHelper.displayTable(cmbTable, Program.AppSet.ConnectionString, _srcView.NomTable, false);

            cmbTable.SelectedIndex = 0;

            lblChampRef.Text = string.Format(lblChampRef.Text, _srcView.NomTable);

            cmbTypeJointure.SelectedIndex = 0;

            cmbOrderType.Items.Add(Properties.Resources.Increasing);
            cmbOrderType.Items.Add(Properties.Resources.Decreasing);
            cmbOrderType.SelectedIndex = 0;

            WizardSQLHelper.SetVisibiliteCheckedBoxList(lstVisibilites);

            string lastError = "";
            // list automatic join
            var searchTable = _parentJoin == null ? _view : TabloidConfig.Config.Views[_parentJoin.NomTable];

            _autoJoinList          = WizardSQLHelper.SetJoinFromConstraint(searchTable, Program.AppSet.ConnectionString, ref lastError, false);
            lstAutoJoin.DataSource = _autoJoinList;

            radManu.Checked = _autoJoinList.Count == 0;
        }
コード例 #21
0
        private void cmbTable_SelectedIndexChanged(object sender, EventArgs e)
        {
            WizardSQLHelper.displayField(cmbChamp, ((TabloidConfigView)cmbTable.SelectedValue).NomTable, _connectionString);

            if (init)
            {
                return;
            }

            if (cmbJoin.SelectedIndex == -1 || ((TabloidConfigView)cmbTable.SelectedItem).NomTable != ((TabloidConfigJointure)cmbJoin.SelectedItem).NomTable)//no selection look for an interesting join in current list
            {
                cmbJoin.SelectedItem = null;

                selectJoinFromTableName();

                if (cmbJoin.SelectedIndex == -1)//no interesting join in current list try to create one from joins in joined table list
                {
                    var joinedTable = (TabloidConfigView)cmbTable.SelectedItem;

                    foreach (TabloidConfigJointure j in joinedTable.Jointures)
                    {
                        if (j.NomTable == _view.NomTable)
                        {
                            var dr = MetroMessageBox.Show(this, Properties.Resources.NoJoinCreate, Properties.Resources.CreateJoin, MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            if (dr == DialogResult.No)
                            {
                                break;
                            }

                            WizardJoin.joinConverter(j, true, joinedTable);

                            cmbJoin.DataSource = get1NJoin();

                            selectJoinFromTableName();
                        }
                    }
                }
            }
        }
コード例 #22
0
        private void Info_CloseFromNext(object sender, PageEventArgs e)
        {
            Program.AppSet.smsBoxPassword = txtPass.Text;
            Program.AppSet.smsBoxUser     = txtUser.Text;

            Tabloid.Classes.Config.Helper.AutomaticViewBuilder.setTextes(Program.AppSet.Schema);

            if (chkAlert.Checked)
            {
                var alertMn = new TabloidConfigMenuItem {
                    Titre = Properties.Resources.Alert,
                    Type  = TabloidConfigMenuItem.MenuType.Simple
                };

                WizardSQLHelper.AddToMenu(this, alertMn, null, true);

                WizardSQLHelper.AddToMenu(this, new TabloidConfigMenuItem
                {
                    Titre = Properties.Resources.SimpleSMS,
                    Type  = TabloidConfigMenuItem.MenuType.Sms
                }, alertMn, true);

                WizardSQLHelper.AddToMenu(this, new TabloidConfigMenuItem
                {
                    Titre = Properties.Resources.MultiSMS,
                    Type  = TabloidConfigMenuItem.MenuType.Filtre,
                    Table = _view.Nom
                }, alertMn, true);
            }
            if (chkText.Checked)
            {
                WizardSQLHelper.AddToParamMenu(this, new TabloidConfigMenuItem
                {
                    Titre = Properties.Resources.PreDefineText,
                    Type  = TabloidConfigMenuItem.MenuType.TxtSms
                }, true);
            }
        }
コード例 #23
0
        public void ReadConnectionSetting(XmlFile src, bool remove, IWin32Window own)
        {
            foreach (var pi in GetType().GetProperties())
            {
                switch (pi.Name)
                {
                case "ConnectionString":
                    ConnectionString = src.GetAttributeFromCollection("/connectionStrings/add",
                                                                      "TabloidConnection", "connectionString");
                    break;

                case ("ProviderType"):

                    DataTools.DefaultProviderName = src.GetAttributeFromCollection("/connectionStrings/add",
                                                                                   "TabloidConnection", "providerName");

                    ProviderType = GetProviderType(DataTools.DefaultProviderName);
                    WizardTools.Tools.SetDefaultProviderFromAppSet();
                    SqlCommands.Provider = ProviderType;
                    break;
                }
            }

            if (string.IsNullOrEmpty(Schema))//set schéma for old version
            {
                if (MetroMessageBox.Show(own, Properties.Resources.AddSchema, Properties.Resources.Confirmation, MessageBoxButtons.OKCancel)
                    == DialogResult.OK)
                {
                    setSchemaFromConnectionString(ProviderType);
                    WizardSQLHelper.SetAllViewSchema(Schema);
                }
            }

            if (remove)
            {
                src.RemoveNode("/connectionStrings/add[@name='TabloidConnection']");
            }
        }
コード例 #24
0
        /// <summary>
        /// Build required task on wizard end
        /// </summary>
        /// <returns></returns>
        bool addField()
        {
            var useJoinName = "";

            if (_iviewFct is TabloidConfigView && !radbutton.Checked)
            {
                var view = (TabloidConfigView)_iviewFct;

                if (_useDatabaseField && //handel label with no database field
                    ((TabloidBaseControl)wzCmbEditeur.SelectedItem).type != TemplateType.Graphique) //no database field for graphic
                {
                    if (radioCrea.Checked)                                                          //field must be created in database
                    {
                        var t       = (DbType)Enum.Parse(typeof(DbType), lstTypeCrea.SelectedItem.ToString());
                        var sqlType = dataHelper.DbTypeConverter.ConvertFromGenericDbType(t, Tools.ConvertProviderType(_provider));

                        var fieldArg = txtLong.Text;
                        if (txtDec.Text != "")
                        {
                            fieldArg = fieldArg + "," + txtDec.Text;
                        }
                        if (fieldArg != "")
                        {
                            fieldArg = "(" + fieldArg + ")";
                        }

                        var param = new string[] { view.NomTable, txtNomCrea.Text, sqlType + fieldArg, view.Schema };

                        if (!WizardSQLHelper.ExecuteFromFile("addField.sql", param, _connectionString, this))
                        {
                            return(true);
                        }
                    }
                    else//use existing field
                    {
                        if (fs.cmbTable.SelectedValue.ToString() != view.NomTable &&
                            ((TabloidBaseControl)wzCmbEditeur.SelectedItem).type != TemplateType.Graphique)//verify if field is in current table
                        {
                            var useJoin = view.Jointures.GetJoinFromTableName(fs.cmbTable.SelectedValue.ToString());
                            if (useJoin == null)//verify if table is in joined table list
                            {
                                if (MetroMessageBox.Show(this, Resources.add_join, Resources.Warning, MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) == DialogResult.Yes)
                                {
                                    var w = new WizardJoin(
                                        view,
                                        null,
                                        Program.AppSet.ConnectionString);

                                    w.ShowDialog();

                                    useJoin = view.Jointures.GetJoinFromTableName(fs.cmbTable.SelectedValue.ToString());
                                    if (useJoin != null)
                                    {
                                        useJoinName = useJoin.Nom;
                                    }
                                }
                            }
                            else
                            {
                                useJoinName = useJoin.Nom;
                            }
                        }
                    }
                }
            }

            if (radbutton.Checked)//add button
            {
                Tc = new TabloidConfigColonne
                {
                    Champ         = fs.lstChamp.Text,
                    Titre         = WzTxtTitre.Text,
                    Editeur       = TemplateType.Btn,
                    Type          = DbType.String,
                    EditeurParam2 = txtIcoBtn.Text,
                    EditeurParam3 = txtUrlBtn.Text,
                    EditeurParam4 = txtToolTipBtn.Text,
                    VisibleDetail = true,
                    Parent        = _parentField,
                    Nom           = "btn"
                }
            }
            ;
            else//add other type field
            {
                Tc = new TabloidConfigColonne
                {
                    Champ   = radioCrea.Checked ? txtNomCrea.Text : fs.lstChamp.Text,
                    Titre   = WzTxtTitre.Text,
                    Editeur = ((TabloidBaseControl)wzCmbEditeur.SelectedItem).type,
                    Type    = radioCrea.Checked ?
                              (DbType)Enum.Parse(typeof(DbType), lstTypeCrea.SelectedItem.ToString()) :
                              DbType.String,
                    EditeurParam1 = txtUrlBtn.Text,
                    Parent        = _parentField,
                    Jointure      = useJoinName,
                    Nom           = "C"
                };

                if (Tc.Editeur == TemplateType.Picture)
                {
                    Tc.EditeurParam1 = "144x200";
                    Tc.EditeurParam2 = "/Tabloid/images/inconnu.png";
                    Tc.EditeurParam3 = "jpg";
                    Tc.EditeurParam4 = "4";
                }

                if (Tc.Editeur == TemplateType.Graphique)
                {
                    Tc.EditeurParam1 = ((TabloidConfigGraph)cmbGraph.SelectedItem).Nom;
                }

                if (_iviewFct is TabloidConfigView)
                {
                    var view = (TabloidConfigView)_iviewFct;

                    if (Tc.Editeur == TemplateType.Mobile)
                    {
                        view.Recherche.ChampMobile = radioCrea.Checked ? txtNomCrea.Text : fs.lstChamp.Text;
                        WizardSQLHelper.SetMobile(view);
                    }
                    if (Tc.Editeur == TemplateType.Mail)
                    {
                        view.Recherche.ChampMail = radioCrea.Checked ? txtNomCrea.Text : fs.lstChamp.Text;
                    }
                }
            }

            WizardSQLHelper.SetFieldVisibilityProperties(Tc, lstVisibilites);

            var parent = _iviewFct.Colonnes;

            if (_parentField != null)
            {
                parent = _parentField.Colonnes;
            }

            Tools.AddWithUniqueName(_iviewFct.Colonnes, Tc, "C", parent);

            return(false);
        }
コード例 #25
0
 private void WzTxtTitre_TextChanged(object sender, EventArgs e)
 {
     txtNomCrea.Text = WizardSQLHelper.TitleToSystemName(WzTxtTitre.Text);
 }
コード例 #26
0
        private void Button_end(object sender, PageEventArgs e)
        {
            var param = new string[] { txtSchema.Text, txtTable.Text, TxtRef.Text };

            if (radUseExistingTable.Checked)
            {
                string lastError;
                //find db key
                var dc = DataTools.Data(SqlCommands.SqlGetColums(cmbTable.Text), _connectionString, out lastError);//3

                param = new string[] { Program.AppSet.Schema, cmbTable.Text, dc.Select(dc.Columns[3].ColumnName + " like 'PRI%'")[0][0].ToString() };
            }

            var viewName = String.IsNullOrEmpty(txtNomVue.Text) ? param[1] : txtNomVue.Text;

            if (TabloidConfig.Config.Views.Contains(viewName))
            {
                MetroMessageBox.Show(this, TabloidWizard.Properties.Resources.ViewNameAlreadyExist, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
                e.Cancel = true;
                return;
            }


            //add new View
            CreatedView = new TabloidConfigView
            {
                Schema   = param[0],
                Nom      = viewName,
                Titre    = txtInititView.Text,
                NomTable = param[1],// String.IsNullOrEmpty(txtNomVue.Text) ? "" : txtNomVue.Text,
                DbKey    = param[2]
            };

            if (radUseExistingTable.Checked)
            {
                TabloidConfig.Config.Views.Add(CreatedView);

                //set as default view
                setAsDefaultView(viewName);

                //add to menu
                addToMenu(CreatedView);

                return;
            }

            e.Cancel = !WizardSQLHelper.ExecuteFromFile("table.sql", param, _connectionString, this);
            if (e.Cancel)
            {
                return;
            }

            var Tc = new TabloidConfigColonne
            {
                Champ   = "nom_" + param[1],
                Titre   = "Nom",
                Editeur = TemplateType.TextBox,
                Type    = DbType.String
            };

            Tools.AddWithUniqueName(CreatedView.Colonnes, Tc, "C");

            TabloidConfig.Config.Views.Add(CreatedView);

            //set as default view
            setAsDefaultView(viewName);

            //add to menu
            addToMenu(CreatedView);
        }
コード例 #27
0
        private void Button_end(object sender, PageEventArgs e)
        {
            string sql = "";

            var titre = buildField(chkCreaTitre, cmbTitre, txtTitre, ref sql);
            var deb   = buildField(chkCreaDeb, cmbDeb, txtDebut, ref sql);
            var fin   = buildField(chkCreaFin, cmbFin, txtFin, ref sql);

            if (sql != "")
            {
                sql     += "commit;";
                e.Cancel = !WizardSQLHelper.ExecuteSQLString(sql, this);
                if (e.Cancel)
                {
                    return;
                }
            }

            var cal = new TabloidConfigCalendrier
            {
                Titre = titre,
                Debut = deb,
                Fin   = fin
            };

            var cTitre = new TabloidConfigColonne
            {
                Titre = "Titre",
                Champ = titre,
                Type  = DbType.String
            };

            var cDebut = new TabloidConfigColonne
            {
                Titre = "Début",
                Champ = deb,
                Type  = DbType.DateTime
            };

            var cFin = new TabloidConfigColonne
            {
                Titre = "Fin",
                Champ = fin,
                Type  = DbType.DateTime
            };

            if (chkCreaTitre.Checked)
            {
                Tools.AddWithUniqueName(_view.Colonnes, cTitre, "C");
            }
            if (chkCreaDeb.Checked)
            {
                Tools.AddWithUniqueName(_view.Colonnes, cDebut, "C");
            }
            if (chkCreaFin.Checked)
            {
                Tools.AddWithUniqueName(_view.Colonnes, cFin, "C");
            }

            _view.Calendrier = cal;

            if (chkAddToMenu.Checked)
            {
                var mn = radMnParam.Checked ? WizardSQLHelper.getParamMenu() : null;

                WizardSQLHelper.AddToMenu(this, _view, null, TabloidConfigMenuItem.MenuType.Calendrier, mn);
            }
        }
コード例 #28
0
ファイル: QGen.cs プロジェクト: legrandnarbonne/TabloidWizard
        private void btnGen_Click(object sender, EventArgs e)
        {
            bool result;
            var  createdList = new List <string>();

            var startViewCount = TabloidConfig.Config.Views.Count;

            //clean response list
            foreach (DataRow dr in _tbContainer.Rows)
            {
                if (dr.RowState != DataRowState.Deleted && dr["Réponses"].ToString() != "")
                {
                    var r = dr["Réponses"].ToString().Trim();
                    r = r.Replace('-', ';');
                    dr["Réponses"] = r;
                }
            }

            _tbContainer.AcceptChanges();

            //search duplicate response list for combo box
            _tbContainer.Columns.Add("Liste");
            var list = 0;

            foreach (DataRow dr in _tbContainer.Rows)
            {
                if (dr.RowState != DataRowState.Deleted && dr["Réponses"].ToString() != "" && dr["Liste"] == DBNull.Value)
                {
                    var currentListName = "lr" + list.ToString();

                    dr["Liste"] = currentListName;

                    var dv = new DataView(_tbContainer, string.Format("Réponses like '{0}'", DataTools.ExtendedStringToSql(dr["Réponses"].ToString())), "", DataViewRowState.Unchanged);
                    foreach (DataRowView drv in dv)
                    {
                        drv["Liste"] = currentListName;
                    }

                    list++;
                }
            }

            //add new View
            var param = new string[] { Program.AppSet.Schema, txtVue.Text, "id_" + txtVue.Text };
            var t     = new TabloidConfigView
            {
                Schema          = param[0],
                Nom             = txtVue.Text,
                Titre           = txtVue.Text,
                NomTable        = txtVue.Text,
                DbKey           = param[2],
                Detail          = true,
                DisplayOnTowRow = true
            };

            result = WizardSQLHelper.ExecuteFromFile("table.sql", param, Program.AppSet.ConnectionString, this);
            if (!result)
            {
                return;
            }

            var i = 1;

            param = new string[] { txtVue.Text, "", "", Program.AppSet.Schema };
            foreach (DataRow dr in _tbContainer.Rows)
            {
                if (dr.RowState != DataRowState.Deleted)
                {
                    param[1] = "R" + i;
                    var info = dr["Info"].ToString();

                    var Tc = new TabloidConfigColonne
                    {
                        Nom          = "C" + i,
                        Champ        = "r" + i,
                        Groupe       = "!!!" + dr["Groupe"],
                        Titre        = dr["Questions"].ToString(),
                        VisibleListe = false,
                        Information  = info
                    };

                    if (dr["Réponses"].ToString() == "")
                    { //TextBox
                        Tc.Editeur = Tabloid.Classes.Controls.TemplateType.Defaut;
                        Tc.Type    = DbType.String;
                        param[2]   = dataHelper.DbTypeConverter.ConvertFromGenericDbType(DbType.String, Classes.WizardTools.Tools.ConvertProviderType(Program.AppSet.ProviderType));
                        result     = WizardSQLHelper.ExecuteFromFile("addField.sql", param, Program.AppSet.ConnectionString, this);

                        t.Colonnes.Add(Tc);
                    }
                    else
                    {//ComboBox
                        var tableCreationNeeded = !createdList.Contains(dr["Liste"].ToString());

                        result = WizardSQLHelper.SetDataBaseForList(this, false, Program.AppSet.Schema, dr["Liste"].ToString(), dr["Liste"].ToString(), "id_" + dr["Liste"].ToString(), false, t, Tc.Champ, Program.AppSet.ConnectionString, Program.AppSet.ProviderType, true, false, tableCreationNeeded ? "" : "alr" + i, !tableCreationNeeded);

                        var c = t.Colonnes[t.Colonnes.Count - 1];                        //last added column
                        c.Groupe       = "!!!" + dr["Groupe"];
                        c.Editeur      = Tabloid.Classes.Controls.TemplateType.ComboBox; //replace comboboxplus by combobox
                        c.Titre        = dr["Questions"].ToString();
                        c.VisibleListe = false;
                        c.Obligatoire  = true;
                        c.Information  = info;
                        createdList.Add(dr["Liste"].ToString());
                    }

                    i++;
                }
            }

            t.Index = TabloidConfig.Config.Views.Count - startViewCount;
            TabloidConfig.Config.Views.Add(t);

            // fill possible response table (lrx)
            DataView  view           = new DataView(_tbContainer);
            DataTable distinctValues = view.ToTable(true, "Liste", "Réponses");

            foreach (DataRow dr in distinctValues.Rows)
            {
                if (dr.RowState != DataRowState.Deleted)
                {
                    var sols   = dr["Réponses"].ToString().Split(';');
                    var values = "";

                    foreach (string sol in sols)
                    {
                        values += $"('{DataTools.StringToSql(sol.Trim())}'),";
                    }


                    values = values.TrimEnd(',');

                    var sql = $"INSERT INTO {Program.AppSet.Schema}.{ dr["Liste"]} (nom_{ dr["Liste"]}) VALUES {values}";

                    string error;
                    DataTools.Command(sql, null, Program.AppSet.ConnectionString, out error);
                }
            }


            //add default url field in user table
            var sqlType      = dataHelper.DbTypeConverter.ConvertFromGenericDbType(DbType.String, Classes.WizardTools.Tools.ConvertProviderType(Program.AppSet.ProviderType));
            var requestParam = new string[] { "roles", "default_url", sqlType + $"(300)", Program.AppSet.Schema };

            WizardSQLHelper.ExecuteFromFile("addField.sql", requestParam, Program.AppSet.ConnectionString, this);

            //add role "sonde"
            var detailURL    = AppSetting.GetDefaultPageURL(t.Nom, TabloidPages.Type.Detail) + "&mode=questionnaire";
            var profileRight = (ulong)Math.Pow(2, t.Index);
            //var profileRight2 = ~profileRight;

            var sql2 = $"insert into roles (titre_role,datemaj_roles,droits_lecture,droits_ecriture,droits_limite,droits_limiteecr,droits_suppression,default_url) values ('Sondé',now(),{profileRight},{profileRight},{profileRight},{profileRight},0,'{detailURL}')";

            sql2 += string.Format(
                SqlConverter.GetSql(SqlConverter.SqlType.InsertCommandKeyOut),
                "id_role");

            string error2;

            var roleId = DataTools.ScalarCommand(sql2, null, Program.AppSet.ConnectionString, out error2);

            //set config
            Program.AppSet.TabloidType = TabloidTypes.Questionnaire;
            AppSetting.setDefaultPage(t.Nom);
            Program.AppSet.champPageDefaut    = "default_url";
            Program.AppSet.AutoenrollmentRole = roleId.ToString();

            DialogResult = DialogResult.OK;
            Close();
        }
コード例 #29
0
 private void cmbTable_SelectedIndexChanged(object sender, System.EventArgs e)
 {
     WizardSQLHelper.displayField(fieldSelector1.lstChamp, fieldSelector1.cmbTable.SelectedItem.ToString(), Program.AppSet.ConnectionString);
 }
コード例 #30
0
 private void txtViewName_TextChanged(object sender, EventArgs e)
 {
     txtTable.Text = WizardSQLHelper.TitleToSystemName(txtViewName.Text);
 }