お世話になっております。
入力文字列を表のセル内に収めるために、現在、以下の方法をとっていますが、
行の折り返し位置がうまく制御できず、表セル内からはみ出してしまう場合があります。
(「帳票を1ページ内に収めるのが望ましい」、「表セル内の文字は見やすさを考慮しデフォルトフォントサイズは大きめとするが、最大文字数を入力した場合はデフォルトサイズでは収まらない」という要望から動的にフォントサイズを変更しています)
(参考)「改行して全体を表示」を有効にするとワード境界での折り返しとなる
---------------------------------------------------------------------------------------------------------------------------
・帳票(rrpt)の表セルのプロパティ設定で、「改行して全体を表示」にチェックを入れる。
・以下のような「renderContent()」メソッドを持つカスタマイザを定義する。
表セルの「横幅」と「高さ」を基準として、フォントサイズを順次小さくし、
収まれば、そのフォントサイズで決定する。
---------------------------------------------------------------------------------------------------------------------------
そこで、以下のような2案を考えたのですが、
いずれの場合も、所望の情報の取得または書き換えができません。
以下のような処理はできないでしょうか?
他に代案がありましたら教えていただけますでしょうか?
(案1)
・帳票(rrpt)の表セルのプロパティ設定で、「改行して全体を表示」にチェックを入れない。
「co.systembase.report.Report.fill()」の呼び出し前に、表セルの「横幅」、「高さ」を考慮して、フォントサイズを計算して、手動で改行コードを文字列に入れる。
→ 表セルの「横幅」、「高さ」を取得できない。
フォントサイズの変更は、引数渡し、またはグローバル変数を用いれば、カスタマイザ(renderContent())の呼び出し時の設定も可能と思われる。
(案2)
・帳票(rrpt)の表セルのプロパティ設定で、「改行して全体を表示」にチェックを入れない。
カスタマイザ(renderContent())の呼び出し時に、表セルの「横幅」、「高さ」を考慮して、フォントサイズを計算して、手動で改行コードを文字列に入れる。
→ 改行コードを入れた文字列に書き換えられない。
以上、よろしくお願いいたします。
上田