Árvore de páginas

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áusulaTipoObrigatóriaDescrição
<nRow>NSParâ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>NSParâ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>
SClá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,...>ACNClá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>CNCláusula opcional, permite – quando usado um Browse para uma tabela – especificar o ALIAS da tabela a ser usado pelo componente.
FIELDSIZES | SIZES | COLSIZES <aColSizes,...>ANNClá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,...>ACNClá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>NNClá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>ONClá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> ]CNPermite – 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>CN

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>CNPermite 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>CNPermite 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>ONClá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>ONCláusula opcional, permite definir um cursor de mouse diferenciado quando o ponteiro do mouse estiver sobre o componente.
COLOR | COLORS <nClrText> [ ,<nClrBack]NNClá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>CNIndica a mensagem (hint ou tip) ao posicionar o ponteiro do mouse sobre o componente.
PIXEL 
NClá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>CNExpressã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>CNIndica 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

Construtor TCBrowse:New

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


  • Sem rótulos