TxmlHtmlDocument (tech)
De Wiki1000
(Différences entre les versions)
(Page créée avec « ===Introduction=== Les objets TxmlHtmlDocument sont des descendants de TxmlDocument permettant de construire des documents xml html. TxmlHtmlMailDocument est un descenda... ») |
|||
(2 révisions intermédiaires par un utilisateur sont masquées) | |||
Ligne 12 : | Ligne 12 : | ||
!Propriété | !Propriété | ||
!Usage | !Usage | ||
+ | |- | ||
+ | |htmlHead | ||
+ | |Entête du document html (head) | ||
+ | |- | ||
+ | |[[htmlBody (TxmlHtmlDocument)|htmlBody]] | ||
+ | |Corps du document html (body) | ||
+ | |- | ||
+ | |htmlContent | ||
+ | |Contenu généré du document html | ||
|} | |} | ||
Ligne 141 : | Ligne 150 : | ||
{{Footer|Code métier}} | {{Footer|Code métier}} | ||
[[category:Objets techniques]] | [[category:Objets techniques]] | ||
+ | [[Category:Document XML]] | ||
+ | [[Category:Document HTML]] | ||
+ | [[Category:Version11]] |
Version actuelle en date du 5 juillet 2023 à 13:43
Introduction
Les objets TxmlHtmlDocument sont des descendants de TxmlDocument permettant de construire des documents xml html.
TxmlHtmlMailDocument est un descendants de TxmlHtmlDocument permettant de construire un document html compatible avec les lecteurs de messagerie.
Tip : Dans un mail destiné à une messagerie il n'est pas possible d'utiliser certaines fonctionnalités, en particulier il n'est pas possible d'inclure du script |
Propriétés
Propriété | Usage |
---|---|
htmlHead | Entête du document html (head) |
htmlBody | Corps du document html (body) |
htmlContent | Contenu généré du document html |
Opérations
Méthode | Usage |
---|
Exemple:
//function Execute(var aReason:string):boolean; Type VueValideur = viewOf(TPieceTaxable) vp1: TValideurPossible = join(ValidationEtat.EtatPossible.EtatMetier,EtatMetier); vp2: TValideurPossible = join(ValidationEtat.RegleValidation,RegleValidation); gcv: TGroupeContactValidation = leftjoin(TGroupeValidation,vp2.ContactEtablissement); aId1:TOID = vp1.oid; aId2:TOID = vp2.oid; aIdVP:TOID = vp2.oidValideurPrecedent; aIdDV:TOID = oiddernierValideur; aIdCV:TOID = vp2.oidContactEtablissement; aIdCE:TOID = ISNULL(gcv.oidTContactEtablissement,vp2.oidContactEtablissement); // personne Mail:string = ISNULL(gcv.TContactEtablissement+eMail,vp2.ContactEtablissement.eMail); FirstName:string = ISNULL(gcv.TContactEtablissement+prenom,vp2.ContactEtablissement.prenom); LastName:string = ISNULL(gcv.TContactEtablissement+nom,vp2.ContactEtablissement.nom); Civility:string = ISNULL(gcv.TContactEtablissement+Civilite+Caption,vp2.ContactEtablissement+Civilite+Caption); // pièce estVomplet:boolean = estComplet; noPiece:string = noPiece; datePiece:Tdatetime = datePiece; totalHT: Tmoney = totalHT; typePieceCode:string = TypePieceGC.code; typePieceLibelle:string = TypePieceGC+Caption; tiersFactureCode:string = RoleTiersFacture.Tiers.code; tiersFactureLibelle:string = RoleTiersFacture.Tiers.Caption; affaireCode:string = Affaire+code; affaireLibelle:string = Affaire+Caption; // [ (estComplet=True) and (aId1=aId2) and (aIdDV<>aIdCV) and ((aIdVP='') or (aIdVP=aIdDV)) ] end; function _SendEmail(eMail,Subject:string; doc:TxmlHtmlMailDocument):boolean; begin Result := True; if (eMail<>'') and (doc<>nil) then begin Result := MailTo(eMail,Subject,doc.htmlContent); end; end; function _Subject(inst:VueValideur):string; begin Result := _TP('(No reply) (Sage FRP 1000) Commande(s) en attente de validation') end; procedure _BodyHeader(doc:TxmlHtmlMailDocument; inst:VueValideur); begin end; procedure _Body(table:ThtmlTable; inst:VueValideur); begin table.AddRow([ inst.TranslateMsg(_TP('La pièce @noPiece@ en date du @datePiece@ d''un montant de @totalHT@ doit être validée')) ]); end; var ls:TSelector; eMail,Subject:string; doc:TxmlhtmlMailDocument; table:ThmlTable; inst:VueValideur; begin aReason := ''; Result := True; // ls := VueValideur.CreateSelector('','Mail,typePieceCode,datePiece',true,[]); eMail := ''; Subject := ''; doc := nil; foreach inst in ls.AsCursor do begin if inst.Mail<>eMail then begin if not _sendEMail(email,Subject,doc) then begin // do not continue if send mail failed Result := False; aReason := _TP('Echec d''envoi de mail, vérifiez le paramétrage du service de messagerie'); Exit; end; // doc := TxmlHtmlMailDocument.Create(nil); doc.htmlbody.AddHeader(inst.TranslateMsg(_TP('A l''attention de @Civility@ @FirstName@ @LastName@')),'section'); doc.htmlbody.AddHeader(_TP('A ce jour les pièces suivantes sont en attente de validation de votre part :'),'subsection'); // table := doc.htmlbody.AddTable([ _TP('Type de pièce'), _TP('Tiers'), _TP('Affaire'), _TP('Pièce'), _TP('Date de pièce'), _TP('Montant') ]); eMail := inst.Mail; Subject := _Subject(inst); end; // if Assigned(Table) then begin table.AddRow([ inst.typePieceLibelle, inst.tiersFactureLibelle, inst.affaireLibelle, Format('%s#%s',[inst.noPiece,TFacadeModel.GetLinkUrlOfObject(inst.oid)]), inst.TranslateMsg('@datePiece@'), inst.TranslateMsg('@totalHT@') ]); end; end; // Result := _SendEmail(eMail,Subject,doc); end;
Voir aussi :
— Code métier — Développement DSM —