1

我创建了 2 个自定义对象,由于销售人员列表和报告的限制,我无法在长文本区域上显示超过 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

感谢您的帮助,这现在是我修改后的代码。并且我保留了我正在使用的命名约定,这是一个重复的自定义对象相同的字段/相同的关系只是一个不同的名称(原来有一个丰富的文本区域。_2 有一个长的文本区域

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 
4

1 回答 1

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;
}
于 2013-07-25T07:36:42.080 回答