Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Salesforce 在VF页面上显示多子查询、动态字段、动态对象SOQL查询结果_Salesforce_Visualforce_Soql - Fatal编程技术网

Salesforce 在VF页面上显示多子查询、动态字段、动态对象SOQL查询结果

Salesforce 在VF页面上显示多子查询、动态字段、动态对象SOQL查询结果,salesforce,visualforce,soql,Salesforce,Visualforce,Soql,我希望将一个SOQL查询传递给一个页面,或者让用户自己在页面上输入它,处理它,然后在表中显示结果 最大的问题是显示结果,因为VF动态绑定似乎只在一个层次上工作,之后它给出空指针异常似乎是SF中的一些错误 我有一个动态的主对象,其中包含来自查询的多个相关列表,例如:用户可能正在提取一个帐户列表,其中包含所有相关联系人和所有相关机会。以下是一个查询示例: 选择id、名称、账单状态、从联系人中选择id、名称、标题、从名称为“%Corp%”的帐户中选择id、商机金额 另一次,查询可能位于完全不同的父对象

我希望将一个SOQL查询传递给一个页面,或者让用户自己在页面上输入它,处理它,然后在表中显示结果

最大的问题是显示结果,因为VF动态绑定似乎只在一个层次上工作,之后它给出空指针异常似乎是SF中的一些错误

我有一个动态的主对象,其中包含来自查询的多个相关列表,例如:用户可能正在提取一个帐户列表,其中包含所有相关联系人和所有相关机会。以下是一个查询示例:

选择id、名称、账单状态、从联系人中选择id、名称、标题、从名称为“%Corp%”的帐户中选择id、商机金额

另一次,查询可能位于完全不同的父对象上,如:

选择id、名称、帐户id、选择id、OpportunityLineItems中的成本、选择id、OpportunityLimit中附件中的名称20

解析查询中的字段和对象名不是问题,但是使用动态绑定在VF页面的表中显示这些结果是一场噩梦,对我来说不起作用。有什么想法吗?或者您可能在某个地方见过这种特定情况下的VF代码

作为旁注,下面是我在尝试使用动态绑定时在VF页面上遇到的错误

错误:java.lang.NullPointerException
错误:null

在这些情况下,我总是依赖对象关系映射器模式,或者简称为包装器类。对于更复杂的字段,最终显示的是单级类成员抽象,而不是直接来自SOQL语句结果的字段。这样做的一个好处是,您只需执行几个SOQL调用,以最能支持页面的任何方式准备数据,然后平滑地呈现页面。拥有这个抽象类的额外工作最终得到了很好的回报——imo


下面是一个例子,它精确地展示了如何在Apex中实现这一点。在您的例子中,您可以在此示例上进行扩展,将多个Sobject的值添加到此ORM样式类的一个实例中,然后从Apex中填充该类实例的列表。此自定义对象实例列表成为Visualforce消费的完美食物。

动态绑定的哪一部分不起作用?如果您将visualforce的一部分发布到绑定的位置,可能会有所帮助。按照Adam的建议,如果绑定方式正确,将采用Object_uc['ChildRelationships_ur']的形式,我最终使用了一个包装类。单独使用动态绑定是不行的。