データの印刷

「’plprev.dcu’ が見つかりません」1日私を苦しめた文字です。
「もうやめちゃおうかな」と、ふと思いました。
Delphi2006 って、そのままでは印刷できないんです。
印刷するためには、高い別売りのソフトが必要なようです。
MSAccessとかでDBやっている私には到底信じられません。

捨てる神あれば拾う神あり!
Mr.XRAYというお方が印刷用のコンポーネントをご自身のサイトで公開してくれています。
さっそく下記3つのファイルをダウンロードさせていただき解凍しました。
interbase-29

interbase-30

とりあえず、DBGrid印刷というのをインストールしてみようと、Mr.XRAYさんのコンポーネントの登録方法を読みながらチャレンジしてみました。順番としては次の通り。

  1. パスを通す
  2. 登録用パッケージのインストール

Dドライブのルートにフォルダを作ってパスを通し、そこに「plDBGridPrev.dcr」「plDBGridPrev.pas」を入れました。
しかしパッケージをインストールしようとすると、「’plprev.dcu’ が見つかりません」というメッセージで少しも先に進めません。
ググって調べると、ファイルが見つからないのはパスが通ってないからだというご意見が見つかりました。
でもって「きっとパスが通ってないんだわ」と、固く信じ込んでしまったのです。勝手に思い込み・・・

自分で作ったパスをやめて、最初からある「lib」というパスの通ったフォルダにも入れてみましたが、やっぱり同じエラーでした。
かれこれ丸1日、ああだこうだやってみて、あることに気づきました。
エラーはいつも、usesの「plPrev」いうところが赤くなります。
「パスがちゃんと通っているとしたら、plPrvが必要なのでは?」と思い、解凍した「plPrv」フォルダのファイルを、パスの通った(と思う)フォルダに入れました。
私は、Delphiに関してはほぼ無知です。こんな初歩のところにたどり着くのに1日かかりました。
あとで気づいたことですが、Mr.XRAYさんの「インストール方法」には、「プリンタ設定コンポーネントが必要です」とちゃんと書いてありました。
あまりにも情けないので、少しだけ恥の忘備録しておこうと思います(^^;

パスを通す

  1. Dのルートにフォルダ「XRAYp」を作り、解凍したファイル(pasとdcr)を全部入れました。
  2. Delphiを起動し(念のため管理者権限で)DBのあるプロジェクトファイルを開きました。
  3. 「ツール」-「オプション」をクリックし、「Delphiオプション」の「ライブラリ-Win32」を選択しました。
    ライブラリパスの右側の「・・・」をクリックすると、ライブラリパスの一覧ダイアログボックスが開きます。
    下のテキストボックス右側の「・・・」をクリックして、パスを入れ(フォルダの場所)、「追加」ボタンをクリックしました。
    interbase-31

パッケージのインストール

ここは、Mr.XRAYさんの「登録パッケージのインストール」を参考にさせていただきました。
環境は、Delphi2006です。

  1. 「ファイル」-「開く」をクリックし、下記フォルダから、「dclusr.dpk」を開きました。
    interbase-32
    interbase-33
  2. 画面右の「プロジェクトマネージャー」に、「dclusr.bpl」の名前で表示されました。
    この名前(パッケージ)の上で右クリックし「インストール」をクリックしました。
    interbase-35
    インストールがうまくいったときには、「~がインストールされました」のようにメッセージが出ます。
    苦労した後のこのメッセージには「やった!」と歓喜しましたよ~
    interbase-34
  3. パッケージで右クリックし、「上書き保存」をクリックしました。

コンポーネントを登録する

  1. パッケージで右クリックして「追加」を選択します。
    「参照」をクリックして、必要なファイルを選択します。
    interbase-36
  2. パッケージ名(dclusr.bpl)の上で右クリックし、メニューから「再構築」をクリックします。
    これでインストールが終わりです。

印刷

コンポーネントが追加されたので、いよいよ印刷テストしてみます。
フォームに、TplDBGridPrevコンポーネントを配置します。
interbase-37

ボタンを1つ配置し、このボタンのイベントプロシージャに次のコードを書きました。

procedure TMainForm.Button2Click(Sender: TObject);
begin
  plDBGridPrev1.Preview;
end;

実行結果

interbase-28

「印刷」をクリックしたら、プリンタに印刷できました。
たった1日でしたけれど、長く感じられた1日でした。
最後に、Mr.XRAYさま、ありがとうございました。と、ここで言っても伝わらないか(^^;

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です