cMFDbCJGrid

Pacote

A classe cMFDbCJGrid está definida no pacote cMFDbCJGrid.pkg.

Hierarquia

A classe cMFDbCJGrid é uma subclasse da classe cDbCJGrid do DataFlex e herda todas as propriedades, eventos e métodos existentes nesta classe.

Para que serve

A classe cMFDbCJGrid é uma subclasse da classe cDbCJGrid e foi especializada com alguns recursos adicionais:

  • As cores da linha, célula, texto da linha e texto da célula são configuradas automaticamente de acordo com as cores definidas nas preferências do usuário.
  • Ao pressionar Shift+Tab na primeira célula, o foco será “jogado” no objeto anterior, em vez de continuar dentro da dbGrid.
  • Foram criadas propriedades para controlar a disponibilidade da Grid em uma tela Header/Detail.
  • Um novo evento OnSetDisplayMetrics foi adicionado para que se possa controlar a cor da linha inteira em um único evento.
  • Algumas propriedades tiveram seus valores configurados de forma diferente da classe ancestral:
    • Set pbEditOnClick to True
    • Set pbEditOnKeyNavigation to True
    • Set pbSelectionEnable to True
    • Set pbRestoreLayout to True
    • Set psLayoutSection to (Name(Self)) (essa propriedade só será configurada se pbRestoreLayout for True)

Exemplo

Este exemplo mostra uma cMFDbCJGrid configurada para em uma tela Header/Detail:

Object oPermissoesDbGrid is a cMFDbCJGrid
    Set Server to oDireito_DD
    Set Ordering to 2
    Set Size to 69 285
    Set Location to 5 5
    Set pbChildTable to True
    Set phoHeader to (oGrupoUsuario_vw(Self))
    Set peAnchors to anAll
    :
    :

Eventos

Confira abaixo a documentação dos eventos da classe cMFDbCJGrid:

OnSetDisplayMetrics

Tipo

Procedure

Para que serve

A classe cDbCJGridColumn original do DataFlex possui um evento com este mesmo nome, que permite mudar as configurações de fonte e cores de uma única célula que está sendo pintada. Em situações onde queremos pintar a linha inteira dependendo do valor de uma das colunas, eramos obrigados a definir este evento em cada uma das colunas. Com este evendo da classe cMFDbCJGrid, temos um evento centralizado para fazer isso, sem a necessidade de definir o evento em cada uma das colunas da Grid.

Parâmetros

  • Handle hoGridItemMetrics: é um Handle de um objeto cComReportRecordItemMetrics. Manipule as propriedades deste objeto para modificar os atributos de exibição da linha que está sendo “pintada”.
  • Integer iRow: é número da linha que está sendo pintada.

Exemplo

Procedure OnSetDisplayMetrics Handle hoGridItemMetrics Integer iRow
    String sTipo

 

// Obtendo o valor da coluna oLOGEVENT_Cd_Tipo, que irá definir a cor da linha inteira
Get RowValue of oLOGEVENT_Cd_Tipo iRow to sTipo
Case Begin
Case (sTipo = “Informação”)
Set ComBackColor of hoGridItemMetrics to 16757683
Case Break
Case (sTipo = “Alerta”)
Set ComBackColor of hoGridItemMetrics to 9240575
Case Break
Case (sTipo = “Erro”)
Set ComBackColor of hoGridItemMetrics to 4227327
Case Break
Case End
End_Procedure

Propriedades

Confira abaixo a documentação das propriedades da classe cMFDbCJGrid:

pbChildTable

Tipo

Boolean

Valor padrão

False

Para que serve

Indica que a Grid está em uma tela no estilo Header/Detail e que só poderá ficar disponível se um registro estiver posicionado e sem alterações não salvas na tabela Header. Para que isto funcione, é necessário configurar também a propriedade phoHeader.

phoHeader

Tipo

Handle

Valor padrão

0

Para que serve

Se a propriedade pbChildTable for True, então você deve configurar esta propriedade com o identificador do objeto Header da grid. Por exemplo, em uma tela estilo Header/Detail com uma única Grid, então você deve configurar esta propriedade com o identificado da própria View, que é o Header. Em uma tela que tenha 2 grids, onde a segunda grid só exibe os registros filhos do registro posicionado na primeira Grid, você deve configurar esta propriedade com o identificador da primeira Grid.

Exemplo

Set phoHeader to (oGrupoUsuario_vw(Self))

Não encontrou o que precisava? Entre em contato conosco.