Classe: TGridExibe os dados organizados em uma tabela. NewMétodo construtor da classe.TGrid(): New ( < oParent>, [ nRow], [ nCol], [ nWidth], [ nHeight] ) --> oTGrid
Nome | Tipo | Descrição | Obrigatório | Referência | oParent | Objeto | Indica a janela ou componente parent onde o objeto será criado. | X |
| nRow | Numérico | Indica a coordenada vertical em pixels. |
|
| nCol | Numérico | Indica a coordenada horizontal em pixels. |
|
| nWidth | Numérico | Indica a largura em pixels do objeto. |
|
| nHeight | Numérico | Indica a altura em pixels do objeto. |
|
|
oTGrid(objeto)- Retorna o objeto criado.
AddColumnAdiciona colunas no objeto.TGrid(): AddColumn ( < nId>, < cCaption>, < nWidth>, < nAlign>, < lHeaderFollowsDataAlign> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nId | Numérico | Indica o ID de identificação da coluna que será criada. | X |
| cCaption | Caracter | Indica o título da coluna. | X |
| nWidth | Numérico | Indica a largura inicial da coluna em pixels. | X |
| nAlign | Numérico | Indica o alinhamento do texto na coluna. Para informações das opções disponíveis, consulte a área Observações. | X |
| lHeaderFollowsDataAlign | Lógico | Indica se o alinhamento do texto do cabeçalho seguirá o mesmo alinhamento do texto na coluna. |
|
|
As opções disponíveis para o parâmetro nAlign são: Conteúdo | descrição |
---|
CONTROL_ALIGN_LEFT | Alinhamento do texto à esquerda. | CONTROL_ALIGN_RIGHT | Alinhamento do texto à direita. | 0 | Texto centralizado. |
O parâmetro lHeaderFollowsDataAlign está disponível somente em builds superiores a 7.00.120420A clearRowsApaga todas as linhas visíveis do objeto.TGrid(): clearRows ( ) --> Ao acionar esse método, o objeto é reconfigurado para o estado inicial, ou seja, sem dados e com o cursor de seleção de linha na posição 0. ColOrderPreenche o array do objeto com as colunas representadas no componente.TGrid(): ColOrder ( < aArrRay> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | aArrRay | Array of Record | Indica o número de posições inteiras que representará a ordem das colunas que constam no componente. | X |
|
ColPosRetorna a coluna selecionada.getCellRectTGrid(): getCellRect ( < aRet> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | aRet | Vetor | Indica um array com as propriedades (Top, Left, Right e Bottom) do formato da célula selecionada. | X |
|
getVisibleRows Retorna o número de linhas visíveis no Grid. Sintaxe TGrid(): getVisibleRows ( ) --> nVisibleRows := ::oGrid:getVisibleRows() Aviso |
---|
| Caso a área visível do componente não suporte 1 linha, o método retornara 0. |
RemoveColumnRemove a coluna do objeto.TGrid(): RemoveColumn ( < nId> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nId | Numérico | Indica o ID de identificação da coluna criada através do método AddColumn(). | X |
|
Movimenta as linhas de exibição, do objeto, para cima ou para baixo.TGrid(): scrollLines ( < nLines> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nLines | Numérico | Indica o número de linhas que serão movimentadas. Para mais detalhes, consulte a área Observações. | X |
|
As opções disponíveis para o parâmetro são: Conteúdo | Descrição |
---|
> 0 | Movimenta a(s) linha(s) para cima. | < 0 | Movimenta a(s) linha(s) para baixo. |
- O número de linhas movimentadas, pelo parâmetro , serão apagadas no topo ou no rodapé do objeto de acordo com a movimentação. No entanto, as linhas apagadas devem ser atualizadas através do método SetRowData().
- O bloco de código, da propriedade , não será executado se o método ScrollLines() for acionado.
Determina o bloco de código que será executado.TGrid(): SetHeaderClick ( < bBlock> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | bBlock | Bloco de código | Indica o bloco de código que será executado ao clicar duas vezes no header. | X |
|
setRowColorDetermina a cor exibida em uma linha visível do browse com as propriedades (nLinha, nColorBak, nColorFore).TGrid(): setRowColor ( < nLinha>, < nColorBack>, < nColorFore> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nLinha | Numérico | Indica a linha visível do browse. | X |
| nColorBack | Numérico | Indica a RGB da cor de fundo. | X |
| nColorFore | Numérico | Indica a RGB da cor de frente. | X |
|
Se o método for chamado sem os parâmetros, as linhas voltarão ao estado inicial (RESET). oGrid:setRowColor( 5, CLR_BLACK, CLR_WHITE )oGrid:setRowColor( 7, CLR_BLUE, CLR_WHITE ) oGrid:setRowColor() // Restaura as cores iniciais. SetRowDataConfgura os dados que serão apresentados em determinada linha do objeto.TGrid(): SetRowData ( < nRow>, < bData> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nRow | Numérico | Indica a linha visual que será atualizada. | X |
| bData | Bloco de código | Indica o bloco de código responsável pela geração dos dados que serão apresentados. Para mais detalhes, consulte a área Observações. | X |
|
O bloco de código, configurado no parâmetro , deve ter o seguinte formato: {|oObj| Onde oObj é instância do objeto e cuja execução deve retornar um Array () de valores caracteres.
nCols é o número de colunas do objeto. setRowHeightConfigura a altura de cada linha do grid.<br />Por padrão, a altura das linhas é a mesma do cabeçalho do grid.</p>TGrid(): setRowHeight ( [ nVal] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nVal | Numérico | Indica a altura em pixels. |
|
|
setSelectedRowPosiciona na linha selecionada do objeto.TGrid(): setSelectedRow ( [ nRow] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nRow | Numérico | Indica a linha que será selecionada. |
|
|
- Este método seleciona a linha visual, do objeto, dentro do limite do número de linhas visuais.
- O acionamento do método SetSelectdRow() não executa o bloco de código da propriedade.
SetSelectionModeIndica o tipo (linha ou célula) de navegação no componente.TGrid(): SetSelectionMode ( < nSelMode> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nSelMode | Numérico | Indica o tipo (0=linha ou 1=célula) de navegação no componente. | X |
|
SetHeaderImageTGrid():SetHeaderImage( < nCol>, < cImage> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nCol | Numérico | Número da coluna a ser aplicada a imagem. | X |
| cImage | Caractere | Nome do resource da imagem. | X |
|
|
GoColumnGoColumnPosiciona o cursor em uma coluna específica.TGrid():GoColumn( < nCol> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nCol | Numérico | Número da coluna a ser posicionado o cursor. | X |
|
|
SetKeyValueSetKeyValueAdiciona ou remove uma tecla modificadora.TGrid():SetKeyValue( < nKy>, < nAddOrRemove> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nKy | Numérico | Código ASCII da tecla. | X |
| nAddOrRemove | Numérico | Código para se irá adicionar (1) ou remover (0) a tecla da lista de modificadores. | X |
|
|
SetColumnColorSetColumnColorDefine a cor de fundo e do texto de uma coluna.TGrid():SetColumnColor( [ nCol], [ nClrBack], [ nClrFore] ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nCol | Numérico | Número da coluna a ser modificada (a ordem começa do 0, sendo então necessário subtrair 1 do número da coluna). Caso nenhuma coluna seja informada, limpa as informações sobre cores de fundo e texto de todas as colunas. |
|
| nClrBack | Numérico | Cor de fundo. Caso não seja informada, irá para a cor padrão. |
|
| nClrFore | Numérico | Cor do texto. Caso não seja informada irá para a cor padrão. |
|
|
|
GetColumnsSize GetColumnsSizeRetorna o tamanho das colunas em pixels.TGrid():GetColumnsSize() --> aRet aRet(array)- Retorna um array com os tamanhos das colunas, sendo cada posição o tamanho da largura de uma coluna em pixels, seguindo a ordem das colunas.
oGrid:GetColumnsSize() // Result: {50, 150, 176} O método só está disponível em build superior a versão 7.00.131227A. |
SetColumnSize SetColumnSizeDefine o tamanho da largura de uma coluna em pixels.TGrid():SetColumnSize( < nCol>, < nSize> ) -->
Nome | Tipo | Descrição | Obrigatório | Referência | nCol | Numérico | Número da coluna começando por 1. | X |
| nSize | Numérico | Tamanho em pixels da largura da coluna a ser alterada. | X |
|
O método só está disponível em build superior a versão 7.00.131227A. |
Propriedade
Propriedade | Descrição | Tipo | bCursorMove | Indica o bloco de código que será executado ao mudar de linha selecionada. Para mais detalhes, consulte a área Observações e o código fonte exemplo. | Bloco de código | bColumnChanged | Indica o bloco de código que será executado ao mudar de coluna selecionada. Para mais detalhes, consulte a área Observações | Bloco de código | bGridInfo | Indica o bloco de código que será executado sempre que a quantidade de linhas visíveis no Grid mudar. | Bloco de código | nFreeze | Indica a coluna que será congelada à esquerda. É permitido o congelamento de mais de uma coluna em tempo de execução. Somente para builds superiores à 120420A. | Numérico | bRowLeftClick | O bloco de código da propriedade, na classe TGrid, é executado quando é recebido um clique do mouse com o botão esquerdo no componente. | Bloco de código | nInterval | Esta propriedade indica o intervalo entre registros para a pintura do fundo de cor diferente, ao invés do padrão de linhas alternadas com cores de fundo diferentes, é possível definir que serão alternadas de quatro em quatro registros por exemplo. Somente para builds superiores à 121227P. | Numérico | bKeyBlock | Bloco de código a ser executado quando alguma tecla é pressionada. Os parâmetros recebidos pelo bloco são o objeto TGrid e o número ASCII da tecla pressionada. | Bloco de código | lShowGrid | Define se mostrará ou não o grid (desenhar as linhas e colunas que separam as células entre si), o padrão é .T. para mostrar o grid. | Lógico | nHScrollBar | Indica o estado da barra de rolagem horizontal. Consulte a área de observações para os detalhes. Somente para builds superiores a 131227A. | Numérico |
Em builds superiores à 120420A foi implementado o evento de wheel (roda do mouse), permitindo movimentar os itens do componente à partir deste dispositivo. Propriedade: bCursorMoveEsta classe permite a exibição de qualquer origem de dados, porém o desenvolvedor deve configurar todo o processo de dados para pintura e navegação, conforme exemplo abaixo: O formato do bloco de código, da propriedade , é: {|o,nMvType,nCurPos,nOffSet,nVisRows| (o,nMvType,nCurPos,nOffSet,nVisRows) } Sendo: Parâmetro | Descrição |
---|
o | Indica a instância do objeto TGrid(). | nMvType | Indica o tipo de movimento, sendo: Valor | mnemônico | descrição |
---|
0 | GRID_MOVEUP | Move uma linha para cima. | 1 | GRID_MOVEDOWN | Move uma linha para baixo. | 2 | GRID_MOVEHOME | Move para o topo da base de dados. | 3 | GRID_MOVEEND | Move para o fim da base de dados. | 4 | GRID_MOVEPAGEUP | Move uma página de dados para cima. | 5 | GRID_MOVEPAGEDOWN | Move uma página de dados para baixo. | 10 | GRID_WHEELUP* | Movimento do mouse de rolar para cima (Mouse Wheel DownUp) | 11 | GRID_WHEELDOWN* | Movimento do mouse de rolar para baixo (Mouse Wheel UpDown) |
| nCurPos | Indica a posição visual da linha selecionada. | nOffSet | Indica a diferença de linhas, entre a posição inicial e final, da movimentação do ponteiro do mouse de linha. | nVisRows | Indica o número de linhas visíveis, na grade, no momento da movimentação. |
* GRID_WHEELUP e GRID_WHEELDOWN Disponível em builds iguais ou superiores a 7.00.131227A - 13.2.3.27 Propriedade: bColumnChangedO bloco código da propriedade, na classe TGrid(), é executado sempre que ocorrer uma mudança de coluna. O formato do bloco de código, da propriedade , é: {|o,nMvType,nCurPos| (o,nMvType,nCurPos) } Sendo: Parâmetro | Descrição |
---|
o | Indica a instância do objeto TGrid(). | nMvType | Indica o tipo de movimento, sendo sempre: 6 - movimento horizontal. | nCurPos | Coluna atual selecionada (base zero). |
Propriedade: bRowLeftClick O bloco de código da propriedade, na classe TGrid, é executado quando é recebido um clique do mouse com o botão esquerdo no componente. O formato do bloco de código, da propriedade, é: { | o, nX, nY | ( o, nX, nY ) } Sendo: Parâmetro | Descrição |
---|
o | Indica a instância do objeto TGrid. | nX | Indica a posição X no plano cartesiano do componente TGrid. | nY | Indica a posição Y no plano cartesiano do componente TGrid. |
Propriedade: bGridInfoParâmetro | Descrição |
---|
o | Indica a instância do objeto TGrid(). | nVisRows | Indica o número de linhas visíveis na grade. |
Propriedade: nFreezeEsta propriedade permite o congelamento de mais de uma coluna em tempo de execução. Somente para builds superiores à 120420A. Parâmetro | Descrição |
---|
nFreeze | Indica o número de colunas congeladas a esquerda. |
Propriedade: nIntervalEsta propriedade indica o intervalo entre registros para a pintura do fundo de cor diferente, ao invés do padrão de linhas alternadas com cores de fundo diferentes, é possível definir que serão alternadas de quatro em quatro registros por exemplo. Somente para builds superiores à 121227P. Parâmetro | Descrição |
---|
nInterval | Indica o intervalo de registros para alternar a pintura da cor de fundo. |
Propriedade: bKeyBlockBloco de código a ser executado quando alguma tecla é pressionada. Os parâmetros recebidos pelo bloco são o objeto TGrid e o número ASCII da tecla pressionada. Parâmetro | Descrição |
---|
oTGrid | Instância do objeto TGrid. | nKey | Código ASCII da tecla pressionada. |
Propriedade: lShowGridDefine se mostrará ou não o grid (desenhar as linhas e colunas que separam as células entre si), o padrão é .T. para mostrar o grid.. Parâmetro | Descrição |
---|
lShowGrid | Define se mostrará ou não o grid (desenhar as linhas e colunas que separam as células entre si), o padrão é .T. para mostrar o grid. |
Disponível somente para builds superiores a 131227A. Indica o estado da barra de rolagem horizontal. Esta propriedade pode assumir três valores de estado conforme tabela a seguir: Parâmetro | Descrição |
---|
0 | Valor padrão. Exibe a barra de rolagem horizontal somente quando a largura da TGrid excede o espaço definido. | 1 | Nunca exibe a barra de rolagem horizontal. | 2 | Sempre exibe a barra de rolagem horizontal. |
Importante |
---|
Classe disponível, para o TOTVS Application Server e TOTVS Smart Client, a partir da build 7.00.080806P. |
Bloco de código |
---|
language | cpp |
---|
theme | Eclipse |
---|
title | Exemplo |
---|
linenumbers | true |
---|
| #include "totvs.ch"
//------------------------------------------------------------------
//Exemplo de configuração de TGrid em array com navegação por linha
//------------------------------------------------------------------
#define GRID_MOVEUP 0
#define GRID_MOVEDOWN 1
#define GRID_MOVEHOME 2
#define GRID_MOVEEND 3
#define GRID_MOVEPAGEUP 4
#define GRID_MOVEPAGEDOWN 5
//------------------------------------------------------------------
//Valores para a propriedade nHScroll que define o comportamento da
//barra de rolagem horizontal
//------------------------------------------------------------------
#define GRID_HSCROLL_ASNEEDED 0
#define GRID_HSCROLL_ALWAYSOFF 1
#define GRID_HSCROLL_ALWAYSON 2
// MyGrid ( Classe para encapsular acesso ao componente TGrid )
//------------------------------------------------------------------------------
CLASS MyGrid
DATA oGrid
DATA oFrame
DATA oButtonsFrame
DATA oButtonHome
DATA oButtonPgUp
DATA oButtonUp
DATA oButtonDown
DATA oButtonPgDown
DATA oButtonEnd
DATA aData
DATA nLenData
DATA nRecNo
DATA nCursorPos
DATA nVisibleRows
DATA nFreeze
DATA nHScroll
METHOD New(oDlg) CONSTRUCTOR
METHOD onMove( o,nMvType,nCurPos,nOffSet,nVisRows )
METHOD isBof()
METHOD isEof()
METHOD ShowData( nFirstRec, nCount )
METHOD ClearRows()
METHOD DoUpdate()
METHOD SelectRow(n)
METHOD GoHome()
METHOD GoEnd()
METHOD GoPgUp()
METHOD GoPgDown()
METHOD GoUp(nOffSet)
METHOD GoDown(nOffSet)
METHOD SetCSS(cCSS)
METHOD SetFreeze(nFreeze)
METHOD SetHScrollState(nHScroll)
ENDCLASS
METHOD New(oDlg, aData) CLASS MyGrid
Local oFont
::oFrame:= tPanel():New(0,0,,oDlg,,,,,,200,200 )
::nRecNo:= 1
::nCursorPos:= 0
::nVisibleRows:= 14
// Forçado para 1o ::GoEnd()
::aData:= aData
::nLenData:= Len(aData)
::oGrid:= tGrid():New( ::oFrame )
::oGrid:Align:= CONTROL_ALIGN_ALLCLIENT
//oFont := TFont():New('Tahoma',,-32,.T.)
//::oGrid:SetFont(oFont)
//::oGrid:setRowHeight(50)
::oButtonsFrame:= tPanel():New(0,0,, ::oFrame,,,,,, 10,200,.F.,.T. )
::oButtonsFrame:Align:= CONTROL_ALIGN_RIGHT
::oButtonHome:= tBtnBmp():NewBar( "VCTOP.BMP",,,,, {||::GoHome()},,::oButtonsFrame )
::oButtonHome:Align:= CONTROL_ALIGN_TOP
::oButtonPgUp:= tBtnBmp():NewBar( "VCPGUP.BMP",,,,, {||::GoPgUp()},,::oButtonsFrame )
::oButtonPgUp:Align:= CONTROL_ALIGN_TOP
::oButtonUp:= tBtnBmp():NewBar( "VCUP.BMP",,,,,{||::GoUp(1)},,::oButtonsFrame )
::oButtonUp:Align:= CONTROL_ALIGN_TOP
::oButtonEnd:= tBtnBmp():NewBar( "VCBOTTOM.BMP",,,,, {||::GoEnd()},,::oButtonsFrame )
::oButtonEnd:Align:= CONTROL_ALIGN_BOTTOM
::oButtonPgDown:= tBtnBmp():NewBar( "VCPGDOWN.BMP",,,,, {||::GoPgDown()},,::oButtonsFrame )
::oButtonPgDown:Align:= CONTROL_ALIGN_BOTTOM
::oButtonDown:= tBtnBmp():NewBar( "VCDOWN.BMP",,,,, {||::GoDown(1)},,::oButtonsFrame )
::oButtonDown:Align:= CONTROL_ALIGN_BOTTOM
::oGrid:addColumn( 1, "Código", 50, CONTROL_ALIGN_LEFT )
::oGrid:addColumn( 2, "Descrição", 150, 0 )
::oGrid:addColumn( 3, "Valor", 50, CONTROL_ALIGN_RIGHT )
::oGrid:bCursorMove:= {|o,nMvType,nCurPos,nOffSet,nVisRows| ::onMove(o,nMvType,nCurPos,nOffSet,nVisRows) }
::ShowData(1)
::SelectRow( ::nCursorPos )
// configura acionamento do duplo clique
::oGrid:bLDblClick:= {|| MsgStop("oi") }
RETURN
METHOD isBof() CLASS MyGrid
RETURN ( ::nRecno==1 )
METHOD isEof() CLASS MyGrid
RETURN ( ::nRecno==::nLenData )
METHOD GoHome() CLASS MyGrid
if ::isBof()
return
endif
::nRecno = 1
::oGrid:ClearRows()
::ShowData( 1, ::nVisibleRows )
::nCursorPos:= 0
::SelectRow( ::nCursorPos )
RETURN
METHOD GoEnd() CLASS MyGrid
if ::isEof()
return
endif
::nRecno:= ::nLenData
::oGrid:ClearRows()
::ShowData( ::nRecno - ::nVisibleRows + 1, ::nVisibleRows )
::nCursorPos:= ::nVisibleRows-1
::SelectRow( ::nCursorPos )
RETURN
METHOD GoPgUp() CLASS MyGrid
if ::isBof()
return
endif
// força antes ir para a 1a linha da grid
if ::nCursorPos != 0
::nRecno -= ::nCursorPos
if ::nRecno <= 0
::nRecno:=1
endif
::nCursorPos:= 0
::oGrid:setRowData( ::nCursorPos, {|o| { ::aData[::nRecno,1], ::aData[::nRecno,2], ::aData[::nRecno,3] } } )
else
::nRecno -= ::nVisibleRows
if ::nRecno <= 0
::nRecno:=1
endif
::oGrid:ClearRows()
::ShowData( ::nRecno, ::nVisibleRows )
::nCursorPos:= 0
endif
::SelectRow( ::nCursorPos )
RETURN
METHOD GoPgDown() CLASS MyGrid
Local nLastVisRow
if ::isEof()
return
endif
// força antes ir para a última linha da grid
nLastVisRow:= ::nVisibleRows-1
if ::nCursorPos!=nLastVisRow
if ::nRecno+nLastVisRow > ::nLenData
nLastVisRow:= ( ::nRecno+nLastVisRow ) - ::nLenData
::nRecno:= ::nLenData
else
::nRecNo += nLastVisRow
endif
::nCursorPos:= nLastVisRow
::ShowData( ::nRecNo - ::nVisibleRows + 1, ::nVisibleRows )
else
::oGrid:ClearRows()
::nRecno += ::nVisibleRows
if ::nRecno > ::nLenData
::nVisibleRows = ::nRecno-::nLenData
::nRecno:= ::nLenData
endif
::ShowData( ::nRecNo - ::nVisibleRows + 1, ::nVisibleRows )
::nCursorPos:= ::nVisibleRows-1
endif
::SelectRow( ::nCursorPos )
RETURN
METHOD GoUp(nOffSet) CLASS MyGrid
Local lAdjustCursor:= .F.
if ::isBof()
RETURN
endif
if ::nCursorPos==0
::oGrid:scrollLine(-1)
lAdjustCursor:= .T.
else
::nCursorPos -= nOffSet
endif
::nRecno -= nOffSet
// atualiza linha corrente
::oGrid:setRowData( ::nCursorPos, {|o| { ::aData[::nRecno,1], ::aData[::nRecno,2], ::aData[::nRecno,3] } } )
if lAdjustCursor
::nCursorPos:= 0
endif
::SelectRow( ::nCursorPos )
RETURN
METHOD GoDown(nOffSet) CLASS MyGrid
Local lAdjustCursor:= .F.
if ::isEof()
RETURN
endif
if ::nCursorPos==::nVisibleRows-1
::oGrid:scrollLine(1)
lAdjustCursor:= .T.
else
::nCursorPos += nOffSet
endif
::nRecno += nOffSet
// atualiza linha corrente
::oGrid:setRowData( ::nCursorPos, {|o| { ::aData[::nRecno,1], ::aData[::nRecno,2], ::aData[::nRecno,3] } } )
if lAdjustCursor
::nCursorPos:= ::nVisibleRows-1
endif
::SelectRow( ::nCursorPos )
RETURN
METHOD onMove( oGrid,nMvType,nCurPos,nOffSet,nVisRows ) CLASS MyGrid
::nCursorPos:= nCurPos
::nVisibleRows:= nVisRows
if nMvType == GRID_MOVEUP
::GoUp(nOffSet)
elseif nMvType == GRID_MOVEDOWN
::GoDown(nOffSet)
elseif nMvType == GRID_MOVEHOME
::GoHome()
elseif nMvType == GRID_MOVEEND
::GoEnd()
elseif nMvType == GRID_MOVEPAGEUP
::GoPgUp()
elseif nMvType == GRID_MOVEPAGEDOWN
::GoPgDown()
endif
RETURN
METHOD ShowData( nFirstRec, nCount ) CLASS MyGrid
local i, nRec, ci
DEFAULT nCount:=30
for i=0 to nCount-1
nRec:= nFirstRec+i
if nRec > ::nLenData
RETURN
endif
ci:= Str( nRec )
cb:= "{|o| { Self:aData["+ci+",1], Self:aData["+ci+",2], Self:aData["+ci+",3] } }"
::oGrid:setRowData( i, &cb )
next i
RETURN
METHOD ClearRows() CLASS MyGrid
::oGrid:ClearRows()
::nRecNo:=1
RETURN
METHOD DoUpdate() CLASS MyGrid
::nRecNo:=1
::Showdata(1)
::SelectRow(0)
RETURN
METHOD SelectRow(n) CLASS MyGrid
valor := n - ::nCursorPos
::nRecno += valor
if ::nRecno <= 0
::nRecno = 1
endif
::nCursorPos:=n
::oGrid:setSelectedRow(n)
RETURN
METHOD SetCSS(cCSS) CLASS MyGrid
::oGrid:setCSS(cCSS)
RETURN
METHOD SetFreeze(nFreeze) CLASS MyGrid
::nFreeze := nFreeze
::oGrid:nFreeze := nFreeze
RETURN
METHOD SetHScrollState(nHScroll) CLASS MyGrid
::nHScroll := nHScroll
::oGrid:nHScroll := nHScroll
RETURN
// U_TSTGRID ( Executa Grid )
//------------------------------------------------------------------
USER FUNCTION EXEMPLO()
Local oDlg, aData:={}, i, oGridLocal, oEdit, nEdit:= 0
Local oBtnAdd, oBtnClr, oBtnLoa
// configura pintura da TGridLocal
cCSS:= "QTableView{ alternate-background-color: red; background: yellow; selection-background-color: #669966 }"
// configura pintura do Header da TGrid
cCSS+= "QHeaderView::section { background-color: qlineargradient(x1:0, y1:0, x2:0, y2:1, stop:0 #616161, stop: 0.5 #505050, stop: 0.6 #434343, stop:1 #656565); color: white; padding-left: 4px; border: 1px solid #6c6c6c; }"
// Dados
for i:=1 to 10000
cCodProd:= StrZero(i,6)
if i<3
// inserindo imagem nas 2 primeiras linhas
cProd:= "RPO_IMAGE=OK.BMP"
else
cProd:= 'Produto '+cCodProd
endif
cVal = Transform( 10.50, "@E 99999999.99" )
AADD( aData, { cCodProd, cProd, cVal } )
next
DEFINE DIALOG oDlg FROM 0,0 TO 500,500 PIXEL
oGrid:= MyGrid():New(oDlg,aData)
oGrid:SetFreeze(2)
oGrid:SetCSS(cCSS)
//oGrid:SetHScrollState(GRID_HSCROLL_ALWAYSON) // Somente build superior a 131227A
// Aplica configuração de pintura via CSSoGrid:SetCSS(cCSS)
@ 210, 10 GET oEdit VAR nEdit OF oDlg PIXEL PICTURE "99999"
@ 210, 70 BUTTON oBtnAdd PROMPT "Go" OF oDlg PIXEL ACTION oGrid:SelectRow(nEdit)
@ 210, 100 BUTTON oBtnClr PROMPT "Clear" OF oDlg PIXEL ACTION oGrid:ClearRows()
@ 210, 150 BUTTON oBtnLoa PROMPT "Update" OF oDlg PIXEL ACTION oGrid:DoUpdate()
ACTIVATE DIALOG oDlg CENTERED
RETURN |
Exemplo da classe TGrid()  TOTVS Application Server 10 , ByYou Application Server
|