Uploaded image for project: 'ZK Pivottable'
  1. ZK Pivottable
  2. ZKPVT-30

Grand Total values ​​do not convert to when you change the position of one of the measures

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Fixed
    • Icon: Major Major
    • None
    • 2.0.0
    • PivotFieldControl
    • None

      As the code below, try change data fields' position then you will see this issue.

      TestComposer.java

      package test;
      
      import java.util.ArrayList;
      import java.util.Arrays;
      import java.util.List;
      import java.util.Random;
      
      import org.zkoss.pivot.PivotField;
      import org.zkoss.pivot.PivotHeaderNode;
      import org.zkoss.pivot.Pivottable;
      
      import org.zkoss.pivot.impl.TabularPivotModel;
      import org.zkoss.pivot.ui.PivotFieldControl;
      
      import org.zkoss.zk.ui.Component;
      import org.zkoss.zk.ui.select.SelectorComposer;
      import org.zkoss.zk.ui.select.annotation.Wire;
      
      /**
       * Tested with ZK 6.0.1 CE and ZK Pivottable 2.0.0
       *
       */
      @SuppressWarnings("rawtypes")
      public class TestComposer extends SelectorComposer {
          /**
           * generated serial version UID
           */
          private static final long serialVersionUID = -2897873399288955635L;
          private TabularPivotModel _pivotModel;
      
          @Wire("#pivottable")
          private Pivottable pivottable;
          @Wire("#pfc")
      	PivotFieldControl pfc;
      
      
          public void doAfterCompose (Component comp) throws Exception {
      		super.doAfterCompose(comp);
      		pfc.setModel(getPivotModel());
      	}
          /**
           * Get pivottable's model
           * @return TabularPivotModel the pivottable's model
           * @throws Exception
           */
          public TabularPivotModel getPivotModel () throws Exception {
              if (_pivotModel == null) {
                  _pivotModel = new TabularPivotModel(getData(), getColumns());
      
                  // assign rows, the order matches to the level of row node field
                  _pivotModel.setFieldType("Row_Level_001", PivotField.Type.ROW);
      
                  // assign datas, the order matches to the order of data field
                  _pivotModel.setFieldType("Data_Field_001", PivotField.Type.DATA);
                  _pivotModel.setFieldType("Data_Field_002", PivotField.Type.DATA);
              }
              return _pivotModel;
          }
          /**
           * prepare the data for pivottable's model
           * The order of object put into data list matches
           * the order of column name's order
           * @return
           * @throws Exception
           */
          public List<List<Object>> getData() throws Exception {
              List<List<Object>> result = new ArrayList<List<Object>>();
              Random r = new Random();
      
              for (int i = 0; i < 10000; i++) {
                  List<Object> data = new ArrayList<Object>();
                  data.add("Row_Level_001 - " + (r.nextInt(10) + 1));
                  
                  data.add(r.nextInt(10000));
                  data.add(r.nextDouble() * 10000.0);
                  result.add(data);
              }
              return result;
          }
          /**
           * prepare columns name for pivottable's model
           * @return
           */
          public List<String> getColumns() {
              return Arrays.asList(new String[]{
                      "Row_Level_001", "Data_Field_001", "Data_Field_002"
              });
          }
      }
      

      test.zul

      <zk>
          <!-- Tested with ZK 6.0.2 CE and ZK Pivottable 2.0.0 -->
          <vlayout>
              <!-- window, apply a SelectorComposer -->
              <window id="win" xmlns:w="client"
                  apply="test.TestComposer">
                  <!-- pivottable, get model from window's composer -->
                  <pivottable id="pivottable" model="${win$composer.pivotModel}" />
                  <pivot-field-control id="pfc" height="300px" />
      
              </window>
          </vlayout>
      </zk>
      

            benbai benbai
            benbai benbai
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

              Created:
              Updated:
              Resolved: