Como definir o tamanho de uma coluna no FWBrowse

Hoje vou mostrar como definir o tamanho de uma coluna de uma grid FWBrowse.

Ao criar uma FWBrowse, a largura das colunas é calculada conforme o tamanho do campo e/ou do cabeçalho.

Então para aumentarmos ou forçar a diminuição, temos que alterar diretamente um atributo do nosso objeto instanciado da classe FWBrwColumn.

No caso, o atributo (propriedade) que podemos editar para tentar aumentar ou diminuir a coluna é o nSize.

Em alguns casos, pode ser que não funcione (por exemplo, você tentar diminuir uma coluna sendo que ela já atingiu o tamanho mínimo).

Abaixo um exemplo do trecho da criação das colunas, alterando o nSize:

//Adicionando campos que serão mostrados na tela
//[1] - Campo da Temporaria
//[2] - Titulo
//[3] - Tipo
//[4] - Tamanho
//[5] - Decimais
//[6] - Máscara
//[7] - Largura da coluna
aAdd(aEstrut, { "Z57_PRODUT" , "Prod",                                "C", 08,          0,          "",         0 })
aAdd(aEstrut, { "Z57_DESCRI" , "Descricao",                           "C", 15,          0,          "",         12 })
aAdd(aEstrut, { "Z57_SALDO"  , "Saldo",                               "N", nTamQtd,     0,          cMaskQtd,   7 })
aAdd(aEstrut, { "Z57_ESTSEG" , "Est.Segur.",                          "N", nTamQtd,     0,          cMaskQtd,   4 })
aAdd(aEstrut, { "Z57_ESTMIN" , "Est.Minimo",                          "N", nTamQtd,     0,          cMaskQtd,   4 })
aAdd(aEstrut, { "Z57_ENTPRV" , "Entr. Prev.",                         "N", nTamQtd,     0,          cMaskQtd,   4 })
aAdd(aEstrut, { "Z57_ENTDAT" , "Data E.Prev.",                        "D", 08,          0,          "",         7 })
aAdd(aEstrut, { "Z57_SAIPRV" , "Said. Prev.",                         "N", nTamQtd,     0,          cMaskQtd,   4 })
aAdd(aEstrut, { "Z57_PRZENT" , "Prz. Ent.",                           "N", 04,          0,          "@E 9,999", 2 })
aAdd(aEstrut, { "Z57_PRCCOM" , "Prç. Comp.",                          "N", aTamVlr[1],  aTamVlr[2], cMaskVlr,   8 })
aAdd(aEstrut, { "Z57_MED1M"  , "Méd.1 Mes",                           "N", aTamVlr[1],  aTamVlr[2], cMaskVlr,   8 })
aAdd(aEstrut, { "Z57_MED2M"  , "Méd.2 Mes.",                          "N", aTamVlr[1],  aTamVlr[2], cMaskVlr,   8 })
aAdd(aEstrut, { "Z57_MED3M"  , "Méd.3 Mes.",                          "N", aTamVlr[1],  aTamVlr[2], cMaskVlr,   8 })
aAdd(aEstrut, { "Z57_MED6M"  , "Méd.6 Mes.",                          "N", aTamVlr[1],  aTamVlr[2], cMaskVlr,   8 })
aAdd(aEstrut, { "Z57_MED12M" , "Méd.12 Mes.",                         "N", aTamVlr[1],  aTamVlr[2], cMaskVlr,   8 })
aAdd(aEstrut, { "Z57_SUGCOM" , "Sug.Compra (c/ Ent.Prev)",            "N", nTamQtd,     0,          cMaskQtd,   7 })
aAdd(aEstrut, { "Z57_SUGSEM" , "Sug.Compra (s/ Ent.Prev)",            "N", nTamQtd,     0,          cMaskQtd,   7 })
aAdd(aEstrut, { "Z57_DATMAX" , "Dat.Máx.Comprar",                     "D", 08,          0,          "",         7 })
aAdd(aEstrut, { "Z57_PRVCOM" , "Prv.Falta (c/ Ent.Prev)",             "D", 08,          0,          "",         7 })
aAdd(aEstrut, { "Z57_PRVSEM" , "Prv.Falta (s/ Ent.Prev)",             "D", 08,          0,          "",         7 })
 
//Percorrendo todos os campos da estrutura
For nAtual := 1 To Len(aEstrut)
    //Cria a coluna
    oColumn := FWBrwColumn():New()
    oColumn:SetData(&("{|| Z57->" + aEstrut[nAtual][1] +"}"))
    oColumn:SetTitle(aEstrut[nAtual][2])
    oColumn:SetType(aEstrut[nAtual][3])
    oColumn:SetSize(aEstrut[nAtual][4])
    oColumn:SetDecimal(aEstrut[nAtual][5])
    oColumn:SetPicture(aEstrut[nAtual][6])
 
    If aEstrut[nAtual][7] != 0
        oColumn:nSize := aEstrut[nAtual][7]
    EndIf
 
    //Adiciona a coluna
    aAdd(aColunas, oColumn)
Next

Bom pessoal, por hoje é só.

Abraços e até a próxima.

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.

2 Responses

  1. Igor Gomes OLiveira disse:

    Boa tarde, existe alguma maneira de fazer isso em mvc?

Deixe uma resposta

Terminal de Informação