Skip to the content.

Exemplo de Manipulação de Grids

A classe SysLibGrid tem como objetivo facilitar a manipulação de grids para visualização e edição de dados.

user function GridSample()

  local oDlg       := nil
  local oGrid      := nil
  local oGetFilter := nil
  local cFilter	   := Space(500)

  DEFINE MSDIALOG oDlg TITLE "SysLibGrid" FROM 001,001 TO 360,800 PIXEL OF oMainWnd

    createGrid(@oGrid, oDlg)

    @ 160,006 BUTTON "Marca Todos" SIZE 35,12 ACTION {|| oGrid:markAll() } PIXEL OF oDlg
    @ 160,046 BUTTON "Rem. Linha" SIZE 35,12 ACTION {|| oGrid:removeLine() } PIXEL OF oDlg
    @ 160,086 BUTTON "Rem. Todos" SIZE 35,12 ACTION {|| oGrid:clear() } PIXEL OF oDlg

    @ 160,210 MSGET oGetFilter VAR cFilter HASBUTTON SIZE 105,010 PIXEL OF oDlg
    @ 160,320 BUTTON "Filtrar" SIZE 35,12 ACTION {|| oGrid:filter(cFilter) } PIXEL OF oDlg
    @ 160,360 BUTTON "Limpar" SIZE 35,12 ACTION {|| oGrid:clearFilter() } PIXEL OF oDlg

  ACTIVATE MSDIALOG oDlg CENTERED

return

/**
 * Criação do grid
 */
static function createGrid(oGrid, oDlg)

  local nCol    := 5
  local nRow    := 20
  local nWidth  := 400
  local nHeight := 150
  local oCol    := nil

  oGrid := SysLibGrid():new(nCol, nRow, nWidth, nHeight, oDlg)
  oGrid:addMarkColumn({|| MsgInfo("onMark") }, {|| MsgInfo("onMarkAll"), oDlg:refresh() })
  oGrid:addBmpColumn("bmp")
  oGrid:addColumn("B1_COD")
  oGrid:addColumn("B1_DESC")

  oCol := SysLibColumn():new("price", "Preço", "N", 25, 2, "@E 999,999,999.99")
  oCol:setValidation("Positivo()")
  oGrid:addColumn(oCol)

  oGrid:newLine()
  oGrid:setMarkedLine(.T.)
  oGrid:setBmpValue("bmp", "BR_VERDE")
  oGrid:setValue("B1_COD", "P0001")
  oGrid:setValue("B1_DESC", "PRODUTO TESTE 1")
  oGrid:setValue("price", 1234.56)

  oGrid:create()

return

Essa classe é uma abstração da MsNewGetDados que foi depreciada pela TOTVS. Entretanto, a SysLibGrid torna-se útil em casos em que se deseja ter um grid não vinculado ao dicionário de dados.


Voltar