Árvore de páginas

Carregando...

Ponto-de-Entrada: MC050INF - Manipula informações originais
Versões: Microsiga Protheus 8.11 , Microsiga Protheus 10
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todos
Descrição:
Este ponto de entrada tem como objetivo permitir ao o usuário que manipule as informações originais, montadas pelo sistema de acordo com sua necessidade.Está localizado na função "C040MatScrDisp" da rotina de consulta genérica de produtos. Ela é responsável por montar as informações de totalização do grupo selecionado ao lado esquerdo da janela de consulta.EM QUE PONTO:Será executado antes que os totais sejam exibidos do lado direito da tela. UTILIZAÇÃO: As informações apresentadas do lado direito da tela representam os totais do grupo selecionado, no lado esquerdo da tela.Quando um item interno do grupo é selecionado (no lado esquerdo), as informações pertinentes àquele item serão apresentadas e o ponto de entrada não será executado. Ele somente será executado se o item selecionado for um item "pai".Detalhe: nem todos os itens "pai" possuem totalizadores. Nestes casos o PE não será executado.Os totais apresentados podem variar (em descrição e valor) dependendo do item selecionado, mas a forma como as informações são montadas sempre será  através de um vetor bidimensional.A primeira dimensão (externa) representa cada uma das linhas que serão montadas e a segunda dimensão (interna) representa os detalhes da linha (descrição do totalizador e valor).Quando há algum total a ser exibido (mesmo que seja zerado), o vetor possuirá duas dimensões internas em cada dimensão externa. A primeira dimensão interna será a descrição do totalizador e a segunda seu valor.Quando não houver total a ser exibido, cada dimensão externa possuirá apenas uma dimensão interna, representando suadescrição. (na maioria dos casos é informado ao usuário que não existem totais a serem exibidos).PARÂMETROS DE ENVIO:Os parâmetros enviados ao ponto de entrada estão no vetor PARAMIXB, sendo eles:{ PARAMIXB[1] }PARAMIXB[1]: vetor original montado pelo sistema.Para se obter o vetor enviado como parâmetro é possível  utilizar a sintaxe:Local aVetor := PARAMIXB[1]PARÂMETROS DE RETORNO:O vetor original pode possuir "N" linhas (dimensões externas) em função do item selecionado. Cada linha pode possuir atédois itens (dimensões internas, descrição e valor). Portanto o valor de retorno deste ponto de entrada deverá ser do tipovetor e possuir a mesma estrutura que o vetor original. Não é obrigatório possuir o mesmo número de dimensões, pois ousuário poderá incluir, alterar, ou até mesmo excluir linhas. O importante é que a estrutura básica seja respeitada.Por exemplo:Estrutura do vetor original:|-{}aInfo <-- vetor original contendo diversas linhas (dimensões externas)
| -{}aInfo[1] <-- primeira linha/dimensão externa
| - aInfo[1][1] <-- primeira dimensão interna: descrição do totalizador
| - aInfo[1][2] <-- segunda dimensão interna: valor
| -{}aInfo[2] <-- segunda linha/dimensão externa
| -{}aInfo[3] <-- terceira linha/dimensão externa
| -{}aInfo[4] <-- quarta linha/dimensão externa
| -{}aInfo[5] <-- quinta linha/dimensão externa


Estruturas válidas para o vetor de retorno:

|-{}aRet <-- vetor de retorno contendo uma linha (dimensão externa)
| -{}aRet[1] <-- primeira linha/dimensão externa
| - aRet[1][1] <-- primeira dimensão interna: descrição do totalizador
| - aRet[1][2] <-- segunda dimensão interna: valor

Ou

|-{}aRet <-- vetor de retorno contendo duas linhas (dimensões externas)
| -{}aRet[1] <-- primeira linha/dimensão externa
| - aRet[1][1] <-- primeira dimensão interna: informação ao usuário
| -{}aRet[2] <-- segunda linha/dimensão externa
| - aRet[2][1] <-- primeira dimensão interna: informação ao usuário


Não poderá ser utilizada, por exemplo, a seguinte estrutura:

|-{}aInfo <-- vetor de retorno contendo duas linhas (dimensão externa)
| - aInfo[1] <-- primeira linha/dimensão externa
| - aInfo[2] <-- segunda linha/dimensão externa
Neste caso as linhas não possuem detalhes. Ocorrerá um ErrorLog se esta for a estrutura do vetor de retorno.
Programa Fonte
MATC050.PRX
Sintaxe

MC050INF - Manipula informações originais ( [ PARAMIXB[1] ] ) --> aRet

Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
PARAMIXB[1] Array of Record Vetor contendo as informações originais a serem exibidas.
Retorno
    aRet()
  • Vetor contendo as novas informações a serem exibidas. Deve respeitar a estrutura do vetor de origem.
Exemplos
User Function MC050INF()Local aOrigem := ParamIXB[1] // Vetor com as informações originaisLocal aRet    := {}Local nX      := 0If Len(aOrigem) > 0    For nX := 1 to Len(aOrigem)        If Len(aOrigem[nX]) > 0            If !("MOEDA" $ Upper(aOrigem[nX][1])) // Não insere no vetor as informações das moedas                aAdd(aRet, aOrigem[nX])            EndIf        EndIf    Next nXEndIfReturn aRet // retorna um vetor contendo as informações a serem exibidas
Variáveis
Nome Tipo Escopo Pode Alterar descrição
Array of Record Global Não