喫茶XRAYトップページ

[スレッド全体
]

[1132] Re4:plTackPrevでのカラムのテキスト描画返信 削除
2007/2/28 (水) 21:54:23 Mr.XRAY
> PCが...  スミマセン、詳しいことはのちほど。
> これからPCの整備に入ります。


えっと、Delphiが起動しなくなってしまいました(泣)。
そろそろPCの買い替え時かも...
なんかPCが唸っています。HDDか?

[1133] Re5:plTackPrevでのカラムのテキスト描画返信 削除
2007/3/1 (木) 11:26:35 yumapa
▼ Mr.XRAYさん
いつもお世話になっております。yumapaです。
PCの具合はいかかでしょうか...

完全な解決には至っておりませんが、一応は思い通りの
動作を得ることができました。
1件のみのデータを描画する場合でしたので
 plTackPrev1.LabelCount:=1;
とする必要があったようです。
以前、plTackPrintにて同様の事を行っていました時には
データ数を指定することなく動作していましたので
気付くことができませんでした。

さらに、アドバイス頂きたい部分があります。
封筒印刷を行う場合に、印刷したいデータを選択した後に
封筒サイズを選択するフォームを表示させ、長形3号、角形2号
等々を選択してからプレビューするようにしております。
そのため、plTackPrevコンポーネントはこの封筒サイズ選択
フォームに配置しております。
アプリにはA住所データを表示するフォーム、B住所データを
表示するフォーム、C住所データを表示するフォームの3つが
あり、何れのフォームからも最後は封筒サイズ選択フォームで
サイズ選択してからプレビューさせています。
A住所、B住所からプレビューする場合には、データセットを
利用し複数の宛先データを印刷しますが、C住所からの場合
には、1件のみのデータしか印刷しません。
デフォルトではA住所、B住所からの印刷を想定し、データセットを
指定しているのですが、C住所から印刷する場合は直接各カラムの
テキストプロパティに文字列を代入するため、
「Query1:SQL文がありません」とエラーになります。

そこで、動的にplTackPrevのデータセットを指定したり、
または指定しない状態にしたりすることが出来れば、このエラーは
発生しなくなると思うのですが、その部分でつまづいております。
最も、私の考えている方法が適切かどうか自身はありません(^^;が
何かアドバイスを頂けたら幸いです。



[1137] Re6:plTackPrevでのカラムのテキスト描画返信 削除
2007/3/2 (金) 20:28:51 Mr.XRAY
▼ yumapaさん

すみません.まだテストプログラムの作成や動作ができない状態ので,確認
はしていませんが,

> そこで、動的にplTackPrevのデータセットを指定したり、
> または指定しない状態にしたりすることが出来れば、このエラーは


DataSetプロパティを空にするか,または,コード上で
  DateSet:=nil;
などとして下さい.この時,印刷のコードを実行するには以下の2つの
方法が考えられます.

(1)全てOnBeforePagerDraw(or OnAfterPageDraw)に書く
   このイベントはDataSetの有無に関係なく実行されます.
   (OnXXXXLableDrawでも可)
(2)TplTackPrevのColumnssプロパティでカラムエディタを起動し,
   空のカラムを一つ作成する
   すると,実行時にOnXXXXDataDraw,が発生します.ここに書きます.

あと,テストプログラムのEnvelopeを参考にして下さい.イベント内に
plTackPrev1.Canvas.TextOut(X,Y,テキスト文字列);
ように書きます.

[1139] Re7:plTackPrevでのカラムのテキスト描画返信 削除
2007/3/3 (土) 01:49:18 yumapa
▼ Mr.XRAYさん

いつもご指導頂きありがとうございます。
大変なところ、本当にスミマセンm(__)m

質問させて頂いた後も、DelphiML等で、参考になる部分が
ないか色々自分なりに調べていましたところ、1つのQueryに
場合によって異なったSQL文を書き分ける...というようものが
ありました。
その中で、識者の方のレスに、Queryをその場合の数だけ
設置したらどうかという発言があり、今回の私も正に
そのパターンであると思いました。
そこで、
 ・データセットを利用する場合用に1つ
 ・データセットを利用しない場合用に1つ
計2つのplTackPrevコンポを配置することで、思ったとおりの
動作を得ることができました。
あちこちのフォームから印刷を行うため、やはりコーディングに
拠らない方が、私のようなど素人には適当かもしれません(^^;
学習のために、アドバイス頂いた方法も試してみます。

約4年前にプログラミングをはじめた頃から、少しずつ不具合等を
修正しながら使っているアプリですので、無駄なコーディングや
不要なコンポーネントが沢山ありすぎて、ちょっとした手直しも
問題箇所が特定出来ず、多大な労力を要しております(^^;
今後とも宜しくお願い致します。



[1140] Re8:plTackPrevでのカラムのテキスト描画返信 削除
2007/3/3 (土) 09:33:13 Mr.XRAY
▼ yumapaさん

> その中で、識者の方のレスに、Queryをその場合の数だけ
> 設置したらどうかという発言があり、今回の私も正に


Queryで言えば、私の場合、メインとなるマスターは専用のQuery、細かい検索
等は、SQL文をコード上で書くことが多いです。
また、plTackPrevは、ほとんどプレビューフォーム一つに一つという感じで
配置して使用しています。

いろいろな使い方があっていいと思います。


[▼次のスレッド]
INCM/CMT
Cyclamen v3.82