4D View v16PV REPORT MANY |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D View v16
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 |
![]() |
Área 4D View | |||||
coluna | Inteiro longo |
![]() |
Número de coluna | |||||
linha | Inteiro longo |
![]() |
Número de linha | |||||
master | Inteiro |
![]() |
Número de tabela primária | |||||
tabelaRuptura | Inteiro |
![]() |
Número de tabela onde ocorre a ruptura | |||||
campoRuptura | Array |
![]() |
Número de campo onde ocorre a ruptura | |||||
operador | Array inteiro |
![]() |
Operações a executar | |||||
tabelas | Array inteiro |
![]() |
Números de tabelas dos campos a mostrar | |||||
campos | Array inteiro |
![]() |
Números dos campos a mostrar | |||||
inserir | Inteiro |
![]() |
0 = Substituir; 1 = Inserir linhas | |||||
detalhe | Inteiro |
![]() |
Opções de inserção de detalhe | |||||
titulo | String |
![]() |
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 detalhe permite definir a forma em que 4D View irá inserir o detalhe, assim como as linhas de ruptura no relatório:
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).
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.
Produto: 4D View
Tema: PV Valor célula
Número
15904
Criado por: 4D View 6.8
4D View Linguagem ( 4D View v16)