on 07-22-2014 4:02 AM
池田と申します。識者の方のご助言を頂けましたら幸いです。
数値(int32)の印字桁数は CrystalReports だけで完結することは可能でしょうか。
フィールド幅を超えるサイズの数値をプレビュー、印刷すると"#"表記になってしまいますが、
最終的には途中で文字が切れてしまってもそのまま印刷したいのです。
フィールドクリッピングを有効にしてみましたが特に変化はありません。CrystalReports 上で
計算も行っている既存の帳票なため、加工したデータを渡すのは最終手段として考えています。
SAP BusinessObjects Crystal Reports 2013 Support Pack1 v14.1.1.1036
CR4VS2010 v13.0.10.1385
Visual Stusio 2012
おはようございます。
質問の意図からはずしていたらごめんなさい。
フィールド幅を超えてしまい「#####」表示となり、帳票の制約で幅を広げれない場合
フォントサイズの制御で行っています。
フィールドの書式→書式エディタからフォントタブのフォントサイズの式を開き
以下の様な書式でフォントサイズを制御すればきれいにおさまると思います。
if [フィールドint]>9999 then
8
else if [フィールドint]>99999 then
7
else
10
これは文字列でも当然使えますので、フィールド幅に制約がある場合に有効な手法です。
以上
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
式フィールドを利用することで固定された桁数で表示させることが可能です。
以下の例では、数値フィールドを文字列に変換し、最初の文字から8文字を表示させています。
(記述例)
WhilePrintingRecords;
Mid(ToText([フィールドint]), 1, 8);
該当フィールドの最大の表示可能な桁数が判明していれば、その桁数に合わせて3つ目のパラメータを変更いただくことになります。この場合、フォントサイズの変更は必要ないと思います。
また、以下のような記述も可能です。文字列に変換しているので小数点が含まれている場合、文字列の長さに含まれますのでご注意ください。
(記述例)
WhilePrintingRecords;
StringVar txtst:= ToText([フィールドint]);
If len(txtst) > 8 then
Mid(txtst,1,8)
else
txtst
Yoshi Takase
Support Engineer, SAP Active Global Support
SAP Canada Inc.
User | Count |
---|---|
84 | |
25 | |
12 | |
9 | |
6 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.