我创建了2个自定义对象,由于salesforce列表和报告的限制,我不能在长文本区域显示超过255个字符。
Sales_Trip__c
- Name - string
- Date_From - date
- Date_To - date
- Salesman - lookup User
Sales_Trip_Visit__c
- Sales_Trip - master-detail
- Account - master-detail
- Notes - Long Textarea
- Date - date
所以我正在尝试创建一个新的visualforce页面,该页面在Sales_Trip_Visit__c.Date排序的表格中显示sales_trip_visit__c
我使用Sales_Trip__c标准控制器工作 但这会使无序访问返回。
据我所知,我无法在页面内执行此操作,因此我尝试为Sales_Trip__c标准控制器创建一个扩展,该控制器的方法返回按日期排序的访问列表。
这是我到目前为止所做的事情,我认为我做得不对。
public class mySalesTripControllerExtension {
private final Sales_Trip__c satr;
public mySalesTripControllerExtension(ApexPages.StandardController stdController) {
this.satr = (Sales_Trip__c)stdController.getRecord();
}
public List<Sales_Trip_Visits__c> getVisitList() {
con = new List<Sales_Trip_Visits__c>();
con = [SELECT Date, Account.Name, Notes FROM Sales_Trip_Visits__c WHERE Sales_Trip__c.id = :this.satr.id ORDER BY Date]
return con;
}
}
我收到以下错误,但我认为我完全错了。
Error: Compile Error: sObject type 'Sales_Trip_Visits__c' 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 18 column 15
感谢您的帮助,现在我修改了代码。并且我保留了我正在使用的名称约定,这是一个重复的自定义对象相同的字段/相同的关系只是一个不同的名称(原始有一个丰富的textarea。_2有一个长textarea
public class mySalesTripControllerExtension {
private final Sales_Trip__c satr;
// The extension constructor initializes the private member
// variable acct by using the getRecord method from the standard
// controller.
public mySalesTripControllerExtension(ApexPages.StandardController stdController) {
this.satr = (Sales_Trip__c)stdController.getRecord();
}
public List<Sales_Trip_Visit_2__c> getVisitList() {
Sales_Trip_Visit_2__c con = [SELECT Date__c, Account__r.Name, Notes__c FROM Sales_Trip_Visit_2__c WHERE Sales_Trip__r.Id = :satr.id ORDER BY Date__c];
return con;
}
}
当前错误。
Error: Compile Error: Return value must be of type: LIST<Sales_Trip_Visit_2__c> at line 16 column 9
答案 0 :(得分:0)
首先,您可以在页面上进行排序,但是您必须使用一些javascript。一个更好的方法就是你在控制器端进行排序。 除了我在评论中提到的错误之外,你整体做得对。 这是修改后的代码
public List<Sales_Trip_Visits__c> getVisitList() {
Sales_Trip_Visits__c con = [SELECT Date__c, Account__r.Name, Notes__c FROM Sales_Trip_Visits__c WHERE Id = :satr.id ORDER BY Date__c]
return con;
}