2009年9月8日火曜日

帳票(プロシージャ)にてアトリビュートの内容を改行印刷する方法










アトリビュートが長い文字列型の場合、プロシージャのレイアウトにアトリビュートを貼り付けるだけでは、改行がされません。

改行するためには、以下の手順が必要となります。



1.レイアウト


アトリビュートの代わりに変数を貼り付けます。


printblock.PNG

2.ソース


ソースではGXMLines関数で、折り返したい文字数での行数を取得し、GXGetMLi関数で各行を取得し、文字列を変数にセットし、行単位でPrintコマンドを発行します。





&nlin = GXMLines(LongSizeAttribute, 60)
  if &nlin > 0
   &i = 1
   Do While &i <= &nlin
    &Text = GXGetMLi(LongSizeAttribute, &i, 60)
    Print PB_Report1
    &i += 1
   enddo
  else
   &Text=''
   Print PB_Report1
  endif



2 件のコメント:

  1. この、マルチバイトを含む文字列にサンプルのように試したところ、GXMLinesと
    GXGetMLiで判断している位置が違う感じでした。
    これらの関数ってマルチバイト文字に対応してますでしょうか??

    返信削除
  2. マルチバイトには対応しています。関数として対応しているというよりも、内部的にはJavaなり.netなりの各言語環境で文字数で切り出しているだけですので、各言語で対応されていれば関数としても対応している。という事になります。

    返信削除

2018 - 新年のご挨拶

あけましておめでとうございます。 旧年中は大変お世話になりました。今年もよろしくお願いいたします。 毎年後半になるとブログの更新が滞っている状況が続いています。なんとか今年は続けようと思っていますが、既に年内の予定が詰まっていまして今年も多忙な一年となりそうです。 それ...