Command PV REPORT MANY

4D View

PV REPORT MANY

version 6.8


PV REPORT MANY (area; column; row; master; tableBreak; fieldBreak; operator; tables; fields; insert; detail; title)

ParameterTypeDescription
areaLongint4D View area
columnLongintColumn number
rowLongintRow number
masterIntegerPrimary table number
tableBreakIntegerTable number where break occurs
fieldBreakArrayField number where break occurs
operatorArray integerOperations to execute
tablesArray integerTable number of fields to display
fieldsArray integerNumber of fields to display
insertInteger0 = Replace; 1 = Insert rows
detailIntegerDetail insertion options
titleStringBreak title

Description

The PV REPORT MANY command creates a report in the 4D View area using the values from 4D fields specified in tables and fields starting from the current selection of the master table. An operation can be applied to each of these fields defined by operator: subtotal, number, maximum, etc. To define the operator parameter, use the constants in the PV Report functions theme.

The generated result is inserted in the area from the cell set by column and row.

tableBreak and fieldBreak assign the field where the break sequence will be executed. The breaks allow separating records in homogenous groups and executing intermediary calculations for each group.

A break is a value change in an order by table. It is necessary to associate this break level to an order by criteria. The order by for a selection of tableBreak and fieldBreak records is necessary before using the PV REPORT MANY command. It may have additional order by criteria that will not be considered in the break. For more information on building quick reports with breaks, refer to the 4D Design Reference manual.

The insert parameter determines if the data placed in the 4D View area using this command must either replace cells that may be present or must be inserted into new rows. If you pass 0, the data is cleared and replaced. If you pass 1, additional rows are inserted.

The detail parameter allows you to define the way 4D View will insert the detail as well as the break rows in the report:

• If you pass 0 in detail, only break rows are inserted (the detail rows are not inserted).

• If you pass 1 in detail, the detail rows are inserted and the break value is repeated on each row.

• If you pass 2 in detail, the detail rows are inserted but the break value is only displayed once.

The title parameter allows you to set the title of the result row (i.e., "Total", "Average", etc.). As in the 4D Quick Report editor, you can use the # character as a placeholder for the current break value. For example, if the "Country" field is your break field, you can pass "Total for #:" in title. The report will display "Total for USA:" then "Total for Japan:", etc.

Pass an empty string if you do not want to insert a title.

Note: If detail is set to 0 and the title is an empty string, the first column is not inserted (it would then be empty).

Example

Display, in an included 4D View area in the client entry form, a report of contacts linked to this client, with a break indicating the number of contacts for each title: secretary, developer, documentation department, etc. An automatic relation exists between the contacts table and the titles table.

   C_LONGINT($Column)  `Column number
   C_LONGINT($Row)  `Row number
   C_INTEGER($Master)  `Master table number
   C_INTEGER($TableBreak)  `Table number where break occurs
   C_INTEGER($FieldBreak)  `Field number wher break occurs
   ARRAY INTEGER($Operator;3)  `Operations to execute
   ARRAY INTEGER($Tables;3)  `Table number of fields to display
   ARRAY INTEGER($Fields;3)  `Number of fields to display
   C_INTEGER($Insert)  `0=Replace;1=Insert rows
   C_INTEGER($Detail)  `Detail display options
   C_STRING(30;$Title)  `Title of the result row

      `Initialize
   $Column:=4  `Display starting at column D
   $Row:=3  `Display starting in the 3rd row  (Title + empty row)
   $Master:=Table(->[Contacts])  `This is a "report" of the contacts table
   $TableBreak:=Table(->[Titles])
   $FieldBreak:=Field(->[Titles]Label)  `Break will occur on contact title

      `Display in column 1 the number for each type
   $Operator{1}:=pv report function count
   $Tables{1}:=Table(->[Titles])
   $Fields{1}:=Field(->[Titles]Label)  `Label of column 1 title

   $Operator{2}:=pv report function none  `No calculation in column  2
   $Tables{2}:=Table(->[Contacts])
   $Fields{2}:=Field(->[Contacts]ContactName)  `Name of contact column 2

   $Operator{3}:=pv report function none  `No calculation in column 3
   $Tables{3}:=Table(->[Contacts])
   $Fields{3}:=Field(->[Contacts]ContactFirstname)  `First name of contact column 3

   $Insert:=1  `Insert
   $Detail:=2   `Detail rows are inserted, values are displayed once 
   $Title:="Number of contacts for #"   `The # will be replaced by the current break value 

   RELATE MANY([Clients]Code)  `Get client contracts
       `Sort necessary at break + display in alphabetical order
   ORDER BY([Contacts];[Titles]Label;[Contacts]ContactName;[Contacts]ContactFirstname)

   PV REPORT MANY (Area;$Column;$Row;$Master;$TableBreak;$FieldBreak;$Operator;$Tables;
                           $Fields;$Insert;$Detail;$Title)

See Also

PV ARRAY TO CELLS, PV REPORT ONE.

Constants

PV Report functions theme.

Current Selections and Records

The selection will depend on links between tables at the database structure level, field numbers and arrays passed as a parameter to the command.