A função MBrowseAuto tem como objetivo simular o modelo de interface da MBrowse, compatível com a função MBrowse, sendo a sua correspondente quando se utiliza o conceito de rotina automática.
Em resumo a rotina MBrowseAuto apresenta diretamente ao usuário as rotinas de uma operação da MBrowse sem a necessidade do usuário ter que navegar, localizar o registro e clicar sobre a ação (ex.: alterar um registro).
Sintaxe:
MBrowseAuto ( [ nOPCAUTO ] aAUTO cALIAS [ lSEEK ] [ lPOS ] ) --> Nil
Retorno: Nil
Parâmetros:
| Nome | Tipo | Descrição | Default | Obrigatório |
| nOPCAUTO | Numeric | Código da operação a ser realizada que corresponde ao quarto elemento do aRotina. | ||
| aAUTO | Array | Informe o array com os dados a serem simulados/validados pelo modelo de interface 1 ou 2. Os dados devem ser enviados na seguinte estrutura: [nX][1] Nome do campo [nX][2] Conteudo do campo [nX][3] Nil Exemplo: aadd(aField,{"A1_NOME","Microsiga Software SA",Nil}) Os dados informados neste parâmetro servirão para posicionar corretamente no registro que sofrerá alteração ou exclusão. | X | |
| cALIAS | Character | Informe o Alias da tabela que deveria ser demonstrada no browse. | X | |
| lSEEK | Logical | Indica se a função deverá efetuar o posicionamento automático com base nos dados enviados no parâmetro aAuto. | ||
| lPOS | Logical | Indica se o parâmetro nOPCAuto deverá se pesquisado no aRotina ou é a própria posição do aRotina. |
Observações
- A função MBrowseAuto espera que a variável aRotina esteja presente e preenchida como uma variável Private;
- O parâmetro aAUTO (vide tabela de parâmetros acima) é utilizado apenas para localizar o registro alvo da operação, devendo .
#include "protheus.ch"
#include "fwmvcdef.ch"
/*/{Protheus.doc} PAACAD
Rotina de exemplo MBrowse/MBrowseAuto
@type Function
@author Bruno Pirolo
@since 25/10/2024
@param aAutoHeader , array , Parâmetro opcional para ser considerado no MBrowseAuto
@param nOpcAuto , numeric , Numero da operação
@return Nil
/*/
Function PAACAD(aAutoHeader, nOpcAuto)
Private aRotina as Array
Private cCadastro as Character
aRotina := MenuDef()
cCadastro := "Teste Cadastro"
If ValType(aAutoHeader) == "A"
MBrowseAuto(nOpcAuto, Aclone(aAutoHeader), "PAA")
Else
mBrowse( 6, 1,22,75,"PAA")
EndIf
Return
/*/{Protheus.doc} MenuDef
Definição de menus
@type Static Function
@author Bruno Pirolo
@since 28/10/2024
@return aRotina, Array, Array com as rotinas disponiveis
/*/
Static Function MenuDef()
Local aRotina as Array
aRotina := { { "Pesquisar" ,"AxPesqui" , 0,1 , ,.F.},; //"Pesquisar"
{ "Visualizar" ,"AxVisual", 0,2},; //"Visualizar"
{ "Incluir" ,"AxInclui", 0,3},; //"Incluir"
{ "Alterar" ,"AxAltera", 0,4},; //"Alterar"
{ "Excluir" ,"AxDeleta", 0,5}; //"Excluir"
}
Return(aRotina)
/*/{Protheus.doc} PAACAD
Rotina de exemplo MBrowse/MBrowseAuto
@type Function
@author Bruno Pirolo
@since 25/10/2024
@param aAutoHeader , array , Parâmetro opcional para ser considerado no MBrowseAuto
@param nOpcAuto , numeric , Numero da operação
@return Nil
/*/
Function TstAutoBrw
Local aAuto as Array
/*
Neste exemplo, o indice 1 da tabela PAA corresponde a PAA_FILIAL+PAA_TESTE, logo
a rotina irá localizar o registro que atenda aos dados abaixo e apresentar para
o usuário realizar a alteração.
*/
aAuto := {{"PAA_TESTE" ,"teste" , NIL }, {"PAA_FILIAL" ," " , NIL }}
//Apresenta a tela de Alteração do registro ao usuário
PAACAD(aAuto, 4 )
Return
No exemplo acima, a função PAACAD apresentará um MBrowse com todos os registros para o usuário navegar e realizar as operações desejadas, já quando executada a função TstAutoBrw será exibida diretamente a tela de alteração do registro indicado no Array aAuto.