4D View v16

PV REPORT MANY

Página Inicial

 
4D View v16
PV REPORT MANY

PV REPORT MANY 


 

PV REPORT MANY ( area ; coluna ; linha ; master ; tabelaRuptura ; campoRuptura ; operador ; tabelas ; campos ; inserir ; detalhe ; titulo ) 
Parâmetro Tipo   Descrição
area  Inteiro longo in Área 4D View
coluna  Inteiro longo in Número de coluna
linha  Inteiro longo in Número de linha
master  Inteiro in Número de tabela primária
tabelaRuptura  Inteiro in Número de tabela onde ocorre a ruptura
campoRuptura  Array in Número de campo onde ocorre a ruptura
operador  Array inteiro in Operações a executar
tabelas  Array inteiro in Números de tabelas dos campos a mostrar
campos  Array inteiro in Números dos campos a mostrar
inserir  Inteiro in 0 = Substituir; 1 = Inserir linhas
detalhe  Inteiro in Opções de inserção de detalhe
titulo  String in Título de ruptura

O comando PV REPORT MANY cria um relatório na area 4D View utilizando os valores dos campos 4D definidos por tabelas e campos a partir da seleção atual da tabela master. É possível aplicar a cada um destes campos uma operação, definida por operador: subtotal, número, máximo, etc. Para definir o parâmetro operador, utilize as constantes do tema PV Funções relatórios:

Constante Tipo Valor
pv report function average Inteiro longo 1
pv report function count Inteiro longo 4
pv report function max Inteiro longo 3
pv report function min Inteiro longo 2
pv report function none Inteiro longo -1
pv report function sum Inteiro longo 0

O resultado gerado se insere na area a partir da célula designada por linha e coluna.

tabelaRuptura e campoRuptura designam o campo onde se realiza a sequência de ruptura. As rupturas permitem separar os registros em grupos homogêneos e realizar cálculos intermediários para cada grupo.
Uma ruptura é uma mudança de valor em uma tabela de ordem. É necessário associar este nível de ruptura com um critério de ordem. A ordem de uma seleção de registros de tabelaRuptura e campoRuptura é necessária antes de utilizar o comando PV REPORT MANY. Pode ter critérios de ordem adicionais, que não serão levados em conta na ruptura. Para mais informação sobre a construção de relatórios rápidos com rupturas, consulte o Manual de Desenho 4D.

O parâmetro inserir determina se os dados localizados na área 4D View por este comando devem substituir as células que podem estar presentes ou devem ser inseridas nas novas linhas. Se passar 0, os dados são apagados e substituídos. Se passar 1, as linhas adicionais se inserem.

O parâmetro detalhe permite definir a forma em que 4D View irá inserir o detalhe, assim como as linhas de ruptura no relatório:

  • Se passar 0 em detalhe, só são inseridas as linhas de ruptura (as linhas de detalhe não se inserem).
  • Se passar 1 em detalhe, se inserem as linhas de detalhe e os valores de ruptura se repete em cada linha.
  • Se passar 2 em detalhe, se inserem as linhas de detalhe e os valores de rupturas se mostram uma só vez.

O parâmetro titulo permite definir o título da linha de resultados (ou seja, "Total", "Média", etc.) Ao igual que no Editor de relatórios rápidos de 4D, pode utilizar o caractere # como um marcador para o valor de ruptura atual. Por exemplo, se o campo "País" é seu campo de ruptura, pode passar "Total para #:" em título. O relatório mostrará "Total de EE.UU.:" e depois "Total de Japão", etc.
Passe uma cadeia vazia se não se deseja inserir um título.

Nota: Se detalhe vale 0 e o título é uma cadeia vazia, a primeira coluna não seria inserida (estaria vazia).

Exemplo  

Mostramos, em uma área 4D View incluída no formulário de entrada dos clientes, um relatório de contatos relacionados com este cliente, com uma ruptura que indica o número de contatos para cada título: secretária, programador, departamento de documentação, etc. Uma relação automática existe entre a tabela de contatos e a de títulos.

 C_LONGINT($Column//Nùmero da coluna
 C_LONGINT($Row//Número da linha
 C_LONGINT($Master//Número da tabela mestre
 C_LONGINT($TableBreak//Número da tabela onde a quebra ocorre
 C_LONGINT($FieldBreak//Número do campo onde a quebra ocorre
 ARRAY INTEGER($Operator;3) //Operações a executar
 ARRAY INTEGER($Tables;3) //Número da tabela dos campos a mostrar
 ARRAY INTEGER($Fields;3) //Números dos campos a mostrar
 C_LONGINT($Insert//0=Substituir;1=Inserir linhas
 C_LONGINT($Detail//Mostra Opções detalhe
 C_TEXT($Title//Título da linha resultado
 
  //Initializar
 $Column:=4 //Display starting at column D
 $Row:=3 `Display starting in the 3rd row (Title + empty row)
 $Master:=Table(->[Contacts]) //Este é um relatório da tabela contatos
 $TableBreak:=Table(->[Titles])
 $FieldBreak:=Field(->[Titles]Label//Quebra acontece no título de contato
 
  //Mostra na coluna 1 o número para cada tipo
 $Operator{1}:=pv report function count
 $Tables{1}:=Table(->[Titles])
 $Fields{1}:=Field(->[Titles]Label//Etiqueta de título da coluna1
 
 $Operator{2}:=pv report function none //Sem calcúlo na coluna 2
 $Tables{2}:=Table(->[Contacts])
 $Fields{2}:=Field(->[Contacts]ContactName) //Nome de contato coluna 2
 
 $Operator{3}:=pv report function none ///Sem calcúlo na coluna 3
 $Tables{3}:=Table(->[Contacts])
 $Fields{3}:=Field(->[Contacts]ContactFirstname) //Primeiro nome de contato coluna 3
 
 $Insert:=1 //Inserir
 $Detail:=2 //Linhas de Detalhe são inseridas, valores exibidos uma vez
 $Title:="Number of contacts for #" //O # será substituido pelo valor de quebra atual
 
 RELATE MANY([Clients]Code) //Consegue contratos clientes
  //Ordenação necessária na quebra + exibe em ordem alfabética
 ORDER BY([Contacts];[Titles]Label;[Contacts]ContactName;[Contacts]ContactFirstname)
 
 PV REPORT MANY(Area;$Column;$Row;$Master;$TableBreak;$FieldBreak;$Operator;$Tables;
 $Fields;$Insert;$Detail;$Title)

A seleção vai depender dos links entre tabelas a nível da estrutura da base, dos números de campos e de tabelas passadas como parâmetros ao comando.



Ver também 

PV ARRAY TO CELLS
PV REPORT ONE

 
PROPRIEDADES 

Produto: 4D View
Tema: PV Valor célula
Número 15904

 
HISTÓRIA 

Criado por: 4D View 6.8

 
ARTICLE USAGE

4D View Linguagem ( 4D View v16)