Java ADF使用来自数据控制类的存储参数和堆积条形图

时间:2012-11-28 16:47:10

标签: java jdeveloper oracle-adf

我使用双轴堆叠条形图(ADF组件),使用包含x轴标签的对象列表以及要在图表中显示/堆叠的值。

我对ADF& amp; 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对象包含一个String值(x轴标签)和3个Double值,用于条形图所需的值。

我要做的是动态设置2个y轴的比例(我使用的是双轴堆叠条形图)因为自动计算的值没有对齐。

现在我已经使用特定的轴值硬编码了条形图的两个相关元素:

<dvt:y1Axis axisMaxAutoScaled="false" axisMaxValue="100.0"/>
<dvt:y2Axis axisMaxAutoScaled="false" axisMaxValue="100.0"/>

计算我想用于Y轴的值并将其存储在上述类中的“axisScale”变量中。

真的不知道如何从这里前进。

非常感谢任何指导/指导。

谢谢, 卡里姆

1 个答案:

答案 0 :(得分:0)

为axisScale&amp;添加一个吸气剂重新生成数据控件。为您的页面添加axisScale的绑定&amp;然后将其用作最大值。

pageDef:

<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"/>