Páginas filhas
  • MBrowseAuto

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:

NomeTipoDescriçãoDefaultObrigatório
nOPCAUTONumericCódigo da operação a ser realizada que corresponde ao quarto elemento do aRotina.

aAUTOArrayInforme 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
cALIASCharacterInforme o Alias da tabela que deveria ser demonstrada no browse.
X
lSEEKLogicalIndica se a função deverá efetuar o posicionamento automático com base nos dados enviados no parâmetro aAuto.

lPOSLogicalIndica 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 .
Exemplo
#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.



  • Sem rótulos