過去の桐井戸端BBS (桐ver.8)
6077 同一用紙内での改行 UME 2000/05/16-22:53
お世話になります。
例えば、A4の用紙の上部1/3はA4幅をフルに使って、下部2/3を縦に4分割して、
左端から10行下まで行くと右の列へ改行し、縦に10行いくとまた右へ改行する、
といった具合に部分的に列単位で改行したい場合どうすればよいのでしょうか。
6081 Re:同一用紙内での改行 佐田 守弘 2000/05/16-23:35
記事番号6077へのコメント
UMEさん
確認させて下さい。
これは、ちょうど新聞の様な段抜きの記事と、段組を組み合わせたいといった事でしょうか。
形としてはレポート印刷になると思いますが、段抜きの部分と段組の部分は別々の項目に印刷する文字列を持つか、
記事は1つであっても印刷用に別々の項目に分けるか、計算式で分けるかの必要があります。

計算式で分ける場合、ちょっと簡単には行かないと思いますが、改行も考慮して、どこまでが段抜き部分に入るかを計算し、
この部分と残りの部分を分ける必要があると思います。

佐田守弘(KS-00119)
6082 Re:同一用紙内での改行 UME 2000/05/17-06:43
記事番号6081へのコメント
佐田さん、ありがとうございます。
新聞の様な段抜きの記事と、段組を組み合わせたいといった事です。
レポート印刷で、段抜きの部分と段組の部分は別々の項目に印刷する文字列を持つか、
記事は1つであっても印刷用に別々の項目に分けるか、する場合はどうすればよいのでしょう。
初心者なので具体的にお願いします。Ver.8使用。
6089 それぞれべつの項目とオブジェクトを作成して下さい 佐田 守弘 2000/05/17-23:41
記事番号6082へのコメント
UMEさん

結論を先に言いますと、段抜き部分と4段組みのそれぞれの部分について別の項目を作り、
それぞれテキストオブジェクトで印刷して下さい。
そして、印刷プレビューで確認しながら、ちょうど良い文字数が入る様に文字を書き込んで下さい。
少なくともこれが現時点では現実的な方法だと思います。

佐田守弘(KS-00119)
6090 溢れた部分を次のオブジェクトに繰り越せないか 佐田 守弘 2000/05/17-23:41
記事番号6082へのコメント
UMEさん
本当に欲しいのは、記事は1つの項目に入れておき、溢れた部分は次のオブジェクトに繰り越せないかだと思います。
ですが、そのためには記事文章のどこまでが、1つのテキストオブジェクトに印刷できるかを求めなければなりません。
これができそうでいて簡単にはできません。
この話は少し前のログで論議があったと思います。

固定ピッチフォントで全角文字に限り、強制改行がないとすれば、そのテキストオブジェクトで印刷できる1行の
文字数と行数から、求められるかも知れません。
しかし実際には途中での強制改行などを行うので、文字数からだけでは、印刷される文字数がどこまでであるかを
計算するのが難しいでしょう。
文字がプロポーショナルフォントになれば尚更ですし、固定ピッチフォントであっても、全角と半角が入り混じると、
なかなか計算通りにはなりません。

本気で行おうとしたら、1文字の印字の大きさと、文字の前後の余白や文字間の余白、途中での改行などを勘案して、
そのオブジェクト内に文字を詰めて行くシミュレーションを行う様なアルゴリズムを作り上げないとだめだと思います。

絶対に不可能とは申しませんが、実質的にはほとんど困難だと思います。

佐田守弘(KS-00119)

6091 (失敗談)「#印字データ」で試してみた 佐田 守弘 2000/05/17-23:41
記事番号6082へのコメント
これは失敗談の報告です。
あるテキストオブジェクトの中に印刷されるデータを求める方法がないものか。
確か、印刷データを調べる関数「#印字データ」関数があったではないか、と思いだし、この関数で
溢れた部分を繰り越す方法を試してみました。

モロに失敗しましたが、考え方は何かの参考になるかもしれないので、ここに掲載しておきます。

● 「#印字データ」関数
オブジェクトで印刷するデータを返す関数で、レポートのオブジェクトの印字属性式の中だけで使えます。

● 印字属性式にダミーの計算式を設定してみた
 #計算(#代入(&STR,#印字データ),1)
印字属性式は、条件式を書けます。最終的に論理値(1で良い)さえ返せば良いので、途中はなにを計算しても
構わないと考えて、「#計算」関数を使って、印字データを変数に取り込む仕掛けを仕込みました。

● なにが失敗だったか
計算式にエラーはありませんでした。ただし、目的は達しませんでした。
&STRに取り込まれたのは、印字データのソース値そのものでした。
つまり、#印字データ関数は、印刷されたデータを返す関数ではなく、印刷する予定のデータを返す関数だったのです。

● 失敗はしたけど
この試みは失敗に終わりましたが、印字属性式の中で#計算関数を使えば、何らかの取り込みが
行える事は分かりました。

以上、失敗談の報告です。

佐田守弘(KS-00119)
6092 印字された結果を返す関数が欲しい 佐田 守弘 2000/05/17-23:41
記事番号6082へのコメント
以上の様に、UMEさんの質問に関連して、いくつかの方法を調べてみました。
結局、UMEさんが望んでいる事は、少なくとも私の力量と、現状の関数では実現できない様です。
ここで、
「オブジェクトで印刷した結果がどうなったか」
を返す関数があれば、全ては解決することになります。

その様な訳で、この要望をさっそく管理工研の開発に持ち込ませて頂きました。
いつ実現できるかの予定はもらっておりませんが、それ程難しい課題ではない様なので、
比較的早い時期に実現してもらえるのではないかと期待しております。

佐田守弘(KS-00119)
6093 Re:実現を心待ちにしてます UME 2000/05/18-22:11
記事番号6092へのコメント
佐田 守弘さん、いろいろ調べて頂いてありがとうございいました。
今回は、違う方法でレポ−トを作成することにしました。
「オブジェクトで印刷した結果がどうなったか」を返す関数が実現することを心待ちにしております。
どうもありがとうございました。

戻る