4D v16.3

QR REPORT

ホーム

 
4D v16.3
QR REPORT

QR REPORT 


 

QR REPORT ( {aTable ;} document {; hierarchical {; wizard {; search {; methodName {; *}}}} ) 
引数   説明
aTable  テーブル in レポートを作成するテーブル、省略時はデフォルトテーブル
document  文字 in ロードするクイックレポートドキュメント
hierarchical  ブール in True = リレートするnテーブルを表示 Falseまたは省略 = 表示しない (デフォルト)
wizard  ブール in True = ウィザード・ボタンを表示 Falseまたは省略 = 表示しない (デフォルト)
search  ブール in True = 検索ツールとマスターテーブル選択を表示する Falseまたは省略 = 表示しない (デフォルト)
methodName  文字 in 呼び出すメソッド名
演算子 in プリントダイアログボックスを表示しない

説明   

QR REPORTはクイックレポートエディターを用いて作成された、aTableのレポートを印刷します。このエディターを使用するとユーザーは独自のレポートを作成できるようになります。クイックレポートエディターを使用してレポートを作成する事については、4Dデザインリファレンスマニュアルのクイックレポート or クイックレポート(64-bit版)の章を参照して下さい。

注:

  • aTableが“非表示”に定義されている場合、エディターは表示されません。
  • エディターがQR REPORTコマンドを使用して呼び出された場合、マニュアルのステータスがあるテーブル間のリレーションについてはその状態が保持されます。デベロッパーはSET AUTOMATIC RELATIONSおよびSET FIELD RELATIONコマンドを使用して、リレートの状態を制御することができます。32-bit版においては、リレーションの自動とマニュアルを切り替えるすべてのリレートを自動にするオプションが非表示となっています。
  • エディターは外部ウィンドウ内に呼び出され、このコンテキストでQR ON COMMANDコマンドを使用することはできません。しかしながら、インターフェースコマンドが有効化されている際には、 methodName 引数を使用してカスタムコードを実行することができます。

document引数には、クイックレポートエディターを用いて作成され、ディスク上に保存されたレポートドキュメントを渡します。このドキュメントにはレポートに関する仕様が納められ、印刷されるレコードは含みません。
documentに空の文字列 ("") が指定されると、QR REPORTはファイルを開くダイアログボックスを表示し、ユーザは印刷するレポートを選択することができます。
document引数にドキュメントが指定され、そのドキュメントが存在しない場合(例えばdocumentChar(1)を指定)、クイックレポートエディターが表示されます。

32-bit 版のみ:
  • hierarchical引数は、フィールド選択リストにnテーブルを表示するかどうかを定義します。デフォルトでこの値はFalse (nテーブルを表示しない) に設定されています。
  • wizard引数には、クイックレポートエディター上にウィザードを開くボタンを表示するかどうかを指定し、結果としてウィザードへのアクセスを許可または禁止します。デフォルトでこの値はFalse (ウィザードへのアクセス不可) に設定されます。
  • search引数には、クイックレポートエディター上に新規クエリボタンとマス ターテーブルドロップダウンメニューを表示するかどうかを指定し、結果としてカレントテーブルとカレントマスターテーブルの変更を許可または禁止します。 デフォルトでこの値はFalse (検索ツールやマスターテーブルへアクセス不可) に設定されます。
  • methodName 引数は、メニューから選択、またはボタンをクリックすることによってQuick Reportエディターを呼び出すたびに実行される4D プロジェクトメソッドを指定します。この引数を使用することはQuick Reportエディターウィンドウのコンテキストにおいて QR ON COMMAND を使用することと同等の効果があります([#cmd id="790"/] は範囲内のエリアのコンテキストにしか効果がありません)。具体的には、この新しい引数を使用してQuick Reportにて使用される文字コードを変更することが可能です。
    methodName メソッドは二つの引数を受け取ることが可能です:
    • $1 にはエリア参照が格納されます(倍長整数)。
    • $2 には選択したコマンドの数が格納されます(倍長整数)。この値は QR Commands テーマ内の定数と比較可能です。

    注:データベースをコンパイラーを使用してコンパイルしたい場合、使わない場合でも引数 $1 と $2 を明示的に倍長整数だと宣言する必要があります。

    ユーザーによって選択された先頭のコマンドを実行したい場合、以下のコードを methodName メソッド内で使用して下さい:


    methodName 引数に空の文字列("")が渡されるか省略された場合、メソッドは何も呼び出されず、 QR REPORT の標準オペレーションが適用されます。

注: データベースをコンパイラーを使用してコンパイルしたい場合、使わない場合でも引数 $1 と $2 を明示的に倍長整数だと宣言する必要があります。

ユーザーによって選択された先頭のコマンドを実行したい場合、以下のコードを methodName メソッド内で使用して下さい:


methodName 引数に空の文字列("")が渡されるか省略された場合、メソッドは何も呼び出されず、 QR REPORT の標準オペレーションが適用されます。

引数 * を指定しない場合、レポートの選択後に印刷ダイアログが表示されます。この引数を指定すると、これらのダイアログボックスは表示されず、レポートが印刷されます。

クイックレポートエディターが起動されない場合、レポートが印刷されるとシステム変数OKには1が、印刷されない場合 (つまり、ユーザーが印刷ダイアログでキャンセルをクリックした場合) には0が代入されます。

4D Server: このコマンドは、ストアドプロシージャーのコンテキストで、4D Server上で実行することができます。この場合次の制約があります:

  • サーバーマシン上にはダイアログボックスを一切表示しないでください(特定の必要性がある場合を除く)。これを実現するには、コマンドを呼び出す際に、引数 * を指定する必要があります。
  • 4D Serverではクイックレポートエディターを表示させる構文は動作しません。これを行った場合、システム変数OKは0に設定されます。
  • プリンター関連の問題が発生しても(用紙切れ、プリンター接続切断など)、エラーメッセージは生成されません。

次の例では、ユーザが[People]テーブルを検索した後に、“Detailed Listing”というレポートが自動的に印刷されます:

 QUERY([People])
 If(OK=1)
    QR REPORT([People];"Detailed Listing";False;False;False;*)
 End if

次の例題では、ユーザは[People]テーブルを検索した後に、印刷するレポートを選択することができます:

 QUERY([People])
 If(OK=1)
    QR REPORT([People];"";False;False;False)
 End if

次の例題では、ユーザが[People]テーブルを検索した後にクイックレポートエディタが表示され、レポートの設計、保存、ロード、印刷を行うことができます:

 QUERY([People])
 If(OK=1)
    QR REPORT([People];Char(1);False;True)
 End if

SET FIELD RELATION コマンドの例題参照

QR REPORT コマンドを使用して呼び出されたQuick Reportにて使用される文字コードを Mac Romanに変更したい場合:

 QR REPORT([MyTable];Char(1);False;False;False;"myCallbackMeth")

レポートが生成される際、 myCallbackMeth メソッドによってレポートを変換します:

 C_LONGINT($1;$2)
 If($2=qr cmd generate//レポートが生成されたとき
    C_BLOB($myblob)
    C_TEXT($path;$text)
    C_LONGINT($type)
    QR EXECUTE COMMAND($1;$2//コマンドの実行
    QR GET DESTINATION($1;$type;$path//型の取得
    If(($type=qr HTML file)|($type=qr text file))
       DOCUMENT TO BLOB($path;$myblob)
  //UTF-8を使用してテキストへと変更
       $text:=Convert to text($myblob;"UTF-8")
  //MacRoman 文字列を使用
       CONVERT FROM TEXT($text;"MacRoman";$myblob)
  //変換されたレポートを返す
       BLOB TO DOCUMENT($path;$myblob)
    End if
 Else //そうでなければ、コマンドを実行
    QR EXECUTE COMMAND($1;$2)
 End if



参照 

PRINT LABEL
PRINT SELECTION
SET ALLOWED METHODS

 
プロパティ 

プロダクト: 4D
テーマ: クイックレポート
番号: 197

このコマンドはOKシステム変数を更新しますリモートモードでは動作が異なります。

 
履歴 

変更: 4D 2004
変更: 4D v14

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)