You need to sign in to do that
Don't have an account?
Karanraj
Opportunity line item
Hi all,
I have a custom object 'cust_a', which has master detail relationship with Opportunity. When I use the custom object as Standard controller in my visual force page am not able to get the 'OpportunityLineItems'.
How to get the value of OpportunityLineItems?
Ohh, declare list as:
public List<Opportunity> lstOLI {get; set;}
More info on access modifiers (public, private...) :
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_access_modifiers.htm
"By default, a method or variable is visible only to the Apexwithin the defining class. This is different from Java, where methods and variables are public by default"
All Answers
Might be helpful for you:
http://boards.developerforce.com/t5/Visualforce-Development/Aggregate-Relationship-is-used-in-an-unsupported-complex/m-p/275441
But remember that if you are rendering page as PDF then iframe will not work.
Thanks for reply.........
Am also getting same error
Error: Aggregate Relationship is used in an unsupported complex expression containing 'opportunity__r.opportunitylineitems'
am rendering paga as PDF, Is there any way to solve this error?...by writting apex code like that
Ahh, you can write apex class? Then there is hope :)
In the constructor,
Now use lstOLI in your VF page's repeat tag to get OpportunityLineItem..
When i used your code, i got error message as OpportunityLineItem is cant used, then I used the following query to solve this error.
SELECT Amount, Id, Name, (SELECT Quantity, ListPrice,
PricebookEntry.UnitPrice, PricebookEntry.Name
FROM OpportunityLineItems) FROM Opportunity
Then in the visualforce page, i used 'lstOLI' in the repeat tag, after saving the VFpage am getting the following error
Error: Unknown property 'CustObjectA__cStandardController.$lstOLI
Please post your VF and controller code. I can assist you better..
And the select statement should be something like,
lstOLI = [select name,field1,field2... from OpportunityLineItem where OpportunityId =: custObj.Opportunity__c];
This is my Contoller class.....
public class CustomInvoiceExtension{
Invoice__c custObj;
List<Opportunity> lstOLI {get; set;}
public CustomInvoiceExtension()
{
}
public CustomInvoiceExtension(ApexPages.StandardController controller) {
custObj = (Invoice__c) controller.getRecord();
lstOLI = [SELECT Quantity, ListPrice,PricebookEntry.UnitPrice,PricebookEntry.Name FROM OpportunityLineItems Where OpportunityId =: custObj.Opportunity__c];
}
}
While saving am getting following error
Error: Compile Error: sObject type 'OpportunityLineItems' is not supported. If you are attempting to use a custom object, be sure to append the '__c' after the entity name. Please reference your WSDL or the describe call for the appropriate names. at line 9 column 11
Note:-
In my VF page, am using StandardContoller as my Custom object and Extensions this Contoller
Hey use:
lstOLI = [SELECT Quantity, ListPrice,PricebookEntry.UnitPrice,PricebookEntry.Name FROM OpportunityLineItem Where OpportunityId =: custObj.Opportunity__c];
Still same eror???
When they say refer WSDL just go to Setup--Develop--API--Generate Enterprise WSDL--Generate. Search for OpportunityLineItem and see the name used in database.
Thanks it solved this error and now am getting error in VF page
Error: Unknown property 'Invoice__cStandardController.lstOLI'
<apex:page standardController="Invoice__c" extensions="CustomInvoiceExtension" showHeader="false" renderas="pdf">
...................
<apex:repeat value="{!lstOLI}" var="line">
<tr>
<td>{!line.OpportunityLineItems.PricebookEntry.Name}</td>
<td>{!line.OpportunityLineItems.Description}</td>
<td ALIGN="center"><img src='{!line.OpportunityLineItems.PricebookEntry.Product2.URL_Picture__c}'/></td>
<td>{!line.OpportunityLineItems.Quantity}</td>
<td><apex:OutputField value="{!line.OpportunityLineItems.UnitPrice}"/></td>
<td><apex:OutputField value="{!line.OpportunityLineItems.TotalPrice}"/></td>
</tr>
</apex:repeat>
Ohh, declare list as:
public List<Opportunity> lstOLI {get; set;}
More info on access modifiers (public, private...) :
http://www.salesforce.com/us/developer/docs/apexcode/Content/apex_classes_access_modifiers.htm
"By default, a method or variable is visible only to the Apexwithin the defining class. This is different from Java, where methods and variables are public by default"
Thanks a lot........It solved my issue....:smileyhappy:
Thank you once again.....
Where I can learn more about VFpage?Guide me to learn VFpage
My pleasure karan :)
Search for visualforce and you will see lots of documnetations, discussion board posts.
http://wiki.developerforce.com/index.php/An_Introduction_to_Visualforce
PDF user guide which explains almost everything about visualforce page:
http://www.salesforce.com/us/developer/docs/pages/salesforce_pages_developers_guide.pdf
Read, understand and practise it, that is the best method to learn. When you practise always try to understand the effect of writing each code statement. Good luck buddy.