Usina BRAdvPL Guia
Entrar
← Todos os tópicos
CLASSEPublicado

TCBrowse

TCBrowse():New( <nTop>, <nLeft>, <nBottom>, <nRight>, <oWnd>, ... ) --> oBrowse

Classe visual usada para exibir e navegar por dados em formato de grade/browse.

Interface visualClasseBrowseGradeTabelasArrays
01 · VISÃO GERAL

Visão geral

TCBrowse é uma classe visual para apresentar informações em linhas e colunas, normalmente dentro de diálogos, painéis ou outras janelas do SmartClient. Ela pode ser criada diretamente por seu construtor New() ou indiretamente pelo comando @ ... BROWSE, que é uma forma mais legível de instanciar e configurar o componente. O browse pode trabalhar com aliases de tabelas ou com arrays, desde que os dados e colunas sejam associados corretamente.

02 · SINTAXE

Sintaxe

TCBrowse():New( <nTop>, <nLeft>, <nBottom>, <nRight>, <oWnd>, ... ) --> oBrowse

Parâmetros

nTop
NuméricoObrigatório

Coordenada superior do componente no contêiner visual.

nLeft
NuméricoObrigatório

Coordenada esquerda do componente no contêiner visual.

nBottom
NuméricoObrigatório

Coordenada inferior do componente.

nRight
NuméricoObrigatório

Coordenada direita do componente.

oWnd
ObjetoOpcional

Janela, diálogo, painel ou folder onde o browse será exibido.

cAlias
CaractereOpcional

Alias da área de dados quando o browse for baseado em tabela.

Métodos

NewCria uma instância do browse dentro de um contêiner visual.TCBrowse():New( <nTop>, <nLeft>, <nBottom>, <nRight>, <oWnd>, ... ) --> oBrowse
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
nTopNuméricoObrigatório

Posição superior.

Em exemplos com PIXEL, interprete como coordenada em pixels.

nLeftNuméricoObrigatório

Posição esquerda.

Deve ser coerente com a unidade usada no contêiner.

nBottomNuméricoObrigatório

Posição inferior.

Ajuda a definir a altura do componente.

nRightNuméricoObrigatório

Posição direita.

Ajuda a definir a largura do componente.

oWndObjetoOpcional

Contêiner visual proprietário.

O uso explícito do contêiner evita associação ao diálogo ativo por engano.

Retorno

Objeto TCBrowse criado.

SetArrayAssocia um array ao browse para navegação linha a linha.oBrowse:SetArray( <aDados> ) --> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
aDadosArrayObrigatório

Matriz com as linhas a serem exibidas.

Cada linha costuma ser outro array, com uma posição para cada coluna.

AddColumnAdiciona uma coluna ao browse por meio de um objeto de coluna, como TCColumn.oBrowse:AddColumn( <oColumn> ) --> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
oColumnObjetoObrigatório

Objeto que descreve título, valor e propriedades da coluna.

Também é comum adicionar colunas por sintaxe de comando, como ADD COLUMN TO ... ARRAY ELEMENT.

GoTopMove a navegação para a primeira linha disponível.oBrowse:GoTop() --> NIL
GoBottomMove a navegação para a última linha disponível.oBrowse:GoBottom() --> NIL
GoUpMove a seleção uma linha para cima.oBrowse:GoUp() --> NIL
GoDownMove a seleção uma linha para baixo.oBrowse:GoDown() --> NIL
RefreshSolicita atualização visual do browse após alterações nos dados ou na configuração.oBrowse:Refresh() --> NIL

Retorno

Retorna um objeto TCBrowse quando criado por New() ou por @ ... BROWSE.

03 · EXEMPLO PRÁTICO

TCBrowse com bLine, eventos e navegação

#Include "TOTVS.ch"
#Include "tcbrowse.ch"

User Function TCBrowse()
    Local oDlg
    Local oBrowse
    Local oOK := LoadBitmap(GetResources(), "br_verde")
    Local oNO := LoadBitmap(GetResources(), "br_vermelho")
    Local aBrowse := {}

    DEFINE DIALOG oDlg TITLE "Exemplo TCBrowse" ;
        FROM 180, 180 TO 550, 700 PIXEL

    // Vetor com elementos do Browse
    aBrowse := { ;
        {.T., "CLIENTE 001", "RUA CLIENTE 001", 111.11}, ;
        {.F., "CLIENTE 002", "RUA CLIENTE 002", 222.22}, ;
        {.T., "CLIENTE 003", "RUA CLIENTE 003", 333.33}  ;
    }

    // Cria Browse
    oBrowse := TCBrowse():New(01, 01, 260, 156, , ;
        {"", "Código", "Nome", "Valor"}, ;
        {20, 50, 90, 70}, oDlg, , , , , {||}, , , , , , , .F., , .T., , .F., , , )

    // Seta vetor para a browse
    oBrowse:SetArray(aBrowse)

    // Monta a linha a ser exibida no Browse
    oBrowse:bLine := {|| { ;
        If(aBrowse[oBrowse:nAt, 01], oOK, oNO), ;
        aBrowse[oBrowse:nAt, 02], ;
        aBrowse[oBrowse:nAt, 03], ;
        Transform(aBrowse[oBrowse:nAt, 04], "@E 99,999,999,999.99") } }

    // Evento de clique no cabeçalho da browse
    oBrowse:bHeaderClick := {|o, nCol| Alert("bHeaderClick") }

    // Evento de duplo clique na célula
    oBrowse:bLDblClick := {|| Alert("bLDblClick") }

    // Cria botões com métodos básicos
    TButton():New(160, 002, "GoUp()", oDlg, {|| oBrowse:GoUp(), oBrowse:SetFocus() }, 40, 010)
    TButton():New(160, 052, "GoDown()", oDlg, {|| oBrowse:GoDown(), oBrowse:SetFocus() }, 40, 010)
    TButton():New(160, 102, "GoTop()", oDlg, {|| oBrowse:GoTop(), oBrowse:SetFocus() }, 40, 010)
    TButton():New(160, 152, "GoBottom()", oDlg, {|| oBrowse:GoBottom(), oBrowse:SetFocus() }, 40, 010)
    TButton():New(172, 002, "Linha atual", oDlg, {|| Alert(oBrowse:nAt) }, 40, 010)
    TButton():New(172, 052, "Nr. linhas", oDlg, {|| Alert(oBrowse:nLen) }, 40, 010)
    TButton():New(172, 102, "Linhas visíveis", oDlg, {|| Alert(oBrowse:nRowCount()) }, 40, 010)
    TButton():New(172, 152, "Alias", oDlg, {|| Alert(oBrowse:cAlias) }, 40, 010)

    ACTIVATE DIALOG oDlg CENTERED
Return
Resultado esperado

Cria um browse com vetor, indicador visual por linha, montagem personalizada com bLine, eventos de cabeçalho e duplo clique, além de botões para executar métodos básicos de navegação.

ARMADILHAS COMUNS
  • Criar o browse sem associar dados ou colunas resulta em uma área visual vazia.
  • Misturar coordenadas PIXEL com coordenadas não pixeladas pode gerar desalinhamento.
  • Eventos e blocos de código muito extensos dentro da tela dificultam manutenção.
  • TCBrowse é útil para referência e manutenção de legado, mas projetos novos podem preferir componentes de framework como FWBrowse ou FWMBrowse.

Conteúdos relacionados

REFERÊNCIAS
  1. TOTVS. TCBrowse. TOTVSTEC / TDN. Referência da classe visual de browse.
  2. TOTVS. @ ... BROWSE. TOTVSTEC / TDN. Comando que instancia e configura TCBrowse.
  3. TOTVS. TCBrowse:New. TOTVSTEC / TDN. Construtor da classe.
Situação
Publicado
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha