fwBrowse com array

Saudações, necessito de um exemplo de uso da classe FwBrowse com array.

Encontrei apenas esta documentação no tdn: https://tdn.totvs.com/display/public/PROT/FwBrowse

Bom dia, Marco!

Segue um exemplo de FwBrowse com array:


oBrowse     := Nil
oModal   := Nil
aBrwData    := {}
aBrwModel   := {}
aBrwCol     := {}
aBrwSeek    := {}
aBrwFil     := {}
aCoors      := FwGetDialogSize()

aAdd(aBrwModel, {'Filial'        , '@!'    , 02, 00, 1})
aAdd(aBrwModel, {'Pedido'        , '@!'    , 12, 00, 1})
aAdd(aBrwModel, {'Data e Hora'  , '@!'    , 25, 00, 1})
aAdd(aBrwModel, {'Vendedor'        , '@!'    , 06, 00, 1})
aAdd(aBrwModel, {'Nome'            , '@!'    , 40, 00, 1})
aAdd(aBrwModel, {'Cliente'        , '@!'    , 08, 00, 1})
aAdd(aBrwModel, {'Razão Social'    , '@!'    , 40, 00, 1})
aAdd(aBrwModel, {'Importado'    , '@A'    , 03, 00, 1})

For nI := 1 To Len(aBrwModel)

    aAdd(aBrwFil, {aBrwModel[nI,1], aBrwModel[nI,1], 'C', aBrwModel[nI,3], aBrwModel[nI,4], aBrwModel[nI,2]} )

    aAdd(aBrwCol, FwBrwColumn():New())

    aBrwCol[Len(aBrwCol)]:SetData( &('{ || aBrwData[oBrowse:nAt,' + cValToChar(nI) + ']}') )
    aBrwCol[Len(aBrwCol)]:SetTitle(aBrwModel[nI,1])
    aBrwCol[Len(aBrwCol)]:SetPicture(aBrwModel[nI,2])
    aBrwCol[Len(aBrwCol)]:SetSize(aBrwModel[nI,3])
    aBrwCol[Len(aBrwCol)]:SetDecimal(aBrwModel[nI,4])
    aBrwCol[Len(aBrwCol)]:SetAlign(aBrwModel[nI,5])

Next nI

aAdd(aBrwSeek, {'Pedido', { {'', 'C', 12, 00, 'Pedido', 'Pedido' } }, 1, .T.} )

oModal := FwDialogModal():New()

    oModal:SetTitle('Listagem de Pedidos Externos')
    oModal:SetEscClose(.F.)
    oModal:SetSize(aCoors[3] / 2.7, aCoors[4] / 2.9)
    oModal:CreateDialog()

    oModal:EnableFormBar(.T.)
    oModal:CreateFormBar()

    oBrowse := FwBrowse():New()
    oBrowse:SetDataArray()
    oBrowse:SetArray(aBrwData)
    oBrowse:SetColumns(aBrwCol)
    oBrowse:SetSeek(, aBrwSeek)
    oBrowse:SetUseFilter()    
    oBrowse:SetFieldFilter(aBrwFil)
    oBrowse:SetOwner(oModal:GetPanelMain())
    oBrowse:Activate()

    oModal:AddButton('Sair'    , { || oModal:DeActivate() }, 'Sair',,.T.,.F.,.T.,)

oModal:Activate()

Observação: No exemplo acima a variável aBrwData está vazia, que é a variável responsável pelos dados do browse. Basta preencher ela com o conteúdo desejado antes de ativar a classe.

Grato Giordano,vou testar aqui. Você tem um exemplo com query?

Boa tarde, Marco. Infelizmente não tenho um exemplo com query. Lembre-se de marcar a resposta como Solução caso tenha resolvido o problema!