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:
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:
Para resolver então, acione o AddLegend antes do SetColumns.
Vejam como ficou:
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.