Welcome to the nuBuilder Forums!

Register and log in to access exclusive forums and content available only to registered users.

Display object do not show query results using temp querys results

Questions related to using nuBuilder Forte.
kev1n
nuBuilder Team
Posts: 4292
Joined: Sun Oct 14, 2018 6:43 pm
Has thanked: 71 times
Been thanked: 444 times
Contact:

Re: Display object do not show query results using temp querys results

Unread post by kev1n »

nuRefreshDisplayObject() now also works if a Display Procedure is used.

Run this SQL to update the function (It's also included on Github)

Code: Select all

REPLACE INTO `zzzzsys_php` (`zzzzsys_php_id`, `sph_code`, `sph_description`, `sph_group`, `sph_php`, `sph_run`, `sph_zzzzsys_form_id`, `sph_system`, `sph_global`, `sph_template`, `sph_hide`, `sph_json`) VALUES ('nu5ff8249659aef00', 'NUREFRESHDISPLAYOBJECT', 'Refresh a display object', 'nubuilder', 'function nuGetDisplayValue($formId, $id) {\r\n \r\n $sql = \"SELECT sob_display_sql, sob_display_procedure FROM `zzzzsys_object` WHERE sob_all_zzzzsys_form_id = ? AND sob_all_id = ?\";\r\n $selectObject = nuRunQuery($sql, [$formId, $id]);\r\n \r\n if (db_num_rows($selectObject) == 1) {\r\n $obj = db_fetch_object($selectObject);\r\n \r\n if ($obj != false) {\r\n \r\n $displayProcedure = $obj->sob_display_procedure;\r\n \r\n if (empty($displayProcedure)) {\r\n \r\n $disS = nuReplaceHashVariables($obj->sob_display_sql);\r\n $disT = nuRunQuery($disS);\r\n\r\n if (db_num_rows($disT) >= 1) {\r\n $disR = db_fetch_row($disT);\r\n return $disR[0];\r\n } else {\r\n return \"\";\r\n }\r\n \r\n } else {\r\n\r\n $procedureCode = nuProcedure($displayProcedure);\r\n if ($procedureCode !== \'\') {\r\n return nuEval($displayProcedure, $procedureCode);\r\n } else {\r\n return false;\r\n }\r\n }\r\n }\r\n }\r\n\r\n return false;\r\n}\r\n\r\n\r\nfunction nuRefreshDisplayObject($displayId, $formIdHk, $prefixHK) {\r\n\r\n if (!nuHasProperty($formIdHk, $formId, false)) {\r\n $formId = \'#form_id#\';\r\n }\r\n\r\n if (!nuHasProperty($prefixHK, $prefix, false)) {\r\n $prefix = \'\';\r\n }\r\n\r\n $value = nuGetDisplayValue($formId, $displayId);\r\n $displayId = $prefix.$displayId;\r\n \r\n if ($value === false && $value !== \'\') {\r\n $js = \"nuMessage(nuTranslate(\'Error\'), nuTranslate(\'Failed to refresh the Display Object:\') + \' $displayId\'); \";\r\n } else {\r\n\r\n $js = \" \r\n \r\n function nuRefreshDisplayObjectSetNewValue(displayId, value) {\r\n let obj = $(\'#\' + displayId);\r\n const format = obj.attr(\'data-nu-format\');\r\n const formattedValue = nuFORM.addFormatting(value, format);\r\n nuSetValue(displayId, formattedValue);\r\n }\r\n\r\n nuRefreshDisplayObjectSetNewValue(\'$displayId\', \'$value\');\r\n \r\n if (window.nuDisplayObjectRefreshed) {\r\n nuDisplayObjectRefreshed(\'$displayId\', \'$formId\');\r\n }\r\n \";\r\n }\r\n \r\n nuJavaScriptCallback($js);\r\n\r\n}\r\n\r\nnuRefreshDisplayObject(\'#NUREFRESHDISPLAYOBJECT_displayid#\', \'NUREFRESHDISPLAYOBJECT_formid\',\'NUREFRESHDISPLAYOBJECT_prefix\');', 'hide', '', '1', '1', '0', '', NULL)
Post Reply