예제 #1
0
        public CWndFor2iDataGrid CreateGrid(Control parent, object liste)
        {
            CCreateur2iFormulaireV2 createur = new CCreateur2iFormulaireV2();

            m_wndGrid.Font      = parent.Font;
            m_wndGrid.DockStyle = EDockStyle.Fill;
            CResultAErreur    result = createur.CreateControlePrincipalEtChilds(parent, m_wndGrid, new CFournisseurGeneriqueProprietesDynamiques());
            CWndFor2iDataGrid grid   = null;

            if (result)
            {
                foreach (object o in createur.ControlesPrincipaux)
                {
                    if (o is CWndFor2iDataGrid)
                    {
                        grid = o as CWndFor2iDataGrid;
                        break;
                    }
                }
            }
            if (grid != null)
            {
                grid.Control.Dock = System.Windows.Forms.DockStyle.Fill;
                grid.Source       = liste;
            }
            return(grid);
        }
예제 #2
0
        private void CFormFormulaireCustom_Load(object sender, System.EventArgs e)
        {
            m_extModeEdition.ModeEdition = false;
            if (m_formulaire != null)
            {
                if (m_objetEdite is CObjetDonnee)
                {
                    m_createur = new CCreateur2iFormulaireObjetDonnee(((CObjetDonnee)m_objetEdite).ContexteDonnee.IdSession);
                }
                else if (m_objetEdite is CObjetDonnee[])
                {
                    m_createur = new CCreateur2iFormulaireV2();
                }
                else
                {
                    m_objetEdite = CSc2iWin32DataClient.ContexteCourant;
                    m_createur   = new CCreateur2iFormulaireV2();
                }
                m_createur.CreateControlePrincipalEtChilds(m_panelFormulaire, m_formulaire.Formulaire, new CFournisseurPropDynStd(true));
                m_createur.LockEdition = !m_extModeEdition.ModeEdition;
                CSessionClient session = CSessionClient.GetSessionForIdSession(CTimosApp.SessionClient.IdSession);
                CListeRestrictionsUtilisateurSurType restrictions = session.GetInfoUtilisateur().GetListeRestrictions(null).Clone() as CListeRestrictionsUtilisateurSurType;

                m_createur.ElementEdite = m_objetEdite;

                m_createur.AppliqueRestrictions(restrictions, m_gestionnaireReadOnly);

                m_panelEdition.Visible = m_formulaire.AllowEditMode;
                CTimosApp.Titre        = m_formulaire.Formulaire.Text;
            }
            else
            {
                CTimosApp.Titre = "";
            }

            if (CTimosApp.SessionClient.GetInfoUtilisateur().GetDonneeDroit(
                    CDroitDeBase.c_droitBasePersonnalisation) != null)
            {
                this.ContextMenuStrip = m_menuCustomizer;
            }
            else
            {
                this.ContextMenuStrip = null;
            }
        }
예제 #3
0
        public void InitPanel(C2iWnd formulaire, object elementEdite)
        {
            if (elementEdite == null)
            {
                return;
            }

            C2iWndFenetre fenetre   = formulaire as C2iWndFenetre;
            bool          bAutoSize = false;

            if (fenetre != null)
            {
                bAutoSize = fenetre.AutoSize;
            }

            m_createur = null;
            C2iWnd wnd = formulaire;

            //Supprime le panel stockant les controls
            if (m_panelFormulaire != null)
            {
                m_panelFormulaire.Visible = false;
                m_panelFormulaire.Dispose();
                m_panelFormulaire = null;
            }
            if (wnd != null)
            {
                m_panelFormulaire        = new Panel();
                m_panelFormulaire.Parent = this;
                if (bAutoSize)
                {
                    m_panelFormulaire.Dock = DockStyle.Top;
                    AutoSizeMode           = AutoSizeMode.GrowAndShrink;
                    AutoSize = true;
                    m_panelFormulaire.AutoSizeMode = AutoSizeMode;
                    m_panelFormulaire.AutoSize     = AutoSize;
                }
                else
                {
                    m_panelFormulaire.Dock     = DockStyle.Top;
                    m_panelFormulaire.AutoSize = false;
                    m_panelFormulaire.Height   = formulaire.Size.Height;
                }
                m_panelFormulaire.BackColor = wnd.BackColor;
                m_panelFormulaire.ForeColor = wnd.ForeColor;
                m_panelFormulaire.Visible   = true;
                m_panelFormulaire.Font      = wnd.Font;

                foreach (GetCreateurForObjectDelegate del in m_listGetCreateurs)
                {
                    del(elementEdite, ref m_createur);
                    if (m_createur != null)
                    {
                        break;
                    }
                }
                if (m_createur == null)
                {
/*
 *              if (objetDonnee != null)
 *                  m_createur = new CCreateur2iFormulaireObjetDonnee(objetDonnee.ContexteDonnee.IdSession);
 *              else*/
                    m_createur = new CCreateur2iFormulaireV2();
                }

                IFournisseurProprietesDynamiques fournisseur = m_createur.FournisseurProprietes;
                if (elementEdite is IFournisseurProprietesDynamiques)
                {
                    fournisseur = (IFournisseurProprietesDynamiques)elementEdite;
                }
                if (fournisseur == null)
                {
                    fournisseur = new CFournisseurGeneriqueProprietesDynamiques();
                }
                m_createur.ControleValeursAvantValidation = true;
                m_createur.CreateControlePrincipalEtChilds(m_panelFormulaire, wnd, fournisseur);
                m_createur.ElementEdite = elementEdite;
                m_createur.LockEdition  = m_bLockEdition;
            }
        }
예제 #4
0
        private CResultAErreur SafeExecuteAction(C2iSponsor sponsor, ref CResultAErreur result, ref DialogResult dialogResult)
        {
            bool bBoucle = true;

            while (bBoucle)
            {
                bBoucle = false;
                CCreateur2iFormulaireV2 createur = new CCreateur2iFormulaireV2();
                //Fait passer le formulaire par le réseau
                byte[]                 dataFormulaire = m_actionFormulaire.GetDataSerialisationFormulairePourClient();
                MemoryStream           stream         = new MemoryStream(dataFormulaire);
                BinaryReader           reader         = new BinaryReader(stream);
                CSerializerReadBinaire serializer     = new CSerializerReadBinaire(reader);
                serializer.AttacheObjet(typeof(IElementAVariablesDynamiquesBase), m_actionFormulaire.Process);
                I2iSerializable formulaireSer = null;
                result = serializer.TraiteObject(ref formulaireSer);

                reader.Close();
                stream.Close();

                if (!result)
                {
                    result.EmpileErreur(I.T("Error while retrieving the form|30253"));
                    return(result);
                }
                C2iWnd formulaire = (C2iWnd)formulaireSer;

                createur.CreateControlePrincipalEtChilds(m_panelFormulaire, formulaire, m_actionFormulaire.Process);
                createur.ControleValeursAvantValidation = true;
                CProxyElementAVariables proxy = m_actionFormulaire.Process.GetProxyElementAVariables(sponsor);
                proxy.ContexteDonneeLocal = sc2i.win32.data.CSc2iWin32DataClient.ContexteCourant;

                createur.ElementEdite = proxy;

                foreach (IVariableDynamique varDyn in m_actionFormulaire.Process.ListeVariables)
                {
                    sponsor.Register(varDyn);
                }

                Size szFormulaire = formulaire.Size;
                Size szOldPanel   = m_panelFormulaire.Size;
                Size newSizeThis  = Size;
                newSizeThis.Width  = Size.Width - szOldPanel.Width + szFormulaire.Width;
                newSizeThis.Height = Size.Height - szOldPanel.Height + szFormulaire.Height;
                Size = newSizeThis;
                m_panelFormulaire.Size = szFormulaire;

                m_btnAnnuler.Visible = m_actionFormulaire.CanCancel;
                this.Text            = m_actionFormulaire.Descriptif;
                dialogResult         = ShowDialog(CTimosApp.Navigateur);
                if (dialogResult == DialogResult.OK)
                {
                    CResultAErreur resultTmp = createur.MAJ_Champs();
                    if (!resultTmp)
                    {
                        CFormAlerte.Afficher(resultTmp.Erreur);
                        bBoucle = true;
                    }
                }
            }
            result.Data = C2iDialogResult.Get2iDialogResultFromDialogResult(dialogResult);
            return(result);
        }