• guest1231231
  • NEWBIE
  • 25 Points
  • Member since 2010

  • Chatter
    Feed
  • 1
    Best Answers
  • 0
    Likes Received
  • 0
    Likes Given
  • 24
    Questions
  • 32
    Replies

Is it possible to do a union query within SOQL?

 

Thanks

How do you render a subquery from a custom list controller?  I want to render fields from ActivityHistories for the current account.  ***I also need to have pagination.***

 

Thanks

 

Here is my current code:

 

 

public class ActivityHistorySetConExt {

        //ApexPages.StandardSetController must be instantiated for standard list controllers
 
        public ApexPages.StandardSetController setCon {
        get {
            if(setCon == null) {
                setCon = new ApexPages.StandardSetController(
                	Database.getQueryLocator(
                      	[select id, name, ownerid,
							(select subject, whoid, whatid, accountid, ownerid, activitydate, description from ActivityHistories 
							 order by activitydate desc
							 limit 1000)
						from account
						where id = :ApexPages.currentPage().getParameters().get('id')]
                      )
				);
            }
            //setCon.SetPageSize(5);
            return setCon;
        }
        set;
    }
    
    // Initialize setCon and return a list of records  
    
    public List<Account> getAccounts() {
         return (List<Account>) setCon.getRecords();
    }
    
    // returns the next page of records
 	public void first() {
 		setCon.first();
 	}
 	
 	// returns the next page of records
 	public void last() {
 		setCon.last();
 	}
    
    // indicates whether there are more records before the current page set.
	public Boolean hasPrevious {
		get {
			return setCon.getHasPrevious();
		}
		set;
	}
	
	// returns the previous page of records
 	public void previous() {
 		setCon.previous();
 	}
    
    // indicates whether there are more records after the current page set.
	public Boolean hasNext {
		get {
			return setCon.getHasNext();
		}
		set;
	}
	
	// returns the next page of records
 	public void next() {
 		setCon.next();
 	}
    
}

 

 

 

Is there a workaround for "List controllers are not supported for Task"?

 

Thanks

 

public class ActivityHistorySetConExt {

        //ApexPages.StandardSetController must be instantiated for standard list controllers
 
        public ApexPages.StandardSetController setCon {
        get {
            if(setCon == null) {
                setCon = new ApexPages.StandardSetController(Database.getQueryLocator(
                      	[select subject, whoid, whatid, accountid, ownerid, activitydate, description 
                      	from Task 
						order by activitydate desc
						limit 1000]
                      )
				);
            }
            //setCon.SetPageSize(5);
            return setCon;
        }
        set;
    }
    
    // Initialize setCon and return a list of records  
    
    public List<Task> getTasks() {
         return (List<Task>) setCon.getRecords();
    }
    
    // returns the next page of records
 	public void first() {
 		setCon.first();
 	}
 	
 	// returns the next page of records
 	public void last() {
 		setCon.last();
 	}
    
    // indicates whether there are more records before the current page set.
	public Boolean hasPrevious {
		get {
			return setCon.getHasPrevious();
		}
		set;
	}
	
	// returns the previous page of records
 	public void previous() {
 		setCon.previous();
 	}
    
    // indicates whether there are more records after the current page set.
	public Boolean hasNext {
		get {
			return setCon.getHasNext();
		}
		set;
	}
	
	// returns the next page of records
 	public void next() {
 		setCon.next();
 	}
    
}

 

Where can I find a working example of pagination with a standard controller extension?  I am getting this error "Invalid variant 'parent': value 'Account'" and cannot find any documentation on why I am getting this problem.

 

The developer guide example "Pagination with a List Controller" provides hardly any information on the subject.

I have this visualforce tab which is suppose to display an external website within a tabpanel.  However when the user clicks on the website in the iframe it opens up into a new window within the existing page, thus existing Salesforce.  Why is it doing this and how can this be resolved with visualforce code?

 

-Thanks

 

Here is my current VF code

<apex:tab label="BDC" name="BDC" id="bdc" rendered="{!NOT(ISBLANK(Account.Top_Category_1__c))}">
  <iframe width="100%" height="500" scrolling="true" marginheight="100%" marginwidth="100%"
  src="http://www.externalwebsite.com/search/rslt_default.asp?  query={!Account.Custom_Account_Field__c}">    
  </iframe>
</apex:tab>

 

 

 

 

How do you remove the Tabpane/Tab outline?  Here is my current CSS style that I would like to remove the outline from.

 

 

<style>
      .activeTab {
        background-color: #236FBD;
        border-top-left-radius: 8px;
        border-top-right-radius:  8px;
        color:white;
        background-image:none
      }
</style>

 

 

What are the standard Salesforce CSS Colors for the tabs?

 

-Thanks

 

 

<style>
      .activeTab {
        background-color: ????;
        color:white;
        background-image:none
      }
      .inactiveTab {
        background-color: ????;
        color:black;
        background-image:none
      }
</style>

 

 

With apex:tabpanel is there a way to only "load" a tab when the user clicks that tab?  For example, a tab displays an external website using iframe, but I only want that external website to load when the user actually clicks on the tab.

 

Is this possible?

 

Here is one such code snippet I only want to load when the user actually clicks the tab.

<apex:tab label="Website" name="Website" id="website">
<iframe width="100%" height="500" frameborder="true" scrolling="true"
src="http://{!Account.Website}">
</iframe>
</apex:tab>

 

 

 

-Thanks

Is there a way to have an iframe start off at a certain point on the page?  Instead of having to scroll down, the page loads to a certain point you can then scroll up or down from?

 

-Thanks

Any ideas what causes this error?

 

"Implementation restriction: activity aggregate relationships only allow security evaluation for non-admin users when no other filters are applied"

 

-Thanks

For U.S. based consulting, what do you charge clients for admin consulting?  Development (clicks, not code) consulting?  Advanced development (Apex, VisualForce) consulting?

I'm new to VF and HTML, how can I render only a certain section of a URL.  For example, is possible to only render the PPC Overview section of the page below?  Can this be done using VF/HTML or do I need API access?

 


 

 

 

 

 

-Thanks

 

 

Would like to extend the capability of the "View All" button under the Activity History section to only return activities assigned to certain users.

 

Where can I get the source code for the View Activity History? 

 

How would I go about creating the filter?

 

I've developed using Apex but I am new to VF.

 

-Thanks

Receiving this error:

 

Apex script unhandled trigger exception by user/organization: 00500000006r7X9/00D00000000havX

 

CopyContactDateToOppy: execution of AfterInsert

 

caused by: System.Exception: Too many SOQL queries: 21

 

Trigger.CopyContactDateToOppy.CopyContactDate: line 75, column 11

 

Here is the code...

 

 

Map<Id, Opportunity []> oppsMap = new Map<Id, Opportunity[]>();

//create list of related accounts and map them to the opportunities
List<Account> accts = new List<Account>{};
//this query below is line 75
accts = [select Id, (select Id from Opportunities where CloseDate > 2009-03-01)
from Account
where Id in:setAccountIdsSet and Id in (select AccountId from Opportunity where CloseDate > 2009-03-01)];

for (Account eachAcct: accts) {
oppsMap.put(eachAcct.Id, eachAcct.Opportunities);
}

 

What am I doing wrong here?

 

 


Which for loop here is more efficient, is there even a difference when it comes to avoiding governor limits?

 

 

Task[] tasks = new Task[]{};
for(Integer i=0;i<tasks.size();i++) {
//some code
}

 

 

OR

 

 

Task[] tasks = new Task[]{};
for(Task activity: tasks) {
//some code
}

 

 

 

 

How do you get the Opportunity Id from this query?

 

 

accts = [select Id, (select Id from Opportunities) from Account

 

-Thanks

 

How do I get the Opportunity Id value from the list collection in the map OppsMap?

 

List<Account> Accts = new List<Account>{};
Accts = [select Id, First_Contact_Date__c, (select Id from Opportunities) from Account];

Map<Id, List<Opportunity>> OppsMap = new Map<Id, List<Opportunity>>{};
for(Account a: Accts) {
OppsMap.put(a.Id, a.Opportunities);
}

-Thanks

 

When my test code bulk inserts 100 tasks it does not throw any exceptions, but when I increase it to 200 I get "System.Exception: Too many script statements: 50001".

 

Why would it throw an exception at 200 but not 100 insertions?

 

-Thanks

Do attachments in Chatter count toward the organizations storage usage?

 

-Thanks

 

 

What is the best way to go about creating this LinkedIn Profile Widget for Salesforce.com Lead, Contact, and Account records?  Seems like it can be done with an S-Control, but should it be done with VF page instead?

 

http://www.linkedin.com/static?key=developers_widget_profileinsider

 

-Thanks

How do you render a subquery from a custom list controller?  I want to render fields from ActivityHistories for the current account.  ***I also need to have pagination.***

 

Thanks

 

Here is my current code:

 

 

public class ActivityHistorySetConExt {

        //ApexPages.StandardSetController must be instantiated for standard list controllers
 
        public ApexPages.StandardSetController setCon {
        get {
            if(setCon == null) {
                setCon = new ApexPages.StandardSetController(
                	Database.getQueryLocator(
                      	[select id, name, ownerid,
							(select subject, whoid, whatid, accountid, ownerid, activitydate, description from ActivityHistories 
							 order by activitydate desc
							 limit 1000)
						from account
						where id = :ApexPages.currentPage().getParameters().get('id')]
                      )
				);
            }
            //setCon.SetPageSize(5);
            return setCon;
        }
        set;
    }
    
    // Initialize setCon and return a list of records  
    
    public List<Account> getAccounts() {
         return (List<Account>) setCon.getRecords();
    }
    
    // returns the next page of records
 	public void first() {
 		setCon.first();
 	}
 	
 	// returns the next page of records
 	public void last() {
 		setCon.last();
 	}
    
    // indicates whether there are more records before the current page set.
	public Boolean hasPrevious {
		get {
			return setCon.getHasPrevious();
		}
		set;
	}
	
	// returns the previous page of records
 	public void previous() {
 		setCon.previous();
 	}
    
    // indicates whether there are more records after the current page set.
	public Boolean hasNext {
		get {
			return setCon.getHasNext();
		}
		set;
	}
	
	// returns the next page of records
 	public void next() {
 		setCon.next();
 	}
    
}

 

 

 

Hi,

I have a requirement where I have to display one VF page as an iframe in another VF page. Both the VF pages are sharing the same controller. From first VF page, on a click event I will query some records in the controller and those records should be displayed in the iframe which is the second VF page. So, in the iframe, how can I refer the page? If I refer like {!$page.secondPage}, the controller class variables used in this VF is coming as null. Can anyone tell me how should I refer the second page in the iframe with maintaining the controller class variables?

 

 

 

Thanks,

sorna

  • August 27, 2010
  • Like
  • 0

What are the standard Salesforce CSS Colors for the tabs?

 

-Thanks

 

 

<style>
      .activeTab {
        background-color: ????;
        color:white;
        background-image:none
      }
      .inactiveTab {
        background-color: ????;
        color:black;
        background-image:none
      }
</style>

 

 

With apex:tabpanel is there a way to only "load" a tab when the user clicks that tab?  For example, a tab displays an external website using iframe, but I only want that external website to load when the user actually clicks on the tab.

 

Is this possible?

 

Here is one such code snippet I only want to load when the user actually clicks the tab.

<apex:tab label="Website" name="Website" id="website">
<iframe width="100%" height="500" frameborder="true" scrolling="true"
src="http://{!Account.Website}">
</iframe>
</apex:tab>

 

 

 

-Thanks

Is there a way to have an iframe start off at a certain point on the page?  Instead of having to scroll down, the page loads to a certain point you can then scroll up or down from?

 

-Thanks

Any ideas what causes this error?

 

"Implementation restriction: activity aggregate relationships only allow security evaluation for non-admin users when no other filters are applied"

 

-Thanks

I'm new to VF and HTML, how can I render only a certain section of a URL.  For example, is possible to only render the PPC Overview section of the page below?  Can this be done using VF/HTML or do I need API access?

 


 

 

 

 

 

-Thanks

 

 

Top five reasons we're the Number 1 Most Popular Salesforce Consulting Partner on AppExchange:


  • Experience -- Over 100 Salesforce deployments & over 30 Force.com apps
  • Free Advice -- We offer all of our clients on-going free advice whenever needed.
  • Versatile -- Our clientele covers a wide range of industries, from small to international enterprise conglomerates, including Kaplan, Dell, University of San Francisco, Fluxion Biosciences, Aldon, Ingres, iRise, among others.
  • Guaranteed -- We publish our 3-point guarantee on our web site.

View our Service Listing - ForceBrain.com

View our Service Listing - ForceBrain.com

View our Service Listing - ForceBrain.com

 

Best Regards,

 

Sean Considine

Director of Client Strategy

ForceBrain.com

sconsidin@ForceBrain.com

415-504-2593


We're hiring!

HIRING SENIOR FORCE.COM ARCHITECT

Please email jobs@forcebrain.com for more details!

  • August 09, 2010
  • Like
  • 0

Would like to extend the capability of the "View All" button under the Activity History section to only return activities assigned to certain users.

 

Where can I get the source code for the View Activity History? 

 

How would I go about creating the filter?

 

I've developed using Apex but I am new to VF.

 

-Thanks

Receiving this error:

 

Apex script unhandled trigger exception by user/organization: 00500000006r7X9/00D00000000havX

 

CopyContactDateToOppy: execution of AfterInsert

 

caused by: System.Exception: Too many SOQL queries: 21

 

Trigger.CopyContactDateToOppy.CopyContactDate: line 75, column 11

 

Here is the code...

 

 

Map<Id, Opportunity []> oppsMap = new Map<Id, Opportunity[]>();

//create list of related accounts and map them to the opportunities
List<Account> accts = new List<Account>{};
//this query below is line 75
accts = [select Id, (select Id from Opportunities where CloseDate > 2009-03-01)
from Account
where Id in:setAccountIdsSet and Id in (select AccountId from Opportunity where CloseDate > 2009-03-01)];

for (Account eachAcct: accts) {
oppsMap.put(eachAcct.Id, eachAcct.Opportunities);
}

 

What am I doing wrong here?

 

 


Completely stuck on how to test this. All the posts I have read are very confusing

 

 

public  class PreloadVacancy {

	public PreloadVacancy(ApexPages.StandardController vacancy){
		
		Vacancy__c plVacancy = (Vacancy__c) vacancy.getRecord();
		plVacancy.Account__c = ApexPages.currentPage().getParameters().get('acc');
		plVacancy.Order__c = ApexPages.currentPage().getParameters().get('ord');
		plVacancy.Credit__c = ApexPages.currentPage().getParameters().get('cred');
		plVacancy.Contract__c = ApexPages.currentPage().getParameters().get('con');
			
	}
	

}

 

I understand how testing works from a trigger perspective. But have no idea on controllers. Interestingly enough this is deployed in production with 0% converage.

 

Any pointers welcome.

 

Hello!

 

I am new to Apex / Visualforce, so will appreciate any help with the following. I have created a custom list using visual force to display all child accounts in a related list. I would like to repeat the same for Contacts of child accounts in the page for parent account.

 

Now, having done that, how do I implement pagination - if the number of contacts / child accounts is significant?

 

See my apex code below:

 

<apex:page standardController="Account" extensions="childAccount">

<style>

.fewerMore { display: none;}

</style>

<apex:form >

 <apex:pageMessages />

 <apex:detail relatedList="true"></apex:detail>

<apex:pageblock id="CustomList" title="Child Accounts"  >

   <apex:pageBlockTable value="{!acctz}" var="o" rendered="{!NOT(ISNULL(acctz))}">

        <apex:column headerValue="Action" >

            <apex:outputLink value="/{!o.id}/e?retURL=/apex/{!$CurrentPage.Name}" style="color:blue; text-decoration:none">Edit</apex:outputLink>

        </apex:column>       

        <apex:column headerValue="Name"> <apex:outputLink value="/{!o.id}">{!o.Name}</apex:outputLink> </apex:column>

        <apex:column value="{!o.Address_Street__c}"/>

        <apex:column value="{!o.Address_City__c}"/>

    <apex:column value="{!o.Office__c}"/>

        <apex:column value="{!o.Type}"/>

   </apex:pageBlockTable>

   <apex:outputLabel value="No records to display" rendered="{!(ISNULL(acctz))}"></apex:outputLabel>

 </apex:pageblock>

 

</apex:form>

</apex:page>

 

 

 

 

public class childAccount {

   

    private List<Account> acctz;

    private Account acct;

 

    public childAccount(ApexPages.StandardController controller) {

        this.acct= (Account)controller.getRecord();

    }

 

    public List<Account> getAcctz()

    {

        Account act = [Select id FROM Account where id = :acct.id];

        acctz = [Select id, Name, Address_Street__c, Address_City__c, Office__c, Type from Account where parentid = :act.id];

    return acctz;

    }

}

 

 

Hi,

 

I want to create a highly interactive report in dashboard where we can change the axis like the horizontal and vertical from picklist and so the report will change.

 

Suppose I am looking at USA sales and I would like to check the UK sales. So I want to achieve it by changing the picklist entry where I will have options like UK, USA, Middle -east etc territory wise and as I will change the piclist the reports will dynamically change.

 

Can it be done in salesforce? and if yes the how? using visualforce and s-control?

 

secondly, is there any mechanism to dynamically load through ajax or javascript the custom reports already generated

 

 

Please reply me in details

 

Prasenjit

  • February 25, 2010
  • Like
  • 0

When developing a Visualforce page for overiding view page for any object, one problem that creeps up is to display the History details of a record. The standard related list Component doesn't works for History.

 

With the help of some code from Community ( I now can't find the link to it :( ), I wrote my own code  then to display the history of an object. It mimics the standard list as far as possible.  

 

Heres the code. It is for the Case object but it can be used for any other object.

 1.Component Code

 

<apex:component controller="CaseHistoriesComponentController">
<!-- Attribute Definition -->
<apex:attribute name="CaseId" description="Salesforce Id of the Case whose Case History needs to be rendered" type="Id" required="true" assignTo="{!caseId}" />

<!-- Case History Related List -->
<apex:pageBlock title="Case History">
<apex:pageBlockTable value="{!histories}" var="History" >
<apex:column headerValue="Date" value="{!History.thedate}"/>
<apex:column headerValue="User"> <apex:outputLink value="/{!History.userId}"> {!History.who} </apex:outputLink></apex:column>
<apex:column headerValue="Action"><apex:outputText escape="false" value="{!History.action}"/></apex:column>
</apex:pageBlockTable>
</apex:pageBlock>
</apex:component>

 

 

 

 

2. Apex Code

 

public class CaseHistoriesComponentController {

public Id caseId {get; set;}
public cHistories[] histories;

// Variables
public Static final Map<String, Schema.SObjectField> CaseFieldmap = Schema.SObjectType.Case.fields.getMap();
public Static final List<Schema.PicklistEntry> fieldPicklistValues = CaseHistory.Field.getDescribe().getPicklistValues();

public List<cHistories> getHistories()
{
list<cHistories> histories = new list<cHistories>();
String prevDate = '';
for(CaseHistory cHistory : [Select CreatedDate, CreatedBy.Name, CreatedBy.Id, Field, NewValue, OldValue from CaseHistory where CaseId = :caseId order by CreatedDate desc])
{
if((cHistory.newValue == null && cHistory.oldValue == null)
|| (cHistory.newValue != null && !(string.valueOf(cHistory.newValue).startsWith('005') || string.valueOf(cHistory.newValue).startsWith('00G')))
|| (cHistory.oldValue != null && !(string.valueOf(cHistory.oldValue).startsWith('005') || string.valueOf(cHistory.oldValue).startsWith('00G'))))
{
cHistories tempHistory = new cHistories();
// Set the Date and who performed the action
if(String.valueOf(cHistory.CreatedDate) != prevDate)
{
tempHistory.theDate = String.valueOf(cHistory.CreatedDate);
tempHistory.who = cHistory.CreatedBy.Name;
tempHistory.userId = cHistory.CreatedBy.Id;
}
else
{
tempHistory.theDate = '';
tempHistory.who = '';
tempHistory.userId = cHistory.CreatedBy.Id;
}
prevDate = String.valueOf(cHistory.CreatedDate);

// Get the field label
String fieldLabel = CaseHistoriesComponentController.returnFieldLabel(String.valueOf(cHistory.Field));

// Set the Action value
if (String.valueOf(cHistory.Field) == 'created') { // on Creation
tempHistory.action = 'Created.';
}
else if(cHistory.OldValue != null && cHistory.NewValue == null){ // when deleting a value from a field
// Format the Date and if there's an error, catch it and re
try {
tempHistory.action = 'Deleted ' + Date.valueOf(cHistory.OldValue).format() + ' in <b>' + fieldLabel + '</b>.';
} catch (Exception e){
tempHistory.action = 'Deleted ' + String.valueOf(cHistory.OldValue) + ' in <b>' + fieldLabel + '</b>.';
}
}
else{ // all other scenarios
String fromText = '';
if (cHistory.OldValue != null) {
try {
fromText = ' from ' + Date.valueOf(cHistory.OldValue).format();
} catch (Exception e) {
fromText = ' from ' + String.valueOf(cHistory.OldValue);
}
}

String toText = '';
if (cHistory.OldValue != null) {
try {
toText = Date.valueOf(cHistory.NewValue).format();
} catch (Exception e) {
toText = String.valueOf(cHistory.NewValue);
}
}
if(toText != '')
tempHistory.action = 'Changed <b>' + fieldLabel + '</b>' + fromText + ' to <b>' + toText + '</b>.';
else
tempHistory.action = 'Changed <b>' + fieldLabel;
}

// Add to the list
histories.add(tempHistory);
}
}

return histories;
}

// Function to return Field Label of a Case field given a Field API name
public Static String returnFieldLabel(String fieldName)
{
if(CaseHistoriesComponentController.CaseFieldmap.containsKey(fieldName))
return CaseHistoriesComponentController.CaseFieldmap.get(fieldName).getDescribe().getLabel();
else
{
for(Schema.PicklistEntry pickList : fieldPicklistValues)
{
if(pickList.getValue() == fieldName)
{
if(pickList.getLabel() != null)
return pickList.getLabel();
else
return pickList.getValue();
}
}
}
return '';
}
// Inner Class to store the detail of the case histories
public class cHistories {

public String theDate {get; set;}
public String who {get; set;}
public Id userId {get; set;}
public String action {get; set;}
}
}

  Let me know your views on the code or if you have any questions

 

Hi,

 

I have this query in my apex class:

actvty= [ SELECT (SELECT ActivityDate, Description,Subject,who.name from ActivityHistories order by ActivityDate desc ) FROM Contact WHERE Id in :contid]; return actvty;

I am not sure how do I display this result in Visual force page. I tried the follwing but give me error.(Error: Invalid field Subject for SObject Contact)

<apex:pageBlockTable value="{!actvty}" var="t" rendered="{!NOT(ISNULL(actvty))}" > <apex:column value="{!t.Subject}"/> <apex:column value="{!t.Who.Name}"/> <apex:column value="{!t.ActivityDate}"/> </apex:pageBlockTable> <apex:outputLabel value="No records to display" rendered="{!(ISNULL(actvty))}" styleClass="noRowsHeader"></apex:outputLabel> </apex:pageblock>

 

Could you please help me ?

 

Message Edited by das on 08-03-2009 04:11 PM
Message Edited by das on 08-05-2009 03:47 PM
Hi All,

My requirement is to access the variable of repeat tag. My controller returns List < List<Trans__c> >. My repeat tag builds a pageblock section for each sublist. Data is being displayed fine, but I'm unable to access the repeat variable in the title of Pageblocksection.

here is sample data for more clarity on what I need.

     <apex:repeat value="{!Transcript}" var="subList" >             // My Controller returns List <List<Trans__c> > where Trans__c is my object.  
         
                <apex:pageBlockSection title=" ??? " columns="1" id="pbsTrans">
               
                    <apex:pageBlockTable value="{!subList}" var="trans" >

                         <apex:column value="{!trans.Activity_Title__c}"  />                                                 
                        
                          <apex:column value="{!trans.Year__c}" /> // I want this year to be displayed in the page block section TITLE
                  
                   </apex:pageBlockTable>
                  
              </apex:pageBlockSection>
           
           
            </apex:repeat> 

I tried returning Map<Integer, List<Trans__c > > from my controller where integer would be year. But in my repeat tag I did not know how to access the sublist and integer of the returned map obj for my page block table.

please let me know how I can get this achieved.

Thanks in Advance,
dvs

  • December 22, 2008
  • Like
  • 0
I've been able to get the pagination to work with a custom controller, however there seem to be some limitations that restrict its use that i wanted to check to make sure that i am correct.

Firstly, pagination only works if you instantiate the setController from a query locator using Database.getQueryLocator. If you instantiate using a list of sObjects then the pagination is ignored and the whole recordset is returned. This is kind of a shame as the getQueryLocator does not accept dynamic SOQL, so if you want to build a fairly sophisticated search facility with paginated results then it does not appear to be possible using this method.

Secondly, you are also not able to use lists of wrapper classes that contain results sets. For example if you wanted to allow the user to select multiple records from a search result my understanding is that the only way to do this is to construct a wrapper class that contains both the sobject and a boolean field to indicate whether the record has been selected. Since a StandardSetController can only be instantiated using Sobjects, pagination again does not appear possible.

Can anyone confirm if my understanding is correct and if it is, then how would i go about developing a paginated solution for these scenarios?

Thanks
Gareth