Toxsoft
Powered by Google

Pegasus Reports Q&A

サポート技術情報


ホーム > ダウンロード > Pegasus Reports > Q&A

ここでは、Pegasus Reports についての、よくある質問とその答えを紹介します。


インストールについて

動作環境について

プログラミングについて

レポートデザイナーについて

プレビュー機能について

バージョンアップについて

確認されている不都合・制限事項と対処方法

その他


インストールについて

Q.インストール元のファイルが足りないため、正常にインストールできない。 (1996/07/12)

圧縮ファイルは、必ずディレクトリ付きで解凍してください。 DOS上で解凍するときは、LHA e ・・・ではなくて、LHA x ・・・としてください。 Windows上で解凍するときは、ディレクトリ付きで解凍するチェックボックスをチェックするようにしてください。


動作環境について

Q.VB5やAccess97では使用できるのか。 (1997/10/23)

正式には対応していませんが、制限なく使用できます。 試用版でも実際にプログラミングができますので、実際にVB5やAccess97で動作するか、サンプルを開くなどして確認してください。

Q.必要メモリについて。 (1997/10/23)

Pegasus Reportsはコンパクトに作成されていますので、多くのメモリは必要としません。必要なメモリ容量は、お客様が作成したアプリケーションソフトに依存します。

Q.ユーザー定義サイズに対応しているプリンタについて。 (1997/10/23)

プリンタの設定でユーザー定義サイズが選択できるドライバは、ユーザー定義サイズに対応しています。 Pegasus Reportsからユーザー定義サイズを使えるかどうかは、実際にそのプリンタがなくてもドライバだけをインストールして、Pegasus Reportsのプレビュー機能を使うことで確認できます。

Q.連続用紙に印刷したい。 (1997/10/23)

連続帳票が使用できるかどうかは、プリンタドライバに依存します。プリンタドライバの連続帳票の用紙番号を、PR_Start等の用紙サイズ定数の代わり に指定してください。ただし、用紙番号が 255以上の場合は、Pegasus Reportsでは使用できません。ユーザー定義サイズで代用できることもありますが、用紙サイズは1/10ミリ単位でしか指定できませんので、連続用紙の場合は累積の誤差が出ることがあります。 また、PR_SavePrinterSetting、PR_LoadPrinterSettingを使用することで、プリンタのすべての設定を詳細に行うことができます。詳しくはプリンタを詳細かつ確実に制御するにはをご覧ください。

Q.Accessで使用するには。 (1997/10/23)

Accessも、VBとほぼ同じ手順で作成できます。 モジュールに PREPORTS.BASまたは PREPOR32.BASを読み込むことで、Pegasus Reportsのファンクションと定数が使用できるようになります。 PR_Start系関数の hWnd引数(ウィンドウハンドル)には、フォームの hWndプロパティを設定してください。

Q.実行に必要ファイルについて。 (1997/10/23)

Pegasus Reportsを使用したアプリケーションに必要なファイルは、「PREPORTS.DLL」(16Bit)または「PREPOR32.DLL」(32Bit)です。これらのファイルは、お客様が作成されたアプリケーションとともにランタイムライセンス無料で再配布できます。

Q.WindowsMe、2000、XPでは使用できるのか。 (2003/05/14)

WindowsMe、2000、XPには正式に対応していませんが、正常に動作はします。使用される際は、十分なテストを行ってから使用してください。

Q.日本語以外の言語では使用できるのか。 (2003/05/14)

本ソフトは、日本語のシフトJISのみに対応しています。Unicodeを含め、他の言語では使用できません。


プログラミングについて

Q.レポートファイルが読み込めない。 (1996/07/12)

ファイル名、ディレクトリ名を確認してください。拡張子「.PRP」は省略できません。 また、試用版で作成したレポートファイルは正式版では使用できません。正式版のレポートデザイナーで読み込んで、保存しなおしてください。

Q.レポートのテキストが変更できない。 (1996/07/12)

PR_RepSetTextファンクションを使ってレポートのテキストフィールドに設定できる文字数は、デザイン時に設定した文字数を超えることは出来ません。 デザイン時にあらかじめ、必要な文字数を確保するようにしてください。

Q.ビットマップが印刷できない。 (1996/07/12)

古いOS/2形式のビットマップには対応していません。 拡張子「.BMP」は省略できません。 また、ファイル名が正しいか、ディレクトリは正しいか確認してください。
レポートデザインファイルのテキストオブジェクトにビットマップを設定するときは、デザイン時にあらかじめ、ファイル名に必要な文字数を確保するようにしてください。

Q.Delphiで使用したい。 (1996/09/21)

Delphiには正式には対応していませんが使用は可能です。 このとき、必要な関数や定数を、ご自分で定義していただくことになります。 また、VBの Staring型を返す関数は Delphiでは使えませんので、代用となる隠し関数を使用してください。 Delphiでは使えない関数と、それに対応する隠し関数は以下の通りです。

  • インストールされているプリンタデータの取得
    VBでの宣言
     Declare Function PR_GetPrinterDat Lib "PREPORTS.DLL" (ByVal No%) As String
    C言語
     int FAR PASCAL PR_GetPrinterDatC(int No, char *Buf, int BufLen);
     ※ 文字列の長さを返します。バッファは128バイト以上取ってください。
  • インストールされているプリンタの取得
    VBでの宣言
     Declare Function PR_GetPrinter Lib "PREPORTS.DLL" (ByVal No%) As String
    C言語
     int FAR PASCAL PR_GetPrinterC(int No, char *Buf, int BufLen);
     ※ 文字列の長さを返します。バッファは128バイト以上取ってください。
  • エラーメッセージの取得
    VBでの宣言
     Declare Function PR_GetErrMsg Lib "PREPORTS.DLL" (ByVal ErrNo%) As String
    C言語
     char* FAR PASCAL PR_GetErrMsgC(int ErrNo);
     ※ エラーメッセージ文字列へのポインタを返します。

Q.拡大・縮小して印刷したい。 (1996/12/25)

PR_StartMetaFile関数で印刷を開始することで、印刷結果をプリンタに送らずに、メタファイルとして出力することが出来ます。 このメタファイルは後でもう一度サイズを変えて印刷することもできますので、この機能を使えば拡大・縮小した印刷が簡単にできます。プリンタドライバが拡大・縮小印刷に対応している場合は、PR_SavePrinterSetting、PR_LoadPrinterSettingを使用することで、プリンタのすべての設定を詳細に行うことができます。詳しくはプリンタを詳細かつ確実に制御するにはをご覧ください。

Q.タックシールのように、1ページに同じ内容を場所を変えて印刷したい。 (1996/12/25)

レポートファイルの読み込みは、1ページにつき複数回行うことが出来ます。 1部分のレポートファイルを作成して、1つのページに位置を変えて呼び出すようにしてください。 PR_EndPageまでに、PR_LoadReportとPR_PlayReportを、位置を変えて複数回実行することで実装できます。

Q.PR_StartDC関数とプリンタDCの解放について。 (1997/10/23)

プリンタDCの解放は、PR_StartDCの失敗時はアプリケーション側でWindowsAPIの DeleteDC関数を使用して解放してください。PR_StartDCが成功したときは、印刷の終了または中止時に Pegasus Reports側で解放します。

Q.バーコードを印刷したい。 (1997/10/23)

Pegasus Reportsではプログラムから図形を直接印刷することが出来ますので、PR_RepGetPosや PR_BoxFill関数等を使って、独自のバーコード印刷関数を作成してください。 バーコードが固定の場合は、ビットマップとして印刷してください。

Q.作成したメタファイルをグラフィックツールで開くと、一部が欠けたり余分な空白がある。 (1997/10/23)

PR_StartMetaFile関数に渡す用紙サイズを確認してください。メタファイルに出力するときは縦置き、横置きの区別がありませんので、用紙の大きさをの指定する順番(幅と高さ)を確認してください。

Q.一覧表を印刷するには。 (1997/10/23)

一覧表を印刷するには、付属のサンプルを参考に、COBOLと同じようにコーディングしてください。

  • (合計初期化)
    (データベース読み込み)
    Do (データ終了まで)
      (小計初期化)
      Do (データ終了かグループ終了まで)
        (詳細行の文字列作成)
        (1行印刷サブで詳細行印刷)
        (小計プラス)
        (データベース読み込み)
      Loop
      (小計行の文字列作成)
      (1行印刷サブで小計行印刷)
      (合計プラス)
    Loop
    (合計行の文字列作成)
    (1行印刷サブで合計行印刷)

Q.ネットワークプリンタに出力するには。 (1997/10/23)

PR_Start、PR_Start2関数でプリンタを指定することで、ネットワークプリンタに出力することが出来ます。ネットワークプリンタに出力するときは、ネットワークプリンタをあらかじめプリンタポート(LPT2:、LPT3:など)に割り当ててください。
また、出力するプリンタをプログラム中固定にするのではなく、外部ファイル(INIファイルやテキストファイルなど)から読み込むようにすることで、プリンタの構成が変わった場合も柔軟に対応できます。また、PR_SavePrinterSetting、PR_LoadPrinterSettingを使用することで、プリンタのすべての設定を詳細に行うことができます。詳しくはプリンタを詳細かつ確実に制御するにはをご覧ください。

Q.改ページせずに印刷したい。 (1997/10/23)

Windowsの仕様上、印刷を実行すると必ず改ページが行われます。位置合わせのためにサンプル文字を印刷したい場合は、別の文字で一度に印刷してから、その中から選択するようにしてください。

Q.複数部数を一度に印刷したい。 (1997/10/23)

Pegasus Reportsは複数部数の印刷に対応していません。(PR_StartDC関数を使えば可能です。)複数部数を一度に印刷するときは、その回数分印刷コマンドを繰り返しください。また、PR_SavePrinterSetting、PR_LoadPrinterSettingを使用することで、プリンタのすべての設定を詳細に行うことができます。詳しくはプリンタを詳細かつ確実に制御するにはをご覧ください。

Q.用紙サイズの設定がうまくいかない。 (1997/10/23)

プリンタがその用紙に対応しているか、プリンタの設定ダイアログなどで確認してください。プリンタが特定の用紙サイズに対応していない場合でも、ユーザー定義サイズの用紙を指定することで、その用紙サイズが使用できることもあります。また、PR_SavePrinterSetting、PR_LoadPrinterSettingを使用することで、プリンタのすべての設定を詳細に行うことができます。詳しくはプリンタを詳細かつ確実に制御するにはをご覧ください。

Q.プリンタを詳細かつ確実に制御するには。 (1999/01/12)

PR_SavePrinterSetting、PR_LoadPrinterSettingを使用することで、プリンタのすべての設定を詳細に行うことができます。これを使用することで、PR_Startでプリンタを選択・設定してもうまく動作しない場合でも、確実に動作します。

この方法を使って、プリンタの種類や、用紙サイズ、方向、印刷品質などによって、複数のプリンタ設定情報ファイルを作成し、印刷時に選択して読み込むことで、任意のプリンタの設定によって印刷できます。

  • ' Step1:プリンタの設定情報をファイルに保存する
    If PR_PrinterSetupDlg(Form1.hWnd) Then
      P_Stat = PR_SavePrinterSetting("C:\TEST\TEST.PRS")
    EndIf
  • ' Step2:保存したプリンタの設定情報から印刷を開始する
    P_Stat = PR_LoadPrinterSetting("C:\TEST\TEST.PRS")
    P_Stat = PR_StartDC(Form1.hWnd, PR_GetPrinterDC(), "集計表", PR_PRINT)

Q.印刷が開始されるまでに時間がかかる。 (2003/05/14)

PR_Start、PR_StartDC時に、PR_PRINT2を指定するようにしてください。PR_PRINTやPR_PREVIEWでは一旦全ページをメモリ内にキャッシュしてから、PR_EndDocで初めてプリンタに出力しますが、PR_PRINT2を指定すると、PR_EndPageで1ページが終わるとすぐにプリンタに出力するので、印刷の開始が早くなります。

Q.テキストの一部が欠ける。 (2003/05/14)

レポートファイルを使用している場合や、PR_OutputFormatでテキストを出力している場合、テキスト領域のサイズが小さい場合、文字が欠けたり、何も印刷されない場合があります。テキスト領域のサイズを確認してください。また、レポートファイルにPR_RepSetTextでテキストを出力している場合、デザイン時に設定した文字数を超えることはできませんので、文字数も確認するようにしてください。

Q.レーザープリンタへ印刷できない。 (2003/10/03)

印刷しようとする文字数が多い場合など、プリンタの種類と印刷内容によっては、プリンタのバッファメモリが不足して印刷できない場合があります。このときは、印刷する文字数を減らすか、プリンタドライバの設定で解像度を落とすなどしてください。プリンタの設定の保存方法については、プリンタを詳細かつ確実に制御するにはをご覧ください。

Q.PR_Startでの印刷が正常に開始できない。 (2004/05/31)

PR_Start関数を使わず、PR_StartDC関数を使用するようにしてください。詳しくは、プリンタを詳細かつ確実に制御するにはをご覧ください。


レポートデザイナーについて

Q.レポートファイルにビットマップを含めたい。 (1996/07/10)

ビットマップはテキストフィールドで代用できます。 テキストに「#BMP=FILENAME.BMP」とすると、印刷時にそのビットマップを読み込んで印刷します。 このファイル名は、プログラム内で変更することもできます。

Q.グリッドに合わせる機能が欲しい。 (1996/09/21)

旧バージョンはグリッドに合わせることができませんでしたが、現行の最新バージョンではこの機能が追加されています。 最新版を使用してください。

Q.ミリスケールの方眼を表示しているとき、グリッドに合わない。 (1996/09/21)

レポートデザイナーの内部の座標の最低単位は1/300インチです。 インチとミリメートルではスケールの比率が整数倍ではないので多少の誤差が出てしまいます。 デザイン画面上ではずれているように見えても、実際に印刷すると0.1ミリもずれないのでそのまま使用してください。

Q.ラインプリンタと同じ位置に印刷したい。 (1996/09/21)

グリッドのスケールをスペーシングチャートにする事で、横1/10インチ、縦1/6インチのラインプリンタ(パイカ用紙)と同じスケールにすることができます。 フォントを「MS 明朝」か「MS ゴシック」にして、フォントサイズを30にすると、グリッドにぴたりと文字が収まります。 また、グリッドに合わせる機能を有効にして、CTRLキーを押しながら操作することで、サイズや位置を細かく調整できます。

Q.オブジェクトを選択しただけで移動してしまい、使いにくい。 (1996/09/21)

オプションからグリッドに合わせるように設定してみてください。 また、「選択後即移動」オプションをチェックしないようにすると、オブジェクトの選択後、一度マウスのボタンを離さないと移動しないようになります。

Q.オブジェクト数が最大1000個では足りない。 (1996/12/25)

レポートファイルの読み込みは、1ページにつき複数回行うことが出来ます。 1ページを複数の領域に分けて、数回に分けて呼び出すようにしてください。 PR_EndPageまでに、PR_LoadReportとPR_PlayReportを複数回実行することで実装できます。

一覧表を作成する場合は、添付のサンプルのように、プログラムから直接出力するようにすることをおすすめします。

Q.文字がスペーシングチャートのグリッドに合わない。 (1997/10/23)

スペーシングチャートの1文字の幅は1/10インチ、高さは1/6インチです。「MS 明朝」か「MS ゴシック」を使用して、1グリッドに漢字1文字を印刷するときは文字サイズを30(/300インチ)にしてください。2グリッドに漢字1文字を印刷するときは文字サイズを60(/300インチ)にしてください。スペーシングチャートのグリッドの幅と高さの比は1:2ではないので、このときの文字のは垂直方向にグリッドを少しはみ出してしまいます。

Q.文字を縦書きしたい。 (1997/10/23)

テキスト領域の幅を狭めることで、擬似的に縦書きに見せかけることができます。しかし、句読点や横棒など一部制限があります。

また、フォントを「@MS 明朝」や「@MS ゴシック」などにすると、文字を90度回転させて横にすることができます。テキストの幅を狭めることと合わせて、擬似的に文字を横にできます。ただ、そのままでは文字の順番が逆になるので、文字の順番を逆にして返す関数の作成が必要になります。

Q.文字間隔や行間隔を指定したい。 (1997/10/23)

Pegasus Reportsでは、文字間隔や行間隔を指定することは出来ません。

Q.レポートデザイナーでロングファイル名が使用できない。 (1997/10/23)

レポートデザイナーは16ビットアプリケーションですので、ロングファイル名は使用出来ません。テキストオブジェクトでビットマップのファイル名(#BMP=????.BMP)を指定するときは、ショートファイル名を使用してください。作成したファイルを32ビットで使用する場合は、ビットマップのファイル名をロングファイル名で指定できます。しかしこのときは、デザイナーではビットマップをテスト印刷できません。

Q.ビットマップが美しく印刷できない。 (1997/10/23)

ビットマップ印刷の美しさは、プリンタドライバに依存します。最新のプリンタドライバを使用するようにしてください。

Q.オブジェクトがこれ以上作成できない。 (1999/05/01)

レポートデザイナーで作成できるオブジェクト数は1000個まで、サイズは64kbまでに制限されています。オブジェクトを削減するか、テキストオブジェクトの文字数を短くしてください。

レポートファイルの読み込みは、1ページにつき複数回行うことが出来ます。 1ページを複数の領域に分けて、数回に分けて呼び出すようにしてください。 PR_EndPageまでに、PR_LoadReportとPR_PlayReportを複数回実行することで実装できます。

一覧表を作成する場合は、レポートデザイナーで大量のテキスト領域を作るのは効率的ではありませんので、添付のサンプルのように、プログラムから直接出力するようにすることをおすすめします。


プレビュー機能について

Q.プレビューを閉じた後、ウィンドウが後ろに隠れたりちらついたりしてしまう。 (1996/09/21)

PR_Start, PR_StartDC関数の第1引数のウィンドウハンドルを確認してください。 このウィンドウハンドルはプレビューウィンドウ等の親となります。 印刷をメインウィンドウからではなくサブウィンドウから行う場合は、サブウィンドウのウィンドウハンドル(hWndプロパティ)を渡すようにしてください。

Q.独自のプレビュー機能を作成したい。 (1996/12/25)

PR_StartMetaFile関数で印刷を開始することで、印刷結果をプリンタに送らずに、メタファイルとして出力することが出来ます。 このメタファイルは後でもう一度印刷することもできますので、この機能を使えば、独自のプレビュー機能を実装できます。

Q.プレビュー機能をもう少し強化してほしい。 (1996/09/21)

プレビュー機能は、デバッグ用に提供しています。 納品するプログラムにプレビューを含めていただいても構いませんが、あくまでもデバッグ用の機能ですのでご理解ください。 また、顧客ユーザーの方も、プレビューを使用することはあまりないのではないかと思います。


バージョンアップについて

Q.最新版へのアップデートはどのようにすればよいですか。 (1996/07/10)

このページから最新版をダウンロードして、今まで使っていたバージョンに上書きでインストールしてください。過去に作成したプログラムは、再コンパイル等をしなくても、そのまま使用できます。

Q.バージョンアップの予定について。 (1997/10/23)

Pegaqsus Reportsは、現在公開しているバージョンが最新版で、今後のバージョンアップ予定はありません。本ソフトは現状のまま提供されるもので、将来のバージョンアップは保証されていません。


確認されている不都合・制限事項と対処方法

Q.テキストオブジェクトに長いテキストを設定すると枠からはみ出す。 (1997/10/23)

テキストオブジェクトに設定できる文字列長は、最大16384バイトまでで、適時改行コードが入っている場合は正常に印刷できます。しかし、長い文字列を指定する場合で改行コードがない場合は、文字列が枠からはみ出してしまうことがあります。これは、1行の文字数×文字幅(1/300インチ単位)が、約32000を越えると発生します。(文字サイズは高さで設定しますので、MS 明朝やMS ゴシックの場合、文字幅は高さの半分になります。)例えば文字サイズが 30(幅15)のときは、1行の長さは約2180バイト以下になるようにして、適時改行コードを入れるようにしてください。

Q.PR_RepSetFontSizeファンクションのヘルプの間違いについて。 (1997/10/23)

PR_RepSetFontSizeファンクションのヘルプが間違っています。Width%は指定できません。

  • 誤:PR_RepSetFontSize Name$, Height%, Width%
    正:PR_RepSetFontSize Name$, Height%

Q.特定のフォントで、文字が2文字毎に文字が重なったり離れたりする。 (1997/10/23)

Pegasus Reportsでは文字列は2文字ごとプリンタに出力し、その出力位置はプリンタドライバに文字の幅を問い合わせて行っています。プリンタドライバの問題ですので、最新のプリンタドライバを使用してください。なお、プレビューでは文字が2文字毎に文字が重なったり離れたりする場合で、印刷は正常に出来るときは、ディスプレイドライバとプリンタドライバで文字幅の計算結果が異なることが原因ですので、そのまま使用してください。

Q.レポートファイルサイズの制限について。 (2000/04/05)

レポートデザイナーで作成できるレポートファイルのサイズは、64kbまでに制限されています。サイズオーバーで保存できない場合は、オブジェクトを削減するか、テキストオブジェクトの文字数を短くしてください。

レポートファイルの読み込みは、1ページにつき複数回行うことが出来ます。 1ページを複数の領域に分けて、数回に分けて呼び出すようにしてください。 PR_EndPageまでに、PR_LoadReportとPR_PlayReportを複数回実行することで実装できます。
一覧表を作成する場合は、添付のサンプルのように、プログラムから直接出力するようにすることをおすすめします。

Q.PR_RepSetFontの制限について。 (2000/04/05)

PR_RepSetFontでフォントの種類を変更するとき、元のフォント名よりも長いフォントを設定すると、プログラムが誤動作します。


その他

Q.Pegasus Reportsの精度について。 (1996/09/21)

レポートデザイナーでの精度は1/300インチです。 描画ファンクションで直接印刷する場合の精度は、1/600インチになります。 また、文字サイズは高さが1/300インチ単位になります(幅は半角文字の場合だと1/600インチ単位)。

Q.ソースコードの配布について。 (1996/09/21)

PREPOR32.DLLのソースコードを配布しています。ソースコードの入手方法の詳細については、こちらをご覧ください。