Prezados, em qual variável está a descrição da opção que escolhemos no aRotina? No meu caso, o aRotina possui várias opções de inclusão, então testar se é inclusão, alteração, etc, não atende. Preciso testar pelo titulo da opção escolhida ou qual o elemento do aRotina o usuário clicou. Saudações.
Izaias o que você está querendo está disponível através da variável nOpc, ela indica qual posição do array aRotina foi executada. Para isso na chamada da função no aRotina não deve ser colocado parênteses. Ex.: U_RFATA01(), deve ficar apenas U_RFATA01 na chamada da função dentro do aRotina.
Na função chamada (no exemplo U_RFATA01) a mesma vai receber 3 parâmetros alimentados de forma automática pelo sistema, são eles cAlias, nRecno e nOpc. Onde os dois primeiros referem-se ao registro posicionado no browser e o terceiro lhe diz qual posição do aRotina executou, mesmo que você tenha repetida a chamada da função U_RFATA01 várias vezes e com o mesmo tipo (alteração ou inclusão por exemplo) essa variável sempre vai trazer a posição dentro do array. Tenha muito cuidado ao fazer esse tratamento caso precise fazer manutenções no array, porque se mudar a ordem isso irá interferir diretamente nessa situação, esse erro é bem comum de ocorrer.
Cirilo, obrigado pela resposta. Mas no ACTION da opção está VIEWDEF.CADSZV. Assim: ADD OPTION aRotina TITLE “Novo contrato” ACTION “VIEWDEF.CADSZV” OPERATION 3 ACCESS 0
A função ProcName() retorna o nome da rotina ou função, definida pelo usuário, corrente ou anterior. Esta função pode muito ser útil quando queremos condicionar nosso fonte a executar algo se ele passar por alguma função dentro de uma rotina padrão ou customizada.
Sintaxe
ProcName ( [ nAtivacao] ) –> cRet
Parâmetros/Elementos
nAtivacao Numérico Indica um valor numérico que especifica qual ativação será questionada. Sendo: 0- Refere-se à ativação corrente; 1-Refere-se à ativação anterior, etc. No entanto, caso nenhum valor seja especificado, o padrão será zero (0).Retorno cRet (caracter) = Retorna o nome de uma rotina, função ou bloco de código em execução no momento, na forma de uma string.
José Macedo, obrigado pela resposta. Mas, na função menudef, o aRotina possui várias opções de inclusão, chamando sempre o “VIEWDEF.CADSZV” com OPERATION 3. Porém, a tela de inclusão de cada opção, dependendo do botão que o usuário clicou teria informações diferentes. Por exemplo, campos editáveis ou não editáveis. Na opção NOVO CONTRATO, alguns campos são editáveis. Na opção NOVO SUBCONTRATO, campos editáveis no contrato não são editáveis no subcontrato. Então, nesses casos a Procname é a mesma, porque é a mesma função.