Usina BRAdvPL Guia
Entrar
← Todos os tópicos
CLASSEPublicado

FWMBrowse

FWMBrowse():New() --> oSelf

Classe para construção e controle de browses no Framework do Protheus. Centraliza colunas, pesquisas, filtros, legendas, filiais e o ciclo de vida da interface.

MVCInterfaceBrowseFramework
01 · VISÃO GERAL

Visão geral

FWMBrowse fornece uma camada de alto nível para construir telas de consulta no Framework do Protheus. A rotina cria o objeto, define alias, descrição, filtros, campos, legendas e demais recursos e, somente depois, ativa a interface com Activate().

02 · SINTAXE

Sintaxe

FWMBrowse():New() --> oSelf

Métodos

NewMétodo construtor da classeFWMBrowse():New()-> oSelf
SetAliasDefine o alias da tabela que será apresentada pelo browse.FWMBrowse():SetAlias( <cAlias> ) -> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cAliasCaracterObrigatório

Alias da tabela aberta ou gerenciada pela rotina, como SA1, SB1 ou uma tabela customizada.

SetDescriptionDefine a descrição exibida para identificar o browse na interface.FWMBrowse():SetDescription( <cDescription> ) -> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cDescriptionCaracterObrigatório

Texto descritivo da rotina ou do cadastro apresentado ao usuário.

SetCanSaveAreaPermite preservar a área de trabalho em cenários com chamadas encadeadas de FWMBrowse.FWMBrowse():SetCanSaveArea( <lCanSaveArea> ) -> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
lCanSaveAreaLógicoObrigatório

Indica se o browse pode salvar/restaurar área quando outra FWMBrowse é chamada a partir de uma opção com lock.

ActivateMétodo de ativação da classeFWMBrowse():Activate(< oOwner >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
oOwnerObjetoObrigatório

Objeto proprietário

AfterExecuteAtualiza o limite superior e inferior da tabela, restaura o arquivo de empresas e destrava o lock do registroFWMBrowse():AfterExecute(< cFunction >, < nOption >, < nVerify >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cFunctionCaracteresObrigatório

Nome da função definida para o botão

nOptionNuméricoObrigatório

Tipo de operação (1=Visualizar, 2=Visualizar,3=Incluir,4=Alterar, 5=Excluir, 6=Alterar sem inclusão de novas linhas, 7=Cópia e 8=Impressão da regra de negócios)

nVerifyNuméricoObrigatório

Posição a ser validada no acesso de usuário

AddLegendPermite adicionar legendas no BrowseFWMBrowse():AddLegend(< xCondition >, < cColor >, [< cTitle >] , [< cID >] , [< lFilter >] )-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
xConditionCaracter ou bloco de códigoObrigatório

Expressão AdvPL ou code block que determina quando a legenda será aplicada.

cColorCaracterObrigatório

Cor usada para identificar visualmente a condição. Exemplos comuns: GREEN, RED, YELLOW, BLUE.

cTitleCaracterOpcional

Título apresentado para a legenda.

cIDCaracterOpcional

Identificador opcional da legenda.

lFilterLógicoOpcional

Indica se a legenda poderá ser usada também como filtro.

BeforeExecuteVerifica as permissões de acesso do usuário, se o registro pode sofrer manutenções e pergunta a filial de inclusão para o registroFWMBrowse():BeforeExecute(< cFunction >, < nOption >, < nVerify >, < cTitle >, < nRealOpc >, < nRotina >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cFunctionCaracteresObrigatório

Nome da função definida para o botão

nOptionNuméricoObrigatório

Tipo de operação (1=Visualizar, 2=Visualizar, 3=Incluir, 4=Alterar, 5=Excluir, 6=Alterar sem inclusão de novas linhas, 7=Cópia e 8=Impressão da regra de negócios)

nVerifyNuméricoObrigatório

Posição a ser validada no acesso de usuário

cTitleCaracteresObrigatório

Título da janela

nRealOpcNuméricoObrigatório

Ordem selecionada do botão

nRotinaNuméricoObrigatório

Indica o item do aRotina que está sendo acessado

BrwGetFilRetorna a descrição de uma filialFWMBrowse():BrwGetFil(< cFil >)-> cLasFil
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cFilCaracteresObrigatório

Código da filial

ChangeTopBotAtualiza o limite superior e inferior da tabela para apresentação das informações no Browse.FWMBrowse():ChangeTopBot(< lDoFilter >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
lDoFilterLógicoObrigatório

Indica se deve executar o filtro imediatamente

CheckPermAvalia se o usuário tem permissão para utilizar a rotinaFWMBrowse():CheckPerm(< cFunction >, < nOption >, < nVerify >, < lShowHelp >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cFunctionCaracteresObrigatório

Nome da função definida para o botão

nOptionNuméricoObrigatório

Tipo de operação (1=Visualizar, 2=Visualizar, 3=Incluir, 4=Alterar, 5=Excluir, 6=Alterar sem inclusão de novas linhas, 7=Cópia e 8=Impressão da regra de negócios)

nVerifyNuméricoObrigatório

Posição a ser validada no acesso de usuário

lShowHelpLógicoObrigatório

Mostra para o usuário o help de sem permissão caso nao tenha

ClassNameRetorna o nome da classe (FWMBROWSE)FWMBrowse():ClassName()-> cClassName
ColumnsFieldsAdiciona as colunas que não foram configuradas para serem apresentadas por padrão no Browse, com base nas informações fornecidas através do método SetFields.FWMBrowse():ColumnsFields(< aColumns >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
aColumnsArray of RecordsObrigatório

Estrutura do array [n][01] Título da coluna [n][02] Code-Block de carga dos dados [n][03] Tipo de dados [n][04] Máscara [n][05] Alinhamento (0=Centralizado, 1=Esquerda ou 2=Direita) [n][06] Tamanho [n][07] Decimal [n][08] Indica se permite a edição [n][09] Code-Block de validação da coluna após a edição [n][10] Indica se exibe imagem [n][11] Code-Block de execução do duplo clique [n][12] Variável a ser utilizada na edição (ReadVar) [n][13] Code-Block de execução do clique no header [n][14] Indica se a coluna está deletada [n][15] Indica se a coluna será exibida nos detalhes do Browse [n][16] Opções de carga dos dados (Ex: 1=Sim, 2=Não)

DeActivateMétodo de destruição da classeFWMBrowse():DeActivate()-> NIL
ExecuteMDefExecuta a ação do clique no menu funcionalFWMBrowse():ExecuteMDef()-> NIL
GetCBoxRetorna o conteúdo de um campo que possui opções de dados (X3_CBOX), de acordo com as informações atuais.FWMBrowse():GetCBox(< nPosSx3 >, < cCampo >)-> cConteud
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
nPosSx3NuméricoObrigatório

Posição do campo no array de dicionário de dados

cCampoCaracteresObrigatório

Campo que contém as opções

GetSizeCBoxRetorna a largura da coluna para o campo que possui opções de dados (X3_CBOX)FWMBrowse():GetSizeCBox(< nPosSx3 >)-> nSize
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
nPosSx3NuméricoObrigatório

Posição do campo no array de dicionário de dados

GetTimerRetorna o objeto TIMERFWMBrowse():GetTimer()-> oTimer
LoadColumnsRetorna as colunas padrão no Browse. Obs.: Para arquivo temporário serão considerados os campos definidos no método SetFields()FWMBrowse():LoadColumns(< cProfFields >)-> aColumns
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cProfFieldsCaracteresObrigatório

Strind contendo os campos da MBrowse antiga

LoadFilsRetorna as filiais disponíveis para o usuárioFWMBrowse():LoadFils(< cAlias >)-> aFilial
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cAliasCaracteresObrigatório

Alias da tabela a ser avaliada

SetAmbienteHabilita a utilização da funcionalidade Walk-Thru no BrowseFWMBrowse():SetAmbiente(< lAmbiente >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
lAmbienteLógicoObrigatório

Indica que será disponibilizado a opção Ambiente

SetBotFunIndica o limite inferior das informações no BrowseFWMBrowse():SetBotFun(< cBotFun >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cBotFunCaracteresObrigatório

Limite inferior. Ex.: "02"

SetChgAllIndica se o usuário tem permissão para alterar registros de outras filiaisFWMBrowse():SetChgAll(< lChgAll >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
lChgAllLógicoObrigatório

Indica que o usuário tem permissão para alterar registros de outras filiais

SetExecuteDefIndica a opção do Browse a ser executada no duplo clique no itemFWMBrowse():SetExecuteDef(< nExecuteDef >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
nExecuteDefNuméricoObrigatório

Indica a opção do Browse a ser executada no duplo clique no item

SetFieldsIndica os campos que serão adicionados as colunas do Browse. Obs.: Para arquivo temporário, todos os campos informados serão utilizados como coluna e no caso de tabela de dados os campos informados serão adicionados as colunas padrão do Browse.FWMBrowse():SetFields(< aFields >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
aFieldsArray of RecordsObrigatório

Estrutura do array TABELA DE DADOS [n][01] Título da coluna [n][02] Code-Block de carga dos dados [n][03] Tipo de dados [n][04] Máscara [n][05] Alinhamento (0=Centralizado, 1=Esquerda ou 2=Direita) [n][06] Tamanho [n][07] Decimal [n][08] Indica se permite a edição [n][09] Code-Block de validação da coluna após a edição [n][10] Indica se exibe imagem [n][11] Code-Block de execução do duplo clique [n][12] Variável a ser utilizada na edição (ReadVar) [n][13] Code-Block de execução do clique no header [n][14] Indica se a coluna está deletada [n][15] Indica se a coluna será exibida nos detalhes do Browse [n][16] Opções de carga dos dados (Ex: 1=Sim, 2=Não) TABELA TEMPORÁRIA [n][01] Descrição do campo [n][02] Nome do campo [n][03] Tipo [n][04] Tamanho [n][05] Decimal [n][06] Picture

SetFilialIndica as filiais que deverão ser consideradas na apresentação do BrowseFWMBrowse():SetFilial(< aFils >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
aFilsArray of RecordsObrigatório

Estrutura do array [n]Filial

SetIniWindowIndica o Code-Block executado na inicialização da janela do BrowseFWMBrowse():SetIniWindow(< bIniWindow >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
bIniWindowCode-BlockObrigatório

Code-Block executado na inicialização da janela do Browse

SetSeeAllIndica se o usuário tem permissão para visualizar registros de outras filiaisFWMBrowse():SetSeeAll(< lSeeAll >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
lSeeAllLógicoObrigatório

Indica que o usuário tem permissão para visualizar registros de outras filiais

SetSeekHabilita a utilização da pesquisa de registros no BrowseFWMBrowse():SetSeek(< lSeek >, < aSeek >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
lSeekLógicoObrigatório

Indica que será disponibiliza a opçãoo de pesquisa no Browse

aSeekArray of RecordsObrigatório

Estrutura do array [n,1] Título da pesquisa [n,2,1] LookUp [n,2,2] Tipo de dados [n,2,3] Tamanho [n,2,4] Decimal [n,2,5] Título do campo [n,2,6] Máscara [n,3] Ordem da pesquisa [n,4] Exibe na pesquisa

SetTimerIndica o tempo de atualização da janela do BrowseFWMBrowse():SetTimer(< bTimerAction >, < nInterval >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
bTimerActionCode-BlockObrigatório

Code-Block executado na atualização da janela do Browse

nIntervalNuméricoObrigatório

Intervalo de atualização da janela

SetTopFunIndica o limite superior das informações no BrowseFWMBrowse():SetTopFun(< cTopFun >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cTopFunCaracteresObrigatório

Limite superior. Ex.: "01"

SetUseFilterHabilita a utilização do filtro no BrowseFWMBrowse():SetUseFilter(< lFilter >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
lFilterLógicoObrigatório

Indica que será disponibiliza a opção de filtro no Browse

SetUseCaseFilterHabilita a utilização do filtro rápido no BrowseFWMBrowse():SetUseCaseFilter(< lFilter >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
lFilterLógicoObrigatório

Indica que será disponibilizada a opção de filtro no Browse

SetX3TelaPermite adicionar uma regra para apresentação dos campos no Browse. Observações: O conteúdo da string deve conter o caracter "|" que permite separar os indentificadores utilizados na regra de validação. O conteúdo será utilizado como parâmetro de avaliação da função FWFormStruct (terceiro parâmetro, bSX3 )FWMBrowse():SetX3Tela(< cTela >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
cTelaCaracteresObrigatório

Indica a regra para apresentação dos campos no Browse

SetWalkThruHabilita a utilização da funcionalidade Walk-Thru no BrowseFWMBrowse():SetWalkThru(< lWalkThru >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
lWalkThruLógicoObrigatório

Indica que será disponibilizado a opção Walk-Thru

SetOnlyFieldsSeta quais campos da tabelas serão apresentados no BrowseFWMBrowse():SetOnlyFields(< aFields >)-> NIL
Parâmetros
NomeFormatoObrigatórioDescriçãoObservação
aFieldsArray of RecordsObrigatório

Array com os nomes dos campos a serem apresentados

DestroyDestroy o objeto e suas referências a outros objetos.FWMBrowse():Destroy()-> NIL
SetMainProcMétodo da classe FWMBrowse.FWMBrowse():SetMainProc()
OptionReportIndica se a opção de impressão das informações do Browse está habilitadaFWMBrowse():OptionReport()-> lOptionReport
03 · EXEMPLO PRÁTICO

Exemplo completo

Local oBrowse := FWMBrowse():New()

oBrowse:SetAlias("SA1")
oBrowse:SetDescription("Clientes")
oBrowse:SetUseFilter(.T.)
oBrowse:Activate()
Resultado esperado

O browse é criado para o alias SA1, recebe descrição e filtro e então é ativado.

BOAS PRÁTICAS
  • Configure alias, descrição, filtros, campos e demais opções antes de Activate().
  • Mantenha regras de negócio fora da camada visual sempre que possível.
  • Confirme no ambiente Protheus os métodos dependentes de versão de LIB e Framework.
  • Em manutenção de legado, identifique antes se a rotina utiliza MBrowse, FWMBrowse ou MVC.
ARMADILHAS COMUNS
  • Ativar o browse antes de concluir a configuração pode produzir comportamento incompleto.
  • Alguns métodos dependem de estruturas internas do Framework e podem variar conforme a versão da LIB.
  • Exemplos ilustrativos precisam ser adaptados ao alias, menu e contexto reais da rotina.
REFERÊNCIAS
  1. TOTVS. FWMBrowse. TDN.
Situação
Publicado
Página criada em
Última revisão em
Idioma original
Português
Revisão
Usina.BR
0 comentário(s) aprovado(s)

Comentários

Ainda não há comentários aprovados.

Entre com Google ou Microsoft para comentar.

Powered by Usina Docs · Alpha