diff --git a/workflow/engine/src/BusinessModel/Table.php b/workflow/engine/src/BusinessModel/Table.php index 9f70ac7ad..68bc1c5bc 100644 --- a/workflow/engine/src/BusinessModel/Table.php +++ b/workflow/engine/src/BusinessModel/Table.php @@ -259,13 +259,12 @@ class Table $columnsStd = array(); foreach ($columns as $i => $column) { if (isset($columns[$i]['fld_dyn'])) { + $columns[$i]['fld_dyn'] = ($reportFlag) ? $columns[$i]['fld_dyn'] : ''; $columns[$i]['field_dyn'] = $columns[$i]['fld_dyn']; unset($columns[$i]['fld_dyn']); } else { $columns[$i]['fld_dyn'] = ''; } - $columns[$i]['fld_dyn'] = ($reportFlag) ? $columns[$i]['fld_dyn'] : ''; - if (isset($columns[$i]['fld_name'])) { $columns[$i]['field_name'] = $columns[$i]['fld_name']; } @@ -717,8 +716,8 @@ class Table $aFields['PRO_UID'] = $pro_uid; if (isset( $rep_tab_type ) && $rep_tab_type == 'GRID') { - $this->dynUid = $rep_tab_grid; - $dynFields = $this->_getDynafields($pro_uid, 'grid', $rep_tab_grid); + list ($gridName, $gridId) = explode( '-', $rep_tab_grid ); + $dynFields = $this->_getDynafields($pro_uid, 'grid', $gridId); } else { $dynFields = $this->_getDynafields($pro_uid, 'xmlform'); } @@ -753,7 +752,7 @@ class Table $oCriteria->add( \DynaformPeer::DYN_TYPE, $type ); if ($rep_tab_grid != '') { - $oCriteria->add( \DynaformPeer::DYN_UID, $this->dynUid ); + $oCriteria->add( \DynaformPeer::DYN_UID, $rep_tab_grid ); } $oDataset = \DynaformPeer::doSelectRS( $oCriteria ); @@ -1022,6 +1021,7 @@ class Table G::loadSystem('dynaformhandler'); $grids = array(); + $namesGrid = array(); $aFieldsNames = array(); $oCriteria = new \Criteria( 'workflow' ); @@ -1041,14 +1041,18 @@ class Table $fieldType = $arrayNode['type']; if ($fieldType == 'grid') { if (! in_array( $fieldName, $aFieldsNames )) { + $namesGrid[] = $fieldName; $grids[] = str_replace( $pro_uid . '/', '', $arrayNode['xmlgrid']); } } } } - if (!in_array($rep_tab_grid, $grids)) { + $find = array_search($rep_tab_grid, $grids); + if ($find === false) { throw (new \Exception("The property rep_tab_grid: '$rep_tab_grid', is incorrect.")); + } else { + $rep_tab_grid = $namesGrid[$find] . '-' . $rep_tab_grid; } return $rep_tab_grid; }