Erro: Verifique se a ação (ClientesDocForm::onEdit) existe Olá preciso de ajuda: Aparece o seguinte erro: Verifique se a ação (ClientesDocForm::onEdit) existe Mas a ação ClientesDocForm::onEdit existe sim, na classe ClientesDocForm. Já conferi o nome da classe, se tinha algum erro de digitação e etc. Não sei mais o que fazer. Trecho da classe ClientesForm que chama ClientesDocForm::onEdit: $this->datagrid->addCol...
RC
Erro: Verifique se a ação (ClientesDocForm::onEdit) existe  
Olá preciso de ajuda:

Aparece o seguinte erro: Verifique se a ação (ClientesDocForm::onEdit) existe

Mas a ação ClientesDocForm::onEdit existe sim, na classe ClientesDocForm.

Já conferi o nome da classe, se tinha algum erro de digitação e etc.

Não sei mais o que fazer.


Trecho da classe ClientesForm que chama ClientesDocForm::onEdit:

$this->datagrid->addColumn($column_email); $this->datagrid->addColumn($column_cpf); $this->datagrid->addColumn($column_ie); // cria a action EDIT $action_edit = new TDataGridAction(array('ClientesDocForm', 'onEdit')); $action_edit->setButtonClass('btn btn-default'); $action_edit->setLabel(_t('Edit')); $action_edit->setImage('far:edit blue'); $action_edit->setField('id'); $this->datagrid->addAction($action_edit); // cria a action DELETE $action_del = new TDataGridAction(array($this, 'onDelete')); $action_del->setButtonClass('btn btn-default'); $action_del->setLabel(_t('Delete')); $action_del->setImage('far:trash-alt red'); $action_del->setField('id'); $this->datagrid->addAction($action_del);



Trecho da clase ClientesDocForm::onEdit:

function onEdit($param) { try { if (isset($param['key'])) { // get the parameter $key $key=$param['key']; // open a transaction with database 'permission' TTransaction::open('permission'); // instantiates object System_user $object = new ClientesDoc($key); // close the transaction TTransaction::close(); } else { $this->form->clear(); } } catch (Exception $e) // in case of exception { new TMessage('error', $e->getMessage()); TTransaction::rollback(); } }



Aguado ajuda dos amigos. Obrigado.

Curso Dominando o Adianti Framework

O material mais completo de treinamento do Framework.
Curso em vídeo aulas + Livro completo + Códigos fontes do projeto ERPHouse.
Conteúdo Atualizado!


Dominando o Adianti Framework Quero me inscrever agora!

Comentários (7)


IM

Postas as duas classes na integra.
RC

A primeira classe é que o framework pede para verificar se a ação (ClientesDocForm::onEdit) exites.

E a segunda classe é a que faz a chamada do método.

 
  1. <?php
  2. **
  3. * ClientesDocForm
  4. *
  5. * @version 1.0
  6. * @package control
  7. * @subpackage webpedidos
  8. */
  9. class ClientesDocForm extends TPage
  10. {
  11. protected $form;
  12. protected $datagrid;
  13. protected $pageNavigation;
  14. protected $panel;
  15. protected $container;
  16. public function __construct($param)
  17. {
  18. parent::__construct();
  19. parent::setTargetContainer('adianti_right_panel');
  20. // cria o formulario
  21. $this->form = new BootstrapFormBuilder('form_search_Clientes_Doc');
  22. $this->form->setFormTitle( 'Clientes - Documentação' );
  23. // cria os campos do formulário
  24. $cliente_id = new TEntry("cliente_id");
  25. $cpf_cnpj = new TEntry('cpf_cnpj');
  26. $ie = new TEntry('ie');
  27. $suframa = new TEntry('suframa');
  28. $telefone = new TEntry('telefone');
  29. $email = new TEntry('email');
  30. $logradouro = new TEntry('erplogradouroid');
  31. $numero = new TEntry('numero');
  32. $complemento = new TEntry('complemento');
  33. $bairro = new TEntry('bairro');
  34. $cidade_id = new TEntry('cidade_id');
  35. $uf_id = new TEntry('uf_id');
  36. // define o tamanho dos campos do formulário
  37. $cliente_id->setSize('50%');
  38. $cpf_cnpj->setSize('100%');
  39. $ie->setSize('100%');
  40. $suframa->setSize('50%');
  41. $telefone->setSize('100%');
  42. $email->setSize('100%');
  43. $logradouro->setSize('100%');
  44. $numero->setSize('50%');
  45. $complemento->setSize('50%');
  46. $bairro->setSize('50%');
  47. $cidade_id->setSize('100%');
  48. $uf_id->setSize('100%');
  49. // define outrs ajustes dos campos do formulário
  50. $cliente_id->setEditable(false);
  51. $email->addValidation('email', new TEmailValidator); // email field
  52. $ie->addValidation('ie', new TNumericValidator);
  53. // adiciona os campos ao formulário
  54. $this->form->addFields( [new TLabel('ID')], [$id],[null], [null]);
  55. $this->form->addFields( [new TLabel('CPF/CNPJ')], [$cpf_cnpj], [new TLabel('IE')], [$ie] );
  56. $this->form->addFields( [new TLabel('Suframa')], [$suframa], [null], [null]);
  57. $this->form->addFields( [new TLabel('Telefone')], [$telefone], [new TLabel('E-Mail')], [$email]);
  58. $this->form->addFields( [new TLabel('Logradouro')], [$logradouro]);
  59. $this->form->addFields( [new TLabel('Numero')], [$numero], [new TLabel('Complemento')], [$complemento]);
  60. $this->form->addFields( [new TLabel('Bairro')], [$bairro], [null], [null]);
  61. $this->form->addFields( [new TLabel('Cidade')], [$cidade_id], [new TLabel('UF')], [$uf_id]);
  62. $this->form->addAction(_t('Save'), new TAction(array($this, 'onSave')), 'fa:search'); //botao de busca
  63. $btn->class = 'btn btn-sm btn-primary';
  64. $this->form->addAction(_t('New'), new TAction(array($this, 'onEdit')), 'fa:plus green');//botao de editar
  65. $this->container = new TVBox;
  66. $this->container->style = 'width: 100%';
  67. $this->container->add(new TXMLBreadCrumb('menu.xml', 'ClientesList'));
  68. $this->container->add($notebook);
  69. }
  70. function onEdit($param)
  71. {
  72. try
  73. {
  74. if (isset($param['key']))
  75. {
  76. // get the parameter $key
  77. $key=$param['key'];
  78. // open a transaction with database 'permission'
  79. TTransaction::open('permission');
  80. // instantiates object System_user
  81. $object = new ClientesDoc($key);
  82. var_dump($object);
  83. // close the transaction
  84. TTransaction::close();
  85. }
  86. else
  87. {
  88. $this->form->clear();
  89. }
  90. }
  91. catch (Exception $e) // in case of exception
  92. {
  93. new TMessage('error', $e->getMessage());
  94. TTransaction::rollback();
  95. }
  96. }
  97. }
  98. ?>




 
  1. <?php
  2. /**
  3. * VendedoresForm
  4. *
  5. * @version 1.0
  6. * @package control
  7. * @subpackage webpedidos
  8. */
  9. class ClientesList extends TStandardList
  10. {
  11. protected $form;
  12. protected $datagrid;
  13. protected $pageNavigation;
  14. protected $panel;
  15. protected $container;
  16. public function __construct($param)
  17. {
  18. parent::__construct();
  19. parent::setDatabase('sample');
  20. parent::setActiveRecord('Clientes');
  21. parent::setDefaultOrder('id', 'desc');
  22. parent::addFilterField('id', '=', 'id');
  23. parent::addFilterField('nome', 'like', 'nome'); // add a filter field
  24. $this->form = new BootstrapFormBuilder('form_search_Clientes');
  25. $this->form->setFormTitle('Clientes');
  26. //cria os campos do formulário de buscas
  27. $id = new TEntry("id");
  28. $nome = new TEntry('nome');
  29. //adciona os campos
  30. $this->form->addFields( [new TLabel('Id')], [$id] );
  31. $this->form->addFields( [new TLabel('Nome')], [$nome] );
  32. $this->form->addAction(_t('Find'), new TAction(array($this, 'onSearch')), 'fa:search'); //botao de busca
  33. $btn->class = 'btn btn-sm btn-primary';
  34. $this->form->addAction(_t('New'), new TAction(array('ClientesForm', 'onEdit')), 'fa:plus green');//botao de editar
  35. // cria a listagem
  36. $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
  37. //$this->datagrid->datatable = 'true';
  38. $this->datagrid->style = 'width: 100%';
  39. $this->datagrid->setHeight(320);
  40. $column_id = new TDataGridColumn('id', 'Id', 'right', 20);
  41. $column_nome = new TDataGridColumn('nome', 'Nome', 'left',285);
  42. $this->datagrid->addColumn($column_id);
  43. $this->datagrid->addColumn($column_nome);
  44. // cria a action EDIT
  45. $action_edit = new TDataGridAction(array('ClientesForm', 'onEdit'));
  46. $action_edit->setButtonClass('btn btn-default');
  47. $action_edit->setLabel(_t('Edit'));
  48. $action_edit->setImage('far:edit blue');
  49. $action_edit->setField('id');
  50. $this->datagrid->addAction($action_edit);
  51. // cria a action DELETE
  52. $action_del = new TDataGridAction(array($this, 'onDelete'));
  53. $action_del->setButtonClass('btn btn-default');
  54. $action_del->setLabel(_t('Delete'));
  55. $action_del->setImage('far:trash-alt red');
  56. $action_del->setField('id');
  57. $this->datagrid->addAction($action_del);
  58. // cria a datagrid model
  59. $this->datagrid->createModel();
  60. // cria a pagina de navigação
  61. $this->pageNavigation = new TPageNavigation;
  62. $this->pageNavigation->enableCounters();
  63. $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
  64. $this->pageNavigation->setWidth($this->datagrid->getWidth());
  65. $panel = new TPanelGroup;
  66. $panel->add($this->datagrid)->style = 'overflow-x:auto';
  67. $panel->addFooter($this->pageNavigation);
  68. // vertical box container
  69. $container = new TVBox;
  70. $container->style = 'width: 100%';
  71. $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  72. $container->add($this->form);
  73. $container->add($panel);
  74. parent::add($container);
  75. }
  76. }
  77. ?>
IM

Você precisa fazer duas correções:
na classe ClientesDocForm ...
sua função precisa ser assim :

 
  1. <?php
  2. <b>PUBLIC<b> function onEdit($param)
  3. ?>


e na linha 41 da segunda classe, vc deve refereciar a classe : ClientesDocForm e não ClientesForm
IM

linhas 88 e 41 respectivamente
RC

Olá

Obrigado pela resposta, mas a linha 41 da segunda classe (ClientesList) deve sim referenciar a classe ClientesForm pois é la que eu referencio a ação (ClientesDocForm::onEdit)


(ClientesList) deve sim referenciar a classe ClientesForm -> (ClientesForm', 'onEdit)

 
  1. <?php
  2. /**
  3. * ClientesList
  4. *
  5. * @version 1.0
  6. * @package control
  7. * @subpackage webpedidos
  8. */
  9. class ClientesList extends TStandardList
  10. {
  11. protected $form;
  12. protected $datagrid;
  13. protected $pageNavigation;
  14. protected $panel;
  15. protected $container;
  16. // importa trait com métodos onSave, onClear, onEdit
  17. use Adianti\Base\AdiantiStandardListTrait;
  18. public function __construct($param)
  19. {
  20. parent::__construct();
  21. parent::setDatabase('sample');
  22. parent::setActiveRecord('Clientes');
  23. parent::setDefaultOrder('id', 'desc');
  24. parent::addFilterField('id', '=', 'id');
  25. parent::addFilterField('nome', 'like', 'nome'); // add a filter field
  26. $this->form = new BootstrapFormBuilder('form_search_Clientes');
  27. $this->form->setFormTitle('Clientes');
  28. //cria os campos do formulário de buscas
  29. $id = new TEntry("id");
  30. $nome = new TEntry('nome');
  31. //adciona os campos
  32. $this->form->addFields( [new TLabel('Id')], [$id] );
  33. $this->form->addFields( [new TLabel('Nome')], [$nome] );
  34. $this->form->addAction(_t('Find'), new TAction(array($this, 'onSearch')), 'fa:search'); //botao de busca
  35. $btn->class = 'btn btn-sm btn-primary';
  36. $this->form->addAction(_t('New'), new TAction(array('ClientesForm', 'onEdit')), 'fa:plus green');//botao de editar
  37. // cria a listagem
  38. $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
  39. //$this->datagrid->datatable = 'true';
  40. $this->datagrid->style = 'width: 100%';
  41. $this->datagrid->setHeight(320);
  42. $column_id = new TDataGridColumn('id', 'Id', 'right', 20);
  43. $column_nome = new TDataGridColumn('nome', 'Nome', 'left',285);
  44. $this->datagrid->addColumn($column_id);
  45. $this->datagrid->addColumn($column_nome);
  46. // cria a action EDIT
  47. $action_edit = new TDataGridAction(array('ClientesForm', 'onEdit'));
  48. $action_edit->setButtonClass('btn btn-default');
  49. $action_edit->setLabel(_t('Edit'));
  50. $action_edit->setImage('far:edit blue');
  51. $action_edit->setField('id');
  52. $this->datagrid->addAction($action_edit);
  53. // cria a action DELETE
  54. $action_del = new TDataGridAction(array($this, 'onDelete'));
  55. $action_del->setButtonClass('btn btn-default');
  56. $action_del->setLabel(_t('Delete'));
  57. $action_del->setImage('far:trash-alt red');
  58. $action_del->setField('id');
  59. $this->datagrid->addAction($action_del);
  60. // cria a datagrid model
  61. $this->datagrid->createModel();
  62. // cria a pagina de navigação
  63. $this->pageNavigation = new TPageNavigation;
  64. $this->pageNavigation->enableCounters();
  65. $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
  66. $this->pageNavigation->setWidth($this->datagrid->getWidth());
  67. $panel = new TPanelGroup;
  68. $panel->add($this->datagrid)->style = 'overflow-x:auto';
  69. $panel->addFooter($this->pageNavigation);
  70. // vertical box container
  71. $container = new TVBox;
  72. $container->style = 'width: 100%';
  73. $container->add(new TXMLBreadCrumb('menu.xml', __CLASS__));
  74. $container->add($this->form);
  75. $container->add($panel);
  76. parent::add($container);
  77. }
  78. }
  79. ?>


(ClientesForm) referenciar a classe ClientesDocForm -> (ClientesDocForm', 'onEdit) (Cortina Lateral). Onde pego documentos dos clientes na classe ClientesForm

 
  1. <?php
 
  1. <?php
  2. /**
  3. * ClientesForm
  4. *
  5. * @version 1.0
  6. * @package control
  7. * @subpackage webpedidos
  8. */
  9. class ClientesForm extends TPage
  10. {
  11. protected $form;
  12. protected $datagrid;
  13. protected $pageNavigation;
  14. protected $panel;
  15. protected $container;
  16. // importa trait com métodos onSave, onClear, onEdit
  17. use Adianti\Base\AdiantiStandardFormTrait;
  18. public function __construct($param)
  19. {
  20. parent::__construct();
  21. // cria o formulario
  22. $this->form = new BootstrapFormBuilder('form_search_Clientes');
  23. $this->form->setFormTitle("Clientes");
  24. //cria os campos do formulario
  25. $id = new TEntry("id");
  26. $erp_id = new TEntry('erp_id');
  27. $nome = new TEntry('nome');
  28. $vendedor_id = new TEntry('vendedor_id');
  29. $comissao = new TEntry('comissao');
  30. $bonificacao = new TEntry('bonificacao');
  31. $abatimento = new TEntry('abatimento');
  32. $verba_contratual = new TEntry('verba_contratual');
  33. // define as ações do form
  34. $btn = $this->form->addAction( _t('Save'), new TAction(array($this, 'onSave')), 'fa:save green');
  35. $btn->class = 'btn btn-sm btn-primary';
  36. $this->form->addActionLink( _t('Clear'), new TAction(array($this, 'onClear')), 'fa:eraser red');
  37. //$this->form->addActionLink( _t('Back'), new TAction(array('ClienteList', 'onReload')), 'fa:table blue');
  38. //define o tamanho dos campos do formulário
  39. $id->setSize('50%');
  40. $erp_id->setSize('50%');
  41. $nome->setSize('100%');
  42. $comissao->setSize('50%');
  43. $vendedor_id->setSize('50%');
  44. $bonificacao->setSize('50%'); ;
  45. $abatimento->setSize('50%'); ;
  46. $verba_contratual->setSize('50%');
  47. //define outrs ajustes dos campos do formulário
  48. $id->setEditable(false);
  49. $erp_id->setEditable(false);
  50. //adiciona os campos ao formulário
  51. $this->form->addFields( [new TLabel('ID')], [$id], [new TLabel('ERP ID')], [$erp_id] );
  52. $this->form->addFields( [new TLabel('Nome')], [$nome] );
  53. $this->form->addFields( [new TLabel('Comissão')], [$comissao], [new TLabel('Vendedor')], [$vendedor_id]);
  54. $this->form->addFields( [new TLabel('Bonificação')], [$bonificacao], [new TLabel('Abatimento')], [$abatimento]);
  55. $this->form->addFields( [new TLabel('Verba Contratual')], [$verba_contratual], [null], [null]);
  56. // cria a listagem
  57. $this->datagrid = new BootstrapDatagridWrapper(new TDataGrid);
  58. //$this->datagrid->datatable = 'true';
  59. $this->datagrid->style = 'width: 100%';
  60. $this->datagrid->setHeight(320);
  61. $column_id = new TDataGridColumn('id', 'Id', 'right', 20);
  62. $column_logradouro = new TDataGridColumn('logradouro', 'Logradouro', 'right', 20);
  63. $column_numero = new TDataGridColumn('numero', 'Nº', 'right', 20);
  64. $column_complemento = new TDataGridColumn('complemento', 'Complemento', 'right', 20);
  65. $column_bairro = new TDataGridColumn('bairro', 'Bairro', 'right', 20);
  66. $column_cidade_id = new TDataGridColumn('cidade_id', 'Cidade', 'right', 20);
  67. $column_uf_id = new TDataGridColumn('uf_id', 'UF', 'right', 20);
  68. $column_telefone = new TDataGridColumn('telefone', 'Telefone', 'right', 20);
  69. $column_email = new TDataGridColumn(' email', 'E-mail', 'right', 20);
  70. $column_cpf = new TDataGridColumn('cpf_cnpj', 'CPF/CNPJ', 'right', 20);
  71. $column_ie = new TDataGridColumn('ie', 'IE', 'right', 20);
  72. $this->datagrid->addColumn($column_id);
  73. $this->datagrid->addColumn($column_logradouro);
  74. $this->datagrid->addColumn($column_numero);
  75. $this->datagrid->addColumn($column_complemento);
  76. $this->datagrid->addColumn($column_bairro);
  77. $this->datagrid->addColumn($column_cidade_id);
  78. $this->datagrid->addColumn($column_uf_id);
  79. $this->datagrid->addColumn($column_telefone);
  80. $this->datagrid->addColumn($column_email);
  81. $this->datagrid->addColumn($column_cpf);
  82. $this->datagrid->addColumn($column_ie);
  83. // cria a action EDIT ClientesDocForm ClientesDocForm
  84. $action_edit = new TDataGridAction(array('ClientesDocForm', 'onEdit'));
  85. $action_edit->setButtonClass('btn btn-default');
  86. $action_edit->setLabel(_t('Edit'));
  87. $action_edit->setImage('far:edit blue');
  88. $action_edit->setField('id');
  89. $this->datagrid->addAction($action_edit);
  90. // cria a action DELETE
  91. $action_del = new TDataGridAction(array($this, 'onDelete'));
  92. $action_del->setButtonClass('btn btn-default');
  93. $action_del->setLabel(_t('Delete'));
  94. $action_del->setImage('far:trash-alt red');
  95. $action_del->setField('id');
  96. $this->datagrid->addAction($action_del);
  97. // cria a pagina de navigação
  98. $this->pageNavigation = new TPageNavigation;
  99. $this->pageNavigation->enableCounters();
  100. $this->pageNavigation->setAction(new TAction(array($this, 'onReload')));
  101. $this->pageNavigation->setWidth($this->datagrid->getWidth());
  102. // cria a datagrid model
  103. $this->datagrid->createModel();
  104. $this->panel = new TPanelGroup;
  105. $this->panel->add($this->datagrid)->style = 'overflow-x:auto';
  106. $this->panel->addFooter($this->pageNavigation);
  107. // vertical box container
  108. $this->container = new TVBox;
  109. $this->container->style = 'width: 100%';
  110. $this->container->add(new TXMLBreadCrumb('menu.xml', 'ClientesList'));
  111. $this->container->add($this->form);
  112. $this->container->add($this->panel);
  113. // add o container na pagina
  114. parent::add($this->container);
  115. }
  116. public function onEdit($param)
  117. {
  118. try
  119. {
  120. if (isset($param['key']))
  121. {
  122. $key=$param['key'];
  123. TTransaction::open('sample');
  124. $cliente = new Clientes($key);
  125. var_dump($cliente);
  126. $this->form->setData($cliente);
  127. $clientesDocs = ClientesDoc::where('cliente_id', '=', $key)->load();
  128. foreach($clientesDocs as $clientesDoc)
  129. {
  130. $this->datagrid->addItem($clientesDoc);
  131. }
  132. // close the transaction
  133. TTransaction::close();
  134. }
  135. else
  136. {
  137. $this->form->clear();
  138. }
  139. }
  140. catch (Exception $e) // in case of exception
  141. {
  142. new TMessage('error', $e->getMessage());
  143. TTransaction::rollback();
  144. }
  145. }
  146. /**
  147. * Salva os dados do Vendedor
  148. */
  149. public function onSave($param)
  150. {
  151. try
  152. {
  153. // open a transaction with database 'permission'
  154. TTransaction::open('permission');
  155. // ///
  156. // close the transaction
  157. TTransaction::close();
  158. // shows the success message
  159. new TMessage('info', TAdiantiCoreTranslator::translate('Record saved'));
  160. }
  161. catch (Exception $e) // in case of exception
  162. {
  163. new TMessage('error', $e->getMessage());
  164. TTransaction::rollback();
  165. }
  166. }
  167. function onDelete($param)
  168. {
  169. try
  170. {
  171. if (isset($param['key']))
  172. {
  173. // get the parameter $key
  174. $key=$param['key'];
  175. // open a transaction with database 'permission'
  176. TTransaction::open('permission');
  177. // instantiates object System_user
  178. $object = new Clientes($key);
  179. // ////
  180. // fill the form with the active record data
  181. $this->form->setData($object);
  182. // close the transaction
  183. TTransaction::close();
  184. }
  185. else
  186. {
  187. }
  188. }
  189. catch (Exception $e) // in case of exception
  190. {
  191. new TMessage('error', $e->getMessage());
  192. TTransaction::rollback();
  193. }
  194. }
  195. function onReload()
  196. {
  197. try
  198. {
  199. if (isset($param['key']))
  200. {
  201. // get the parameter $key
  202. $key=$param['key'];
  203. // open a transaction with database 'permission'
  204. TTransaction::open('permission');
  205. // instantiates object System_user
  206. $object = new ClientesDoc($key);
  207. // ////
  208. // fill the form with the active record data
  209. $this->form->setData($object);
  210. // close the transaction
  211. TTransaction::close();
  212. }
  213. else
  214. {
  215. }
  216. }
  217. catch (Exception $e) // in case of exception
  218. {
  219. new TMessage('error', $e->getMessage());
  220. TTransaction::rollback();
  221. }
  222. }
  223. }
  224. ?>



Tem o metodo (ClientesDocForm', 'onEdit) (Cortina Lateral)

 
  1. <?php
 
  1. <?php
  2. /**
  3. * ClientesDocForm
  4. *
  5. * @version 1.0
  6. * @package control
  7. * @subpackage webpedidos
  8. */
  9. class ClientesDocForm extends TPage
  10. {
  11. protected $form;
  12. protected $container;
  13. // importa trait com métodos onSave, onClear, onEdit
  14. use Adianti\Base\AdiantiStandardFormTrait;
  15. public function __construct($param)
  16. {
  17. parent::__construct();
  18. parent::setTargetContainer('adianti_right_panel');
  19. // cria o formulario
  20. $this->form = new BootstrapFormBuilder('form_search_Clientes_Doc');
  21. $this->form->setFormTitle( 'Clientes - Documentação' );
  22. // cria os campos do formulário
  23. $cliente_id = new TEntry("cliente_id");
  24. $cpf_cnpj = new TEntry('cpf_cnpj');
  25. $ie = new TEntry('ie');
  26. $suframa = new TEntry('suframa');
  27. $telefone = new TEntry('telefone');
  28. $email = new TEntry('email');
  29. $logradouro = new TEntry('logradouro');
  30. $numero = new TEntry('numero');
  31. $complemento = new TEntry('complemento');
  32. $bairro = new TEntry('bairro');
  33. $cidade_id = new TEntry('cidade_id');
  34. $uf_id = new TEntry('uf_id');
  35. // define o tamanho dos campos do formulário
  36. $cliente_id->setSize('50%');
  37. $cpf_cnpj->setSize('100%');
  38. $ie->setSize('100%');
  39. $suframa->setSize('50%');
  40. $telefone->setSize('100%');
  41. $email->setSize('100%');
  42. $logradouro->setSize('100%');
  43. $numero->setSize('50%');
  44. $complemento->setSize('50%');
  45. $bairro->setSize('50%');
  46. $cidade_id->setSize('100%');
  47. $uf_id->setSize('100%');
  48. // define outros ajustes dos campos do formulário
  49. $cliente_id->setEditable(false);
  50. $email->addValidation('email', new TEmailValidator); // email field
  51. $ie->addValidation('ie', new TNumericValidator);
  52. // adiciona os campos ao formulário
  53. $this->form->addFields( [new TLabel('ID')], [$id],[null], [null]);
  54. $this->form->addFields( [new TLabel('CPF/CNPJ')], [$cpf_cnpj], [new TLabel('IE')], [$ie] );
  55. $this->form->addFields( [new TLabel('Suframa')], [$suframa], [null], [null]);
  56. $this->form->addFields( [new TLabel('Telefone')], [$telefone], [new TLabel('E-Mail')], [$email]);
  57. $this->form->addFields( [new TLabel('Logradouro')], [$logradouro]);
  58. $this->form->addFields( [new TLabel('Numero')], [$numero], [new TLabel('Complemento')], [$complemento]);
  59. $this->form->addFields( [new TLabel('Bairro')], [$bairro], [null], [null]);
  60. $this->form->addFields( [new TLabel('Cidade')], [$cidade_id], [new TLabel('UF')], [$uf_id]);
  61. $this->container = new TVBox;
  62. $this->container->style = 'width: 100%';
  63. $this->container->add(new TXMLBreadCrumb('menu.xml', 'ClientesList'));
  64. $this->container->add($this->form);
  65. parent::add($this->container);
  66. parent::show();
  67. }
  68. public function onEdit($param)
  69. {
  70. try
  71. {
  72. if (isset($param['key']))
  73. {
  74. // get the parameter $key
  75. $key=$param['key'];
  76. $ClienteDoc = new ClienteDoc($key);
  77. $this->form->setData($ClienteDoc);
  78. // close the transaction
  79. TTransaction::close();
  80. }
  81. else
  82. {
  83. $this->form->clear();
  84. }
  85. }
  86. catch (Exception $e) // in case of exception
  87. {
  88. new TMessage('error', $e->getMessage());
  89. TTransaction::rollback();
  90. }
  91. }
  92. }
  93. ?>


Desde já grato pela ajuda.
NR

Executei suas classes aqui e rodou normal. Verifique se não possui duas classes com o mesmo nome(ClientesDocForm)
RC

Nataniel, tbm rodei em outro ambiente(linux) e rodou normal. Não sei mesmo o que poderia ser. Agradeço pela atenção de todos.