web-dev-qa-db-ja.com

Crystal Reportsの縦書きテキストの配置?

Visual Studio(2008)に付属のCrystal Reportsエディターでは、テキストを上部ではなくテキストボックスの中央に揃えることができますか?

私はどこにも選択肢を見つけることができず、Google検索は励みになりませんが、それらがそのような明らかな機能を含まないと信じることはできません。

29
George Mauer

私が見つけたクリスタルレポートの垂直方向の配置はありません。潜在的な回避策は、改行のプログラミングです。

22
contactmatt

ラベル内のテキストを垂直方向に揃えるオプションは見つかりませんが、セクション内のラベルを垂直方向に揃えることはできます。左マージンの水平ガイドラインを使用して、位置合わせを調整します。ガイドラインを右クリックし、「グリッドにスナップ」のチェックを外して、より正確な配置を行う必要がある場合があります。

horizontal guideline

2
Lily

FORMATを入力すると、numberタブの代わりにparagraphタブが表示されるため、文字列でこれを実現できます。 FIELDメニュー。数字を文字列にするには、式フィールドとしてフォーマットする必要があります。

chr(13) + chr(10) + totext(mynumber,0)

次に、フィールドのフォーマットメニュー選択-行間隔:multiple of:0.2

ボックスの中央にきちんと中央に配置された番号(つまり、キャリッジリターンが先頭に付いた文字列)が見つかるまで、0.2値で実験する必要がある場合があります

乾杯、チリー

1
Chillywinter

プログラミング改行による垂直方向の配置。 1つのセルのアルゴリズム:

  1. データ内の文字数をカウントします(iTextLen)。
  2. セル内のテキスト行数(iLineNum)を見つけます。経験的に計算。
  3. 文字(iLineLen)で行の長さを見つけます。経験的に計算。
  4. (iLineNum — 1) — (iTextLen / iLineLen)により、ハーフブレークの数を計算します。

    クリスタル構文の@formula

    Local NumberVar iLineNum:= 5;
    Local NumberVar iLineLen:= 30;
    Local NumberVar iTextLen:= Length({DataSource});
    
    Local StringVar sRet:= '';
    Local NumberVar i;
    Local NumberVar iLinesNum:= Truncate(iLineNum - 1) - Truncate(iTextLen / iLineLen); 
    For i:= 1 to iLinesNum Do ( sRet:= sRet + chr(13) );
    
    sRet
    
  5. データの上部と下部に式を追加します。テキストオブジェクトは次のようになります。
    {@formula}{DataSource}{@formula}

    @formulaのフォントサイズは、フォントサイズ{DataSource}の半分にする必要があります。たとえば、{DataSource}のフォントサイズが20に等しい場合、@formulaは10に等しくなければなりません。 formula-position-and-font-size

アルゴリズムは等幅の書体でよりよく機能しますが、ほとんどの場合、比例書体で機能します。

複数のセルのアルゴリズムは、iLineNumがすべてのセルのデータの最大文字数になることのみが異なります。

0
Slava Mokerov