1

我正在使用包含 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”变量中。

真是不知如何从这里往前走。

非常感谢提供的任何指导/方向。

谢谢,卡里姆

4

1 回答 1

0

为axisScale添加一个getter并重新生成您的数据控件。将axisScale的绑定添加到您的页面,然后将其用作最大值。

页面定义:

<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"/>
于 2012-11-29T13:02:21.680 回答