Criei um browse e não aparece as legendas, o que pode ser?

No artigo de hoje, vamos responder a dúvida de alguns alunos, onde ao criar uma grid, não aparece a coluna de legenda.

 

Recentemente nos perguntaram, que ao utilizar classes como FWMarkBrowse e FWBrowse, mesmo acionando o método AddLegend, na tela não é exibido (ao menos no começo dela).

 

Similar ao print abaixo:

Browse sem aparecer a legenda

Browse sem aparecer a legenda

 

O que acontece pessoal, é que provavelmente, o AddLegend ta sendo acionado após o SetColumns. Então se formos olhar na tela, a coluna de legenda ficou no final:

Ao redimensionar as colunas, aparece as legendas no fim

Ao redimensionar as colunas, aparece as legendas no fim

 

Para resolver então, acione o AddLegend antes do SetColumns.

 

Vejam como ficou:

Browse após a correção

Browse após a correção

 

Abaixo o trecho do antes:

            oGetGrid := FWBrowse():New()
            oGetGrid:DisableFilter()
            oGetGrid:DisableConfig()
            oGetGrid:DisableReport()
            oGetGrid:DisableSeek()
            oGetGrid:DisableSaveConfig()
            oGetGrid:SetFontBrowse(oFontBtn)
            oGetGrid:SetAlias(cAliasTab)
            oGetGrid:SetDataTable()
            oGetGrid:SetEditCell(.T., {|| .T.}) 
            oGetGrid:lHeaderClick := .F.

            //Define as colunas e depois a legenda
            oGetGrid:SetColumns(aColunas)
            oGetGrid:AddLegend(cAliasTab + "->XXQUANTI == 0", "YELLOW", "Quantidade zerada")
            oGetGrid:AddLegend(cAliasTab + "->XXQUANTI <  0", "RED",    "Quantidade menor que zero")
            oGetGrid:AddLegend(cAliasTab + "->XXQUANTI >  0", "GREEN",  "Quantidade maior que zero")

            oGetGrid:SetOwner(oPanGrid)
            oGetGrid:SetDelete(.T., {|| fApagaLin()})
            oGetGrid:Activate()

Abaixo o trecho da correção:

            oGetGrid := FWBrowse():New()
            oGetGrid:DisableFilter()
            oGetGrid:DisableConfig()
            oGetGrid:DisableReport()
            oGetGrid:DisableSeek()
            oGetGrid:DisableSaveConfig()
            oGetGrid:SetFontBrowse(oFontBtn)
            oGetGrid:SetAlias(cAliasTab)
            oGetGrid:SetDataTable()
            oGetGrid:SetEditCell(.T., {|| .T.}) 
            oGetGrid:lHeaderClick := .F.

            //Define primeiro as legendas e depois sim as colunas
            oGetGrid:AddLegend(cAliasTab + "->XXQUANTI == 0", "YELLOW", "Quantidade zerada")
            oGetGrid:AddLegend(cAliasTab + "->XXQUANTI <  0", "RED",    "Quantidade menor que zero")
            oGetGrid:AddLegend(cAliasTab + "->XXQUANTI >  0", "GREEN",  "Quantidade maior que zero")
            oGetGrid:SetColumns(aColunas)

            oGetGrid:SetOwner(oPanGrid)
            oGetGrid:SetDelete(.T., {|| fApagaLin()})
            oGetGrid:Activate()

Bom pessoal, por hoje é só.

Um grande abraço.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação