public override sc2i.common.CResultAErreur RunService(object parametre)
        {
            CResultAErreur result = CResultAErreur.True;

            if (!(parametre is CActionImprimerModeleTexte.CParametreImpressionModeleTexte))
            {
                result.EmpileErreur(I.T("Parameter type imcompatible with 'print text model' service|20113"));
                return(result);
            }
            CActionImprimerModeleTexte.CParametreImpressionModeleTexte parametreEdition = (CActionImprimerModeleTexte.CParametreImpressionModeleTexte)parametre;
            CObjetDonnee objet = parametreEdition.ReferenceObjet.GetObjet(CSc2iWin32DataClient.ContexteCourant);

            if (objet == null)
            {
                result.EmpileErreur(I.T("The object to edit doesn't exist|1078"));
                return(result);
            }

            //Charge le modèle de texte
            CModeleTexte modele = new CModeleTexte(CSc2iWin32DataClient.ContexteCourant);

            if (!modele.ReadIfExists(parametreEdition.IdModeleTexte))
            {
                result.EmpileErreur(I.T("Text model @1 doesn't exists|20114", parametreEdition.IdModeleTexte.ToString()));
                return(result);
            }

            PrinterSettings printSet = new PrinterSettings();
            PageSettings    pageSet  = new PageSettings();

            result = CTextPrintSetup.ApplyParameters(parametreEdition.ParametresImpression, printSet, pageSet);
            if (!result)
            {
                return(result);
            }

            using (CPrintRichTextBox txtBox = new CPrintRichTextBox())
            {
                result = CUtilModeleTexte.FillRichTextBox(
                    txtBox,
                    modele,
                    objet);
                if (!result)
                {
                    return(result);
                }

                using (PrintDocument doc = new PrintDocument())
                {
                    pageSet.PrinterSettings = printSet;
                    doc.DefaultPageSettings = pageSet;
                    doc.PrinterSettings     = printSet;
                    m_textBoxToPrint        = txtBox;
                    m_nPageToPrint          = 0;
                    doc.PrintPage          += new PrintPageEventHandler(doc_PrintPage);
                    doc.Print();
                }
            }
            return(result);
        }
Exemplo n.º 2
0
        private void InitFenetre(CModeleTexte modele, object objet)
        {
            m_txtBox.Visible = false;
            m_txtBox.Clear();
            if (objet == null)
            {
                return;
            }
            CResultAErreur result = CResultAErreur.True;

            try
            {
                result = CUtilModeleTexte.FillRichTextBox(
                    m_txtBox, modele, objet);
            }
            catch (Exception e)
            {
                result.EmpileErreur(new CErreurException(e));
            }
            if (!result)
            {
                m_txtBox.Text = result.Erreur.ToString();
            }
            m_txtBox.BackColor = modele.CouleurFond;
            m_txtBox.Visible   = true;
        }