protected override void AfficherMenuAdditonnel(ContextMenuStrip menu) { if (m_menuItemEdit == null) { m_menuItemEdit = new ToolStripMenuItem(I.T("Edit Child Zone|20010")); menu.Items.Add(m_menuItemEdit); m_menuItemEdit.Name = "m_menuItemEdit"; m_menuItemEdit.Size = new System.Drawing.Size(194, 22); m_menuItemEdit.Click += new EventHandler(m_menuItemEdit_Click); } if (Selection.Count == 1) { m_menuItemEdit.Visible = false; C2iWndZoneMultiple objetSelectonne = Selection[0] as C2iWndZoneMultiple; if (objetSelectonne != null) { m_menuItemEdit.Visible = true; } else { m_menuItemEdit.Visible = false; } } }
public void CreateControle(CCreateur2iFormulaireV2 createur, C2iWnd wnd, Control parent, sc2i.expression.IFournisseurProprietesDynamiques fournisseurProprietes) { C2iWndZoneMultiple zoneMultiple = wnd as C2iWndZoneMultiple; if (zoneMultiple == null) { return; } m_zoneMultiple = zoneMultiple; m_createur = createur; CCreateur2iFormulaireV2.AffecteProprietesCommunes(wnd, this); m_fournisseurProprietes = fournisseurProprietes; //m_panelTop.Visible = zoneMultiple.HasAddButton; m_lnkAdd.Visible = zoneMultiple.HasAddButton && !m_bPreventAddFromRestriction; m_tooltip.SetToolTip(m_lnkDernierePage, I.T("Last page|10000")); m_tooltip.SetToolTip(m_lnkPremierePage, I.T("First page|10001")); m_tooltip.SetToolTip(m_lnkSuivant, I.T("Next page|10002")); m_tooltip.SetToolTip(m_lnkPrecedent, I.T("Previous page|10003")); m_controlItem.Init(this, zoneMultiple.FormulaireFils, m_createur); parent.Controls.Add(this); Color fond = m_zoneMultiple.BackColor; if (m_zoneMultiple.FormulaireFils != null) { fond = m_zoneMultiple.BackColor; } m_controlItem.BackColor = CUtilCouleur.GetCouleurAlternative(fond); m_controlItem.ColorInactive = fond; }
private void EditObjetDeFormulaire(C2iWnd objetAEditer) { if (objetAEditer != null) { // Child zone C2iWndZoneMultiple childZone = objetAEditer as C2iWndZoneMultiple; if (childZone != null) { // Editer la child Zone childZone.EditZoneMultiple(); } } }
//------------------------------------------------------------------------ public void CreateControle(CCreateur2iFormulaireV2 createur, C2iWnd wnd, System.Windows.Forms.Control parent, sc2i.expression.IFournisseurProprietesDynamiques fournisseurProprietes) { C2iWndZoneMultiple zone = wnd as C2iWndZoneMultiple; if (zone != null) { if (zone.UseChildOptimization) { m_controleAlloue = new CWndFor2iZoneMultipleCustomList(); } else { m_controleAlloue = new CWndFor2iZoneMultiple(); } m_controleAlloue.CreateControle(createur, wnd, parent, fournisseurProprietes); } }
public void CreateControle(CCreateur2iFormulaireV2 createur, C2iWnd wnd, Control parent, sc2i.expression.IFournisseurProprietesDynamiques fournisseurProprietes) { C2iWndZoneMultiple zoneMultiple = wnd as C2iWndZoneMultiple; if (zoneMultiple == null) { return; } m_zoneMultiple = zoneMultiple; m_createur = createur; CCreateur2iFormulaireV2.AffecteProprietesCommunes(wnd, this); m_fournisseurProprietes = fournisseurProprietes; //m_panelTop.Visible = zoneMultiple.HasAddButton; m_lnkAdd.Visible = zoneMultiple.HasAddButton && !m_bPreventAddFromRestriction; m_tooltip.SetToolTip(m_lnkDernierePage, I.T("Last page|10000")); m_tooltip.SetToolTip(m_lnkPremierePage, I.T("First page|10001")); m_tooltip.SetToolTip(m_lnkSuivant, I.T("Next page|10002")); m_tooltip.SetToolTip(m_lnkPrecedent, I.T("Previous page|10003")); parent.Controls.Add(this); }
public CResultAErreur FillDataSet(DataSet ds, C2iWnd fenetre, IObjetDonneeAChamps objetEdite, CListeRestrictionsUtilisateurSurType lstRestrictions) { CResultAErreur result = CResultAErreur.True; if (m_formulaire == null) { result.EmpileErreur("m_formulaire is null"); return(result); } if (fenetre != null) { try { ArrayList lst = fenetre.AllChilds(); bool bConserverCeGroupe = false; CRestrictionUtilisateurSurType restrictionSurObjetEdite = lstRestrictions.GetRestriction(objetEdite.GetType()); foreach (object obj in lst) { if (obj is I2iWebControl) { I2iWebControl webControl = (I2iWebControl)obj; if (webControl.WebLabel == "") { continue; } C2iWnd wndControl = webControl as C2iWnd; if (wndControl != null) { // Traite la visibilité du champ C2iExpression expVisible = wndControl.Visiblity; if (expVisible != null) { CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetEdite); CResultAErreur resVisible = expVisible.Eval(ctx); if (resVisible && resVisible.Data != null) { if (resVisible.Data.ToString() == "0" || resVisible.Data.ToString().ToUpper() == "FALSE") { continue; } } } // Applique les restrictions bool bIsEditable = true; if (wndControl is C2iWndFormule || wndControl is C2iWndPanel || wndControl is C2iWndSlidingPanel) { bIsEditable = false; } else if ((bool)m_row[c_champIsInfosSecondaires]) { // Si c'est un groupe d'infos secondaire, aucun champ n'est éditable bIsEditable = false; } else if (wndControl is C2iWndChampCustom) { // Sinon on regarde les restrictions du champ C2iWndChampCustom wndChamp = (C2iWndChampCustom)wndControl; CChampCustom cc = wndChamp.ChampCustom; if (restrictionSurObjetEdite != null) { ERestriction rest = restrictionSurObjetEdite.GetRestriction(cc.CleRestriction); if ((rest & ERestriction.ReadOnly) == ERestriction.ReadOnly) { bIsEditable = false; } } } CChampTimosWebApp champWeb = new CChampTimosWebApp(ds, webControl, objetEdite, m_formulaire.Id, "-1", bIsEditable); result = champWeb.FillDataSet(ds); CTodoValeurChamp valeur = new CTodoValeurChamp(ds, objetEdite, champWeb, m_formulaire.Id, bIsEditable); result = valeur.FillDataSet(ds); bConserverCeGroupe = true; } } // Traitement dans le cas d'un sous-formulaire else if (obj is C2iWndConteneurSousFormulaire) { C2iWndConteneurSousFormulaire subForm = (C2iWndConteneurSousFormulaire)obj; if (subForm != null && subForm.SubFormReference != null) { C2iWnd frm = sc2i.formulaire.subform.C2iWndProvider.GetForm(subForm.SubFormReference); if (frm != null) { if (subForm.EditedElement != null) { C2iExpression expression = subForm.EditedElement; CContexteEvaluationExpression ctx = new CContexteEvaluationExpression(objetEdite); CResultAErreur resEval = expression.Eval(ctx); if (!resEval) { result += resEval; return(result); } IObjetDonneeAChamps sousObjetEdite = resEval.Data as IObjetDonneeAChamps; if (sousObjetEdite != null) { // Traite la visibilité du champ var ctxSousObjet = new CContexteEvaluationExpression(sousObjetEdite); C2iExpression expVisible = subForm.Visiblity; if (expVisible != null) { CResultAErreur resVisible = expVisible.Eval(ctxSousObjet); if (resVisible && resVisible.Data != null) { if (resVisible.Data.ToString() == "0" || resVisible.Data.ToString().ToUpper() == "FALSE") { continue; } } } bConserverCeGroupe = true; FillDataSet(ds, frm, sousObjetEdite, lstRestrictions); } } } } } // Traitement dans le cas d'une Child Zone else if (obj is C2iWndZoneMultiple) { C2iWndZoneMultiple childZone = (C2iWndZoneMultiple)obj; C2iWndSousFormulaire sousFenetre = childZone.FormulaireFils; bool bHasAddButton = childZone.HasAddButton; bool bCanCreate = false; if (childZone.SourceFormula != null) { CContexteEvaluationExpression ctxEval = new CContexteEvaluationExpression(objetEdite); C2iExpression source = childZone.SourceFormula; Type tp = source.TypeDonnee.TypeDotNetNatif; if (tp != null) { // Gestion des restrictions CRestrictionUtilisateurSurType restrictions = lstRestrictions.GetRestriction(tp); if (restrictions != null) { bCanCreate = restrictions.CanCreateType(); } } CResultAErreur resEval = source.Eval(ctxEval); if (!resEval) { result += resEval; return(result); } object datas = resEval.Data; if (datas != null) { bConserverCeGroupe = true; IEnumerable collection = datas as IEnumerable; if (collection != null) { // La source de données est une collection, il s'agit certainement de caractéristiques // Mais c'est peut-être aussi un Workbook, un Site, un Projet... on ne sait pas car ça dépend du paramétrage m_row[c_champTitreCaracteristiques] = childZone.WebLabel; m_row[c_champCanAddCaracteristiques] = bHasAddButton && bCanCreate; int nOrdre = 0; foreach (var data in collection) { IObjetDonneeAChamps objEdite = data as IObjetDonneeAChamps; if (objEdite != null) { CCaracteristique caracWeb = new CCaracteristique( ds, objEdite as IObjetDonneeAIdNumeriqueAuto, tp, objetEdite.GetType().ToString(), ((IObjetDonneeAIdNumeriqueAuto)objetEdite).Id, nOrdre++, m_formulaire.Id, false); caracWeb.FillDataSet(ds, sousFenetre, objEdite, lstRestrictions); } } // Création d'un template if (childZone.Affectations.Count > 0) { CAffectationsProprietes affectation = childZone.Affectations[0]; if (tp != null && affectation != null) { IAllocateurSupprimeurElements allocateur = objetEdite as IAllocateurSupprimeurElements; object newObj = null; try { if (allocateur != null) { result = allocateur.AlloueElement(tp); if (result) { newObj = result.Data; } } else { newObj = Activator.CreateInstance(tp); } } catch (Exception ex) { result.EmpileErreur(new CErreurException(ex)); } if (newObj == null | !result) { result.EmpileErreur(I.T("Error while allocating element|20003")); } result = affectation.AffecteProprietes(newObj, objetEdite, new CFournisseurPropDynStd(true)); if (!result) { result.EmpileErreur(I.T("Some values cannot be assigned|20004")); } CCaracteristique caracTemplate = new CCaracteristique( ds, newObj as IObjetDonneeAIdNumeriqueAuto, tp, objetEdite.GetType().ToString(), ((IObjetDonneeAIdNumeriqueAuto)objetEdite).Id, nOrdre++, m_formulaire.Id, true); caracTemplate.FillDataSet(ds, sousFenetre, newObj as IObjetDonneeAChamps, lstRestrictions); } } } else { // La source de donnée est un objet unique IObjetDonneeAChamps objEdite = datas as IObjetDonneeAChamps; if (objEdite != null) { FillDataSet(ds, sousFenetre, objEdite, lstRestrictions); } } } } } } /*if (!bConserverCeGroupe) * { * DataTable dt = ds.Tables[c_nomTable]; * if (dt != null) * dt.Rows.Remove(m_row); * }*/ } catch (Exception ex) { result.EmpileErreur(ex.Message); return(result); } } return(result); }