Campo Mark no FwMarkBrowse

Olá pessoal,

Alguém já conseguiu fazer um código no FWMarkbrowse que funcione quando o usuário dá dois cliques na coluna do campo OK, e fique gravado na tabela que foram marcados todos os registros que estão em aberto?

Eu fiz um filtro no FWMarkbrowse limitando a aparecer somente registros que ainda não foi importados. Quando eu clico em uma única linha o campo OK fica marcado, porém se eu der duplo clique na coluna para selecionar todos os registros nenhum registro OK fica marcado.

Boa noite Luciano!

Vc pode utilizar o método SetAllMark da classe FWMarkBrowse para isso. Segue um exemplo bem simplório:


Private cMarca := GetMark()
...
oMark:= FWMarkBrowse():New()
oMark:SetDescription("TESTE")
oMark:SetAlias("SC1")
oMark:SetFieldMark("C1_OK")
oMark:SetMark(cMarca, "SC1", "C1_OK")
oMark:SetAllMark({|| U_AllMark()})
oMark:Activate()
...

User Function AllMark()

    SC1->(DbGoTop())
    While !SC1->(Eof())
        lMarca := (SC1->C1_OK == cMarca)
        RecLock("SC1", .F.)
            SC1->C1_OK := If(lMarca, "", cMarca)
        SC1->(MsUnlock())
        SC1->(DbSkip())
    EndDo

Return Nil

Obrigado Leonardo, funcionou perfeitamente. Grato.