過去の桐井戸端BBS (桐ver.8)
8392 タック印刷時の矩形オブジェクトの非表示方法 HIRO3 2000/11/03-09:53
宛名印刷をするとき印刷開始位置を指定するときは行挿入を行って調整できますが、
矩形オブジェクトを使って枠を印刷したい場合は印刷しない部分では矩形を非表示にすることは可能でしょうか。

マラソン大会の集計で記録証を名刺用紙で作成したいと考えています。
体裁として枠線を使いたいと思っています。
8424 レポートオブジェクトは非表示はできないでしょう 佐田 守弘 2000/11/04-06:06
記事番号8392へのコメント
HIRO3さん
非表示とは、フォームのオブジェクトの属性です。
レポートのオブジェクトには非表示(非印刷?)の属性はないので、印刷時に印刷しない設定はできなかったと思います。

佐田守弘(KS-00119)
8427 Re:レポートオブジェクトは非表示はできないでしょう hiro3 2000/11/04-11:09
記事番号8424へのコメント
早速の回答ありがとうございました。非印字できないことが確認できれば
枚数単位で印刷して遊びがでない方法で検討してみます。
HIRO3
8437 Re:タック印刷時の矩形オブジェクトの非表示方法 幅田 2000/11/04-23:21
記事番号8392へのコメント
HIRO3さん、こんにちは。

>宛名印刷をするとき印刷開始位置を指定するときは行挿入を行って
>調整できますが、矩形オブジェクトを使って枠を印刷したい場合は
>印刷しない部分では矩形を非表示にすることは可能でしょうか。

文面からはよくわからないのですが、データの内容によって枠(矩形オブジェクト)を印刷したり、
しなかったりしたいということなのでしょうか?

もしそうであれば、たしかに矩形オブジェクトでは印字条件で属性を変えることはできません。
しかし、矩形オブジェクトが後面に来るように重ねて、その前面にラベルオブジェクトを設定し、
そのラベルのソースには何も入れなくてもいいのですが、
背景タブで背景色モードを透明に設定し、印字属性タブ→属性式で矩形を消したいときの条件式を設定し、
背景色を白に設定します。

そうすると通常は背景が透明なので、矩形が印刷されますが、印字属性の条件式にあてはまるときには、
背景が白色となり矩形が隠されてなにも印刷されない状態になります。

だけど、矩形オブジェクトにも印字属性式が設定できればいいですね。
しかも、一括処理からも属性を操作できればなおいいですね。
8438 その手がありましたね。 佐田 守弘 2000/11/05-00:55
記事番号8437へのコメント
幅田さん
成る程。その手がありましたね。
テキストオブジェクトなら印字属性式でコントロールする方法がありますね。

佐田守弘(KS-00119)

8469 rpt>透明ラベルを属性式で白色に変えて隠す 悲しげ 2000/11/06-23:49
記事番号8437へのコメント
幅田さんwrote

>たしかに矩形オブジェクトでは印字条件で属性を変えることは
>できません。
>しかし、矩形オブジェクトが後面に来るように重ねて、その前
>面にラベルオブジェクトを設定し、そのラベルのソースには何
>も入れなくてもいいのですが、背景タブで背景色モードを透明
>に設定し、印字属性タブ→属性式で矩形を消したいときの条件
>式を設定し、背景色を白に設定します。
>そうすると通常は背景が透明なので、矩形が印刷されますが、
>印字属性の条件式にあてはまるときには、背景が白色となり矩
>形が隠されてなにも印刷されない状態になります。

この件について試してみたところ、何か挙動が変です。
他の方も追試した結果を教えて下さい。
ちなみにsp6です。

rptは仮に単票であるとします(v8sp6にて新規設定)。
この単票上で、あるテキストオブジェクトA等を隠すためにラベルオブジェクト(テキストでも可)Bを被せるとします。
このラベルはオブジェクト属性の設定において、背景タブでは「透明」を指定し、
印字属性タブでは「属性式」の「…」釦から条件式を設定して背景色を「白」とします。
この時、不思議な現象に出会いました。
Aを全部囲わないように(つまりAが一部はみ出ているように、云い換えれば「部分日食」ふうに)Bをかぶせると、
印刷プレビュー時には印字属性式の設定に応じて、A(の一部)がオモテに出たり隠れたりします。
ところが、Aを全部囲んでしまうように(「皆既日食」ふうに)Bをかぶせると、Bのラベルオブジェクトが何と全て背面に(!)
行ってしまうのであります(定義時)。
このことは、Bラベルの印字属性式で背景を白ではなく有色にするとよく判りまして、
印刷プレビュー時には印字属性式の条件に応じて、Aは全く隠れることなく(!)、
背景となったBの色のみが虚しく変わっています。

はて、sp5以前からこうだったろうか?
昔設定したrptにおいて試してみたところ、v7で定義したrptでは、
そもそも印字属性式で背景色を設定することはできない仕様になっていました。
v8になってから(そのspは不明だが)設定したrptのひとつでは「皆既日食」でも別に問題はなさそう
(つまり前面にて全て隠してくれる)。

この点で悩むこと2日間。ある点に気が付きました。
それはファイル属性/表題等タブ/定義位置を固定するのチェックの違いです。
前のspと新しいspで、このチェックを有無のデフォルトが変更になったのかどうかは、実は確認不能なんすけど、
要するにこう云うことです。

(sp6では新規作成の場合、チェック無しがデフォルト)
定義位置固定するチェック有りの場合、「皆既日食」問題なし。
チェック無しの場合、「皆既日食」ならず、即ちAが前面に出て、Bが虚しく背面表示される。

この点、追試報告をいただければ幸いです。
で、追試の結果、このとおりであるならば、改めてこの仕様の是非について検討したく思います。
8476 Re:rpt>透明ラベルを属性式で白色に変えて隠す 幅田 2000/11/07-09:30
記事番号8469へのコメント
悲しげさん、私も手元にsp6の環境しかなかったので、以前のものは試しようがないのですが、
とりあえず同じように試してみました。

元の質問がタイル形式とのことでしたので、タイル形式で試してみると
定義位置を固定するのチェック有り無しにかかわらず、思った通り
皆既日食や部分日食できました。
また、タイル形式でのこの部分のデフォルトは有りです。

悲しげさんのように単票形式で行うと、やはりデフォルトは無しであり、
無しの場合、皆既日食、部分日食ともに実現されません。
チェックを有りにすると悲しげさんの言われるとおり、実現できます。

「定義位置を固定する」について
まず、タイル形式と単票形式ではデフォルトが違うのも混乱する部分ですが、
レポートマニュアルP125によると、

>この設定をONにすると、データの長さに関係なく、レポート上に配置した
>オブジェクトの位置にしたがってデータが印刷されます。
>一般に、市販の帳票類のように仕切り線が印刷されている場合にはONにします。
>・・・中略・・・この設定をOFFにすると、定義したオブジェクトに収まらない
>データがあるとき、そのオブジェクトを下に拡張して印刷します。

とのことですので、マニュアルの記述からみると、印刷するデータによってオブジェクトの領域を変えるかどうか
というオプションであり、重なり順には関係がないように思われますが、
単票形式の場合どうも重なり順にも影響を与えているようです。
8478 できました HIRO3 2000/11/07-10:11
記事番号8437へのコメント
幅田さん,悲しげさんありがとうごうざいます

幅田さんの方法で枠オブジェクトを消去することができました。
私の質問に丁寧に対応いただいて感激しています。
これからもよろしくお願いします。
桐は本当にすばらしいDBだと感じています。

8484 Re:rpt>透明ラベルを属性式で白色に変えて隠す 悲しげ 2000/11/07-13:29
記事番号8476へのコメント
どもっ、幅田さん、追試ありがとうございました。

単票rptにおける「定義位置を固定する」ことと、重なり順(前面・背面)はやはり別物ですよね。
この点、K3サポートに通報しておくことにします。
8541 Re:v8sp6単票rpt/定義位置非固定/重なり順 悲しげ 2000/11/10-21:24
記事番号8484へのコメント
ツリーの源的話題とは掛け離れてしまって若干恐縮ながら、この件について、K3から回答が来ましたので、ご紹介します。

まず「定義位置を固定する」の件。
sp6から、単票レポートを新規作成するときに限り「定義位置を固定する」のチェックを外すよう仕様変更されているそうです。
よって、sp5以前の経験に基づいた私の違和感は、それなりの根拠はあったことになります。(^^;)

次、桐のv7以来の一貫した仕様だそうですが、「重なり順」の前面・後面(即ち「オブジェクトのリスト」の並びが
下のものほど前面)が活きるのは、「定義位置を固定する」がチェックされている場合に限りだそうです。
このチェックが外れている場合は、「重なり順」(オブジェクトのリストの並び)よりも座標位置の開始x,yを優先させる
(つまり、定義画面上で上方に配置されているものが奥面で印刷される)仕様として作られているそうです。

その理由。
「これは、固定しない場合、データ内容によってはそのオブジェクトを拡張させることができるためです。
配置位置が同じ(表示タブ上の開始x、y)場合には、オブジェクトのリスト上での定義順で
下位のものが奥面に配置されます。」

なるほど、明快です。(^^)

戻る