Histórico da Página
Sintaxe
AxAltera( <cAlias>, <nReg>, <nOpc>, <aAcho>, <aCpos>, <nColMens>, <cMensagem>, <cTudoOk>, <cTransact>, <cFunc>, <aButtons>, <aParam>, <aAuto>, <lVirtual>, <lMaximized>)
Propósito
Permite, por meio de uma interface, que o usuário altere as informações de um arquivo de dados, conforme a necessidade da aplicação.
Argumentos
< cAlias >
Arquivo de dados cujas informações serão alteradas. Esse arquivo está cadastrado no Dicionário de Tabelas do Protheus (SX2).
< nReg >
Número do registro (recno) posicionado no alias ativo e que será alterado.
< nOpc >
Número da linha do array aRotina que define o tipo de edição (Inclusão, Alteração, Exclusão e Visualização). A função AxAltera() será executada quando o usuário selecionar a opção Alteração.
< aAcho >
Array com o nome dos campos que serão exibidos na interface (tela). Os campos específicos de usuário sempre serão exibidos se não existir no parâmetro um elemento com a expressão “NOUSER”.
< aCpos >
Array com o nome dos campos que poderão ser editados.
<nColMens >
Parâmetro não utilizado.
< cMensagem >
Parâmetro não utilizado.
< cTudoOk >
Função de validação das informações confirmadas pelo usuário após a alteração. Não deve ser passada como bloco de código, mas pode ser passada como uma lista de expressões, desde que a última ação retorne um valor lógico. Exemplo:
“( Func1(), Func2(), ..., FuncX(), .T. )”
< cTransact >
Função que será executada dentro da transação da AxFunction().
< cFunc >
Função que carregará as variáveis que serão utilizadas pelo objeto Enchoice. Neste caso, o parâmetro lVirtual é definido internamente pela função AxFunction() e executada como verdadeira (.T.).
< aButtons >
Botões adicionais que serão adicionados na barra de ferramentas padrão (EnchoiceBar). As informações de cada botão devem ser passadas no seguinte formato:
aArray[n][1] --> Imagem do botão
...
aArray[n][3] --> Título do botão
< aParam >
Funções que serão executadas em pontos pré-definidos da AxFunction(), conforme descrito abaixo:
aParam[1] --> Bloco de código que será processado antes da exibição das informações na tela
...
aParam[4] --> Bloco de código que será executado fora da transação da AxFunction()
< aAuto >
Indica que a alteração será realizada de forma automática pela própria função, sem a necessidade de exibir a tela de interface e com base nos dados enviados neste parâmetro.
Esse array é montado no formato utilizado pela função padrão MsExecAuto(). Caso esse array seja informado, a tela de interface não será exibida e será executada a função EnchAuto().
O array deve ser montado no seguinte formato:
aAuto[n][1] --> Nome do campo
...
aAuto[n][3] --> Validação que será utilizada em substituição às validações definidas no Dicionário de dados SX3
< lVirtual >
Indica se a interface utilizará variáveis de memória ou os campos do próprio arquivo de dados na edição.
Deve-se informar verdadeiro (.T.) para se utilizar variáveis de memória ou falso (.F.) para os campos do próprio arquivo de dados.
< lMaximized >
Indica se a janela será maximizada ou não.
Deve-se informar verdadeiro (.T.) para se maximizar a janela ou falso (.F.) para não maximizá-la.
Utilização
Esse componente visual é muito utilizado na interface das aplicações para alterar informações incluídas anteriormente.
Exemplos
Observação
Essa função pertence ao framework do ERP Protheus.
A variável cCadastro deve ser utilizada como Private no font.
Exemplos
USER FUNCTION CTJ40Alt
LOCAL nReg := ( cString )->( Recno() )
LOCAL aCpos := {"PA4_DTINI","PA4_DTFIM"}
AxAltera(cString,nReg,4,,aCpos)
RETURN NIL