Árvore de páginas

Implementado ponto de entrada ADMSELFIL para manipular a tela padrão da AdmGetFil (Seleciona Filiais? "Sim")

Linha de Produto:

Microsiga Protheus

Segmento:

Serviços

Módulo:

Financeiro

Função:

ADMXFUN

Situação/Requisito:

Criar um PE na funcao admgetfil, para fazer o desvio para não chamar a função AdmOpcoes() e chamar no lugar o PE do cliente, onde o mesmo irá construir a propria tela. Lembrando que o retorno deste PE deve ser o mesmo que atualmente retorna o array aFil.

Solução/Implementação:

Criação do ponto de entrada ADMSELFIL para seleção de filiais independente da função AdmOpcoes().

Chamados relacionados:

TULS08

Descrição

O ponto de entrada ADMSELFIL foi implementado para substituir a tela padrão de seleção de filiais apresentada pela função AdmOpcoes(), de forma que o usuário possa escolher as filiais desejadas sem uma tela, ou criar sua própria tela para seleção das filiais. Especialidade para atender ao modelo de sigamat "EE|FF".

 

Ponto de Entrada

Descrição:

O ponto de entrada ADMSELFIL será executado sempre que utilizada a função AdmGetFil() e permitirá que o usuário selecione as filiais da forma desejada, por tela ou sem interface gráfica.

Localização:

Todas as rotinas de Adm que atendem à gestão corporativa. Ex: FINA241, FINR130, ATFA450, ATFR070, CTBR400.

Eventos:

Pergunta "Seleciona Filiais?"

Programa Fonte:

AdmXFun.PRW

Função:

AdmGetFil()

Retorno:

Nome

Tipo

Descrição

Obrigatório

 aRet

Array

Contém as filiais selecionadas

Sim

 Nota: Caso a rotina fazer a busca da função AdmSelecFil() ou FwSelectGC() para utilizá-las ao invés da AdmGetFil(), o ponto de entrada não será executado.

Exemplo:

#Include 'Protheus.ch'

 

User Function ADMSELFIL()

 

Local cTitle := ParamIxb[1]  // Utilizado para montagem de tela, se desejado

Local aOpcs  := ParamIxb[2] // Array contendo filial, nome da empresa e CGC

Local cOpcs  := ParamIxb[3] // aOpcs macro-executado armazenando apenas o codigo da filial

Local nTamFil:= ParamIxb[4] // Tamanho da filial

Local aRet   := {}                 // Retorno das filiais selecionadas

Local nI     := 0

 

Alert("Ponto de entrada ADMSELFIL executado.")

 

If MsgYesNo("Deseja selecionar todas as filiais?")

      For nI := 1 to Len(aOpcs)

            AADD(aRet, PadR(aOpcs[nI][1], nTamFil) )

      Next

Else

      For nI := 1 to Len(aOpcs)

            If MsgYesNo("Deseja selecionar a filial ( "+aOpcs[nI][2]+" ) ?")

                  AADD(aRet, aOpcs[nI][1])

                  MsgAlert("Filial "+aOpcs[nI][2]+" selecionada.")

            EndIf

      Next

      If Empty(aRet)

            aRet := cFilAnt

      EndIf

EndIf

 

Return aRet