• Philippe - France
  • NEWBIE
  • 15 Points
  • Member since 2014

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 3
    Questions
  • 6
    Replies
Hello everyone,

My problem :

1 - I have <ul><li> tag in a Rich Text  field
2 - The outputText have a style
3 - The css style is not taken into account when generating the PDF file


Example :

Visual Force Page :

<apex:page showHeader="false" sidebar="false" language="fr-FR" standardStylesheets="false" id="pge" controller="MyController" readOnly="true" renderAs="pdf">

OutputText with style :

<apex:outputText value="{!product.Description_html__c}" escape="false" style="font-style:normal;font-weight:normal;line-height:15px;font-size:11px;font-family:'Arial Unicode MS';"/>


The css style is not taken into account when generating the PDF file as soon as I put a tag  <ul>  or <li> in the Rich Text  field

It is the same when I used a styleClass like :

.MyClass {line-height:15px;font-size:10px;font-family:'Arial Unicode MS';}
.MyClass li {line-height:15px;font-size:10px;font-family:'Arial Unicode MS';}

<apex:outputText value="{!product.Description_html__c}" escape="false" styleClass="MyClass"/>



Or

<span styleClass="MyClassSpan"><apex:outputText value="{!product.Description_html__c}" escape="false"/></span>

span.MyClassSpan {line-height:15px;font-size:10px;font-family:'Arial Unicode MS'; li}



Can you help me ?

Thank you in advance
Hello,

The test for the trigger below is accept, but the coverage is 0%!

Surely, something escapes me as my eyes are tired :-(

Your new look will surely find the solution

Thank you in advance


Philippe

The trigger

trigger ContenantPrix on Pepiniere__c (after update) {
List<ContenantRemise__c> subs = new List<ContenantRemise__c>();
// insertion remise  
for (Pepiniere__c PrixApartirde : Trigger.New) {  
subs.add(new ContenantRemise__c(
id_feature_value__c = PrixApartirde.Remise_id_feature_value__c,
id_feature__c = PrixApartirde.Remise_id_feature__c,
Actif__c = true,
Id__c = PrixApartirde.Remise_Id__c,    
Saison__c = PrixApartirde.ID  ));}
upsert subs Id__c; 
// insertion contenant  
for (Pepiniere__c Contenant : Trigger.New) {  
subs.add(new ContenantRemise__c(
id_feature_value__c = Contenant.Contenant_id_feature_value__c,
id_feature__c = Contenant.Contenant_id_feature__c,
Actif__c = true,
Id__c = Contenant.Contenant_Id__c, 
Saison__c = Contenant.ID  ));}
upsert subs Id__c;   }

And the Test :

@istest
private class TestContenantPrix {

static TestMethod void TestContenantPrix() {
Plante__c plante = new Plante__c(Name='Achillea millefolium',id_product__c ='32');    
insert plante;   
Campagne__c campagne = new Campagne__c(name='2014'); 
insert campagne;    

Features__c fea = new Features__c(Name='Conteneur de 12 cm',id_feature__c='8',id_feature_value__c='37');
Insert fea;
Features__c rem = new Features__c(Name='à partir de 3',id_feature__c='15',id_feature_value__c='46');
Insert rem;    
    
Pepiniere__c acc = new Pepiniere__c(Fiche__c=plante.id,Campagne__c=campagne.id,Contenant_pepi__c=fea.id,Prix_partir_de__c=rem.id);
Insert acc; 
Catalogue__c cata = new Catalogue__c(Name='Achillea millefolium',fiche_de_la_plante__c=plante.id,production__c=acc.id,id_product__c='32');
insert cata;
   
ContenantRemise__c testC1 = new ContenantRemise__c(Id__c ='32-8',Saison__c=acc.id,Actif__c = true,id_feature_value__c=acc.Contenant_id_feature_value__c,id_feature__c = acc.Contenant_id_feature__c);
upsert testC1 Id__c;  
ContenantRemise__c testC2 = new ContenantRemise__c(Id__c ='32-15',Saison__c=acc.id,Actif__c = true,id_feature_value__c=acc.Remise_id_feature_value__c,id_feature__c = acc.Remise_id_feature__c);
upsert testC2 Id__c;     
    
 //pull the pepiniere info for that ContenantRemise
ContenantRemise__c SecContenantRemise =[SELECT Id__c,Saison__c,Actif__c,id_feature_value__c,id_feature__c FROM ContenantRemise__c WHERE Id = :testC1.id];
ContenantRemise__c SecContRem =[SELECT Id__c,Saison__c,Actif__c,id_feature_value__c,id_feature__c FROM ContenantRemise__c WHERE Id = :testC2.id];    
//verify that the insert updated by creating another ContenantRemise as in the trigger

  System.assert(SecContenantRemise.Id != null);
  System.assertEquals(SecContenantRemise.id_feature_value__c, testC1.id_feature_value__c);
   
  System.assertEquals(SecContenantRemise.id_feature_value__c, fea.id_feature_value_num__c);
  System.assertEquals(SecContenantRemise.Saison__c, acc.id);   
    
  System.assert(SecContRem.Id != null);
  System.assertEquals(SecContRem.id_feature_value__c, testC2.id_feature_value__c);
 
  System.assertEquals(SecContRem.id_feature_value__c, rem.id_feature_value_num__c);
  System.assertEquals(SecContRem.Saison__c, acc.id);    
 
   }

}

Hello,

When not mastering the language of Shakespeare and that starts on Salesforce, learning is a little difficult!

I wish a validation or review my first trigger!

Thank you in advance

Philippe

---------------- ooOoo --------------------------------- ----

A parent object (parent): Pepiniere__c
A related list (child):  Declinaison__c

If Pepiniere__c.Declinaison_pepi__c is TRUE, the trigger creates two records in the Related List  Declinaison__c

Trigger DeclinaisonUpsertPepi on Pepiniere__c (before update) {

List<Declinaison__c> subs = new List<Declinaison__c>();

// Insertion de la première déclinaison

       for (Pepiniere__c Decli1 : Trigger.New) {
          
           if  (newContract.Declinaison_pepi__c ==!false)   {  
                subs.add(new Declinaison__c(
                        Name                              = Decli1.ID_declinaison_moins__c,
                        Quantite__c                    = Decli1.Quantite_moins__c,
                        Prix_de_vente__c          = Decli1.Prix_de_vente_moins__c, 
                        Default__c                      = Decli1.Par_defaut_moins__c,
                        Emplacement__c             = Decli1.Emplacement_moins__c,
                        id_attribute__c                = Decli1.id_attribute_moins__c,
                	ID_Declinaison__c          = Decli1.ID_declinaison_moins__c,
                        Pepiniere__c                   = Decli1.ID
                ));
             
            
       } }

    upsert subs ID_declinaison__c; 
	
// insertion de la deuxième déclinaison	

	  for (Pepiniere__c decli2 : Trigger.New) {
        
if  (decli2.Declinaison_pepi__c ==!false)   {  
               
                subs.add(new Declinaison__c(
                        Name                              = decli2.ID_declinaison_plus__c,
                        Quantite__c                    = decli2.Quantite_plus__c,
                        Prix_de_vente__c          = decli2.Prix_de_vente_plus__c, 
                        Default__c                      = decli2.Par_default_plus__c,
                        Emplacement__c             = decli2.Emplacement_plus__c,
                        id_attribute__c                = decli2.id_attribute_plus__c,
                        ID_Declinaison__c           = decli2.ID_declinaison_plus__c,
                        Pepiniere__c                    = decli2.ID
                ));
                        
                      
}}

         
    
    upsert subs ID_declinaison__c;
   
}

Hello everyone,

My problem :

1 - I have <ul><li> tag in a Rich Text  field
2 - The outputText have a style
3 - The css style is not taken into account when generating the PDF file


Example :

Visual Force Page :

<apex:page showHeader="false" sidebar="false" language="fr-FR" standardStylesheets="false" id="pge" controller="MyController" readOnly="true" renderAs="pdf">

OutputText with style :

<apex:outputText value="{!product.Description_html__c}" escape="false" style="font-style:normal;font-weight:normal;line-height:15px;font-size:11px;font-family:'Arial Unicode MS';"/>


The css style is not taken into account when generating the PDF file as soon as I put a tag  <ul>  or <li> in the Rich Text  field

It is the same when I used a styleClass like :

.MyClass {line-height:15px;font-size:10px;font-family:'Arial Unicode MS';}
.MyClass li {line-height:15px;font-size:10px;font-family:'Arial Unicode MS';}

<apex:outputText value="{!product.Description_html__c}" escape="false" styleClass="MyClass"/>



Or

<span styleClass="MyClassSpan"><apex:outputText value="{!product.Description_html__c}" escape="false"/></span>

span.MyClassSpan {line-height:15px;font-size:10px;font-family:'Arial Unicode MS'; li}



Can you help me ?

Thank you in advance
Hello,

The test for the trigger below is accept, but the coverage is 0%!

Surely, something escapes me as my eyes are tired :-(

Your new look will surely find the solution

Thank you in advance


Philippe

The trigger

trigger ContenantPrix on Pepiniere__c (after update) {
List<ContenantRemise__c> subs = new List<ContenantRemise__c>();
// insertion remise  
for (Pepiniere__c PrixApartirde : Trigger.New) {  
subs.add(new ContenantRemise__c(
id_feature_value__c = PrixApartirde.Remise_id_feature_value__c,
id_feature__c = PrixApartirde.Remise_id_feature__c,
Actif__c = true,
Id__c = PrixApartirde.Remise_Id__c,    
Saison__c = PrixApartirde.ID  ));}
upsert subs Id__c; 
// insertion contenant  
for (Pepiniere__c Contenant : Trigger.New) {  
subs.add(new ContenantRemise__c(
id_feature_value__c = Contenant.Contenant_id_feature_value__c,
id_feature__c = Contenant.Contenant_id_feature__c,
Actif__c = true,
Id__c = Contenant.Contenant_Id__c, 
Saison__c = Contenant.ID  ));}
upsert subs Id__c;   }

And the Test :

@istest
private class TestContenantPrix {

static TestMethod void TestContenantPrix() {
Plante__c plante = new Plante__c(Name='Achillea millefolium',id_product__c ='32');    
insert plante;   
Campagne__c campagne = new Campagne__c(name='2014'); 
insert campagne;    

Features__c fea = new Features__c(Name='Conteneur de 12 cm',id_feature__c='8',id_feature_value__c='37');
Insert fea;
Features__c rem = new Features__c(Name='à partir de 3',id_feature__c='15',id_feature_value__c='46');
Insert rem;    
    
Pepiniere__c acc = new Pepiniere__c(Fiche__c=plante.id,Campagne__c=campagne.id,Contenant_pepi__c=fea.id,Prix_partir_de__c=rem.id);
Insert acc; 
Catalogue__c cata = new Catalogue__c(Name='Achillea millefolium',fiche_de_la_plante__c=plante.id,production__c=acc.id,id_product__c='32');
insert cata;
   
ContenantRemise__c testC1 = new ContenantRemise__c(Id__c ='32-8',Saison__c=acc.id,Actif__c = true,id_feature_value__c=acc.Contenant_id_feature_value__c,id_feature__c = acc.Contenant_id_feature__c);
upsert testC1 Id__c;  
ContenantRemise__c testC2 = new ContenantRemise__c(Id__c ='32-15',Saison__c=acc.id,Actif__c = true,id_feature_value__c=acc.Remise_id_feature_value__c,id_feature__c = acc.Remise_id_feature__c);
upsert testC2 Id__c;     
    
 //pull the pepiniere info for that ContenantRemise
ContenantRemise__c SecContenantRemise =[SELECT Id__c,Saison__c,Actif__c,id_feature_value__c,id_feature__c FROM ContenantRemise__c WHERE Id = :testC1.id];
ContenantRemise__c SecContRem =[SELECT Id__c,Saison__c,Actif__c,id_feature_value__c,id_feature__c FROM ContenantRemise__c WHERE Id = :testC2.id];    
//verify that the insert updated by creating another ContenantRemise as in the trigger

  System.assert(SecContenantRemise.Id != null);
  System.assertEquals(SecContenantRemise.id_feature_value__c, testC1.id_feature_value__c);
   
  System.assertEquals(SecContenantRemise.id_feature_value__c, fea.id_feature_value_num__c);
  System.assertEquals(SecContenantRemise.Saison__c, acc.id);   
    
  System.assert(SecContRem.Id != null);
  System.assertEquals(SecContRem.id_feature_value__c, testC2.id_feature_value__c);
 
  System.assertEquals(SecContRem.id_feature_value__c, rem.id_feature_value_num__c);
  System.assertEquals(SecContRem.Saison__c, acc.id);    
 
   }

}

Hello,

When not mastering the language of Shakespeare and that starts on Salesforce, learning is a little difficult!

I wish a validation or review my first trigger!

Thank you in advance

Philippe

---------------- ooOoo --------------------------------- ----

A parent object (parent): Pepiniere__c
A related list (child):  Declinaison__c

If Pepiniere__c.Declinaison_pepi__c is TRUE, the trigger creates two records in the Related List  Declinaison__c

Trigger DeclinaisonUpsertPepi on Pepiniere__c (before update) {

List<Declinaison__c> subs = new List<Declinaison__c>();

// Insertion de la première déclinaison

       for (Pepiniere__c Decli1 : Trigger.New) {
          
           if  (newContract.Declinaison_pepi__c ==!false)   {  
                subs.add(new Declinaison__c(
                        Name                              = Decli1.ID_declinaison_moins__c,
                        Quantite__c                    = Decli1.Quantite_moins__c,
                        Prix_de_vente__c          = Decli1.Prix_de_vente_moins__c, 
                        Default__c                      = Decli1.Par_defaut_moins__c,
                        Emplacement__c             = Decli1.Emplacement_moins__c,
                        id_attribute__c                = Decli1.id_attribute_moins__c,
                	ID_Declinaison__c          = Decli1.ID_declinaison_moins__c,
                        Pepiniere__c                   = Decli1.ID
                ));
             
            
       } }

    upsert subs ID_declinaison__c; 
	
// insertion de la deuxième déclinaison	

	  for (Pepiniere__c decli2 : Trigger.New) {
        
if  (decli2.Declinaison_pepi__c ==!false)   {  
               
                subs.add(new Declinaison__c(
                        Name                              = decli2.ID_declinaison_plus__c,
                        Quantite__c                    = decli2.Quantite_plus__c,
                        Prix_de_vente__c          = decli2.Prix_de_vente_plus__c, 
                        Default__c                      = decli2.Par_default_plus__c,
                        Emplacement__c             = decli2.Emplacement_plus__c,
                        id_attribute__c                = decli2.id_attribute_plus__c,
                        ID_Declinaison__c           = decli2.ID_declinaison_plus__c,
                        Pepiniere__c                    = decli2.ID
                ));
                        
                      
}}

         
    
    upsert subs ID_declinaison__c;
   
}