• mworld
  • NEWBIE
  • 0 Points
  • Member since 2008

  • Chatter
    Feed
  • 0
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 28
    Questions
  • 23
    Replies

The StandardSetController APEX class has getFilterId and setFilterId methods. My question is what are these filters and where are they found? How are they used? There is no filter object or any other reference in APEX or VF that I can find.

 

Mauricio Parra

  • September 10, 2009
  • Like
  • 0

Can *anyone* tell me why a count query would generate a "System.Exception: Too many query rows: 10001" message?

 

It breaks here: integer intCount = Database.countQuery(strQuery); //execute the SOQL Count Query

 

Here's the annotated code:

 

 

public List<Transport__c> getDisplay() { Schema.DescribeSObjectResult R = Account.SObjectType.getDescribe(); //Get Describe object for 'ACCOUNT' List<Schema.ChildRelationship> C = R.getChildRelationships(); //Get List of child relationships for 'ACCOUNT' List<Transport__c> transports = new List<Transport__c>(); //initialize list of placeholder objects For (Schema.ChildRelationship child : C) //For each Child relationship -- 52 total { Schema.DescribeSObjectResult R2 = (child.getChildSObject()).getDescribe(); //Get Describe object for the related child object boolean boolQuery = R2.isQueryable(); //Is the Child object Queryable? if (boolQuery) //If so -- 48 total { Transport__c transport = new Transport__c(); //initialize placeholder for this object transport.Text_1_80__c = string.valueOf(child.getChildSObject()); //Get the child's object token and convert it to string transport.Text_2_80__c = string.valueOf(child.getField()); //Get the child's foreign key field token and convert it to string string strObject = string.valueOf(child.getChildSObject()); //ditto string strField = string.valueOf(child.getField()); //ditto string strValue = '0015000000QKSb1AAH'; //hard coded Account ID for testing string strQuery = 'SELECT Count() FROM ' + strObject + ' WHERE ' + strField + ' = \'' + strValue + '\''; //Create SOQL count query string integer intCount = Database.countQuery(strQuery); //execute the SOQL Count Query transport.Title_1_255__c = strQuery; //Display the SOQL query string transport.Text_3_80__c = string.valueOf(intCount); //Display the string value of the count result transports.add(transport); //add this placeholder to placeholder list } } return transports; //send the list to the page for display }

 

 This makes ZERO sense. Code works fine if I comment out the query execution.

 

  • September 02, 2009
  • Like
  • 0

What are my options, if any, to programmatically determine what Master/Detail or Lookup relationships a particular Object is involved in?

 

We would like to prevent users from deleleting an Account (for example) that is involved in the above relationships. We would prefer not to hard code the existing relationships but rather determine them dynamically so that we don't need to continually update the code as we add objects to our system.

 

Ideas?

  • August 24, 2009
  • Like
  • 0

<apex:page action="{!NewAgreement}" standardController="Agreement__c" apiVersion="14.0" extensions="AgreementAmendRef_Extension" title="Agreement:~Salesforce-DeveloperEdition"> ...

 

 

Is it necessary to specify an API version for a VF page? Is there a benefit? A drawback? Within the Salesforce interface the API version for this page is shown as 13.0. As youcan see, in the Page tag we set it to 14.0.

 

The main question over here is if we leave the api parameter off will the page "float up" to using the latest API version? The concern is that if we specify an API we are somehow holding back the page.

 

Thoughts?

Is it possible to have picklists on a custom VF page respect the recordtype (with regards to their available choices) without elaborate if/else coding? Stock pages do this automatically with Page layoputs but once you cross over to a custom page it seems you lose this completely.
  • January 20, 2009
  • Like
  • 0
I have seen examples of embedding VF pages in Page Layouts but I have not seen examples of REPLACING Page Layouts with VF pages.

We have a Custom object that has a dozen Record Types that are displayed via a half dozen different page layouts. The users would like to add some additional fields to the layouts that would require creating a VF page to implement. Is it possible to do this?

Can I replace my Page Layouts with VF pages that fulfill the same function but display the custom data users need/want?
  • January 07, 2009
  • Like
  • 0
Is it possible to migrate custom views from one environment to another? We currently use "Ant" to do our major deployments from Dev to Sandbox (or between Sandboxes) and "Eclipse" to move individual items (like reports) between environments. I don't see a way to do the same with the Custom Views created by our users on various object home pages (Account, Contact, Opportunity etc.) Is this doable?

Mauricio
  • December 23, 2008
  • Like
  • 0
I am working on a report parameter screen that appears once a user picks the report they want to run from the Custom Reports list. On this screen the user enters the parameter values required and clicks the Generate button. At this point my APEX code assembles the parameters, attaches them to the report URL and re-directs to an external ASP site (Crystal Reports Viewers) where the report is generated and the user sees the report in their browser. This all works just fine.

The enhancement I would like to make is for the report to be opened in a new window rather than in the redirected window. This way the user still has an open SF window as well as their report window.

I have tried various "hacks" and not found anything that works. The key here is that the complete URL is not known until after the Generate button is clicked and the parameters are processed.

Any ideas? This should be simple, right?

Mauricio
  • November 05, 2008
  • Like
  • 0
I am creating a VF page to collect parameter values for report generation. Each report has 1 to n parameters that the user needs to input in order for the report to run correctly. I am using a DataTable to display these parameter inputs as text boxes. The page renders one row for each parameter. So far so good. The problem comes in retrieving the values in my Apex code. I have no way of differentitating one row from another. As best I can tell, the ID value for the outputText box (ie textBox:0, textBox:1, textBox:2 etc) is not accesible to me within my Apex page controller.

Do I have to switch to using client-side (ie JavaScript) code for this?


Code: VF Page Snippet
<apex:dataTable value="{!Parameters}" var="parms">
    <apex:column width="40%"><apex:outputText id="textBox" value="{!parms.Parameter_Label__c}:"/></apex:column>
    <apex:column width="20%">&nbsp;</apex:column>
    <apex:column width="40%">
        <apex:inputText id="inputText" value="{!textValue}"/>
    </apex:column>
</apex:dataTable>

 Thanks!

  • November 03, 2008
  • Like
  • 0
I have a VF page with a detail section and numerous related lists. The detail section and some of the related lists are "stock", while others are custom. I have noticed that unlike a "stock" detail and related list page, there are no help links for each related list. It doesn't appear that there is any way to enable these in my custom page. Is this correct? Does anyone have any suggestions on how to get there?

Mauricio
  • August 15, 2008
  • Like
  • 0
Is there a way to migrate reports and report types from one SF environment to another? The Metadata API does not appear to support this and the SF "Create Packages" functionality pulls in all custom fields, objects, buttons, triggers touched by a given report, which is not what we need.

Mauricio
  • August 11, 2008
  • Like
  • 0
Does anyone know which Metadata API component(s) is(are) "responsible" for overrides of stock buttons and custom list views?  None of them is the obvious "owner" of these items and we'd rather not have to manually implement these in our next deployment.

Mauricio Parra
Has anyone succesfully used Ant to delete a custom field from any object (in this case Opportunity)? If so, can you post the destructiveChanges.XML for this? We've been trying to delete custom fields from both custom and "stock" objects with no success (though we can delete custom objects succesfully).

Mauricio Parra
I created a package 3 weeks ago and succesfully uploaded it. Yesterday I went back in to upload it again and noticed 3 lines at the top with no information except for "Included by":



When I click upload I get the following error messages:



I have searched for those field identifiers in the pages they supposedly belong to with no success.Clicking on the Name yields a message:

Data Not Available
The data you were trying to access could not be found. It may be due to another user deleting the data or a system error. If you know the data is not deleted but cannot access it, please look at our support page.

Click here to return to the previous page.



I have no pending field deletes. I am logged in as administrator with rights to do everything in this development account.

Does anyone have an idea of what's going on and why the display is so useless?

Mauricio


Our application takes in data from an outside application and the folks here would like to suck that data into an SF table, process and integrate it with other tables, and then purge the initial table on a daily basis. Use of Delete just marks records for deletion rather than physically removing them from the table. Is there any global purge/clear/delete functionailty available to operate on SF tables?

Mauricio
Is there a way to implement the "Help Orb" with help text in a VF page?

I have an orb in place and it activates and deactivates per usual. By giving it "Title" text I can display my help message when the user mouses over the orb. The span Id is correct for my object and field but that doesn't do anything. While this hack works pretty well, I would prefer to have the real thing.

Code:
<span class="helpButton" id="01I70000000AHdm.00N70000001gKpH">
<img src="/s.gif" alt="" class="helpOrb" title="Please enter a number between 0.00 and 100.00" />
</span>


Any suggestions?

Mauricio
I have a situation where I would like to have the user click a button on a detail page and have them then be re-directed to an external site. There are parameters that would vary according to which page they were on when they clicked this button and those parameters would determine the exact destination. Basically, we're talking about having the user re-directed to an external site that is a document archive, so which directory they end up in depends on what record they were looking at in SF.
 
My initial thought was to have the button bring up an intermediate custom VF page that just says "Redirecting to SharePoint" while the custom page controller evaluates the queryString parameters, determines what the exact final URL will be, and then does the re-direct. The problem comes with the fact that we don't seem to be able to execute that re-direct without further action from the user (such as clicking a button on this intermediate page).
 
Does anyone know whether and how it is possible to execute an automated re-direct such as I describe?
 
Mauricio
I have added all of our various objects, fields, classes etc. to our package in preparation for a deployment from our Development enviro to our Production enviro. What I have not been able to do is add our VF pages to the package. Pages are not shown as an option in the selection dropdown in the add to package process. This is true even though we're now running the Summer '08 Preview which fully supports VF, right?
 
Apart from manually copying and pasting the code for each page from one environment to the other, is there a more reasonable way? Am I missing something?
 
Mmauricio
Does anyone know how long a Development account will remain active without any activity? We don't want to lose the code/objects in there even though we may not be actively using it. Is there an expiration?
 
Mauricio Parra
I have packaged up my application within my development environment (Create --> Packages) but I get this error when I click the Upload or Upload Now Links:
 
Data Not Available
The data you were trying to access could not be found. It may be due to another user deleting the data or a system error. If you know the data is not deleted but cannot access it, please look at our support page.

Click here to return to the previous page.

 

Completely useless for determining what is going on. Any ideas?

 

Mauricio

Can *anyone* tell me why a count query would generate a "System.Exception: Too many query rows: 10001" message?

 

It breaks here: integer intCount = Database.countQuery(strQuery); //execute the SOQL Count Query

 

Here's the annotated code:

 

 

public List<Transport__c> getDisplay() { Schema.DescribeSObjectResult R = Account.SObjectType.getDescribe(); //Get Describe object for 'ACCOUNT' List<Schema.ChildRelationship> C = R.getChildRelationships(); //Get List of child relationships for 'ACCOUNT' List<Transport__c> transports = new List<Transport__c>(); //initialize list of placeholder objects For (Schema.ChildRelationship child : C) //For each Child relationship -- 52 total { Schema.DescribeSObjectResult R2 = (child.getChildSObject()).getDescribe(); //Get Describe object for the related child object boolean boolQuery = R2.isQueryable(); //Is the Child object Queryable? if (boolQuery) //If so -- 48 total { Transport__c transport = new Transport__c(); //initialize placeholder for this object transport.Text_1_80__c = string.valueOf(child.getChildSObject()); //Get the child's object token and convert it to string transport.Text_2_80__c = string.valueOf(child.getField()); //Get the child's foreign key field token and convert it to string string strObject = string.valueOf(child.getChildSObject()); //ditto string strField = string.valueOf(child.getField()); //ditto string strValue = '0015000000QKSb1AAH'; //hard coded Account ID for testing string strQuery = 'SELECT Count() FROM ' + strObject + ' WHERE ' + strField + ' = \'' + strValue + '\''; //Create SOQL count query string integer intCount = Database.countQuery(strQuery); //execute the SOQL Count Query transport.Title_1_255__c = strQuery; //Display the SOQL query string transport.Text_3_80__c = string.valueOf(intCount); //Display the string value of the count result transports.add(transport); //add this placeholder to placeholder list } } return transports; //send the list to the page for display }

 

 This makes ZERO sense. Code works fine if I comment out the query execution.

 

  • September 02, 2009
  • Like
  • 0
Does anyone know which Metadata API component(s) is(are) "responsible" for overrides of stock buttons and custom list views?  None of them is the obvious "owner" of these items and we'd rather not have to manually implement these in our next deployment.

Mauricio Parra
Has anyone succesfully used Ant to delete a custom field from any object (in this case Opportunity)? If so, can you post the destructiveChanges.XML for this? We've been trying to delete custom fields from both custom and "stock" objects with no success (though we can delete custom objects succesfully).

Mauricio Parra
I created a package 3 weeks ago and succesfully uploaded it. Yesterday I went back in to upload it again and noticed 3 lines at the top with no information except for "Included by":



When I click upload I get the following error messages:



I have searched for those field identifiers in the pages they supposedly belong to with no success.Clicking on the Name yields a message:

Data Not Available
The data you were trying to access could not be found. It may be due to another user deleting the data or a system error. If you know the data is not deleted but cannot access it, please look at our support page.

Click here to return to the previous page.



I have no pending field deletes. I am logged in as administrator with rights to do everything in this development account.

Does anyone have an idea of what's going on and why the display is so useless?

Mauricio


Is there a way to implement the "Help Orb" with help text in a VF page?

I have an orb in place and it activates and deactivates per usual. By giving it "Title" text I can display my help message when the user mouses over the orb. The span Id is correct for my object and field but that doesn't do anything. While this hack works pretty well, I would prefer to have the real thing.

Code:
<span class="helpButton" id="01I70000000AHdm.00N70000001gKpH">
<img src="/s.gif" alt="" class="helpOrb" title="Please enter a number between 0.00 and 100.00" />
</span>


Any suggestions?

Mauricio
I have a situation where I would like to have the user click a button on a detail page and have them then be re-directed to an external site. There are parameters that would vary according to which page they were on when they clicked this button and those parameters would determine the exact destination. Basically, we're talking about having the user re-directed to an external site that is a document archive, so which directory they end up in depends on what record they were looking at in SF.
 
My initial thought was to have the button bring up an intermediate custom VF page that just says "Redirecting to SharePoint" while the custom page controller evaluates the queryString parameters, determines what the exact final URL will be, and then does the re-direct. The problem comes with the fact that we don't seem to be able to execute that re-direct without further action from the user (such as clicking a button on this intermediate page).
 
Does anyone know whether and how it is possible to execute an automated re-direct such as I describe?
 
Mauricio
I have added all of our various objects, fields, classes etc. to our package in preparation for a deployment from our Development enviro to our Production enviro. What I have not been able to do is add our VF pages to the package. Pages are not shown as an option in the selection dropdown in the add to package process. This is true even though we're now running the Summer '08 Preview which fully supports VF, right?
 
Apart from manually copying and pasting the code for each page from one environment to the other, is there a more reasonable way? Am I missing something?
 
Mmauricio
I have packaged up my application within my development environment (Create --> Packages) but I get this error when I click the Upload or Upload Now Links:
 
Data Not Available
The data you were trying to access could not be found. It may be due to another user deleting the data or a system error. If you know the data is not deleted but cannot access it, please look at our support page.

Click here to return to the previous page.

 

Completely useless for determining what is going on. Any ideas?

 

Mauricio

I have several custom pages where I'm having an annoying issue with my inputField calendar widget being open when the page loads. This field is the only text input field on the page and automatically receives the focus (see below).

Here's my InputField code:

Code:
<apex:inputField id="Date" onFocus="setNamedFocus(document.forms[0].elements[0])" required="true" value="{!Staff_IP__c.Assigned__c}"/>

And this is what SF does to it:

Code:
<input  id="j_id0:newIPForm:j_id2:Date" name="j_id0:newIPForm:j_id2:Date" onfocus="DatePicker.pickDate(false, 'j_id0:newIPForm:j_id2:Date', false);" size="12" type="text" value="4/28/2008" />

The Source code shows that the Calendar widget is coded to open and select a date when it receives focus. It shows that a calendar widget is a text field under the covers. It also shows that my attempts to directly call elementFocus(element) or setNamedFocus(element_name) in functions.js to explicitly re-direct the focus to one of the other controls (a checkbox and a select list) were completely ignored.

This shows that by default the page is coded to set Focus to the first available text input field onLoad.

Code:
<body onLoad="if (this.bodyOnLoad) bodyOnLoad();" <snip> >

function bodyOnLoad() {
 setFocusOnLoad();
        <snip>
}

function setFocusOnLoad() {
    if (!beenFocused) { setFocus(); }
}

function setFocus() {
    // search for a tabIndexed field to focus on
    for(var firstIndex=1; firstIndex < 5; firstIndex ++ ){
        var nextIndex = firstIndex;
        for (var frm = 0; frm < document.forms.length; frm++) {
            for (var fld = 0; fld < document.forms[frm].elements.length; fld++) {
                var elt = document.forms[frm].elements[fld];
                if ( elt.tabIndex != nextIndex) continue;
                if ((elt.type == "text" || elt.type == "textarea" || elt.type == "password") && !hiddenOrDisabled(elt)
                   && elt.name != "sbstr" &&  elt.name.indexOf("owner") != 0 && elt.name.indexOf("tsk1") != 0 && elt.name.indexOf("evt1") != 0) {
                    elt.focus();
                    if (elt.type == "text" && !hiddenOrDisabled(elt)) {
                        elt.select();
                    }
                    return true;
                } else {
                    nextIndex++;
                    fld = 0;
                }
            }
        }
    }

    // failed to find a tabIndexed field, try to find the field based on it's natural position.
    // TODO: is this even needed anymore—
    for (var frm = 0; frm < document.forms.length; frm++) {
        if (document.forms[frm].name != "sbsearch" && document.forms[frm].name != "srch_solution_sbar" &&
            document.forms[frm].name != "srch_product_sbar" && document.forms[frm].name != "srch_document_sbar") {
            for (var fld = 0; fld < document.forms[frm].elements.length; fld++) {
                var elt = document.forms[frm].elements[fld];
                // skip buttons, radio, or check-boxes
                // to skip "select" types, remove from if statement
                if ((elt.type == "text" || elt.type == "textarea" || elt.type == "password") && !hiddenOrDisabled(elt) &&
                     elt.name.indexOf("owner") != 0 && !hiddenOrDisabled(elt)) {
                    elt.focus();
                    // select text in text field or textarea
                    if (elt.type == "text" && !hiddenOrDisabled(elt)) {
                        elt.select();
                    }
                    return true;
                }
            }
        }
    }

    return true;
}

Does anyone know how to override the focus setting without throwing out VF entirely and writing an entirely hand coded page?

Mauricio

  • April 29, 2008
  • Like
  • 0
I have a custom screen with several input fields including one which is a date. For some reason, when the screen loads the calendar widget is always selected and open. This happens whether or not there is a date value to display, regardless of its placement or tab index on the page. This is annoying and confusing to users and does not happen on "stock" pages. Any ideas how to stop this?
 
Code:
<TD WIDTH="33%"><apex:inputField required="true" value="{!Staff_IP__c.Assigned__c}"/></TD>
 
Mauricio
  • April 28, 2008
  • Like
  • 0
Using VF, I have modified some of my related lists to display additional columns of information (from objects not available in the "stock" lists). Beyond that I want these re-created lists to look and feel the same as the "stock" ones. And they do, with just one exception: there is no confirmation that pops up when the Del link is clicked.
 
Code:
<apex:outputLink value="/setup/own/deleteredirect.jsp">Del
     <apex:param name="Id" value="{!priority.ID_3__c}"/>
     <apex:param name="delID" value="{!priority.ID_1__c}"/>
     <apex:param name="retURL" value="/{!priority.ID_3__c}"/>
</apex:outputLink>

As you can see the link has the same URL as the stock link and the params provide the needed information from the controller extension. What do I need to do to get the confirmation pop-up? The users are paranoid about accidentally deleting something.
 
Thanks,
 
Mauricio
  • April 24, 2008
  • Like
  • 0
I am trying to display the Partners related list

Code:
<apex:page standardController="Opportunity">
<apex:outputText value="{!Opportunity.Name}"/>

<!--<apex:relatedList list="OpenActivities"/>-->
<apex:relatedList list="Partners"/>
</apex:page>

 
I get a Visual Force error:
'Partners' is not a valid child relationship name for entity Opportunity.

Under Opportunity child Relationship I see the relationship name is 'Partners'









  • April 16, 2008
  • Like
  • 0
My users would like a simple HTML editor on a page so that they can edit filed content that will be posted to the web but not have to know HTML. This seems like a pretty straighhtforward request and I borrowed some code that allows toggling back and forth between text and HTML. This code works fine in an html page when displayed in Explorer or Firefox but fails to do anything when it's part of a Salesforce page. I wonder if this is because of the iFrame that is the key to the whole thing? Is there a prohibition against editable iFrames within a salesforce page?
 
The code is below. I should note that while there are currently no apex tags in the code it made no difference when there were.
 
Mauricio
 
Code:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<html> 
<head>
 <script src="/soap/ajax/12.0/connection.js" type="text/javascript"></script>   
 <script language="JavaScript">
  var viewMode = 1; // WYSIWYG
 
  function Init()
  {
   iView.document.designMode = 'On';
  }

  function selOn(ctrl)         
  {           
   ctrl.style.borderColor = '#000000';
   ctrl.style.backgroundColor = '#B5BED6';
   ctrl.style.cursor = 'hand';        
  }
 
  function selOff(ctrl)
  {
   ctrl.style.borderColor = '#D6D3CE';
   ctrl.style.backgroundColor = '#D6D3CE';        
  }

  function selDown(ctrl)
  {
   ctrl.style.backgroundColor = '#8492B5';
  }          
 
  function selUp(ctrl)
  {
   ctrl.style.backgroundColor = '#B5BED6';
  }          
 
  function doBold()
  {
   iView.document.execCommand('bold', false, null);
  }        
 
  function doItalic()
  {
   iView.document.execCommand('italic', false, null);
  }

  function doUnderline()
  {
   iView.document.execCommand('underline', false, null);
  }          
 
  function doBulList()
  {
   iView.document.execCommand('insertunorderedlist', false, null);
  }          
 
  function doToggleView()         
  {           
   if(viewMode == 1) // WYSIWYG            
   {                 
    iHTML = iView.document.body.innerHTML;                
    iView.document.body.innerText = iHTML;                                          
    
    // Hide all controls                 
    tblCtrls.style.display = 'none';                
    iView.focus();                  
    viewMode = 2; // Code            
   }            
   else // Code           
   {                 
    iText = iView.document.body.innerText;                 
    iView.document.body.innerHTML = iText;                  
    
    // Show all controls                 
    tblCtrls.style.display = 'inline';                 
    iView.focus();                  
    viewMode = 1; // WYSIWYG           
   }         
  }   
 </script>
 <style>
  .butClass { border: 1px solid; border-color: #D6D3CE; }
  .tdClass { padding-left: 3px; padding-top:3px; }
 </style>
</head>

<body onLoad="Init()"> 
 <table id="tblCtrls" width="415px" height="30px" border="0" cellspacing="0" cellpadding="0" bgcolor="#D6D3CE"> 
  <tr> 
   <td class="tdClass"> 
    <img alt="Bold" class="butClass" src="bold.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doBold()"> 
    <img alt="Italic" class="butClass" src="italic.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doItalic()"> 
    <img alt="Underline" class="butClass" src="underline.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doUnderline()"> 
    <img alt="Bulleted List" class="butClass" src="bullist.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doBulList()"> 
   </td> 
  </tr> 
 </table> 
 <iframe id="iView" style="width: 415px; height:205px"></iframe> 
 <table width="415px" height="30px" border="0" cellspacing="0" cellpadding="0" bgcolor="#D6D3CE"> 
  <tr> 
   <td class="tdClass" colspan="1" width="20%" align="right"> 
    <img alt="Toggle Mode" class="butClass" src="mode.gif" onMouseOver="selOn(this)" onMouseOut="selOff(this)" onMouseDown="selDown(this)" onMouseUp="selUp(this)" onClick="doToggleView()"> 
    &nbsp;&nbsp;&nbsp; 
   </td> 
  </tr> 
 </table> 
</body> 
</html>

 
  • April 07, 2008
  • Like
  • 0