過去の桐井戸端BBS (桐ver.8)
24485 レポートでデータが長いときだけ2列分セルを結合するように表示するようにはできますか。 masa 2004/01/29-19:44
すみません。またまたよろしくお願いします。
桐V8Sp7です。RPTのデータ行なのですが、例えば1列2列とあって、
2列目の行はデータが無い時、1列目のデータが長いので、その時だけ
(セル結合?)表示出来るでしょうか?
今はその部分だけデータ表示が上下に伸びて、ページ数が増えてしまうので・・
(入力文字は全て印字しないといけない文なので高さを固定する方法はだめです)
(最初から幅を広げておく方法も他の列が1Pに入りきれなくなるのでだめです。)

よろしくお願いします。


24486 Re:RPTの1列2列併合表示と1列のみとの混合データ表示について うにん 2004/01/29-21:11
記事番号24485へのコメント

>桐V8Sp7です。RPTのデータ行なのですが、例えば1列2列とあって、
>2列目の行はデータが無い時、1列目のデータが長いので、その時だけ
>(セル結合?)表示出来るでしょうか?

2列分のテキストオブジェクトを重ねておいて、元からある1列のと両方印字属性式を設定して
どっちかだけが印字されるようにするとできそうな気がします。

24487 Re:RPTの1列2列併合表示と1列のみとの混合データ表示について masa 2004/01/29-22:00
記事番号24486へのコメント
うにんさん こんばんは
早速ありがとうございます。

複合RPTでテキストソース内に

1列目([A])データ枠内に
#条件選択( [B]=#う , #う,1 , [A] )

2列目([B])データ枠内に
[B]

背景を透明で1列+2列幅の枠内に
#条件選択( [B]<>#う , #う,1 , [A] )

でうまくいきましたが、元々のRPTは一覧表で作ってありました。
(PHとかLとかDとか左にありますので)
一覧表でも出来る方法はあるのでしょうか?それとも複合形式で
上記式を使いつつ、一覧表のデータ行のような表示ができるのでしょうか?

よろしくお願いします。

24489 Re:出来そうで、まだです masa 2004/01/29-23:41
記事番号24487へのコメント
実験で簡易の複合RPTの中に一覧表を入れ、その中のデータ欄の上から、
テキスト枠をかぶせて実験してみましたら出来ました。

そこで、過去の一覧表はいっぱい項目やら配置場所等あるので、レポート定義画面から全てを右クリックのコピーで、
複合レポートに貼りつけました。
その後、背景が透明のテキスト枠に同じものを設定してかぶせてプレビューすると
かぶせた2つの項目値だけ表示されず、しかもデータ行の数だけページ枚数が出来ます。
どのへんがおかしいでしょうか?

よろしくお願いします。


24490 一覧表オブジェクトを重ねてみて下さい 佐田 守弘 2004/01/30-02:17
記事番号24489へのコメント
masaさん
●うまく行かない原因
うまく行かない原因ですが、後からかぶせたテキストオブジェクトが一覧表オブジェクトの中の子オブジェクトではなくて、
レポート上のテキストオブジェクトになっているためだと思います。
オブジェクトリストで確認してみれば、かぶせたテキストの場所は、一覧表オブジェクトの下にない事が解ると思います。

●その理由
一覧表の各セルは、テキストオブジェクトですが、これは一覧表オブジェクトの中にあるテキストオブジェクトです。
もし、今行おうとしている事を実現するには、この一覧表オブジェクトの中に、
縦横に並んでいるセル状のテキストオブジェクト(子オブジェクト)とは別に、
テキストオブジェクトを作らなければなりません。

しかしこれは不可能な様です。
一覧表オブジェクトの定義中には、アイコンがグレイ表示になって、新しいオブジェクトの追加はできなくなります。
レポートの定義中は可能ですが、この時に作られるテキストオブジェクトは、
一覧表の中に作られるテキストオブジェクトではありません。
一覧表オブジェクトの中に新しいテキストオブジェクトを作れるのは、フリーヘッダフッタに限られる様です。
オブジェクトリスト上で移動させてみても、一覧表オブジェクトの明細部の中には入りません。
一覧表の中の使っていないテキストオブジェクトを移動させる事もできないはずです。
一覧表オブジェクトは、フリーヘッダ・フッタ部を別にすると、行数と列数で決めた
縦横のセルしか作れない仕組みになっている様です。

●対応策
そこで、同じ一覧表オブジェクトを2枚重ねにして、どちらかを印字したい部分に
ついて、うにんさん提案の条件によって印字を選択する仕組みを組み込んで下さい。
それ以外のセルは、ソース値を消して何も印刷しない様にすればよいでしょう。

なお、一覧表オブジェクトの重ね方ですが、レポートの作業領域をポイントした後、
一覧表オブジェクトをポイントして選び、コピー&ペーストの操作をします。
なお、ぴったりとあっている事が大切ですから、一覧表オブジェクトを完成させた後にこの操作をして下さい。
また重ねた一覧表オブジェクトのセルは、透明にしておく必要があります。

佐田守弘(KS-00119)
24491 追加事項>複合レポートで 佐田 守弘 2004/01/30-02:20
記事番号24490へのコメント
言い忘れましたが、一覧表レポートとして作ったレポートでは、一覧表オブジェクトの
コピー&ペーストはできないかも知れません(試していません)。

だめな場合には複合レポートで行って下さい。
複合レポートに作り替える場合には、新たな白紙の複合レポートを定義して、
余白などをまず合わせます。
次いで、一覧表レポートから一覧表オブジェクトをコピーして、白紙の複合レポートの上にペーストします。
2回ペーストすれば重なると思います。

佐田守弘(KS-00119)

24496 Re:一覧表オブジェクトを重ねてみて下さい うにん 2004/01/30-12:34
記事番号24490へのコメント

>もし、今行おうとしている事を実現するには、この一覧表オブジェクトの中に、縦横
>に並んでいるセル状のテキストオブジェクト(子オブジェクト)とは別に、テキスト
>オブジェクトを作らなければなりません。
>
>しかしこれは不可能な様です。

そうでした。残念ながら私のアイデアは実現不可能なようです。
フォームと違って明細部の中に自由にオブジェクトを置けなかったですね...

>●対応策
>そこで、同じ一覧表オブジェクトを2枚重ねにして、どちらかを印字したい部分に
>ついて、うにんさん提案の条件によって印字を選択する仕組みを組み込んで下さい。

一覧表を重ねるのだと、明細行の高さを固定にしないとデータの量によっては
2つの一覧表の明細がずれていってしまうと思うのですが。

24500 Re:勘違いでまだ出来てませんでした masa 2004/01/30-13:01
記事番号24489へのコメント
うにんさん 佐田さんどうもありがとう御座います。

>実験で簡易の複合RPTの中に一覧表を入れ、その中のデータ欄の上から、テキス
>ト枠をかぶせて実験してみましたら出来ました。
上記で出来たと書いたのですが、[B]データが無く、[A]データが長い文の時、プレ
ビューで見ると(何故か行数文の枚数表示になるのですが)その[B]データが無い(2行目だったら2枚目)の時[A]長い文が
表示されたので出来たと勘違いしてました。
実際は1行目の[A]も一緒に表示されていていました。

24505 行高さの固定がポイントになりそうです 佐田 守弘 2004/01/30-23:53
記事番号24496へのコメント
うにんさん
 >一覧表を重ねるのだと、明細行の高さを固定にしないとデータの量によっては
 >2つの一覧表の明細がずれていってしまうと思うのですが。
その通りですね。
昨夜、寝ながらこれを思いついて飛び起きて書き込んだ後、再び寝ながら考えているうちに
改行によって行高さが変わると、2つの一覧表オブジェクトがずれてしまう事が起こる事に気がつきました。
もし実際に行うとしたら、行高さの固定を設定する事が必要になるでしょうね。

佐田守弘(KS-00119)

戻る