我正在使用包含 x 轴标签和要在图表中显示/堆叠的值的对象列表来处理双轴堆叠条形图(ADF 组件)。
我对 ADF 和 EJB 比较陌生,因此如果这个问题对你们中的任何人来说似乎很初级,我想提前道歉。
我应该提到我正在使用 JDeveloper 11.1.1.5
我很难从变量中检索要分配给我试图在 JSF 页面上显示的条形图的属性的值。
我简单总结了以下逻辑,供引用。
数据/列表是从以下类数据控件中检索的:
public class ActivityChart {
private Double axisScale;
public ActivityChart() {
super();
axisScale = 0.0;
}
public List<ActivityDTO> getActivityDetail(List<String> businessUnits) {
List<ActivityDTO> returnNewList = new ArrayList<ActivityDTO>();
List<TransactionDTO> dataList = new ArrayList<TransactionDTO>();
TransactionSessionBean transBean = lookupTransactionSessionBean();
if (businessUnits != null && !businessUnits.isEmpty()){
dataList = transBean.getActivityData(SystemUtil.getCurrentUser(), businessUnits);
returnNewList = processTransactions(dataList);
axisScale = calcAxisScale(returnNewList);
}
return returnNewList;
}
...
TransactionDTO 对象基本上是实体对象的镜像,用于存储查询的数据库事务中的字段。 ActivityDTO 对象包含一个字符串值(x 轴标签)和 3 个用于条形图所需值的 double 值。
我想要做的是动态设置 2 个 y 轴的比例(我使用的是双轴堆叠条形图),因为自动计算的值未对齐。
现在我已经用特定轴值硬编码了条形图的两个相关元素:
<dvt:y1Axis axisMaxAutoScaled="false" axisMaxValue="100.0"/>
<dvt:y2Axis axisMaxAutoScaled="false" axisMaxValue="100.0"/>
我想要用于 Y 轴的值被计算并存储在上面类中的“axisScale”变量中。
真的不知道如何从这里继续前进。
非常感谢提供的任何指导/方向。
谢谢, 卡里姆
最佳答案
为 axisScale 添加 getter 并重新生成数据控件。将 axisScale 的绑定(bind)添加到您的页面,然后将其用作最大值。
页面定义:
<attributeValues IterBinding="ActivityChartIterator" id="axisScale">
<AttrNames>
<Item Value="axisScale"/>
</AttrNames>
</attributeValues>
页面:
<dvt:y1Axis axisMaxValue="#{bindings.axisScale.attributeValue}" axisMaxAutoScaled="false"/>
<dvt:y2Axis axisMaxValue="#{bindings.axisScale.attributeValue}" axisMaxAutoScaled="false"/>
关于Java ADF 使用来自数据控制类的存储参数和堆叠条形图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13610168/