Histórico da Página
PC200ORD - Ordenacao 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.PRX |
Retorno: | bSort retorna Rtorna o bloco de código cujo o cliente deseja que os componentes sejam ordenadoscom 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. No exemplo abaixo mostramos quais campos estão disponíveis para o cliente manipular a ordenação e suas devidas posições. 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"
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
Exemplo:
USER FUNCTION PC200ORD(aLoad)
Local aLoad := PARAMIXB
aSort(aLoad,,,{|x,y| x[2][5] < y[2][5]} )
Return aLoad