Componentes Básicos - bjverde/formDin GitHub Wiki

Na aplicação de exemplo v1.0 poderá ver diversos Componentes de apresentação ou Front-End. Dos Componentes Básicos aos mais avançados.

Incluído campos no formulário.

A inclusão de um campo é simples. O campo sempre é incluído em um formulário e para isso basta chamar o método do tipo de campo desejado.

Na linha abaixo é criado o formulário, depois existem vários métodos add para incluir o tipo correto de campo

$frm = new TForm('Cadastro de Pedidos');

Edite o arquivo pedido.php o conteúdo deverá ficar o código abaixo

<?php
$primaryKey = 'ID_PEDIDO';
$frm = new TForm('Cadastro de Pedidos');
$frm->setFlat(true);
$frm->setMaximize(true);

$frm->addHiddenField($primaryKey); // campo oculto
$frm->addTextField('NOME_COMPRADOR', 'Nome do Comprador', 10);
$frm->addDateField('DATA_PEDIDO', 'Data do Pedido');
$listPagamento = array(1=>'Dinheiro',2=>'Cheque',3=>'Cartão');
$frm->addSelectField('FORMA_PAGAMENTO', 'Pagamento',false,$listPagamento);


$dados = Tb_pedidoDAO::selectAll();


$gride = new TGrid('gdTeste' // id do gride
                  ,'Lista de Pedidos' // titulo do gride
                  , $dados   // array de dados
                  , null     // altura do gride
                  , null     // largura do gride
                  , $primaryKey);    // chave primaria
        
$gride->addColumn($primaryKey, 'id Pedido');
$gride->addColumn('NOME_COMPRADOR','Nome do Comprador');
$gride->addColumn('DATA_PEDIDO', 'Data');
$gride->addColumn('FORMA_PAGAMENTO', 'Pagamento');

$frm->addHtmlField('gride', $gride);
    

$frm->show();
?>

Chame no navegador http://localhost/formDin/appteste/ , menu > Telas > Pedido

Screen Shot Appteste pedido

Explicando os campos

Lembrando esse tutorial não aborda todas as possibilidades de cada componente. Apenas as funções mais básicas. Os componentes são criados utilizando Orientação Objeto logo o construtor de cada componente não mostra todas as funções.

As funções / métodos abaixo são exemplos que não estão listas nos componentes porém estão presentes em quase todos.

  • setEnabled - Habilitado SIM ou NÃO
  • setReadOnly - Apenas Leitura SIM ou NÃO

A escolha de um bom Editor de código ou IDE de desenvolvimento poderá facilitar muito para descobrir as outras funções / métodos de cada componente. O Autocomplete do Eclipse PDT ou Visual Studio Code irá listar tudo que pode ser feito.

Campo Oculto

O Campo oculto é muito utilizado para armazenar valores que não serão listados para o utilizador do formulário ou sistema.

$frm->addHiddenField($primaryKey);
/**
* Adiciona um campo oculto ao layout
*
* @param string $strName       - 1: Id do Campo
* @param string $strValue      - 2: Valor inicial
* @param boolean $boolRequired - 3: True = Obrigatorio; False (Defalt) = Não Obrigatorio  
* @return THidden
*/

Campo Texto

Na linha abaixo, tem a criação de um campo do tipo texto simples.

$frm->addTextField('NOME_COMPRADOR', 'Nome do Comprador', 10);

Abaixo o construtor do componente. Veja mais exemplos em http://localhost/formDin/appexemplo_v1.0/index.php?modulo=view/fields/exe_TextField.php

    /**
     * Adicionar campo entrada de dados texto livre
     *
     * @param string $strName       - 1: id do campo
     * @param string $strLabel      - 2: Label do campo
     * @param integer $intMaxLength - 3: tamanho máximo de caracteres
     * @param boolean $boolRequired - 4: obrigatório ou não
     * @param integer $intSize      - 5: quantidade de caracteres visíveis
     * @param string $strValue      - 6: texto preenchido
     * @param boolean $boolNewLine  - 7: Nova linha
     * @param string $strHint
     * @param string $strExampleText - 9: Texto de exemplo
     * @param boolean $boolLabelAbove - 10: Label sobre
     * @param boolean $boolNoWrapLabel
     * @return TEdit
     */

Campo Data

Na linha abaixo, tem a criação de um campo do tipo data.

$frm->addDateField('DATA_PEDIDO', 'Data do Pedido');

Abaixo o construtor do componente. Veja mais exemplos em http://localhost/formDin/appexemplo_v1.0/index.php?modulo=view/fields/exe_DateField.php

    /**
     * Adicona um campo data ou mes/ano ou dia/mes de acordo com o parametro strMaxType
     * Tipo de máscara: DMY, DM, MY
     *
     * @param string  $strName      - 1: Id do Campo
     * @param string  $strLabel     - 2: Label do Campo
     * @param string  $strValue     - 3: Valor inicial
     * @param boolean $boolRequired - 4: obrigatório ou não
     * @param boolean $boolNewLine  - 5: Em nova linha
     * @param string  $strMinValue
     * @param string  $strMaxValue
     * @param string  $strMaskType
     * @param boolean $boolButtonVisible
     * @param boolean $boolLabelAbove - 10: Label sobre
     * @return object TDate
     */

Campo Select

Na linha abaixo, tem a criação de um campo do tipo select.

$listPagamento = array(1=>'Dinheiro',2=>'Cheque',3=>'Cartão');
$frm->addSelectField('FORMA_PAGAMENTO', 'Pagamento',false,$listPagamento);

Abaixo o construtor do componente. Veja mais exemplos em http://localhost/formDin/appexemplo_v1.0/index.php?modulo=view/fields/exe_SelectField.php

/**
* Adicionar campo tipo combobox ou menu select
*
* $mixOptions = array no formato "key=>value", nome do pacote oracle e da função a ser executada, comando sql ou tabela|condicao
* $strKeyColumn = nome da coluna que será utilizada para preencher os valores das opções
* $strDisplayColumn = nome da coluna que será utilizada para preencher as opções que serão exibidas para o usuário
* $strDataColumns = informações extras do banco de dados que deverão ser adicionadas na tag option do campo select
*
* <code>
* 	// exemplos
* 	$frm->addSelectField('tipo','Tipo:',false,'1=Tipo 1,2=Tipo 2');
* 	$frm->addSelectField('tipo','Tipo:',false,'tipo');
* 	$frm->addSelectField('tipo','Tipo:',false,'select * from tipo order by descricao');
* 	$frm->addSelectField('tipo','Tipo:',false,'tipo|descricao like "F%"');
*
*  //Exemplo espcial - Campo obrigatorio e sem senhum elemento pre selecionado.
*  $frm->addSelectField('tipo','Tipo',true,$tiposDocumentos,null,null,null,null,null,null,' ','');
* </code>
*
* @param string  $strName        - 1: ID do campo
* @param string  $strLabel       - 2: Label do campo
* @param boolean $boolRequired   - 3: Obrigatorio
* @param mixed   $mixOptions     - 4: array no formato "key=>value", nome do pacote oracle e da função a ser executada, comando sql ou tabela|condicao
* @param boolean $boolNewLine    - 5: Default TRUE = cria nova linha , FALSE = fica depois do campo anterior
* @param boolean $boolLabelAbove - 6: Label acima
* @param mixed   $mixValue       - 7:
* @param boolean $boolMultiSelect- 8: True = MultiSelect , False = SingleSelect
* @param integer $intSize        - 9:
* @param integer $intWidth       -10:
* @param string  $strFirstOptionText - 11: First Key in Display
* @param string  $strFirstOptionValue- 12: Frist Valeu in Display, use value NULL for required
* @param string  $strKeyField
* @param string  $strDisplayField
* @return TSelect
*/

Dicas sobre o campo Select

O campo $frm->addSelectField no parâmetro $mixOptions sempre recebe um array php. Essa array por ser criado com

  • array php direto
  • resultado de uma função ou método
  • string SQL de consulta a banco

Apesar de permitir evite usar o uso direto da string SQL não é uma boa pratica ! Foi mantida por questões de retro compatibilidade. O ideal é sempre usar uma função ou método que pode ir ao banco de dados.

Outros campos

Na Aplicação de Exemplo 1 http://localhost/formDin/appexemplo_v1.0/ Pode encontrar todos os componentes disponíveis para o formDin. Menu Appev1

Para saber como ver o código de exemplo veja O Formulário > da tela ao banco

Próxima etapa ?

12 - O Formulário

⚠️ **GitHub.com Fallback** ⚠️