/// <summary> /// Set TabloidConfigColonne visibility using checkboxlist element /// </summary> /// <param name="c"></param> /// <param name="clb"></param> public static void SetFieldVisibilityProperties(TabloidConfigColonne c, CheckedListBox clb) { var checkedItems = clb.CheckedItems; foreach (string p in Visibilities.Keys) { var propertyInfo = c.GetType().GetProperty(Visibilities[p]); if (propertyInfo != null) { propertyInfo.SetValue(c, checkedItems.Contains(p), null); } } }
/// <summary> /// Add view/gridView field and distinct if required /// </summary> /// <param name="sourceView">tabloidConfigView containing the list field</param> /// <param name="FieldTitle">Title of created field</param> /// <param name="join">TabloidConfigJoin used for field</param> /// <param name="fieldName">datatable field name</param> /// <param name="gridView">true to create gridview false to create view</param> /// <param name="addDistinct">add distinct to source view</param> public static bool AddGridviewField(TabloidConfigView sourceView, string FieldTitle, TabloidConfigJointure join, string fieldName, bool gridView, bool addDistinct) { if (!string.IsNullOrEmpty(fieldName)) { var c = new TabloidConfigColonne { Type = DbType.String, Titre = FieldTitle, VisibleListe = false, Champ = fieldName, Jointure = join.Nom, Editeur = gridView ? TemplateType.GridView : TemplateType.View }; WizardTools.Tools.AddWithUniqueName(sourceView.Colonnes, c, "C"); } if (addDistinct) { var newDistinct = sourceView.NomTable + "." + sourceView.DbKey; sourceView.Distinct = addIfNotExist(sourceView.Distinct, newDistinct); if (string.IsNullOrEmpty(sourceView.Order)) { sourceView.Order = sourceView.Distinct; } else { var orderParts = sourceView.Order.Split(' ');//remove order asc/desc //orderParts[0] += "," + sourceView.Distinct; addIfNotExist(orderParts[0], newDistinct); sourceView.Order = string.Join(" ", orderParts);//retrieve asc/desc } } sourceView.Detail = true; return(true); }
//--Editeur-->Champ public WizardField(IViewFct view, TabloidConfigColonne parentField, string connectionString, Provider provider) { _iviewFct = view; _parentField = parentField; _provider = provider; _connectionString = connectionString; InitializeComponent(); Champ.CloseFromNext += validateFieldCreation; Champ.CloseFromNext += validateFieldEditorCompliance; Champ.CloseFromBack += validateFieldCreation; Champ.ShowFromBack += ChampShowCreation; Button.ShowFromBack += Button_ShowFromBack; Button.ShowFromNext += Button_ShowFromNext; Editeur.ShowFromNext += Editeur_ShowFromNext; Editeur.CloseFromNext += Editeur_CloseFromNext; Editeur.ShowFromBack += Editeur_ShowFromBack; Graphique.ShowFromNext += Graphique_ShowFromNext; Graphique.ShowFromBack += Graphique_ShowFromBack; visibilite.ShowFromBack += Visbile_ShowFromBack; visibilite.CloseFromBack += Visbile_CloseFromBack; visibilite.Enter += updateVisibilityList; if (_iviewFct is TabloidConfigView) { cmbGraph.DataSource = ((TabloidConfigView)view).Graphiques; } fs.ConnectionString = _connectionString; fs.cmdSchema.DataSource = AppSetting.GetSchemaList(_provider);//.Items.Add("finance_subv"); fs.Enabled = false; }
/// <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); }
public WizardSimpleListConverter(TabloidConfigView view, TabloidConfigColonne field) { InitializeComponent(); _field = field; _view = view; }
/// <summary> /// Convert combox list to table list /// </summary> /// <param name="view"></param> /// <param name="field"></param> /// <param name="newTableName"></param> /// <returns></returns> public static bool ConvertSimpleList(TabloidConfigView view, TabloidConfigColonne field, string newTableName, IWin32Window own) { var join = view.Jointures.GetJointure(field.Jointure); //search for a unique constraint name var fk1Name = SearchConstraintUniqueName(view.NomTable + "_fk", view.Schema); var fk2Name = SearchConstraintUniqueName(join.NomTable + "_fk", view.Schema); var param = new[] { view.Schema, //0 schema view.NomTable, //1 master table join.NomTable, //2 actually joined table newTableName, //3 new intermediate table view.DbKey, //4 master table dbkey join.ChampDeRef, //5 master table foreign key field join.DbKey, //6 actually joined table primary key fk1Name, fk2Name }; var result = ExecuteFromFile("fieldListTOfieldComplexList.sql", param, Program.AppSet.ConnectionString, own); if (!result) { return(false); } SqlCommands.DropColumn(view.NomTable, join.ChampDeRef, view.Schema, own); var joinLst = new TabloidConfigJointure { Relation = "1:N", NomTable = newTableName, DbKey = "id_" + newTableName, ChampDeRef = view.NomTable + "." + view.DbKey, ChampDeRef2 = view.NomTable + "_id" }; var join2 = new TabloidConfigJointure { NomTable = join.NomTable, DbKey = join.DbKey, ChampDeRef = join.NomTable + "_id", Order = join.Order }; var joinLstRoleID = WizardTools.Tools.AddWithUniqueName(view.Jointures, joinLst, "J"); WizardTools.Tools.AddWithUniqueName(view.Jointures, join2, "J", joinLst.Jointures); view.Detail = true; view.Jointures.Remove(join); field.Jointure = joinLstRoleID; field.Editeur = TemplateType.GridView; field.VisibleListe = false; var lstView = new TabloidConfigView { Nom = newTableName, Titre = newTableName, Schema = view.Schema, DbKey = "id_" + newTableName }; var joinLstView = new TabloidConfigJointure { NomTable = view.NomTable, DbKey = view.DbKey, ChampDeRef = view.NomTable + "_id" }; var joinLstView2 = new TabloidConfigJointure { NomTable = join.NomTable, DbKey = join.DbKey, ChampDeRef = join.NomTable + "_id" }; var j1 = WizardTools.Tools.AddWithUniqueName(lstView.Jointures, joinLstView, "J"); var j2 = WizardTools.Tools.AddWithUniqueName(lstView.Jointures, joinLstView2, "J"); //var c1 = new TabloidConfigColonne //{ // Titre = view.NomTable, // Type = DbType.Int16, // Champ = view.DbKey, // Editeur = TemplateType.ComboBoxPlus, // Jointure = j1 //}; var c2 = new TabloidConfigColonne { Titre = field.Titre, Type = DbType.Int16, Champ = field.Champ, Valideurs = field.Valideurs, Obligatoire = field.Obligatoire, Information = field.Information, Editeur = TemplateType.ComboBoxPlus, Jointure = j2 }; //WizardTools.addWithUniqueName(lstView.Colonnes, c1, "C"); WizardTools.Tools.AddWithUniqueName(lstView.Colonnes, c2, "C"); TabloidConfig.Config.Views.Add(lstView); return(true); }
/// <summary> /// Convert field to list /// </summary> /// <param name="view"></param> /// <param name="field"></param> /// <param name="newTableName"></param> /// <returns></returns> public static bool ConvertFieldToList(TabloidConfigView view, TabloidConfigColonne field, string newTableName, IWin32Window own) { //search for a unique constraint name var fk1Name = SearchConstraintUniqueName(newTableName + "_fk", view.Schema); var fieldType = dataHelper.DbTypeConverter.ConvertFromGenericDbType(field.Type, WizardTools.Tools.ConvertProviderType(Program.AppSet.ProviderType)); var param = new[] { view.Schema, //0 schema newTableName, //1 new table name view.NomTable, //2 old table name field.Champ, //3 field name to convert fieldType, //4 field type fk1Name //5 constraint name }; var result = ExecuteFromFile("fieldToList.sql", param, Program.AppSet.ConnectionString, own); if (!result) { return(false); } var join = new TabloidConfigJointure { NomTable = newTableName, DbKey = "id_" + newTableName, ChampDeRef = newTableName + "_id", }; var tabloidJoinID = WizardTools.Tools.AddWithUniqueName(view.Jointures, join, "J"); field.Jointure = tabloidJoinID; field.Editeur = TemplateType.ComboBoxPlus; var lstView = new TabloidConfigView { Nom = newTableName, Titre = newTableName, Schema = view.Schema, DbKey = "id_" + newTableName }; var c2 = new TabloidConfigColonne { Titre = field.Titre, Type = field.Type, Champ = field.Champ, Valideurs = field.Valideurs, Obligatoire = field.Obligatoire, Information = field.Information, DSID = field.DSID, Editeur = field.Editeur }; field.DSID = ""; WizardTools.Tools.AddWithUniqueName(lstView.Colonnes, c2, "C"); TabloidConfig.Config.Views.Add(lstView); AddToParamMenu(lstView, own); return(true); }
/// <summary> /// add field to main table with constraint /// add join to main table collection collection /// add new table to table collection /// /// return true if job done /// </summary> /// <param name="complexList"></param> /// <param name="schema"></param> /// <param name="newtableName"></param> /// <param name="sourceView"></param> /// <param name="tableSrcFieldRef"></param> /// <param name="connectionString"></param> /// <param name="provider"></param> /// <param name="alias">if not empty buil a new join with given alias</param> /// <param name="addFieldOnly">Add field and join but not new table</param> /// <param name="useJoin">if not null join is not created and given join is used</param> /// <param name="addFieldOnly">Add only join</param> /// <returns></returns> public static bool SetDataBaseForList(IWin32Window own, bool complexList, string schema, string newtableName, string newDbKey, string newViewName, bool addToParamMenu, TabloidConfigView sourceView, string tableSrcFieldRef, string connectionString, Provider provider, bool addNameField = true, bool addDistinct = false, string alias = null, bool addFieldOnly = false, string schemaNewtable = null, TabloidConfigJointure useJoin = null, bool addOnlyJoin = false) { try { var param = new[] { schema, newtableName.ToLower(), sourceView.NomTable, tableSrcFieldRef }; var complexParam = new[] { schema, newtableName.ToLower(), sourceView.NomTable, sourceView.DbKey }; string select = null; string aliasDbKey = null; if (!addOnlyJoin) { if (addFieldOnly) { // add field to table var sqlType = dataHelper.DbTypeConverter.ConvertFromGenericDbType(DbType.Int16, WizardTools.Tools.ConvertProviderType(Program.AppSet.ProviderType)); // var fieldOnlyParam = new[] { //sourceView.NomTable, //tableSrcFieldRef, //sqlType, //schema }; tableSrcFieldRef = addField(sourceView.NomTable, tableSrcFieldRef, sqlType, schema, own); if (tableSrcFieldRef == null) { return(false); } //var fieldOnlyParam = new[] { schema, newtableName, sourceView.NomTable, tableSrcFieldRef, schemaNewtable ?? schema, newDbKey };//"id_"+ newtableName //if (!ExecuteFromFile("addConstraint.sql", fieldOnlyParam, connectionString)) return false;//TO DO handel duplicate name //add constraint do not stop on error addConstraint(schema, newtableName, sourceView.NomTable, tableSrcFieldRef, schemaNewtable ?? schema, newDbKey, own); if (!string.IsNullOrEmpty(alias)) { aliasDbKey = "id_" + alias; select = $"{alias}.id_{newtableName} as id_{alias},{alias}.nom_{newtableName} as nom_{alias}"; } } else if (!ExecuteFromFile(complexList ? "fieldComplexList.sql" : "fieldList.sql", complexList ? complexParam : param, connectionString, own)) { return(false); } } //add join var newJoin = useJoin; if (useJoin == null) { var j = new TabloidConfigJointure { NomTable = newtableName, DbKey = newDbKey,//"id_" + newtableName, Relation = complexList ? "1:N" : "", AliasTable = alias, Select = select, AliasDbKey = aliasDbKey, ChampDeRef = complexList ? sourceView.Nom + "." + sourceView.DbKey : tableSrcFieldRef, ChampDeRef2 = complexList ? sourceView.Nom + "_id" : "", Order = complexList ? "" : "nom_" + newtableName + " asc" }; Classes.WizardTools.Tools.AddWithUniqueName(sourceView.Jointures, j, "J"); newJoin = j; } if (!complexList) {//add combo list field var c = new TabloidConfigColonne { Type = DbType.String, Titre = newViewName, Champ = "nom_" + (string.IsNullOrEmpty(alias) ? newtableName : alias), Jointure = newJoin.Nom, Editeur = TemplateType.ComboBoxPlus }; WizardTools.Tools.AddWithUniqueName(sourceView.Colonnes, c, "C"); } else {//add gridview field AddGridviewField(sourceView, newtableName, newJoin, "nom_" + newtableName, true, addDistinct); } if (addFieldOnly) { return(true); } //add new table var t = new TabloidConfigView { Schema = schema, Nom = newtableName, Titre = newViewName, DbKey = "id_" + newtableName }; if (!complexList || true) {// add field name to the new created table t.Order = "nom_" + newtableName + " asc"; var ct = new TabloidConfigColonne { Nom = "C" + t.Colonnes.Count, Type = DbType.String, Titre = "Nom", Champ = "nom_" + newtableName }; WizardTools.Tools.AddWithUniqueName(t.Colonnes, ct, "C"); } TabloidConfig.Config.Views.Add(t); //add new table in menu try { if (addToParamMenu) { AddToParamMenu(t, own); } } catch (Exception e) { MetroMessageBox.Show(own, e.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); return(true); } } catch (Exception e) { MetroMessageBox.Show(own, e.Message, "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error); return(false); } return(true); }
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(); }
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); } }
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); }
/// <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); }