RA
Sugestão - adicionar rotina para limpar o form sem precisar remontar a tela
Boa tarde,
Sugiro a adição de um método para limpar todos os campos do TForm, suposto nome: clearFields, como por exemplo:
sendo $namesFields = ['icodigo'=>"AdiantiWidgetFormTHidden"
,'iunidadedemandada'=>"AdiantiWidgetWrapperTDBCombo"
,'itipodocumento'=>"AdiantiWidgetWrapperTDBUniqueSearch"
,'dtregistro'=>"AdiantiWidgetFormTDate"
,'ctipodocumento'=>"AdiantiWidgetFormTCombo"
,'responsaveis'=>"AdiantiWidgetWrapperTDBCheckGroup"];
/**
* clear fields of form
* @param $form_name Form name
* @param $namesFields Fields names of elements of form
*/
public static function clearFields(string $form_name, array|null $namesFields = null,$timeout = null)
{
if (empty($namesFields))
{
TScript::create("document.querySelector('form[name="{$form_name}"]').reset();",true,$timeout);
return;
}
foreach ($namesFields as $fieldName => $argsField)
{
$onlyClass = (!is_array($argsField));
$refClass = new ReflectionClass(($onlyClass)?$argsField:$argsField['class']);
if ($refClass->hasMethod('clearField'))
{
$methodCalled = $refClass->getMethod('clearField');
$methodCalled->invoke(null,$form_name,$fieldName);
}
if (($argsField['enabled'])||(!$argsField['disabled']))
{
self::enableField($form_name,$fieldName);
}
if (($argsField['disabled'])||(!$argsField['enabled']))
{
self::disableField($form_name,$fieldName);
}
}
}
Sugiro a adição de um método para limpar todos os campos do TForm, suposto nome: clearFields, como por exemplo:
sendo $namesFields = ['icodigo'=>"AdiantiWidgetFormTHidden"
,'iunidadedemandada'=>"AdiantiWidgetWrapperTDBCombo"
,'itipodocumento'=>"AdiantiWidgetWrapperTDBUniqueSearch"
,'dtregistro'=>"AdiantiWidgetFormTDate"
,'ctipodocumento'=>"AdiantiWidgetFormTCombo"
,'responsaveis'=>"AdiantiWidgetWrapperTDBCheckGroup"];
/**
* clear fields of form
* @param $form_name Form name
* @param $namesFields Fields names of elements of form
*/
public static function clearFields(string $form_name, array|null $namesFields = null,$timeout = null)
{
if (empty($namesFields))
{
TScript::create("document.querySelector('form[name="{$form_name}"]').reset();",true,$timeout);
return;
}
foreach ($namesFields as $fieldName => $argsField)
{
$onlyClass = (!is_array($argsField));
$refClass = new ReflectionClass(($onlyClass)?$argsField:$argsField['class']);
if ($refClass->hasMethod('clearField'))
{
$methodCalled = $refClass->getMethod('clearField');
$methodCalled->invoke(null,$form_name,$fieldName);
}
if (($argsField['enabled'])||(!$argsField['disabled']))
{
self::enableField($form_name,$fieldName);
}
if (($argsField['disabled'])||(!$argsField['enabled']))
{
self::disableField($form_name,$fieldName);
}
}
}
Já tem!