Refactor output document / 0016759: Output Document pmGrids 0016760: Output Document Variables

Se agrego "Grid variables" a las opciones de Type Variable en el pmVariablePicker, que despliega los campos de las grillas que tiene en el proceso
This commit is contained in:
marcelo.cuiza
2015-05-15 13:08:27 -04:00
parent 9b440d6a32
commit d00b8a0dff
3 changed files with 59 additions and 21 deletions

View File

@@ -373,11 +373,11 @@ class XmlForm_Field_hours extends XmlForm_Field_SimpleText
* @param eter boolean $bSystemVars * @param eter boolean $bSystemVars
* @return array * @return array
*/ */
function getDynaformsVars ($sProcessUID, $bSystemVars = true, $bIncMulSelFields = 0) function getDynaformsVars ($sProcessUID, $typeVars = 'all', $bIncMulSelFields = 0)
{ {
$aFields = array (); $aFields = array ();
$aFieldsNames = array (); $aFieldsNames = array ();
if ($bSystemVars) { if ($typeVars == 'system' || $typeVars == 'all') {
$aAux = G::getSystemConstants(); $aAux = G::getSystemConstants();
foreach ($aAux as $sName => $sValue) { foreach ($aAux as $sName => $sValue) {
$aFields[] = array ('sName' => $sName,'sType' => 'system','sLabel' => G::LoadTranslation('ID_TINY_SYSTEM_VARIABLES')); $aFields[] = array ('sName' => $sName,'sType' => 'system','sLabel' => G::LoadTranslation('ID_TINY_SYSTEM_VARIABLES'));
@@ -401,21 +401,52 @@ function getDynaformsVars ($sProcessUID, $bSystemVars = true, $bIncMulSelFields
$oDataset->next(); $oDataset->next();
$row = $oDataset->getRow(); $row = $oDataset->getRow();
if (isset($row["PRJ_UID"])) { if (isset($row["PRJ_UID"])) {
$oCriteria = new Criteria('workflow'); if($typeVars == 'process' || $typeVars == 'all') {
$oCriteria->addSelectColumn(ProcessVariablesPeer::VAR_UID); $oCriteria = new Criteria('workflow');
$oCriteria->addSelectColumn(ProcessVariablesPeer::VAR_NAME); $oCriteria->addSelectColumn(ProcessVariablesPeer::VAR_UID);
$oCriteria->addSelectColumn(ProcessVariablesPeer::VAR_FIELD_TYPE); $oCriteria->addSelectColumn(ProcessVariablesPeer::VAR_NAME);
$oCriteria->add(ProcessVariablesPeer::PRJ_UID, $sProcessUID); $oCriteria->addSelectColumn(ProcessVariablesPeer::VAR_FIELD_TYPE);
$oDataset = DynaformPeer::doSelectRS($oCriteria); $oCriteria->add(ProcessVariablesPeer::PRJ_UID, $sProcessUID);
$oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC); $oDataset = DynaformPeer::doSelectRS($oCriteria);
while ($oDataset->next()) { $oDataset->setFetchmode(ResultSet::FETCHMODE_ASSOC);
$row = $oDataset->getRow(); while ($oDataset->next()) {
array_push($aFields, array( $row = $oDataset->getRow();
"sName" => $row["VAR_NAME"], array_push($aFields, array(
"sType" => $row["VAR_FIELD_TYPE"], "sName" => $row["VAR_NAME"],
"sLabel" => $row["VAR_NAME"] . " [" . $row["VAR_FIELD_TYPE"] . "]" "sType" => $row["VAR_FIELD_TYPE"],
)); "sLabel" => $row["VAR_NAME"] . " [" . $row["VAR_FIELD_TYPE"] . "]"
));
}
}
if($typeVars == 'grid' || $typeVars == 'all') {
$oC = new Criteria( 'workflow' );
$oC->addSelectColumn( DynaformPeer::DYN_CONTENT );
$oC->add( DynaformPeer::PRO_UID, $sProcessUID );
$oC->add( DynaformPeer::DYN_TYPE, 'xmlform' );
$oData = DynaformPeer::doSelectRS( $oC );
$oData->setFetchmode( ResultSet::FETCHMODE_ASSOC );
$oData->next();
while ($aRowd = $oData->getRow()) {
$dynaform = G::json_decode($aRowd['DYN_CONTENT'],true);
$items = $dynaform['items'][0]['items'];
foreach($items as $key => $val){
if($val[0]['type'] == 'grid'){
if(sizeof($val[0]['columns'])) {
$columns = $val[0]['columns'];
foreach($columns as $column) {
array_push($aFields, array(
"sName" => $column['name'],
"sType" => $column['dataType'],
"sLabel" => $column['name'] . " [" . $column['dataType']. "]"
));
}
}
}
}
$oData->next();
}
} }
} else { } else {
require_once 'classes/model/Dynaform.php'; require_once 'classes/model/Dynaform.php';
$oCriteria = new Criteria( 'workflow' ); $oCriteria = new Criteria( 'workflow' );

View File

@@ -66,6 +66,7 @@ $html .= '<select name="type_variables" id="type_variables">';
$html .= '<option value="all">'.$filter->xssFilterHard(G::LoadTranslation( 'ID_TINY_ALL_VARIABLES' )).'</option>'; $html .= '<option value="all">'.$filter->xssFilterHard(G::LoadTranslation( 'ID_TINY_ALL_VARIABLES' )).'</option>';
$html .= '<option value="system">'.$filter->xssFilterHard(G::LoadTranslation( 'ID_TINY_SYSTEM_VARIABLES' )).'</option>'; $html .= '<option value="system">'.$filter->xssFilterHard(G::LoadTranslation( 'ID_TINY_SYSTEM_VARIABLES' )).'</option>';
$html .= '<option value="process">'.$filter->xssFilterHard(G::LoadTranslation( 'ID_TINY_PROCESS_VARIABLES' )).'</option>'; $html .= '<option value="process">'.$filter->xssFilterHard(G::LoadTranslation( 'ID_TINY_PROCESS_VARIABLES' )).'</option>';
$html .= '<option value="grid">'.$filter->xssFilterHard(G::LoadTranslation( 'ID_TINY_GRID_VARIABLES' )).'</option>';
$html .= '</select> &nbsp;&nbsp;&nbsp;&nbsp;'; $html .= '</select> &nbsp;&nbsp;&nbsp;&nbsp;';
$html .= '</td>'; $html .= '</td>';

View File

@@ -806,15 +806,21 @@ try {
G::LoadClass('xmlfield_InputPM'); G::LoadClass('xmlfield_InputPM');
$proUid = isset($_REQUEST['process']) ? $_REQUEST['process'] : ''; $proUid = isset($_REQUEST['process']) ? $_REQUEST['process'] : '';
$queryText = isset($_REQUEST['queryText']) ? $_REQUEST['queryText'] : ''; $queryText = isset($_REQUEST['queryText']) ? $_REQUEST['queryText'] : '';
if ($_REQUEST['type'] == 'system') { switch($_REQUEST['type']) {
$isSystem = true; case 'system';
} else { $typeVars = $_REQUEST['type'];
$isSystem = false; break;
case 'process';
$typeVars = $_REQUEST['type'];
break;
case 'grid';
$typeVars = $_REQUEST['type'];
break;
} }
if ($_REQUEST['type'] == 'all') { if ($_REQUEST['type'] == 'all') {
$aFields = getDynaformsVars($proUid); $aFields = getDynaformsVars($proUid);
} else { } else {
$aFields = getDynaformsVars($proUid, $isSystem, isset($_REQUEST['bIncMulSelFields']) ? $_REQUEST['bIncMulSelFields'] : 1); $aFields = getDynaformsVars($proUid, $typeVars, isset($_REQUEST['bIncMulSelFields']) ? $_REQUEST['bIncMulSelFields'] : 1);
} }
$aVariables = array(); $aVariables = array();