Comando @ ... BROWSE
Sintaxe Mínima
@ <nRow>,<nCol> BROWSE <oBrw>
Sintaxe Completa
@ <nRow>, <nCol> [ COLUMN ] BROWSE <oBrw>
[ [ FIELDS ] <Flds,...>]
[ ALIAS <cAlias> ]
[ FIELDSIZES | SIZES | COLSIZES <aColSizes,...> ]
[ HEAD | HEADER | HEADERS <aHeaders,...> ]
[ SIZE <nWidth>, <nHeigth> ]
[ OF | DIALOG <oDlg> ]
[ SELECT <cField> FOR <uValue1> [ TO <uValue2> ] ]
[ ON CHANGE | ON CLICK <uChange> ]
[ ON DBLCLICK <uLDblClick> ]
[ ON RIGHT CLICK <uRClick> ]
[ FONT <oFont> ]
[ CURSOR <oCursor> ]
[ COLOR | COLORS <nClrFore> [,<nClrBack>] ]
[ MESSAGE <cMsg> ]
[ PIXEL ]
[ WHEN <uWhen> ]
[ VALID <uValid> ]
Include
#include "tcbrowse.ch"
Parâmetros
Cláusula | Tipo | Obrigatória | Descrição |
---|---|---|---|
<nRow> | N | S | Parâmetro obrigatório, indica a linha da tela (em pixels ou coordenadas) onde o componente será exibido. Deve ser usada uma expressão numérica, constante ou variável. |
<nCol> | N | S | Parâmetro obrigatório, indica a coluna da tela (em pixels ou coordenadas) onde o componente será exibido. Deve ser usada uma expressão numérica, constante ou variável. |
BROWSE <oBrw> | S | Cláusula obrigatória, usada para especificar um nome de variável AdvPL no qual o objeto do componente TCBrowse() será armazenado. Pode opcionalmente ser precedido pela cláusula COLUMN | |
FIELDS <Flds,...> | AC | N | Cláusula opcional, permite – quando usado um Browse para uma tabela – especificar os nomes dos campos que irão compor as colunas de dados do Browse, separados por vírgula. (*) Embora o uso da cláusula FIELDS seja opcional, é elegante especificá-la antes da lista de campos. |
ALIAS <cAlias> | C | N | Cláusula opcional, permite – quando usado um Browse para uma tabela – especificar o ALIAS da tabela a ser usado pelo componente. |
FIELDSIZES | SIZES | COLSIZES <aColSizes,...> | AN | N | Cláusula opcional, permite especificar expressões numéricas – constantes ou variáveis – separadas por vírgula, para definirem o tamanho de cada coluna do Browse. (*) |
HEAD | HEADER | HEADERS <aHeaders,...> | AC | N | Cláusula opcional, permite especificar expressões do tipo caractere – constantes ou variáveis – separadas por vírgula, usadas para definir os títulos de cada coluna do Browse. (*) |
SIZE <nWidth>,<nHeight> | N | N | Cláusula opcional, quando utilizada deve ser seguida dos parâmetros numéricos <nWidth> e <nHeight>, que respectivamente indicam o comprimento e a altura do componente na interface. |
OF | DIALOG <oWnd> | O | N | Cláusula opcional, quando informada permite especificar o nome de uma variável AdvPL que contenha o objeto ou componente pai de interface (janela ou diálogo, painel, folder) onde o componente deve ser exibido. Caso seja omitida, o componente será criado na janela ou diálogo ativos no momento. Embora todas as cláusulas sejam suportadas (OF ou DIALOG), por questões de padronização de código, recomendamos o uso da cláusula OF – pois um componente de interface não necessariamente têm seu componente pai definido como uma caixa de diálogo, qualquer outro componente de agrupamento ou container pode ser utilizado – como um tPanel, tFolder, etc. |
SELECT <cField> FOR <uValue1> [ TO <uValue2> ] | C | N | Permite – quando o componente for utilizado para uma tabela – especificar o nome de um campo para um filtro por intervalo de datas, especificado em cField, e os valores iniciais e finais do intervalo, respectivamente definidos em uValue1 e uValue2 |
ON CHANGE | ON CLICK <uChange> | C | N | Permite especificar uma ação ou chamada de função a ser executada quando houver uma mudança de linha no Browse. Caso você queira especificar mais de uma ação, separe as chamadas por vírgula e coloque a lista de ações entre parênteses. |
ON DBLCLICK <uLDblClick> | C | N | Permite especificar uma ação ou chamada de função a ser executada quando um duplo clique for disparado sobre uma célula do Browse. Caso você queira especificar mais de uma ação, separe as chamadas por vírgula e coloque a lista de ações entre parênteses. |
ON RIGHT CLICK <uRClick> | C | N | Permite especificar uma ação ou chamada de função a ser executada quando um clique com o botão direito do mouse for acionado sobre o componente. Caso você queira especificar mais de uma ação, separe as chamadas por vírgula e coloque a lista de ações entre parênteses. |
FONT <oFont> | O | N | Cláusula opcional, permite informar um objeto AdvPL do tipo TFont(), para que seja possível mostrar o texto no componente usando uma fonte diferente da fonte default do ambiente. |
CURSOR <oCursor> | O | N | Cláusula opcional, permite definir um cursor de mouse diferenciado quando o ponteiro do mouse estiver sobre o componente. |
COLOR | COLORS <nClrText> [ ,<nClrBack] | N | N | Cláusulas opcionais, que quando especificadas, permitem alterar a cor do texto do componente, e opcionalmente também permite alterar a cor de fundo do texto da exibição. |
MESSAGE <cMsg> | C | N | Indica a mensagem (hint ou tip) ao posicionar o ponteiro do mouse sobre o componente. |
PIXEL | N | Cláusula opcional, quando especificada, indica que o sistema de coordenadas usado nos parâmetros <nRow> e <nCol> são em pixels (ou pontos) a partir da coordenada superior esquerda (0,0) do componente visual pai em uso no qual o objeto será posicionado. | |
WHEN <uWhen> | C | N | Expressão caractere, que será utilizada para gerar um bloco de código com retorno booleano, a ser executado no momento de troca de foco de componentes da interface. A função ou expressão de validação deve retornar .T. (verdadeiro) caso o componente possa receber foco. |
VALID <uValid> | C | N | Indica uma expressão de validação que será executada quando o conteúdo do objeto for modificado. Deve retornar verdadeiro (.T.), se o conteúdo é válido; caso contrário, falso (.F.). |
Classe usada pelo comando
O comando @ .. BROWSE é traduzido em tempo de compilação para utilizar a classe de interface visual do AdvPL TCBROWSE() e seu método construtor NEW().
- As cláusulas identificadas com (*) podem ser usadas quando da criação de um Browse onde os objetos das colunas a serem visualizadas sejam criados internamente automaticamente pelo componente. O BROWSE pode ser criado vazio, sem nenhuma destas informações, e as colunas podem ser adicionadas dinamicamente usando os comandos ADD COLUMN TO BROWSE ou criando as colunas com a classe TCColumn e adicionando no objeto do Browse com o método AddColumn()
- A utilização do Browse com um ARRAY – ao invés de uma tabela – requer que o array que armazena os dados seja informado ao objeto do componente através do método SetArray()
Referências
Exemplo
Exemplo do comando @ ... BROWSE
#include 'totvs.ch' #include 'tcbrowse.ch' // Exemplo de TCBrowse com Vetor / Array // Trata-se do mesmo exemplo da classe TCBrowse():New(), porém criando // o Browse vazio ( sem a definição de Header ou Colunas ) // e acrescentando as colunas e headers posteriormente USER FUNCTION TCBrowse() Local oDlg,oBrowse Local aList := {} DEFINE DIALOG oDlg TITLE "Exemplo TCBrowse" FROM 180,180 TO 600,650 PIXEL // Cria o vetor com dados do Browse aList := { {'CLIENTE 001','RUA CLIENTE 001',111.11},; {'CLIENTE 002','RUA CLIENTE 002',222.22},; {'CLIENTE 003','RUA CLIENTE 003',333.33} } // Cria o Browse sem as colunas @ 01,01 BROWSE oBrowse SIZE 220,156 ; ON DBLCLICK MsgInfo('bLDblClick') ; OF oDlg PIXEL // Seta o Array de dados para a browse oBrowse:SetArray(aList) // Acrecenta as colunas no Browse // Sintaxe baseada no uso do Browse com Array ADD COLUMN TO oBrowse ARRAY ELEMENT 1 HEADER 'Código' SIZE 70 ADD COLUMN TO oBrowse ARRAY ELEMENT 2 HEADER 'Nome' SIZE 70 ADD COLUMN TO oBrowse ARRAY ELEMENT 3 HEADER 'Valor' SIZE 70 PICTURE '@E 99,999,999,999.99' // Evento de clique no cabeçalho da browse oBrowse:bHeaderClick := {|o, nCol| MsgInfo('bHeaderClick') } // Cria Botoes com metodos e eventos básicos @ 160, 002 BUTTON "GoUp()" OF oDlg ACTION ( oBrowse:GoUp(), oBrowse:setFocus() ) SIZE 40,10 PIXEL @ 160, 052 BUTTON "GoDown()" OF oDlg ACTION ( oBrowse:GoDown(), oBrowse:setFocus() ) SIZE 40,10 PIXEL @ 160, 102 BUTTON "GoTop()" OF oDlg ACTION ( oBrowse:GoTop(),oBrowse:setFocus() ) SIZE 40,10 PIXEL @ 160, 152 BUTTON "GoBottom()" OF oDlg ACTION ( oBrowse:GoBottom(),oBrowse:setFocus() ) SIZE 40,10 PIXEL @ 172, 002 BUTTON "Linha atual" OF oDlg ACTION ( MsgInfo(oBrowse:nAt) ) SIZE 40,10 PIXEL @ 172, 052 BUTTON "Nr Linhas" OF oDlg ACTION ( MsgInfo(oBrowse:nLen) ) SIZE 40,10 PIXEL @ 172, 102 BUTTON "Linhas visiveis" OF oDlg ACTION ( MsgInfo(oBrowse:nRowCount()) ) SIZE 40,10 PIXEL @ 172, 152 BUTTON "Alias" OF oDlg ACTION ( MsgInfo(oBrowse:cAlias) ) SIZE 40,10 PIXEL ACTIVATE DIALOG oDlg CENTERED Return
Resultado
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas