Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

PC200ORD -

Ordenacao

Ordenação de componentes

Linha de Produto:

Protheus

Segmento:

Manufatura

Módulo:

SIGAPCP - Planejamento e Controle da Produção

Idiomas:

Português(Brasil)

País(es):

Todos

Banco(s) de Dados:

Todos

Sistema(s) Operacional(is):

Todos

Ponto de Entrada

Descrição:

O ponto de entrada PC200ORD é executado antes da visualização de uma estrutura de produtos pelo PCPA200.

Localização:

Function LoadCompon - Responsável por carregar os componentes de uma estrutura.

Caso o ponto de entrada retornar falsoNil, o cadastro de estrutura retorna os componentes ordenados da maneira que foi cadastrado.

Programa Fonte:PCPA200.PRXPRW
Retorno:

aLoad(array)

retorna os componentes ordenados da maneira que o cliente preferir pelo Ponto de Entrada

Observações

bSort

Retorna o bloco de código com a ordenação a ser realizada no array dos componentes.


Observações:

A primeira posição para a condição do bSort é necessário ser 2, e a segunda o campo que o cliente deseja fazer a ordenação. 

O array que é passado por parâmetro para o ponto de entrada possui os campos da tabela SG1, e podem ser acessados conforme exemplo.



Exemplo:


#INCLUDE "PROTHEUS.ch"CH"



USER FUNCTION PC200ORD()
    Local aPosic  := PARAMIXB //Array com os campos disponíveis para ordenação.
    Local nPosPai := aScan(aPosic, {|x| x[3] == "G1_COD"})
    Local nPosCmp := aScan(aPosic, {|x| x[3] == "G1_COMP"})
    Local nPosTrt := aScan(aPosic, {|x| x[3] == "G1_TRT"})
    Local nPosQtd := aScan(aPosic, {|x| x[3] == "G1_QUANT"})
    Local nPosPer := aScan(aPosic, {|x| x[3] == "G1_PERDA"})
    Local nPosIni := aScan(aPosic, {|x| x[3] == "G1_INI"})
    Local nPosFim := aScan(aPosic, {|x| x[3] == "G1_FIM"})
    Local nPosObs := aScan(aPosic, {|x| x[3] == "G1_OBSERV"})
    Local nPosFix := aScan(aPosic, {|x| x[3] == "G1_FIXVAR"})
    Local nPosGop := aScan(aPosic, {|x| x[3] == "G1_GROPC"})
    Local nPosOpc := aScan(aPosic, {|x| x[3] == "G1_OPC"})
    Local nPosRin := aScan(aPosic, {|x| x[3] == "G1_REVINI"})
    Local nPosRfi := aScan(aPosic, {|x| x[3] == "G1_REVFIM"})
    Local nPosPot := aScan(aPosic, {|x| x[3] == "G1_POTENCI"})
    Local nPosTve := aScan(aPosic, {|x| x[3] == "G1_TIPVEC"})
    Local nPosVec := aScan(aPosic, {|x| x[3] == "G1_VECTOR"})
    Local nPosAlt := aScan(aPosic, {|x| x[3] == "G1_USAALT"})
    Local nPosLoc := aScan(aPosic, {|x| x[3] == "G1_LOCCONS"})
    Local nPosFan := aScan(aPosic, {|x| x[3] == "G1_FANTASM"})
    Local nPosLis := aScan(aPosic, {|x| x[3] == "G1_LISTA"})

    Local bSort   := Nil
    //sempre será ordenado pela posição 2 seguida do campos desejado pelo cliente
    bSort := {|x, y| x[2][nPosTrt] > y[2][nPosTrt]}

    Return bSort

USER FUNCTION PC200ORD(aLoad)
    Local aLoad := PARAMIXB
    aSort(aLoad,,,{|x,y| x[2][5] < y[2][5]} )
    
Return aLoad