4D View v16

PV REPORT MANY

ホーム

 
4D View v16
PV REPORT MANY

PV REPORT MANY 


 

PV REPORT MANY ( area ; column ; row ; master ; tableBreak ; fieldBreak ; operator ; tables ; fields ; insert ; detail ; title ) 
引数   説明
area  倍長整数 in 4D View エリア
column  倍長整数 in 列番号
row  倍長整数 in 行番号
master  整数 in プライマリテーブル番号
tableBreak  整数 in ブレークが発生するテーブル番号
fieldBreak  配列 in ブレークが発生するフィールド番号
operator  整数配列 in 実行する処理
tables  整数配列 in 表示フィールドの属するテーブルの番号
fields  整数配列 in 表示フィールドの番号
insert  整数 in 0= 置き換え; 1= 行挿入
detail  整数 in 明細行挿入オプション
title  文字 in ブレークタイトル

説明   

PV REPORT MANYコマンドは、master テーブルのカレントセレクションから開始して、tablesfields で指定した4Dフィールドの値を使用し、4D View area 上にレポートを作成します。各フィールドに適用する処理は、operatorで定義します(合計、カウント、最大値等)。引数operatorを定義するには、PV Report functionsテーマ内の定数を使用します:

定数
pv report function average 倍長整数 1
pv report function count 倍長整数 4
pv report function max 倍長整数 3
pv report function min 倍長整数 2
pv report function none 倍長整数 -1
pv report function sum 倍長整数 0

生成されたレポートは、columnrowで指定したセルよりarea 上に挿入されます。

tableBreakfieldBreak は、ブレークシーケンスを実行するフィールドを指定します。ブレークにより、同種類のグループごとにレコードを区切り、各グループの中間集計を行うことができます。
ブレークとは、テーブルの並び替えにおける値の変わり目です。このブレークレベルは、並び替えの条件に関連付ける必要があります。PV REPORT MANYコマンドを使用する前に、tableBreakfieldBreak で指定したレコードセレクションに対する並び替えを行う必要があります。その際、ブレークとして考慮されない並び替え条件を更に追加しても構いません。ブレークをともなうクイックレポートの作成に関する詳細は、4Dのユーザリファレンスマニュアルを参照してください。

引数insert は、このコマンドを使用して4D View エリアに配置されるデータで既存のセルを置き換えるか、もしくは新しい行に挿入するかを決定します。この引数に0 を渡すと、データは消去されて置き換えられます。1を渡した場合、追加の行が挿入されます。

引数detail を使用すると、4D View が明細行およびブレーク行をレポートに挿入する方法を定義することができます:

  • detailに0 を渡した場合、ブレーク行だけが挿入されます(明細行は挿入されません)。
  • detailに1 を渡した場合、明細行が挿入され、ブレークの値は行ごとに繰り返し表示されます。
  • detailに2 を渡した場合、明細行が挿入されますが、ブレークの値は一度しか表示されません。

引数titleを使用して、結果の行のタイトルを設定することができます(つまり、“合計”や“平均”等です)。4D の「クイックレポート」エディタと同様に、現在のブレーク値のプレースホルダとして数値記号“#”を使用可能です。例えば、「国」フィールドがブレークフィールドである場合、タイトルには“合計: #”と指定することができます。すると、レポートには“合計:合衆国”、“合計:日本”というように表示されます。
タイトルを挿入したくない場合には、空の文字列を渡します。

Note: detailに0 を指定し、<タイトル>に空の文字列を渡した場合、最初の列は挿入されません(列は空の状態になります)。

例題  

「顧客」の入力フォーム内に組み込まれた4D View エリアに、その顧客にリンクしている「連絡先」のレポートを表示します。肩書きごとに(秘書、開発者、ドキュメント部門等)、連絡先数を示すブレークを追加します。「連絡先」テーブルと「顧客」テーブル間には自動リレートが設定されています。

 C_LONGINT($Column//列番号
 C_LONGINT($Row//行番号
 C_LONGINT($Master//マスターテーブル番号
 C_LONGINT($TableBreak//ブレークが発生するテーブル番号
 C_LONGINT($FieldBreak//ブレークが発生するフィールド番号
 ARRAY INTEGER($Operator;3) //実行する処理
 ARRAY INTEGER($Tables;3) //表示フィールドの属するテーブルの番号
 ARRAY INTEGER($Fields;3) //表示フィールド数
 C_LONGINT($Insert//0= 置き換え;1=行を挿入
 C_LONGINT($Detail//明細行挿入オプション
 C_TEXT($Title//結果行のタイトル
 
  //初期化
 $Column:=4 //列Dから表示を開始する
 $Row:=3 //3 行目から表示を開始する(タイトル+ 空の行)
 $Master:=Table(->[Contacts]) //これは「連絡先」テーブルの“レポート”である
 $TableBreak:=Table(->[Titles])
 $FieldBreak:=Field(->[Titles]Label//「連絡先」肩書き上でブレークが発生
 
  //1 列目に各タイプの数を表示
 $Operator{1}:=pv report function count
 $Tables{1}:=Table(->[Titles])
 $Fields{1}:=Field(->[Titles]Label//1 列目に肩書きのラベル
 
 $Operator{2}:=pv report function none //列2における計算は行わない
 $Tables{2}:=Table(->[Contacts])
 $Fields{2}:=Field(->[Contacts]ContactName) //2 列目に連絡先名
 
 $Operator{3}:=pv report function none //列3における計算は行わない
 $Tables{3}:=Table(->[Contacts])
 $Fields{3}:=Field(->[Contacts]ContactFirstname) //3 列目に連絡先の名前
 
 $Insert:=1 //挿入
 $Detail:=2 //明細行を挿入し、値は1度だけ表示する
 $Title:="Number of contacts for #" //“#”記号は現在のブレーク値で置き変わる
 
 RELATE MANY([Clients]Code) //顧客の連絡先を取得
  //ブレークポイントでのソートが必要+ アルファベット順に表示
 ORDER BY([Contacts];[Titles]Label;[Contacts]ContactName;[Contacts]ContactFirstname)
 
 PV REPORT MANY(Area;$Column;$Row;$Master;$TableBreak;$FieldBreak;$Operator;$Tables;$Fields;$Insert;$Detail;$Title)

セレクションはデーターベースストラクチャーレベルでのリレーションやコマンドに渡されるフィールド番号や配列に基づきます。



参照 

PV ARRAY TO CELLS
PV REPORT ONE

 
プロパティ 

プロダクト: 4D View
テーマ: PVセルの値
番号: 15904

 
履歴 

初出: 4D View 6.8

 
ARTICLE USAGE

4D View ( 4D View v16)