Home

Linha Microsiga Protheus

Páginas filhas
  • PCORUNCUBE - Monta array com saldos de cubo -- 12507

Função: PCORUNCUBE - Monta array com saldos de cubo
Versões: Microsiga Protheus 8.11 , Protheus 10
Compatível Países: Todos
Sistemas Operacionais: Todos
Compatível às Bases de Dados: Todas TotvsDbAccess
Nível de Acesso: Nível 1 (Acesso Clientes)
Idiomas: Espanhol , Inglês
Descrição:
Serve para montar um array contendo os saldos de cubo das chaves em determinado período e outras informaçoes para utilização em consultas e relatórios. Sempre esta associado a uma função que monta os valores dos saldos que deve ser uma funcao padrão ou de usuário (User Function), sendo que no caso de user function a passagem deve ser U_+ nome da função.
Programa Fonte:
PCOCUBE.PRW
Sintaxe:

PCORUNCUBE - Monta array com saldos de cubo ( cCodCubenQtdValcProcessacConfignViewCfg [ lZerado ] [ aNiveis ] [ aFilIni ] [ aFilFim ] [ lReserv ] [ aCfgCube ] [ lProcessa ] [ lVerAcesso ] [ lForceNoSint ] [ aItCfgBlq ] [ aFiltCfg ] [ cArqAKT ] [ lLimpArqAKT ] [ lVisao ] [ lBloqueio ] ) --> aProcessa

Retorno:
    aProcessa(array_of_record)
  • Array contendo informacoes dos saldos de cubos
Observações

A funçao associada é passada no parâmetro 3 - cProcessa e deve retornar um vetor do tamanho estipulado no parâmetro 2 - nQtdVal contendo valores numéricos que estarão contido no array aProcessa no segundo (2) elemento.

Em resumo a função PcoRunCube(...) monta as chaves que são a combinação das dimensões do cubo depois de aplicado os filtros definidos na configuração de cubo e para cada chave executa a função associada que retorna os valores dos saldos.

Exemplificando:

Cubo "01" com as Dimensões : Conta Orçamentaria (4 Posições)+ Centro de Custo (3 Posições) + Tipo de Saldo (2 Posições)

Configuraçao Cubo "OR" que filtra os tipos de saldos "OR"

Conta Orcamentaria: 1000 - Recursos Extras

Centro de Custo: 345 - Producao de Engrenagens

Tipo de Saldo: OR - Orcado

Por combinação temos a seguinte chave: 1000345PR

Saldo Final  em  31/01/2008 - 200,00

                           31/03/2008 - 400,00

 

Neste caso chamaremos a função da seguinte forma:

PcoRunCube("01", 2, "ConSaldo", "OR", 0, .F.)

                       ^------------------- Código do Cubo

                                ^------------------- Quantidade de Valores

                                         ^------------------- Função de Retorno dos Valores de Saldos

                                                          ^------------------- Configuração de Cubo

                                                                ^------------------- Não editar Parâmetros Configuração de Cubo

                                                                           ^------------------- Não Retornar Valores Zerados

Neste caso temos a função que será executada para retorno dos valores de saldos:

Function ConSaldo(cConfig,cChave)

Local aRetSld := {}

//onde cConfig é o codigo do cubo e cChave é a chave a ser consultada

aAdd(aRetSld, PcoRetSld( cConfig,cChave,CTOD("31/01/08") )

aAdd(aRetSld, PcoRetSld( cConfig,cChave,CTOD("31/03/08") )

Return(aRetSld)

//------------------------------

O retorno da funcao PcoRunCube é um array multidimensional que deverá ser atribuido em uma variável do tipo array, que no caso do exemplo acima possuirá 3 linhas, uma para a chave referente ao primeiro nivel (conta), uma para o segundo nível(conta+centro de custo) e uma terceira linha para o terceiro nível do cubo (conta+centro de custo+tipo de saldo),  onde cada linha contem uma chave com  os seguintes elementos:

  1. Chave (1000345PR)
  2. Array contendo os valores de retorno ({ 200.00, 400.00 })
  3. String contendo composição da chave concatenada     (  CO+CENTRO DE CUSTO+TP.SALDO )
  4. Alias referente ao nível do cubo  (AL2)
  5. Expressao ADVPL para descrição (AL2->AL2_DESCRI)
  6. Descrição (Orcado)
  7. Número do Registro (1)
  8. Nivel do Cubo (3)
  9. Chave do nivel anterior (1000345)
  10. Indicador lógico se a chave se refere a uma conta sintética (.F.)
  11. Número do elemento pai (2)
  12. Indicador lógico se saldo existente na tabela de saldos AKT (.T.)
  13. Descriçao da configuração utilizada  (Config.Orcado)
  14. Descrição Alternativa (Orcado)
  15. Indicador lógico se a chave do nivel anterior existe na tabela de saldo AKT (.F.)

 

Exemplos
//Cubo "01" com as Dimensões : Conta Orçamentaria (4 Posições)+ Centro de Custo (3 Posições) + Tipo de //Saldo (2 Posições)//Configuraçao Cubo "OR" que filtra os tipos de saldos "OR"//Conta Orcamentaria: 1000 - Recursos Extras//Centro de Custo: 345 - Producao de Engrenagens//Tipo de Saldo: OR - Orcado//Por combinação temos a seguinte chave: 1000345PR//Saldo Final  em  31/01/2008 - 200,00//                           31/03/2008 - 400,00Local aProc aProc := PcoRunCube("01", 2, "ConSaldo", "OR", 0, .F.)//--------------------------------Function ConSaldo(cConfig,cChave)Local aRetSld := {}aAdd(aRetSld, PcoRetSld( cConfig,cChave,CTOD("31/01/08") )aAdd(aRetSld, PcoRetSld( cConfig,cChave,CTOD("31/03/08") )Return(aRetSld)
Parâmetros:
Nome Tipo Descrição Default Obrigatório Referência
cCodCube Caracter Código do Cubo X
nQtdVal Numérico Quantidade de Valores de Retorno X
cProcessa Caracter Nome da Função de Calculo dos Valores de Retorno X
cConfig Caracter Código da Configuração de Cubo (Filtros) X
nViewCfg Numérico Valor 1 para Editar a Configuração de Cubo (Filtros) X
lZerado Lógico Indica se Considera Valores Zerados .F.
aNiveis Vetor Vetor para Retorno dos Níveis Selecionados do Cubo {}
aFilIni Vetor Vetor com Valores Iniciais da Configuração do Cubo
aFilFim Vetor Vetor com Valores Finais da Configuração do Cubo
lReserv Lógico Reservado - Nao Utilizar
aCfgCube Vetor Vetor para Retornar os Valores dos Parâmetros da Tela de Configuração de Cubo {}
lProcessa Lógico Indica se Exibirá Barra de Progresso do Processamento .T.
lVerAcesso Lógico Indica se Verifica Restrição de Acesso a Configuração de Cubo .F.
lForceNoSint Lógico Indica se Exibe Sintéticas a partir do 2o. nível do Cubo .F.
aItCfgBlq Array of Record Vetor para Retorno dos Parâmetros quando Chamada por Bloqueio
aFiltCfg Vetor Vetor contendo os Filtros para Cada Nível do Cubo
cArqAKT Caracter Nome do Arquivo Temporário das Chaves de Saldos (Uso Interno)
lLimpArqAKT Lógico Indica que Apagará Arquivo Temporarios das Chaves de Saldos (Uso Interno)
lVisao Lógico Indica que foi Chamada pela Rotina de Visão
lBloqueio Lógico Indica que foi Chamada pela Rotina de Bloqueio