• alonm
  • NEWBIE
  • 0 Points
  • Member since 2008

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 10
    Questions
  • 4
    Replies
In order to send an email with a predefined email template (from the case feed email action), I am using this code (based on the example in p.29 in https://resources.docs.salesforce.com/sfdc/pdf/case_feed_dev_guide.pdf):
function emailSolution(content) {   
    Sfdc.canvas.publisher.publish({name: 'publisher.selectAction', 
    payload: { actionName: 'Case.Email'}}); 
    Sfdc.canvas.publisher.publish({name: 'publisher.setActionInputValues', 
    payload: {
       actionName: 'Case.Email',
       emailFields: {
            template: 'folderName/templateName', 
            body: { value:content, format:'richtext', insert: true}
       }
}});

However, the template parameter has no effect on the email (the email body contains only the string 'content'). If the body parameter is omitted, the email body is empty. I couldn't find any example for usage of the template parameter in the online documentation, has anyone tried already to use it and can provide a code sample?
  • August 26, 2015
  • Like
  • 0

I have a custom object transaction__c with a custom field cost__c of type number(10,4). The cost is calculated as a quotient of two other fields of type number(10,4).

When I display cost__c in a visualforce page I see it in the following format: 0,9555 (my locale is set to german, hence the comma). However, if I first convert the value to a string (using string.valueof(transaction.cost__c)) and then display the string, I lose my locale settings (the comma in this case) and also the number is shown with more than 4 decimal places, for example 0.9554931231.

Is there a way to convert the number to a string without losing locale settings and the number of decimal places? Thanks, Alon

  • May 12, 2009
  • Like
  • 0

Hello,

I am trying to send an Email using a visualforce template, with a pdf attachment, but can't seem to make it work. In my application i have a "sutTer__c" object, which is linked to a "traveller" object. This is a simplified version of the Email template:

 

<messaging:emailTemplate subject="TER" recipientType="User" relatedToType="sutTer__c">
<messaging:plainTextEmailBody >
Attached the TER details
</messaging:plainTextEmailBody>
<messaging:attachment renderAs="pdf" filename="ter.pdf">
    This is the Attachment fot Ter number&nbsp;
    <apex:outputText value="{!relatedTo.name}"/>
</messaging:attachment>   
</messaging:emailTemplate>

 

This is the code that should send the Email (at this point there is an object ter of the type sutTer__c):

        

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(new String[] {ter.Traveller__r.user__r.Email});
mail.setTemplateId('00X800000018i7A');
mail.setWhatId(ter.id);
Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });

 

However, when i try to send an Email with this code, i get an error massage:

"Missing targetObjectId with template."

So i set targetObjectId (and set the saveAsActivity to false,to prevent another error massage), and only then send the mail:

 

Messaging.SingleEmailMessage mail = new Messaging.SingleEmailMessage();
mail.setToAddresses(new String[] {ter.Traveller__r.user__r.Email});
mail.setTemplateId('00X800000018i7A');
mail.setWhatId(ter.id);

mail.setTargetObjectID(ter.traveller__r.user__r.id);

mail.setSaveAsActivity(false);

Messaging.sendEmail(new Messaging.SingleEmailMessage[] { mail });

 

in this case the email is being sent, but it is empty (no body and no attachment). Can anyone tell me what am I doing wrong?

 

thanks,

 

Alon

 

 

 

 

Message Edited by alonm on 05-06-2009 02:24 AM
  • May 05, 2009
  • Like
  • 0

I have a VF page with a pageBlockTable that has a column of checkboxes, whose header contains a checkbox as well. I want all checkboxes to have "RTL" direction. It works for the ones in the column, but not for the header. Here is a very simplified version of my page:

 

<apex:page controller="test">
    <apex:form >
        <apex:pageBlock >
            <apex:pageBlockTable value="{!contacts}" var="contact">
                 <apex:column width="25px" dir="RTL" headerdir="RTL">  
                     <apex:facet name="header">
                          <apex:inputCheckbox dir="RTL"/>
                      </apex:facet>
                      <apex:inputCheckbox /> 
                  </apex:column>
                  <apex:column value="{!contact.Name}"/>
               </apex:pageBlockTable>
           </apex:pageBlock>
    </apex:form>
</apex:page>

 

controller:

public class test
{
    public List<Contact> contacts
     {
        get
        {
            return [Select Name, Id
            From Contact];
        }
    }
}

 

 As you see, I tried to "push" the checkbox to the right with either headerDir attribute of the column, or dir attribute of the checkbox within the facet, but none works, the checkbox in the header stays on the left side. Any suggestions/explanations?

 

 

  • February 23, 2009
  • Like
  • 0

I am trying to write a VF page that does the following:

I have one page block ("pageblock1") with an "open" button. When i press this button, another page block appears ("pageblock2") with a "close" button. When pageblock2 appears, the "open" button in pageblock1 should be disabled. Then, when i press on the "close"in pageblock2, pageblock2 should disappear again, and the "open" button in pageblock1 should be enabled.

This is a code that produces such a behaviour:

 

** page **

 

<apex:page controller="test1">
    <apex:form >
        <apex:pageBlock title="Block1" id="Block1">
            <apex:outputLabel value="{!IsShown}"/>
            <apex:commandButton action="{!showBlock2}" value="open" disabled="{!IsShown}"/>
        </apex:pageBlock>
        <apex:pageBlock title="Block2" id="Block2" rendered="{!IsShown}">
            <apex:outputLabel value="{!IsShown}"/>
            <apex:commandButton action="{!closeBlock2}" value="close"/>
        </apex:pageBlock> 
    </apex:form>
</apex:page>

 

 

** controller **

 

public class test1
{
    public boolean IsShown{set;get;}
   
    public void showBlock2()
    {
        IsShown = true;
    }
   
    public void closeBlock2()
    {
        IsShown = false;
    }
}

 

However, I want to use ajax in this page, but this doesnt give me the desired result. I tried simply to add a rerender attribute to both commandButtons : <apex:commandButton ... rerender="Block1, Block2"/>. What happens is that Block1 is being rerendered (the button becomes disabled and the label changes its value) - but block2 does not appear. I guess it is because Block2 rendered attribute remains false, althogh the isShown property is true.

 

Any suggestions?

 

Thanks, Alon

 

  • February 07, 2009
  • Like
  • 0

Hi All,

I am trying to pass a parameter to the action method of a commanButton, and i can't seem to get it work, although i tried several different methods. If I work with a commandLink i can pass the variable. This is the code of the page and the controller:

 

<apex:page controller="test">
    <apex:form >
           <apex:commandButton action="{!action1}" value="1, 2">
               <apex:param name="param1" value="val1"/>
               <apex:param assignto="{!param2}" value="val2"/>
           </apex:commandButton>
          <apex:commandLink action="{!action2}" value="3, 4 ">
               <apex:param name="param3" value="val3"/>
               <apex:param assignto="{!param4}" value="val4"/>
           </apex:commandLink>

           <apex:commandButton onclick="clickMethod('val5')" value="5">
          </apex:commandButton>
           <apex:actionFunction action="{!action3}" name="clickMethod" >
               <apex:param name="firstParam" assignTo="{!param5}" value="" />
           </apex:actionFunction>
    </apex:form>
</apex:page>

 

public class test
{
     public string param2
     {
      get;
      set {param2 = value; system.debug('param2 (property) is ' + param2);}
    }
   
     public string param4
     {
      get;
      set {param4 = value; system.debug('param4 (property) is ' + param4);}
    }

     public string param5
     {
      get;
      set {param5 = value; system.debug('param5 (property) is ' + param5);}
    }
     
      public PageReference action1()
     {
           System.debug('param1 is ' + System.CurrentPageReference().getParameters().get('param1'));
        System.debug('param2 (function) is ' + param2);
        return null;
      }
    
     public PageReference action2()
     {
        system.debug('param3  is '+ System.CurrentPageReference().getParameters().get('param3')); 
        system.debug('param4 (function) is ' + param4); 
        return null;
      }
     
     public PageReference action3()
     {
        system.debug('param5 (function) is ' + param5); 
        return null;
      }
}

 

When I press on the "1,2" button: the set of param2 is not invoked (I dont get the debug message), but action1 does, but the two parameters are null.

When I press on the "3,4" link: the set of param4 is invoked, then action2 runs, and the parameters have the right values.

When I press on the "5" button: same behaviour as with the "1,2" button.

 

Can some one tell me what I am doing wrong? or is there a known bug associated with passing parameters with a command button?

 

Thanks,

Alon

  • February 06, 2009
  • Like
  • 0
When i try to run the ant scripts that should initialize my org for the hands-on exercises, they always fail (apart from the one for chapter 3). this is the output i get when i try to initialize for chapter 12 (ant Chapter12):

Buildfile: build.xml

Chapter12:
     [echo] This command will add all the entities you will need for the exercises in Chapter 12 into your target organization.  The target organization is identified by the sf.username and sf.password in the build.properties file.             
     [echo]    
    [input] Press any key to continue . . .

BUILD FAILED
C:\Data\Docs\Tutorials\force.com\The Developer's Guide to the Force.com Platform\DevGuide\build.xml:125: Failures:
objects/Candidate__c.object(Candidate__c):The sharing model cannot be updated through the API currently.
objects/Job_Application__c.object(Job_Application__c):The sharing model cannot be updated through the API currently.
objects/Position__c.object(Position__c):The sharing model cannot be updated through the API currently.
objects/Position_Type__c.object(Position_Type__c.Department__c):Cannot change field type of a custom field referenced in Apex class or trigger: <a href="/01p8000000098R3">positionExtension</a>
reports/Chapter_Six/Open_positions.report(Chapter_Six/Open_positions):In field: Position__c.Open_Position_Date__c - no CustomField named Position__c.Open_Position_Date__c found
reports/Chapter_Six/Open_positions_by_days_since_posted.report(Chapter_Six/Open_positions_by_days_since_posted):In field: Position__c.Days_Since_Posting__c - no CustomField named Position__c.Days_Since_Posting__c found
reports/Chapter_Six/Open_positions_by_department.report(Chapter_Six/Open_positions_by_department):In field: Position__c.Days_Since_Posting__c - no CustomField named Position__c.Days_Since_Posting__c found
layouts/Candidate__c-Candidate Layout.layout(Candidate__c-Candidate Layout):In field: field - no CustomField named Candidate__c.Address__c found
layouts/Location__c-Location Layout.layout(Location__c-Location Layout):Invalid related list:Position__c.Location__c
layouts/Position__c-Non-technical Position Layout.layout(Position__c-Non-technical Position Layout):Field:Name must not be Readonly
layouts/Position__c-Position Layout.layout(Position__c-Position Layout):Field:Name must not be Readonly
workflows/Position__c.workflow(Position__c.Close out position):Invalid literal value for picklist:Closed
workflows/Position__c.workflow(Position__c.Open Position):Invalid literal value for picklist:Open
workflows/Position__c.workflow(Position__c.Set Open Position Date):In field: field - no CustomField named Position__c.Open_Position_Date__c found
workflows/Position__c.workflow(Position__c.Set substatus):In field: field - no CustomField named Position__c.Sub_status__c found
workflows/Position__c.workflow(Position__c.14 Days Later):Picklist value does not exist
workflows/Position__c.workflow(Position__c.Application Notification):Field Number_of_Applications__c does not exist. Check spelling.
workflows/Position__c.workflow(Position__c.Close position):In field: field - no CustomField named Position__c.Number_of_Applications__c found
classes/dataLoadController.cls(109,21):No such column 'Legacy_ID__c' on entity 'Position__c'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
profiles/Admin.profile(Admin):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/ContractManager.profile(ContractManager):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/Custom%3A Marketing Profile.profile(Custom%3A Marketing Profile):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/Custom%3A Sales Profile.profile(Custom%3A Sales Profile):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/Custom%3A Support Profile.profile(Custom%3A Support Profile):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/CustomerManager.profile(CustomerManager):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/MarketingProfile.profile(MarketingProfile):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/Partner.profile(Partner):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/ReadOnly.profile(ReadOnly):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/SolutionManager.profile(SolutionManager):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/Standard.profile(Standard):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/StandardAul.profile(StandardAul):In field: recordType - no RecordType named Position__c.Non_technical_position found
objects/Interview__c.object(Interview__c.Interviewer__c):There is already a field named Interviews on User.


Total time: 21 seconds


I believe the problem is because "The sharing model cannot be updated through the API currently.", but i dont know what this error massage mean and what to do to solve the problem..

thanks,
Alon
  • January 16, 2009
  • Like
  • 0
I am trying to achieve a very simple task in a VF page: pressing a button will change the value of a variable of the custom controller of the page, and the new value will appear on the screen. In the sample code below, there are two buttons which i tried, but both don't work. one of them is calling a javascript function (using the actionFunction tag), and the other is calling a method of the controller (using the action attribute).

Here is the VF page code:

<apex:page controller="test1">
    <apex:form >
        <apex:messages></apex:messages>
        <apex:pageBlock>
            <apex:pageBlockButtons location="top">
                <apex:commandButton value="Press Here 1" onclick="setStr('world');" status="testStatus"  rerender="thisPage:Block1"/>
            </apex:pageBlockButtons>
            <apex:pageBlockButtons location="top">
                <apex:commandButton value="Press Here 2" action="{!test2}" status="testStatus"  rerender="thisPage:Block1"/>
            </apex:pageBlockButtons>
        </apex:pageBlock>
        <apex:actionFunction name="setStr" >
            <apex:param name="firstParam" value="" assignTo="{!str}"/>
        </apex:actionFunction>
        <apex:actionStatus id="testStatus" startText="requesting..."/>
        <apex:pageBlock id="Block1">
            <apex:outputText value="Hello {!str}"/>
        </apex:pageBlock>
    </apex:form>
</apex:page>

and this is the controller code:
public class test1
{
string str;

public void test2()
{
str='world';
}


public string getStr()
{
return str;
}
public void setStr(string str1)
{
str = str1;
}
}
When i try this code, for both bottuns, str does not receive the new value (remains empty).

Can someone explain me why this code does not work, and maybe offer another solution?

thanks!!
  • January 16, 2009
  • Like
  • 0
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"><meta name="ProgId" content="Word.Document"><meta name="Generator" content="Microsoft Word 11"><meta name="Originator" content="Microsoft Word 11">

I have two custom objects sutTer__c (which i call TER for clarity) and sutTraveller__c (Traveller). TER object has a lookup field into Traveller. When the user creates a new TER, I want him to see the last name of the traveller. I tried to do it by overriding the new button of TER with the following s-control:

<html>

<head>

<title></title>

<script>

//First construct the new URL

var newUrl = "{!URLFOR( $Action.sutTer__c.New, null,

[Traveller__c=sutTraveller__c.Name, TravellerLastName__c=sutTraveller__c.LastName__c, retURL=$Request.retURL] ,true)}";

//Then redirect the user to it

window.parent.location.replace(newUrl);

</script>

</head>


but this does not work: the Traveller and "Traveller last name" fields are blank when i open a new TER. I tried different approaches as well (like putting the field id (from the URL) instead of the field name, but this couldnt be saved, i got always a syntax error massage).


Can someone give me advise about the write syntax for URLFOR parameters when i use cumstom objects?

  • December 12, 2008
  • Like
  • 0
Hi All
I just started working with the force.com platform a few days ago, so my question is very basic.
I have an object with two text fields with field level security set to read only for ALL profiles, and both have a default value. However, when i'm logged in as system administrator, the fields are editable (both when i create a new record and when i edit an already existed one). For other profiles, the fields are indeed read only. If that's how the system is supposed to work, why do i have at all the option to set fields as read only for system administrator, when this setting is overriden?
  • December 03, 2008
  • Like
  • 0

I am trying to write a VF page that does the following:

I have one page block ("pageblock1") with an "open" button. When i press this button, another page block appears ("pageblock2") with a "close" button. When pageblock2 appears, the "open" button in pageblock1 should be disabled. Then, when i press on the "close"in pageblock2, pageblock2 should disappear again, and the "open" button in pageblock1 should be enabled.

This is a code that produces such a behaviour:

 

** page **

 

<apex:page controller="test1">
    <apex:form >
        <apex:pageBlock title="Block1" id="Block1">
            <apex:outputLabel value="{!IsShown}"/>
            <apex:commandButton action="{!showBlock2}" value="open" disabled="{!IsShown}"/>
        </apex:pageBlock>
        <apex:pageBlock title="Block2" id="Block2" rendered="{!IsShown}">
            <apex:outputLabel value="{!IsShown}"/>
            <apex:commandButton action="{!closeBlock2}" value="close"/>
        </apex:pageBlock> 
    </apex:form>
</apex:page>

 

 

** controller **

 

public class test1
{
    public boolean IsShown{set;get;}
   
    public void showBlock2()
    {
        IsShown = true;
    }
   
    public void closeBlock2()
    {
        IsShown = false;
    }
}

 

However, I want to use ajax in this page, but this doesnt give me the desired result. I tried simply to add a rerender attribute to both commandButtons : <apex:commandButton ... rerender="Block1, Block2"/>. What happens is that Block1 is being rerendered (the button becomes disabled and the label changes its value) - but block2 does not appear. I guess it is because Block2 rendered attribute remains false, althogh the isShown property is true.

 

Any suggestions?

 

Thanks, Alon

 

  • February 07, 2009
  • Like
  • 0
When i try to run the ant scripts that should initialize my org for the hands-on exercises, they always fail (apart from the one for chapter 3). this is the output i get when i try to initialize for chapter 12 (ant Chapter12):

Buildfile: build.xml

Chapter12:
     [echo] This command will add all the entities you will need for the exercises in Chapter 12 into your target organization.  The target organization is identified by the sf.username and sf.password in the build.properties file.             
     [echo]    
    [input] Press any key to continue . . .

BUILD FAILED
C:\Data\Docs\Tutorials\force.com\The Developer's Guide to the Force.com Platform\DevGuide\build.xml:125: Failures:
objects/Candidate__c.object(Candidate__c):The sharing model cannot be updated through the API currently.
objects/Job_Application__c.object(Job_Application__c):The sharing model cannot be updated through the API currently.
objects/Position__c.object(Position__c):The sharing model cannot be updated through the API currently.
objects/Position_Type__c.object(Position_Type__c.Department__c):Cannot change field type of a custom field referenced in Apex class or trigger: <a href="/01p8000000098R3">positionExtension</a>
reports/Chapter_Six/Open_positions.report(Chapter_Six/Open_positions):In field: Position__c.Open_Position_Date__c - no CustomField named Position__c.Open_Position_Date__c found
reports/Chapter_Six/Open_positions_by_days_since_posted.report(Chapter_Six/Open_positions_by_days_since_posted):In field: Position__c.Days_Since_Posting__c - no CustomField named Position__c.Days_Since_Posting__c found
reports/Chapter_Six/Open_positions_by_department.report(Chapter_Six/Open_positions_by_department):In field: Position__c.Days_Since_Posting__c - no CustomField named Position__c.Days_Since_Posting__c found
layouts/Candidate__c-Candidate Layout.layout(Candidate__c-Candidate Layout):In field: field - no CustomField named Candidate__c.Address__c found
layouts/Location__c-Location Layout.layout(Location__c-Location Layout):Invalid related list:Position__c.Location__c
layouts/Position__c-Non-technical Position Layout.layout(Position__c-Non-technical Position Layout):Field:Name must not be Readonly
layouts/Position__c-Position Layout.layout(Position__c-Position Layout):Field:Name must not be Readonly
workflows/Position__c.workflow(Position__c.Close out position):Invalid literal value for picklist:Closed
workflows/Position__c.workflow(Position__c.Open Position):Invalid literal value for picklist:Open
workflows/Position__c.workflow(Position__c.Set Open Position Date):In field: field - no CustomField named Position__c.Open_Position_Date__c found
workflows/Position__c.workflow(Position__c.Set substatus):In field: field - no CustomField named Position__c.Sub_status__c found
workflows/Position__c.workflow(Position__c.14 Days Later):Picklist value does not exist
workflows/Position__c.workflow(Position__c.Application Notification):Field Number_of_Applications__c does not exist. Check spelling.
workflows/Position__c.workflow(Position__c.Close position):In field: field - no CustomField named Position__c.Number_of_Applications__c found
classes/dataLoadController.cls(109,21):No such column 'Legacy_ID__c' on entity 'Position__c'. If you are attempting to use a custom field, be sure to append the '__c' after the custom field name. Please reference your WSDL or the describe call for the appropriate names.
profiles/Admin.profile(Admin):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/ContractManager.profile(ContractManager):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/Custom%3A Marketing Profile.profile(Custom%3A Marketing Profile):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/Custom%3A Sales Profile.profile(Custom%3A Sales Profile):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/Custom%3A Support Profile.profile(Custom%3A Support Profile):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/CustomerManager.profile(CustomerManager):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/MarketingProfile.profile(MarketingProfile):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/Partner.profile(Partner):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/ReadOnly.profile(ReadOnly):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/SolutionManager.profile(SolutionManager):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/Standard.profile(Standard):In field: recordType - no RecordType named Position__c.Non_technical_position found
profiles/StandardAul.profile(StandardAul):In field: recordType - no RecordType named Position__c.Non_technical_position found
objects/Interview__c.object(Interview__c.Interviewer__c):There is already a field named Interviews on User.


Total time: 21 seconds


I believe the problem is because "The sharing model cannot be updated through the API currently.", but i dont know what this error massage mean and what to do to solve the problem..

thanks,
Alon
  • January 16, 2009
  • Like
  • 0
I am trying to achieve a very simple task in a VF page: pressing a button will change the value of a variable of the custom controller of the page, and the new value will appear on the screen. In the sample code below, there are two buttons which i tried, but both don't work. one of them is calling a javascript function (using the actionFunction tag), and the other is calling a method of the controller (using the action attribute).

Here is the VF page code:

<apex:page controller="test1">
    <apex:form >
        <apex:messages></apex:messages>
        <apex:pageBlock>
            <apex:pageBlockButtons location="top">
                <apex:commandButton value="Press Here 1" onclick="setStr('world');" status="testStatus"  rerender="thisPage:Block1"/>
            </apex:pageBlockButtons>
            <apex:pageBlockButtons location="top">
                <apex:commandButton value="Press Here 2" action="{!test2}" status="testStatus"  rerender="thisPage:Block1"/>
            </apex:pageBlockButtons>
        </apex:pageBlock>
        <apex:actionFunction name="setStr" >
            <apex:param name="firstParam" value="" assignTo="{!str}"/>
        </apex:actionFunction>
        <apex:actionStatus id="testStatus" startText="requesting..."/>
        <apex:pageBlock id="Block1">
            <apex:outputText value="Hello {!str}"/>
        </apex:pageBlock>
    </apex:form>
</apex:page>

and this is the controller code:
public class test1
{
string str;

public void test2()
{
str='world';
}


public string getStr()
{
return str;
}
public void setStr(string str1)
{
str = str1;
}
}
When i try this code, for both bottuns, str does not receive the new value (remains empty).

Can someone explain me why this code does not work, and maybe offer another solution?

thanks!!
  • January 16, 2009
  • Like
  • 0