
Classe: TCBrowse
Cria um objeto do tipo grade.
New
Método construtor da classe.
TCBrowse(): New (
[ nRow], [ nCol], [ nWidth], [ nHeight], [ bLine], [ aHeaders], [ aColSizes], [ oWnd], [ cField], [ uValue1], [ uValue2], [ bChange], [ bLDblClick], [ bRClick], [ oFont], [ oCursor], [ nClrFore], [ nClrBack], [ cMsg], [ uParam20], [ cAlias], [ lPixel], [ bWhen], [ uParam24], [ bValid], [ lHScroll], [ lVScroll] ) --> oObjeto
| Nome | Tipo | Descrição | Obrigatório | Referência |
| nRow | Numérico | Indica a coordenada vertical. | | |
| nCol | Numérico | Indica a coordenada horizontal. | | |
| nWidth | Numérico | Indica a largura em pixels do objeto. | | |
| nHeight | Numérico | Indica a altura em pixels do objeto. | | |
| bLine | Bloco de código | Indica o bloco de código da lista de campos. Observação: Esse parâmetro é utilizado somente quando o browse trabalha com array. | | |
| aHeaders | Array of Record | Indica o título dos campos no cabeçalho. | | |
| aColSizes | Array of Record | Indica a largura das colunas. | | |
| oWnd | Objeto | Indica o controle visual onde o divisor será criado. | | |
| cField | Caracter | Indica os campos necessários para o filtro. | | |
| uValue1 | Qualquer | Indica o início do intervalo para o filtro. | | |
| uValue2 | Qualquer | Indica o fim do intervalo para o filtro. | | |
| bChange | Bloco de código | Indica o bloco de código que será executado ao mudar de linha. | | |
| bLDblClick | Bloco de código | Indica o bloco de código que será executado quando clicar duas vezes, com o botão esquerdo do mouse, sobre o objeto. | | |
| bRClick | Bloco de código | Indica o bloco de código que será executado quando clicar, com o botão direito do mouse, sobre o objeto. | | |
| oFont | Objeto | Indica o objeto do tipo TFont utilizado para definir as características da fonte aplicada na exibição do conteúdo do controle visual. | | |
| oCursor | Objeto | Indica o tipo de ponteiro do mouse. | | |
| nClrFore | Numérico | Indica a cor do texto da janela. | | |
| nClrBack | Numérico | Indica a cor de fundo da janela. | | |
| cMsg | Caracter | Indica a mensagem ao posicionar o ponteiro do mouse sobre o objeto. | | |
| uParam20 | Lógico | Compatibilidade. | | |
| cAlias | Caracter | Indica se o objeto é utilizado com array (opcional) ou tabela (obrigatório). | | |
| lPixel | Lógico | Indica se considera as coordenadas passadas em pixels (.T.) ou caracteres (.F.). | | |
| bWhen | Bloco de código | Indica o bloco de código que será executado quando a mudança de foco da entrada de dados, na janela em que o controle foi criado, estiver sendo efetuada. Observação: O bloco de código retornará verdadeiro (.T.) se o controle permanecer habilitado; caso contrário, retornará falso (.F.). | | |
| uParam24 | Lógico | Compatibilidade. | | |
| bValid | Bloco de código | Indica o bloco de código de validação que será executado quando o conteúdo do objeto for modificado. Retorna verdadeiro (.T.), se o conteúdo é válido; caso contrário, falso (.F.). | | |
| lHScroll | Lógico | Indica se habilita(.T.)/desabilita(.F.) a barra de rolagem horizontal. | | |
| lVScroll | Lógico | Indica se habilita(.T.)/desabilita(.F.) a barra de rolagem vertical. | | |
oObjeto () - Retorna o objeto criado.
oBrowse := TCBrowse():New( 01 , 01, 260, 156,,; {'','Codigo','Nome','Valor'},{20,50,50,50},; oDlg,,,,,{||},,,,,,,.F.,,.T.,,.F.,,, )
AddColumn
Inclui coluna no browse.
TCBrowse(): AddColumn (
< oColuna> ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| oColuna | Objeto | Indica o objeto do tipo TCColumn utilizado para incluir coluna no browse. | X | |
Para mais informações, consulta a documentação da classe TCColumn.
// Cria browseDbSelectarea("SA1")oBrowse := TCBrowse():New( 01 , 01, 260, 156,,; {'Codigo','Loja','Nome'},{50,50,50},; oDlg,,,,,{||},,,,,,,.F.,,.T.,,.F.,,, )// Adiciona colunasoBrowse:AddColumn(TCColumn():New("Codigo",{||SA1->A1_COD },,,,"LEFT",,.F.,.F.,,,,.F.,))oBrowse:AddColumn(TCColumn():New("Loja" ,{||SA1->A1_LOJA},,,,"LEFT",,.F.,.F.,,,,.F.,))oBrowse:AddColumn(TCColumn():New("Nome" ,{||SA1->A1_NOME},,,,"LEFT",,.F.,.F.,,,,.F.,))
ColPos
Retorna o número da coluna posicionada.
TCBrowse(): ColPos (
) --> nColuna
nColuna() - Retorna o número da coluna posicionada.
oBrowse:ColPos() // Result: 2
DrawSelect
Força a atualização do browse.
TCBrowse(): DrawSelect (
) -->
GetBrowse
Retorna o objeto da classe TCBrowse.
TCBrowse(): GetBrowse (
) --> oBrowse
oBrowse() - Retorna o objeto da classe TCBrowse.
GetBrwOrder
Retorna um array com os títulos, definidos pelo usuário, das colunas.
TCBrowse(): GetBrwOrder (
) --> aTitulos
aTitulos() - Retorna um array com os títulos, definidos pelo usuário, das colunas.
oBrowse:GetBrwOrder() // Result: {"Titulo01","Titulo02","Titulo03"}
GetCellRect
Retorna o retângulo da célula, do browse, no formato da classe TRect.
TCBrowse(): GetCellRect (
) -->
Para mais informações, consulte a documentação da classe TRect.
// Variável que receberá as coordenadasoRect := tRect():New(0,0,0,0) // Retorna as coordenadas da célula na variável oRectnColuna := 1nLinha := 2oBrowse:GetCellRect(nColuna, nLinha, oRect) // Result: oRect:nLeft = 186 // oRect:nRight = 183 // oRect:nTop = 223 // oRect:nBottom = 220
GetColSizes
Retorna um array com as larguras das colunas.
TCBrowse(): GetColSizes (
) --> aSizes
aSizes() - Retorna um array com as larguras das colunas.
oBrowse:GetColSizes() // Result: {20,50,50,50}
GoBottom
Move o ponteiro do mouse para a última linha do browse.
TCBrowse(): GoBottom (
) -->
GoColumn
Posiciona o cursor na coluna desejada.
TCBrowse(): GoColumn (
< nColuna> ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| nColuna | Numérico | Indica a coluna para posicionar o cursor. | X | |
GoDown
Move o ponteiro do mouse uma célula abaixo.
TCBrowse(): GoDown (
) -->
GoLeft
Move o ponteiro do mouse para a célula adjacente à esquerda.
TCBrowse(): GoLeft (
) -->
GoPosition
Posiciona o ponteiro do mouse na linha desejada.
TCBrowse(): GoPosition (
< nLinha> ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| nLinha | Numérico | Indica a linha para posicionar o ponteiro do mouse. | X | |
GoRight
Move o ponteiro do mouse para a célula adjacente à direita.
TCBrowse(): GoRight (
) -->
GoTop
Move o ponteiro do mouse para a primeira linha do browse.
TCBrowse(): GoTop (
) -->
GoUp
Move o ponteiro do mouse uma célula acima.
lEditCell
Edita o valor de uma coluna.
TCBrowse(): lEditCell (
[ aList], [ oList], [ cPicture], [ nCol] ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| aList | Array of Record | Indica o array do browse em que estão os valores. | | |
| oList | Objeto | Indica o browse que será editado. | | |
| cPicture | Caracter | Indica a picture necessária para edição do campo. | | |
| nCol | Numérico | Indica a coluna que será editada. | | |
nAtCol
Retorna a coluna em uma determinada posição do browse.
TCBrowse(): nAtCol (
< nColPix>, [ lIncludeFreeze] ) --> nColuna
| Nome | Tipo | Descrição | Obrigatório | Referência |
| nColPix | Numérico | Indica a posição em pixels para pesquisar o número da coluna do browse. | X | |
| lIncludeFreeze | Lógico | Indica se as colunas congeladas serão utilizadas no cálculo. | | |
nColuna() - Retorna a coluna na posição desejada.
oBrowse:nAtCol(20,.F.) // Result: 3
nRowCount
Retorna o número de linhas que estão visíveis no browse.
TCBrowse(): nRowCount (
) --> nLinhas
nLinhas() - Retorna o número de linhas que estão visíveis no browse.
oBrowse:nRowCount() // Result: 50
PageDown
Move o ponteiro do mouse para baixo, conforme o número de linha configurado.
TCBrowse(): PageDown (
< nLines> ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| nLines | Numérico | Indica o número de linhas que o ponteiro do mouse irá saltar. | X | |
PageUp
Move o ponteiro do mouse para cima, conforme o número de linha configurado.
TCBrowse(): PageUp (
< nLines> ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| nLines | Numérico | Indica o número de linhas que o ponteiro do mouse irá saltar. | X | |
ResetLen
Reinicia o contador de linha do browse.
TCBrowse(): ResetLen (
) -->
SetArray
Define um array para o browse.
TCBrowse(): SetArray (
< aDados> ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| aDados | Vetor | Indica o array que contêm os dados para o browse. | X | |
// Cria o BrowseoBrowse := TCBrowse():New( 01 , 01, 260, 156,,; {'','Codigo','Nome','Valor'},{20,50,50,50},; oDlg,,,,,{||},,,,,,,.F.,,.T.,,.F.,,, )// Vetor com informaçõesaBrowse := {{.T.,'CLIENTE 001','RUA CLIENTE 001',111.11},; {.F.,'CLIENTE 002','RUA CLIENTE 002',222.22},; {.T.,'CLIENTE 003','RUA CLIENTE 003',333.33} }// Define vetor para a browse oBrowse:SetArray(aBrowse)
SetBlkBackColor
Define a cor de fundo das colunas.
TCBrowse(): SetBlkBackColor (
< bColor> ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| bColor | Bloco de código | Indica o bloco de código que permite tratar a cor de fundo da coluna. | X | |
bColor := &("{|| if(aCols[n,Len(aCols[n])],"+Str(CLR_LIGHTGRAY)+","+Str(CLR_WHITE)+")}")oBrowse:SetBlkBackColor(bColor)
SetBlkColor
Define a cor da fonte das colunas.
TCBrowse(): SetBlkColor (
< bColor> ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| bColor | Bloco de código | Indica o bloco de código que permite tratar a cor da fonte da coluna. | X | |
bColor := &("{|| if(aCols[n,Len(aCols[n])],"+Str(CLR_WHITE)+","+Str(CLR_BLACK)+")}")oBrowse:SetBlkColor(bColor)
SetFilter
Define o filtro para os registros do browse.
TCBrowse(): SetFilter (
< cCampo>, [ uVal1], [ uVal2] ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| cCampo | Caracter | Indica o nome do campo que será utilizado para o filtro. | X | |
| uVal1 | Qualquer | Indica a expressão inicial do intervalo para o filtro. | | |
| uVal2 | Qualquer | Indica a expressão final do intervalo para o filtro. | | |
Para utilizar esse método, é necessário que o browse esteja definido para usar tabela.
// Cria parametros do filtrocCpofil := "A1_FILIAL"cTopFun := "xFilial('SA1')"cBotFun := cTopFun // Define o filtrooBrowse:SetFilter(cCpoFil, &cTopFun, &cBotFun)
SetHeaderImage
Define uma imagem para o cabeçalho do browse.
TCBrowse(): SetHeaderImage (
< nColuna>, < cImagem> ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| nColuna | Numérico | Indica a coluna para inserir a imagem. | X | |
| cImagem | Caracter | Indica o diretório ou path da imagem. | X | |
// Define uma imagem na segunda coluna do browseoBrowse:SetHeaderImage(2,"c:\dir\img_cabec.png")
SetOrder
Define a ordem de apresentação do browse.
TCBrowse(): SetOrder (
< nColuna> ) -->
| Nome | Tipo | Descrição | Obrigatório | Referência |
| nColuna | Numérico | Indica a coluna que será ordenada. | X | |
Para utilizar esse método, é necessário que o browse esteja definido para usar tabela.
nColuna := 2oBrowse:SetOrder(nColuna)
Skip
Posiciona o ponteiro do mouse "n" linhas para frente.
TCBrowse(): Skip (
< nSkip> ) --> nSkipped
| Nome | Tipo | Descrição | Obrigatório | Referência |
| nSkip | Numérico | Indica o número de linhas que o ponteiro do mouse irá saltar. | X | |
nSkipped() - Retorna o número de linhas que o ponteiro do mouse saltou.
| Propriedade | Descrição | Tipo |
| aArray | Indica o array que contém as informações apresentadas no browse. | Vetor |
| aColBmps | Indica um array com campos lógicos para determinar se a coluna é ou não uma imagem. | Vetor |
| aColSizes | Indica a largura das colunas. | Vetor |
| aColumns | Indica um array com objetos da classe TCColumn (Caso tenha utilizado este componente para inserir colunas). | Vetor |
| aHeaders | Indica o título dos campos no cabeçalho. | Vetor |
| bBmpName | Indica o bloco de código que será executado, internamente pelo browse, quando trocar a imagem de uma célula. Para mais informações, consulte a àrea "Observações". | Bloco de código |
| bDelOk | Indica o bloco de código que será executado quando excluir uma linha do browse. | Bloco de código |
| bDrawSelect | Indica o bloco de código que será executado ao utilizar o teclado para mudar de linha. | Bloco de código |
| bGoBottom | Indica o bloco de código que será executado quando o método GoBottom() for chamado. | Bloco de código |
| bGoTop | Indica o bloco de código que será executado quando o método GoTop() é chamado. | Bloco de código |
| bHeaderClick | Indica o bloco de código que será executado quando clicar, com o botão esquerdo do mouse, no cabeçalho do browse. | Bloco de código |
| bInRange | Indica o bloco de código que será executado para avaliar filtro no registro corrente. | Bloco de código |
| bLDblClick | Indica o bloco de código que será executado quando clicar duas vezes, com o botão esquerdo do mouse, sobre o objeto. | Bloco de código |
| bLine | Indica o bloco de código que será executado para montar a linha do browse. | Bloco de código |
| bLogicLen | Indica o bloco de código que será executado para contar as linhas do browse. | Bloco de código |
| bSeekChange | Indica o bloco de código que será executado quando mudar de linha. | Bloco de código |
| bSkip | Indica o bloco de código que será executado quando mudar de linha. | Bloco de código |
| bSuperDel | Indica o bloco de código que será executado quando excluir uma linha do browse. | Bloco de código |
| bValid | Indica o bloco de código de validação que será executado quando o conteúdo do objeto for modificado. Retorna verdadeiro (.T.), se o conteúdo é válido; caso contrário, falso (.F.). | Bloco de código |
| cAlias | Indica se o objeto é utilizado com array ou tabela. | Caracter |
| cField | Indica as propriedades relacionadas com o filtro. | Caracter |
| cOrderType | Indica o tipo de ordenação corrente. Exemplo: "D" é igual a ordenação por campo data. | Caracter |
| cSeek | Indica a chave de pesquisa incremental. | Caracter |
| lAdjustColSize | Indica se, verdadeiro (.T.), permite ajustar a largura da célula. | Lógico |
| lAutoEdit | Indica se permite (.T.) ou não (.F.) editar a célula. | Lógico |
| lDisablePaint | Indica se, verdadeiro (.T.), desabilita a atualização do browse. | Lógico |
| lHitBottom | Indica o tipo de ponteiro do mouse que está na última linha do browse. | Lógico |
| lHitTop | Indica o tipo de ponteiro do mouse que está na primeira linha do browse. | Lógico |
| lHScroll | Indica se, verdadeiro (.T.), habilita a barra de rolagem horizontal; caso contrário, falso (.F.). | Lógico |
| lJustific | Indica se, verdadeiro (.T.), centraliza o texto ou, falso (.F.), alinha o texto à esquerda. | Lógico |
| lUseDefaultColors | Indica se, verdadeiro (.T.), utiliza as cores padrão do browse. | Lógico |
| lVScroll | Indica se, verdadeiro (.T.), habilita a barra de rolagem vertical. | Lógico |
| nAt | Retorna a linha selecionada. | Numérico |
| nColOrder | Indexa os dados exibidos no browse quando utilizado um alias (tabela no banco de dados). | Numérico |
| nColPos | Indica o posicionamento da coluna no browse. | Numérico |
| nFreeze | Indica a coluna que será congelada à esquerda. Só é permitido o congelamento de uma coluna, qualquer valor maior que 1 será convertido para 1. | Numérico |
| nLen | Indica o número total de linhas. | Numérico |
| nLinhas | Indica o número de linhas por célula na vertical. | Numérico |
| nRowPos | Indica o posicionamento da linha no browse | Numérico |
| nScrollType | Indica o tipo da barra de rolagem que será utilizada, sendo: 0=Scroll padrão e 1= Scroll VCR. Para mais informações, consulte a àrea "Observações". | Numérico |
Propriedade Nesta propriedade, é possível implementar novos eventos no bloco de código, porém seu valor original deve ser mantido para não resultar em erros na aplicação. O valor de "X", no bloco de código, é um objeto que contém o nome da imagem definida para a célula. Exemplo 1: X:cName = 'br_vermelho' Exemplo 2: // Bloco de código original oBrowse:bBMPName := { |X| IF( VALTYPE( X )=='U','',IF( VALTYPE(X)=='C',X, X:CNAME) ) } // Bloco de código com implementações oBrowse:bBMPName := { |X| ShowColor(X), IF( VALTYPE( X )=='U','',IF( VALTYPE(X)=='C',X, X:CNAME) ) }
// Função implementada no bloco de código Static Function ShowColor(objColor) // Exibe no console do Servidor a imagem alterada pelo bloco de código Conout(objColor:cName) Return
Propriedade Nessa propriedade é possível definir as seguintes barras de rolagem: oBrowse:nScrollType := 0 // Scroll padrão 
oBrowse:nScrollType := 1 // Scroll VCR

#include "TOTVS.CH"User Function TCBrowse() Local oOK := LoadBitmap(GetResources(),'br_verde') Local oNO := LoadBitmap(GetResources(),'br_vermelho') Local aList := {} 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,,; {'','Codigo','Nome','Valor'},{20,50,50,50},; oDlg,,,,,{||},,,,,,,.F.,,.T.,,.F.,,, ) // Seta vetor para a browse oBrowse:SetArray(aBrowse) // Monta a linha a ser exibina 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 := {|| alert('bHeaderClick') } // Evento de duplo click na celula oBrowse:bLDblClick := {|| alert('bLDblClick') } // Cria Botoes com metodos básicos TButton():New( 160, 002, "GoUp()" , oDlg,{|| oBrowse:GoUp(),; oBrowse:setFocus() },40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 160, 052, "GoDown()" , oDlg,{|| oBrowse:GoDown(),; oBrowse:setFocus() },40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 160, 102, "GoTop()" , oDlg,{|| oBrowse:GoTop(),; oBrowse:setFocus() },40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 160, 152, "GoBottom()", oDlg,{|| oBrowse:GoBottom(),; oBrowse:setFocus() },40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 172, 002, "Linha atual", oDlg,{|| alert(oBrowse:nAt) },; 40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 172, 052, "Nr Linhas", oDlg,{|| alert(oBrowse:nLen) },; 40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 172, 102, "Linhas visiveis", oDlg,{|| alert(oBrowse:nRowCount()) },; 40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) TButton():New( 172, 152, "Alias", oDlg,{|| alert(oBrowse:cAlias) },; 40,010,,,.F.,.T.,.F.,,.F.,,,.F. ) ACTIVATE DIALOG oDlg CENTERED Return
Exemplo da classe TCBrowse

Microsiga Protheus 8.11
,
Microsiga Protheus 11
,
Protheus 10
,
TOTVS Application Server 10
,
ByYou Application Server
|