Histórico da Página
Sintaxe
mBrowse( <nLinha1>, <nColuna1>, <nLinha2>, <nColuna2>, <cAlias>, <aFixe>, <cCpo>, <nPar>, <cCorFun>, <nClickDef>, <aColors>, <cTopFun>, <cBotFun>, <nPar14>, <bInitBloc>, <lNoMnuFilter>, <lSeeAll>, <lChgAll>, <cExprFilTop>, <nInterval>, <uPar22>, <uPar23> )
Propósito
Permite, por meio de uma interface, que o usuário visualize todos os registros de um arquivo de dados, conforme a necessidade da aplicação.
Argumentos
< nLinha1 >
Número da linha inicial na qual a janela será posicionada.
< nColuna1 >
Número da coluna inicial na qual a janela será posicionada.
< nLinha2 >
Número da linha final na qual a janela será posicionada.
< nColuna2 >
Número da coluna final na qual a janela será posicionada.
< cAlias >
Alias de um arquivo de dados cujos registros serão mostrados na tela. O mesmo deve estar definido no Dicionário de Dados, no Arquivo SX3.
Para utilizar essa função com arquivos de trabalho, o alias deste deve, obrigatoriamente, ser “TRB” e o parâmetro aFixe torna-se obrigatório.
< aFixe >
Array contendo os campos do arquivo de dados que serão mostrados nas primeiras colunas no browse. Ou seja, define os campos que aparecerão fixos nas primeiras colunas do browse.
Este parâmetro é obrigatório quando se utiliza arquivos de trabalho, cujo alias é “TRB”.
A estrutura do array é diferente para arquivos que estão no dicionário de dados e para arquivos de trabalho.
A estrutura do array para os arquivos que fazem parte do dicionário de dados é:
[n][1] --> Descrição do campo
[n][2] --> Nome do campo
A estrutura do array para os arquivos de trabalho é:
[n][1] --> Descrição do campo
...
[n][6] --> Picture (formatação dos dados)
< cCpo >
Campo do arquivo de dados que será validado se está vazio ou não para a exibição do bitmap de status de cada registro.
Quando esse parâmetro é utilizado, a primeira coluna do browse é um bitmap indicando o status do registro, conforme as condições configuradas nos parâmetros cCpo, cFun e aColors.
< nPar >
Parâmetro reservado. Não deve ser utilizado.
< cCorFun >
Função que retorna um valor lógico, responsável por definir se a cor da linha será alterada.
Quando esse parâmetro é utilizado, o parâmetro cCpo é automaticamente desconsiderado, pois a mudança da cor da linha não será mais baseada num campo do arquivo de dados, mas sim na função definida nesse parâmetro.
< nClickDef >
Define o número da opção do aRotina que será executada quando o usuário efetuar um duplo clique em um registro do browse. O padrão (default) é executar a rotina de visualização.
< aColors >
Array contendo as cores que serão mostradas na primeira coluna do browse para indicar o status do registro.
A estrutura desse array é:
[n][1] --> Função que retornará um valor lógico para a exibição do bitmap
[n][2] --> Nome do bitmap que será exibido quando a função retornar verdadeiro (.T.)
O bitmap deve estar contido no repositório.
Quando esse parâmetro é utilizado, os parâmetros cCpo e cFun são automaticamente desconsiderados.
< cTopFun >
Função que retorna o limite superior do filtro, baseado na chave de índice desejada.
< cBotFun >
Função que retorna o limite inferior do filtro, baseado na chave de índice desejada.
< nPar14 >
Parâmetro reservado. Não deve ser utilizado.
< bInitBloc >
Bloco de código que será executado na iniciação da janela do browse. O bloco de código receberá como parâmetro o objeto da janela do browse.
< lNoMnuFilter >
Valor lógico que define se a opção de filtro será exibida no menu da mBrowse. Ou seja, se o usuário terá a permissão de filtrar os registros que serão mostrados na tela.
Quando o valor for verdadeiro (.T.), não exibe a opção no menu. Quando for falso (.F.), exibe a opção no menu.
O valor padrão (default) é falso (.F.).
A opção de filtro na função mBrowse está disponível apenas para bancos de dados relacionais, com a utilização do TopConnect.
< lSeeAll >
Define se o browse mostrará todas as filiais.
O valor verdadeiro (.T.) mostra todas as filiais. O valor falso (.F.) não mostra todas as filiais.
O valor padrão (default) é falso (.F.).
Caso os parâmetros cTopFun ou cBotFun sejam informados, esse parâmetros será configurado automaticamente para falso (.F.).
A função SetBrwSeeAll altera o valor padrão (default) desse parâmetro.
< lChgAll >
Define se os registros de outras filiais poderão ser alterados.
O valor verdadeiro (.T.) permite alterar registros de outras filiais. O valor falso (.F.) não permite.
O valor padrão (default) é falso (.F.).
Quando esse parâmetro está configurado para verdadeiro (.T.), o parâmetro lSeeAll é configurado automaticamente para verdadeiro (.T.).
Caso os parâmetros cTopFun ou cBotFun sejam informados, esse parâmetro será configurado automaticamente para falso (.F.).
A função SetBrwChgAll altera o valor padrão (default) desse parâmetro.
< cExprFilTop >
Expressão de filtro para execução somente em ambiente TOP (Banco de dados relacional).
A expressão deve ser escrita em SQL.
< nInterval >
Quantidade de tempo passada para a função Timer.
< bTimerAction >
Bloco de código que será executado quando a função Timer for ativada.
< uPar22 >
Parâmetro reservado. Não deve ser utilizado.
< uPar23 >
Parâmetro reservado. Não deve ser utilizado.
Utilização
Esse componente visual é muito utilizado na interface das aplicações para mostrar os registros contidos em um arquivo de dados, permitindo também que um menu de opções seja mostrado para o usuário, que selecionará a opção que deseja executar.
Além disso, permite que as informações sejam manipuladas, mostra identificadores de status dos registros, legendas e filtros para mostrar somente as informações que atendam determinadas condições.
Essa função possui os seguintes componentes:
- Browse padrão para a visualização das informações do arquivo de dados, de acordo com as configurações contidas no Dicionário de Dados, no Arquivo SX3.
- Parametrização para funções específicas de visualização, inclusão, alteração e exclusão de informações, o que viabiliza a manutenção de informações com estrutura de cabeçalhos e itens.
- Recursos adicionais como identificadores de status de registros, legendas e filtros para as informações.
As colunas do browse serão selecionadas automaticamente seguindo a configuração do dicionário de dados e do usuário:
- Uso do campo no módulo em que a função está sendo executada;
- Se o campo é exibido no browse
- Nível do campo
- Configuração do profile do usuário
...
Caso o parâmetro aFixe seja informado, os campos configurados no array serão exibidos sem considerar os itens acima. O parâmetro aFixe é obrigatório quando a mBrowse é utilizada com arquivos de trabalho.
Para seguir o padrão da função AxCadastro() nas coordenadas da tela, deve-se utilizar as seguintes posições: 6,1,22,75.
Existem algumas variáveis privadas que são utilizadas em conjunto com essa função:
aRotina
Esse array contém as opções disponíveis para o usuário e as respectivas funções que serão executadas quando o usuário selecionar a opção. Ele deve ser declarado antes de se chamar a função mBrowse.
Este array deve ter a seguinte estrutura:
[n][1] --> Título da rotina que será exibido no menu
...
[n][4] --> Número da operação que a função executará. As alternativas são:
- 1=Pesquisa
- 2=Visualização
- 3=Inclusão
- 4=Alteração
- 5=Exclusão
- 6=Alteração sem a permissão para incluir novas linhas. É válido apenas para os objetos GetDados e GetDb.
[n][5] --> Esse elemento é opcional. Quando informado, deve conter o número da configuração do arquivo de acessos do Protheus (sigamat.acs), que indica se o usuário terá acesso a essa opção. Parâmetro descontinuado.
Ao definir as funções no array aRotina, caso o nome da função não seja especificado com os parênteses, “()”, a mBrowse passará as seguintes variáveis de controle como parâmetros:
- cAlias = Nome da área de trabalho definida para a mBrowse;
- nReg = Número (Recno) do registro posicionado na mBrowse;
- nOpc = Posição da opção utilizada na mBrowse, de acordo com a ordem da função no array aRotina.
Segue um exemplo com as funções básicas:
AADD(aRotina, { “Pesquisar”, “AxPesqui”, 0, 1 })
...
AADD(aRotina, { “Excluir” , “AxDeleta” , 0, 5 })
A opção das funções no array aRotina define o conteúdo de uma variável de controle, que será repassada para as funções chamadas a partir da mBrowse, convencionada como nOpc. Desta forma, para manter o padrão da aplicação ERP Protheus, a ordem a ser seguida na definição do aRotina é:
- Pesquisar
- Visualizar
- Incluir
- Alterar
- Excluir
- Livre
...
cCadastro
Para configurar o título da janela, deve-se declarar essa variável antes da chamada da função.
Caso essa variável não seja declarada, o título da janela será a descrição da função executada no menu principal.
Exemplos
#include “protheus.ch”
USER FUNCTION mBrwSA2()
LOCAL cAlias := “SA2”
PRIVATE cCadastro := “Cadastro de Fornecedores”
PRIVATE aRotina := { }
AADD(aRotina, { “Pesquisar”, “AxPesqui”, 0, 1 })
...
AADD(aRotina, { “Excluir” , “AxDeleta” , 0, 5 })
dbSelectArea(cAlias)
dbSetOrder(1)
mBrowse(6, 1, 22, 75, cAlias)
RETURN NIL
Segue outro exemplo da função mBrowse.
USER FUNCTION CTJA010()
LOCAL cFiltro := ""
LOCAL aCores := {{ 'PA1->PA1_STATUS=="1"' , 'ENABLE' },; // Ativo
{ 'PA1->PA1_STATUS=="2"' , 'DISABLE' }} // Inativo
PRIVATE cAlias := 'PA1'
PRIVATE _cCpo := "PA1_FILIAL/PA1_PRODUT/PA1_DESC"
PRIVATE cCadastro := "Tabela de Umidade"
...
{"Legenda" , "U_CTJA10LEG", 0, 7, 0, .F. }} //"Legenda"
dbSelectArea("PA1")
dbSetOrder(1)
mBrowse( ,,,,"PA1",,,,,,aCores,,,,,,,,cFiltro)
RETURN NIL