Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.
Comentário: Relacionar com comando @ BROWSE
Composition Setup
import.css=/download/attachments/3279126062824/newLayouttecnologia.css
Portuguese

Pagetitle

...

...

Classe TCBrowse
Classe

...

TCBrowse

Cria

...

um

...

objeto

...

do

...

tipo

...

grade.

Hierarquia

...

...

    • TCBrowse

Construtores

Inclusão de trecho
Classe TCBrowse - Construtores
Classe TCBrowse - Construtores
nopaneltrue

Propriedades

Inclusão de trecho
Classe TCBrowse - Propriedades
Classe TCBrowse - Propriedades
nopaneltrue

Métodos

Inclusão de trecho
Classe TCBrowse - Métodos
Classe TCBrowse - Métodos
nopaneltrue

Observações

Em builds superiores à 120420A foi implementado o evento de wheel (roda do mouse), permitindo movimentar os itens do componente à partir deste dispositivo.

Exemplos

    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> ) -->

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 ( ) -->

 
oBrowse:DrawSelect()

GetBrowse

Retorna o objeto da classe TCBrowse.

TCBrowse(): GetBrowse ( ) --> oBrowse

    oBrowse()
  • Retorna o objeto da classe TCBrowse.
 
oBrowse:GetBrowse()

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 ( ) -->

 
oBrowse:GoBottom()

GoColumn

Posiciona o cursor na coluna desejada.

TCBrowse(): GoColumn ( < nColuna> ) -->

 
oBrowse:GoColumn(2)

GoDown

Move o ponteiro do mouse uma célula abaixo.

TCBrowse(): GoDown ( ) -->

 
oBrowse:GoDown()

GoLeft

Move o ponteiro do mouse para a célula adjacente à esquerda.

TCBrowse(): GoLeft ( ) -->

 
oBrowse:GoLeft()

GoPosition

Posiciona o ponteiro do mouse na linha desejada.

TCBrowse(): GoPosition ( < nLinha> ) -->

 
oBrowse:GoPosition(2)

GoRight

Move o ponteiro do mouse para a célula adjacente à direita.

TCBrowse(): GoRight ( ) -->

 
oBrowse:GoRight()

GoTop

Move o ponteiro do mouse para a primeira linha do browse.

TCBrowse(): GoTop ( ) -->

 
oBrowse:GoTop()

GoUp

Move o ponteiro do mouse uma célula acima.

TCBrowse(): GoUp ( ) -->

 
oBrowse:GoUp()

lEditCell

Edita o valor de uma coluna.

TCBrowse(): lEditCell ( [ aList], [ oList], [ cPicture], [ nCol] ) -->

 

nAtCol

Retorna a coluna em uma determinada posição do browse.

TCBrowse(): nAtCol ( < nColPix>, [ lIncludeFreeze] ) --> nColuna

    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> ) -->

 
oBrowse:PageDown(1)

PageUp

Move o ponteiro do mouse para cima, conforme o número de linha configurado.

TCBrowse(): PageUp ( < nLines> ) -->

 
oBrowse:PageUp(1)

ResetLen

Reinicia o contador de linha do browse.

TCBrowse(): ResetLen ( ) -->

 
oBrowse:ResetLen()

SetArray

Define um array para o browse.

TCBrowse(): SetArray ( < aDados> ) -->

 
// 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> ) -->

 
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> ) -->

 
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] ) -->

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> ) -->

 
// 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> ) -->

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 &quot;n&quot; linhas para frente.

TCBrowse(): Skip ( < nSkip> ) --> nSkipped

    nSkipped()
  • Retorna o número de linhas que o ponteiro do mouse saltou.
 
oBrowse:Skip(2)
Bloco de código
languagecpp
firstline1
linenumberstrue
#include "TOTVS.CH"

USER FUNCTION TCBrowse()
Local oOK
New

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

NomeTipoDescriçãoObrigatórioReferência
nRowNuméricoIndica a coordenada vertical.nColNuméricoIndica a coordenada horizontal.nWidthNuméricoIndica a largura em pixels do objeto.nHeightNuméricoIndica a altura em pixels do objeto.bLineBloco de códigoIndica o bloco de código da lista de campos. Observação: Esse parâmetro é utilizado somente quando o browse trabalha com array.aHeadersArray of RecordIndica o título dos campos no cabeçalho.aColSizesArray of RecordIndica a largura das colunas.oWndObjetoIndica o controle visual onde o divisor será criado.cFieldCaracterIndica os campos necessários para o filtro.uValue1QualquerIndica o início do intervalo para o filtro.uValue2QualquerIndica o fim do intervalo para o filtro.bChangeBloco de códigoIndica o bloco de código que será executado ao mudar de linha.bLDblClickBloco de códigoIndica o bloco de código que será executado quando clicar duas vezes, com o botão esquerdo do mouse, sobre o objeto.bRClickBloco de códigoIndica o bloco de código que será executado quando clicar, com o botão direito do mouse, sobre o objeto.oFontObjetoIndica o objeto do tipo TFont utilizado para definir as características da fonte aplicada na exibição do conteúdo do controle visual.oCursorObjetoIndica o tipo de ponteiro do mouse.nClrForeNuméricoIndica a cor do texto da janela.nClrBackNuméricoIndica a cor de fundo da janela.cMsgCaracterIndica a mensagem ao posicionar o ponteiro do mouse sobre o objeto.uParam20LógicoCompatibilidade.cAliasCaracterIndica se o objeto é utilizado com array (opcional) ou tabela (obrigatório).lPixelLógicoIndica se considera as coordenadas passadas em pixels (.T.) ou caracteres (.F.).bWhenBloco de códigoIndica 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.).uParam24LógicoCompatibilidade.bValidBloco de códigoIndica 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.).lHScrollLógicoIndica se habilita(.T.)/desabilita(.F.) a barra de rolagem horizontal.lVScrollLógicoIndica se habilita(.T.)/desabilita(.F.) a barra de rolagem vertical.
NomeTipoDescriçãoObrigatórioReferência
oColunaObjetoIndica o objeto do tipo TCColumn utilizado para incluir coluna no browse. X
NomeTipoDescriçãoObrigatórioReferência
nColunaNuméricoIndica a coluna para posicionar o cursor. X
NomeTipoDescriçãoObrigatórioReferência
nLinhaNuméricoIndica a linha para posicionar o ponteiro do mouse. X
NomeTipoDescriçãoObrigatórioReferência
aListArray of RecordIndica o array do browse em que estão os valores.oListObjetoIndica o browse que será editado.cPictureCaracterIndica a picture necessária para edição do campo.nColNuméricoIndica a coluna que será editada.
NomeTipoDescriçãoObrigatórioReferência
nColPixNuméricoIndica a posição em pixels para pesquisar o número da coluna do browse. X lIncludeFreezeLógicoIndica se as colunas congeladas serão utilizadas no cálculo.
NomeTipoDescriçãoObrigatórioReferência
nLinesNuméricoIndica o número de linhas que o ponteiro do mouse irá saltar. X
NomeTipoDescriçãoObrigatórioReferência
nLinesNuméricoIndica o número de linhas que o ponteiro do mouse irá saltar. X
NomeTipoDescriçãoObrigatórioReferência
aDadosVetorIndica o array que contêm os dados para o browse. X
NomeTipoDescriçãoObrigatórioReferência
bColorBloco de códigoIndica o bloco de código que permite tratar a cor de fundo da coluna. X
NomeTipoDescriçãoObrigatórioReferência
bColorBloco de códigoIndica o bloco de código que permite tratar a cor da fonte da coluna. X
NomeTipoDescriçãoObrigatórioReferência
cCampoCaracterIndica o nome do campo que será utilizado para o filtro. X uVal1QualquerIndica a expressão inicial do intervalo para o filtro.uVal2QualquerIndica a expressão final do intervalo para o filtro.
NomeTipoDescriçãoObrigatórioReferência
nColunaNuméricoIndica a coluna para inserir a imagem. X cImagemCaracterIndica o diretório ou path da imagem. X
NomeTipoDescriçãoObrigatórioReferência
nColunaNuméricoIndica a coluna que será ordenada. X
NomeTipoDescriçãoObrigatórioReferência
nSkipNuméricoIndica o número de linhas que o ponteiro do mouse irá saltar. X
PropriedadeDescriçãoTipo
aArrayIndica o array que contém as informações apresentadas no browse.Vetor
aColBmpsIndica um array com campos lógicos para determinar se a coluna é ou não uma imagem.Vetor
aColSizesIndica a largura das colunas.Vetor
aColumnsIndica um array com objetos da classe TCColumn (Caso tenha utilizado este componente para inserir colunas).Vetor
aHeadersIndica o título dos campos no cabeçalho.Vetor
bBmpNameIndica 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
bDelOkIndica o bloco de código que será executado quando excluir uma linha do browse.Bloco de código
bDrawSelectIndica o bloco de código que será executado ao utilizar o teclado para mudar de linha.Bloco de código
bGoBottomIndica o bloco de código que será executado quando o método GoBottom() for chamado.Bloco de código
bGoTopIndica o bloco de código que será executado quando o método GoTop() é chamado.Bloco de código
bHeaderClickIndica 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
bInRangeIndica o bloco de código que será executado para avaliar filtro no registro corrente.Bloco de código
bLDblClickIndica 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
bLineIndica o bloco de código que será executado para montar a linha do browse.Bloco de código
bLogicLenIndica o bloco de código que será executado para contar as linhas do browse.Bloco de código
bSeekChangeIndica o bloco de código que será executado quando mudar de linha.Bloco de código
bSkipIndica o bloco de código que será executado quando mudar de linha.Bloco de código
bSuperDelIndica o bloco de código que será executado quando excluir uma linha do browse.Bloco de código
bValidIndica 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
cAliasIndica se o objeto é utilizado com array ou tabela.Caracter
cFieldIndica as propriedades relacionadas com o filtro.Caracter
cOrderTypeIndica o tipo de ordenação corrente. Exemplo: "D" é igual a ordenação por campo data.Caracter
cSeekIndica a chave de pesquisa incremental.Caracter
lAdjustColSizeIndica se, verdadeiro (.T.), permite ajustar a largura da célula.Lógico
lAutoEditIndica se permite (.T.) ou não (.F.) editar a célula.Lógico
lDisablePaintIndica se, verdadeiro (.T.), desabilita a atualização do browse.Lógico
lHitBottomIndica o tipo de ponteiro do mouse que está na última linha do browse.Lógico
lHitTopIndica o tipo de ponteiro do mouse que está na primeira linha do browse.Lógico
lHScrollIndica se, verdadeiro (.T.), habilita a barra de rolagem horizontal; caso contrário, falso (.F.).Lógico
lJustificIndica se, verdadeiro (.T.), centraliza o texto ou, falso (.F.), alinha o texto à esquerda.Lógico
lUseDefaultColorsIndica se, verdadeiro (.T.), utiliza as cores padrão do browse.Lógico
lVScrollIndica se, verdadeiro (.T.), habilita a barra de rolagem vertical.Lógico
nAtRetorna a linha selecionada.Numérico
nColOrderIndexa os dados exibidos no browse quando utilizado um alias (tabela no banco de dados).Numérico
nColPosIndica o posicionamento da coluna no browse.Numérico
nFreezeIndica a coluna que será congelada à esquerda. Só é permitido o congelamento de uma coluna, qualquer valor maior que 1 será convertido para 1.Numérico
nLenIndica o número total de linhas.Numérico
nLinhasIndica o número de linhas por célula na vertical.Numérico
nRowPosIndica o posicionamento da linha no browseNumérico
nScrollTypeIndica 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
TCbrowse scroll PadrãoImage Removed
oBrowse:nScrollType := 1 // Scroll VCRTCbrowse scroll VCRImage Removed
  #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 := {|o, nCol| 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
ReturnExemplo da classe TCBrowse

RETURN

Resultado do Exemplo

Image Modified

Abrangência

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

Referências

O método NEW() da classe TCBrowse() também pode ser acionado através do comando @ ... BROWSE