Agrupar registros com FwMBrowse

Boa noite!

Possuo uma tabela que possui os seguintes campos e registros. Exemplo: como_esta.png

Utilizando a classe FwMBrowse, gostaria que só fossem exibidos no grid os dados agrupados por competência e vendedor, exemplo: como_quero.png

Ao usar o método SetOnlyFields, consigo que sejam exibidos apenas estes dois campos que desejo, mas não consigo agrupar os registros, os mesmos são exibidos "duplicados", assim: como_consegui.png

Gostaria de saber se existe algum método que eu possa estar usando de modo que os registros fiquem agrupados, ou se só é possível realizar isso usando uma tabela temporária.

Agradeço desde já pela atenção.

Como está atualmente:


Local aArea         := GetArea() 
Local oBrowse         := FwMBrowse():New()
Private cCadastro     := 'Metas de Positivação por Vendedor'
Private aRotina     := MenuDef() 

    oBrowse:SetAlias('ZT1')
    oBrowse:SetDescription(cCadastro)
    oBrowse:SetOnlyFields({'ZT1_MESANO','ZT1_CODVEN','ZT1_NOMVEN'})
    oBrowse:Activate()

    RestArea(aArea)

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.

Já tentou usar o SetFilterDefault ?

oBrowse:SetFilterDefault(" ( ZT1_MESANO = '" + ZT1->ZT1_MESANO + "' .And. ZT1_CODVEN = '" + ZT1->ZT1_CODVEN + "' ) ")

Ainda não, irei realizar um teste e posto aqui os resultados. Obrigado!

Bom dia,

Use o SetFilterDefault, dando um Select no Recno do Registro, usando um sub Select para filtrar o Recno do Browse.

Exemplo:


Local cFiltro := ""

    oBrowse := FWMBrowse():New()

    oBrowse:SetAlias("ZCG")

cFiltro := " R_E_C_N_O_ IN ( SELECT " 
     cFiltro += "ZCG.R_E_C_N_O_ " 
     cFiltro += "FROM " 
     cFiltro += RetSQLName("ZCG") + " ZCG "
     cFiltro += "INNER JOIN ( " 
     cFiltro += "SELECT DISTINCT "
     cFiltro += "ZCG_PRIN.ZCG_NUMNF AS PEDIDO, "
     cFiltro += "( "
     cFiltro += "SELECT TOP 1 "
     cFiltro += "ZCG_ITE.ZCG_ITEM "
     cFiltro += "FROM "
     cFiltro += RetSQLName("ZCG") + " ZCG_ITE "
     cFiltro += "WHERE "
     cFiltro += "ZCG_ITE.ZCG_FILIAL = ZCG_PRIN.ZCG_FILIAL "
     cFiltro += "AND ZCG_ITE.ZCG_NUMNF = ZCG_PRIN.ZCG_NUMNF "
     cFiltro += "AND ZCG_ITE.D_E_L_E_T_ = ' ' "
     cFiltro += "ORDER BY "
     cFiltro += "ZCG_ITE.ZCG_ITEM DESC "
     cFiltro += ") AS ULT_ITEM "
     cFiltro += "FROM "
     cFiltro += "ZCG010 ZCG_PRIN "
     cFiltro += "WHERE "
     cFiltro += "ZCG_PRIN.ZCG_FILIAL = '" + FWxFilial("ZCG") + "' "
     cFiltro += "AND ZCG_PRIN.D_E_L_E_T_ = ' ' "
     cFiltro += ") TAB_AUX ON ( "
     cFiltro += "ZCG.ZCG_NUMNF  = TAB_AUX.PEDIDO "
     cFiltro += "AND ZCG.ZCG_ITEM = TAB_AUX.ULT_ITEM "
     cFiltro += ") "
     cFiltro += "WHERE "
     cFiltro += "ZCG.ZCG_FILIAL = '" + FWxFilial("ZCG") + "' "
     cFiltro +=  "AND ZCG.D_E_L_E_T_ = ' ' "
     cFiltro += ") "


    oBrowse:SetFilterDefault( "@"  + cFiltro )  

oBrowse:Activate()

Att,

Cristian Regazzo

show!!
Obrigado Cristian, o filtro desta forma funcionou perfeitamente, muito mais rápido!

Amigo, boa tarde! Funcionou aqui! Obrigado pela dica!

filter_table_fwbrowse.png

:warning: Atenção: Esta publicação foi transferida automaticamente do fórum antigo, mas os anexos não foram incluídos.