FWMBrowse
FWMBrowse():New() --> oSelfClasse para construção e controle de browses no Framework do Protheus. Centraliza colunas, pesquisas, filtros, legendas, filiais e o ciclo de vida da interface.
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().
Sintaxe
FWMBrowse():New() --> oSelfMétodos
NewMétodo construtor da classeFWMBrowse():New()-> oSelf
SetAliasDefine o alias da tabela que será apresentada pelo browse.FWMBrowse():SetAlias( <cAlias> ) -> NIL
cAliasCaracterObrigatórioAlias 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
cDescriptionCaracterObrigatórioTexto 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
lCanSaveAreaLógicoObrigatórioIndica 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
oOwnerObjetoObrigatórioObjeto 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
cFunctionCaracteresObrigatórioNome da função definida para o botão
nOptionNuméricoObrigatórioTipo 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órioPosição a ser validada no acesso de usuário
AddLegendPermite adicionar legendas no BrowseFWMBrowse():AddLegend(< xCondition >, < cColor >, [< cTitle >] , [< cID >] , [< lFilter >] )-> NIL
xConditionCaracter ou bloco de códigoObrigatórioExpressão AdvPL ou code block que determina quando a legenda será aplicada.
cColorCaracterObrigatórioCor usada para identificar visualmente a condição. Exemplos comuns: GREEN, RED, YELLOW, BLUE.
cTitleCaracterOpcionalTítulo apresentado para a legenda.
cIDCaracterOpcionalIdentificador opcional da legenda.
lFilterLógicoOpcionalIndica 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
cFunctionCaracteresObrigatórioNome da função definida para o botão
nOptionNuméricoObrigatórioTipo 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órioPosição a ser validada no acesso de usuário
cTitleCaracteresObrigatórioTítulo da janela
nRealOpcNuméricoObrigatórioOrdem selecionada do botão
nRotinaNuméricoObrigatórioIndica o item do aRotina que está sendo acessado
BrwGetFilRetorna a descrição de uma filialFWMBrowse():BrwGetFil(< cFil >)-> cLasFil
cFilCaracteresObrigatórioCódigo da filial
ChangeTopBotAtualiza o limite superior e inferior da tabela para apresentação das informações no Browse.FWMBrowse():ChangeTopBot(< lDoFilter >)-> NIL
lDoFilterLógicoObrigatórioIndica se deve executar o filtro imediatamente
CheckPermAvalia se o usuário tem permissão para utilizar a rotinaFWMBrowse():CheckPerm(< cFunction >, < nOption >, < nVerify >, < lShowHelp >)-> NIL
cFunctionCaracteresObrigatórioNome da função definida para o botão
nOptionNuméricoObrigatórioTipo 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órioPosição a ser validada no acesso de usuário
lShowHelpLógicoObrigatórioMostra 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
aColumnsArray of RecordsObrigatórioEstrutura 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
nPosSx3NuméricoObrigatórioPosição do campo no array de dicionário de dados
cCampoCaracteresObrigatórioCampo 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
nPosSx3NuméricoObrigatórioPosiçã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
cProfFieldsCaracteresObrigatórioStrind contendo os campos da MBrowse antiga
LoadFilsRetorna as filiais disponíveis para o usuárioFWMBrowse():LoadFils(< cAlias >)-> aFilial
cAliasCaracteresObrigatórioAlias da tabela a ser avaliada
SetAmbienteHabilita a utilização da funcionalidade Walk-Thru no BrowseFWMBrowse():SetAmbiente(< lAmbiente >)-> NIL
lAmbienteLógicoObrigatórioIndica que será disponibilizado a opção Ambiente
SetBotFunIndica o limite inferior das informações no BrowseFWMBrowse():SetBotFun(< cBotFun >)-> NIL
cBotFunCaracteresObrigatórioLimite inferior. Ex.: "02"
SetChgAllIndica se o usuário tem permissão para alterar registros de outras filiaisFWMBrowse():SetChgAll(< lChgAll >)-> NIL
lChgAllLógicoObrigatórioIndica 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
nExecuteDefNuméricoObrigatórioIndica 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
aFieldsArray of RecordsObrigatórioEstrutura 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
aFilsArray of RecordsObrigatórioEstrutura do array [n]Filial
SetIniWindowIndica o Code-Block executado na inicialização da janela do BrowseFWMBrowse():SetIniWindow(< bIniWindow >)-> NIL
bIniWindowCode-BlockObrigatórioCode-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
lSeeAllLógicoObrigatórioIndica 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
lSeekLógicoObrigatórioIndica que será disponibiliza a opçãoo de pesquisa no Browse
aSeekArray of RecordsObrigatórioEstrutura 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
bTimerActionCode-BlockObrigatórioCode-Block executado na atualização da janela do Browse
nIntervalNuméricoObrigatórioIntervalo de atualização da janela
SetTopFunIndica o limite superior das informações no BrowseFWMBrowse():SetTopFun(< cTopFun >)-> NIL
cTopFunCaracteresObrigatórioLimite superior. Ex.: "01"
SetUseFilterHabilita a utilização do filtro no BrowseFWMBrowse():SetUseFilter(< lFilter >)-> NIL
lFilterLógicoObrigatórioIndica que será disponibiliza a opção de filtro no Browse
SetUseCaseFilterHabilita a utilização do filtro rápido no BrowseFWMBrowse():SetUseCaseFilter(< lFilter >)-> NIL
lFilterLógicoObrigatórioIndica 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
cTelaCaracteresObrigatórioIndica a regra para apresentação dos campos no Browse
SetWalkThruHabilita a utilização da funcionalidade Walk-Thru no BrowseFWMBrowse():SetWalkThru(< lWalkThru >)-> NIL
lWalkThruLógicoObrigatórioIndica que será disponibilizado a opção Walk-Thru
SetOnlyFieldsSeta quais campos da tabelas serão apresentados no BrowseFWMBrowse():SetOnlyFields(< aFields >)-> NIL
aFieldsArray of RecordsObrigatórioArray 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
Exemplo completo
Local oBrowse := FWMBrowse():New()
oBrowse:SetAlias("SA1")
oBrowse:SetDescription("Clientes")
oBrowse:SetUseFilter(.T.)
oBrowse:Activate()O browse é criado para o alias SA1, recebe descrição e filtro e então é ativado.
- 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.
- 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.

Comentários
Ainda não há comentários aprovados.
Entre com Google ou Microsoft para comentar.