import.css=/download/attachments/327912/newLayout.css

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:
NomeTipoDescriçãoDefaultObrigatórioReferência
cCodCubeCaracterCódigo do CuboX
nQtdValNuméricoQuantidade de Valores de RetornoX
cProcessaCaracterNome da Função de Calculo dos Valores de RetornoX
cConfigCaracterCódigo da Configuração de Cubo (Filtros)X
nViewCfgNuméricoValor 1 para Editar a Configuração de Cubo (Filtros)X
lZeradoLógicoIndica se Considera Valores Zerados.F.
aNiveisVetorVetor para Retorno dos Níveis Selecionados do Cubo{}
aFilIniVetorVetor com Valores Iniciais da Configuração do Cubo
aFilFimVetorVetor com Valores Finais da Configuração do Cubo
lReservLógicoReservado - Nao Utilizar
aCfgCubeVetorVetor para Retornar os Valores dos Parâmetros da Tela de Configuração de Cubo{}
lProcessaLógicoIndica se Exibirá Barra de Progresso do Processamento.T.
lVerAcessoLógicoIndica se Verifica Restrição de Acesso a Configuração de Cubo.F.
lForceNoSintLógicoIndica se Exibe Sintéticas a partir do 2o. nível do Cubo.F.
aItCfgBlqArray of RecordVetor para Retorno dos Parâmetros quando Chamada por Bloqueio
aFiltCfgVetorVetor contendo os Filtros para Cada Nível do Cubo
cArqAKTCaracterNome do Arquivo Temporário das Chaves de Saldos (Uso Interno)
lLimpArqAKTLógicoIndica que Apagará Arquivo Temporarios das Chaves de Saldos (Uso Interno)
lVisaoLógicoIndica que foi Chamada pela Rotina de Visão
lBloqueioLógicoIndica que foi Chamada pela Rotina de Bloqueio