diff --git a/workflow/engine/classes/PmDynaform.php b/workflow/engine/classes/PmDynaform.php index 033dfc8ce..ebd0ab8e3 100644 --- a/workflow/engine/classes/PmDynaform.php +++ b/workflow/engine/classes/PmDynaform.php @@ -682,6 +682,8 @@ class PmDynaform } $json->rows = count($rows); $json->data = $rows; + + $this->setDataSchema($json, $this->fields["APP_DATA"][$json->name]); } } //languages @@ -2309,4 +2311,32 @@ class PmDynaform { $this->lastQueryError = null; } + + /** + * This adds a new definition on the json dynaform + * @param json $json + * + * @link https://wiki.processmaker.com/3.0/Grid_Control + * @see workflow/engine/classes/PmDynaform->jsonr + */ + public function setDataSchema($json, $appDataVariables) + { + foreach ($json->data as $key => $value) { + $columnsData = []; + foreach ($json->columns as $keyData => $valueData) { + foreach ($appDataVariables as $keyAppData => $valueAppData) { + if (array_key_exists($valueData->id, $valueAppData) || array_key_exists($valueData->id . "_label", + $valueAppData) || array_key_exists($valueData->name, + $valueAppData) || array_key_exists($valueData->name . "_label", $valueAppData)) { + array_push($columnsData, ["defined" => true]); + break; + } else { + array_push($columnsData, ["defined" => false]); + break; + } + } + } + $json->dataSchema[$key] = $columnsData; + } + } }