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 |
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.
PCOCUBE.PRW
PCORUNCUBE - Monta array com saldos de cubo ( cCodCubenQtdValcProcessacConfignViewCfg [ lZerado ] [ aNiveis ] [ aFilIni ] [ aFilFim ] [ lReserv ] [ aCfgCube ] [ lProcessa ] [ lVerAcesso ] [ lForceNoSint ] [ aItCfgBlq ] [ aFiltCfg ] [ cArqAKT ] [ lLimpArqAKT ] [ lVisao ] [ lBloqueio ] ) --> aProcessa
-
aProcessa(array_of_record)
- Array contendo informacoes dos saldos de cubos
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:
- Chave (1000345PR)
- Array contendo os valores de retorno ({ 200.00, 400.00 })
- String contendo composição da chave concatenada ( CO+CENTRO DE CUSTO+TP.SALDO )
- Alias referente ao nível do cubo (AL2)
- Expressao ADVPL para descrição (AL2->AL2_DESCRI)
- Descrição (Orcado)
- Número do Registro (1)
- Nivel do Cubo (3)
- Chave do nivel anterior (1000345)
- Indicador lógico se a chave se refere a uma conta sintética (.F.)
- Número do elemento pai (2)
- Indicador lógico se saldo existente na tabela de saldos AKT (.T.)
- Descriçao da configuração utilizada (Config.Orcado)
- Descrição Alternativa (Orcado)
- Indicador lógico se a chave do nivel anterior existe na tabela de saldo AKT (.F.)
//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)
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 |