数値の書式設定
既定では、DOM API は、レポートで数値をテキストとして正確に表すために必要な最大の桁数を使用します。数値を表すために使用される桁数を制御するには、次の方法を使用して数値書式を指定します。
関数
mlreportgen.dom.setDefaultNumberFormat
を呼び出して、既定の数値書式を設定する。1 つの数値に対して既定の書式をオーバーライドするには、その数値を
mlreportgen.dom.Number
オブジェクトとして表し、Number
オブジェクトのStyle
プロパティにmlreportgen.dom.NumberFormat
オブジェクトを含める。段落、テーブル、リストなどのドキュメント要素のすべての数値に対して既定の書式をオーバーライドするには、その要素を表すオブジェクトの
Style
プロパティにmlreportgen.dom.NumberFormat
オブジェクトを含める。
既定の数値書式の設定
DOM API が数値データの書式設定に使用する既定の書式指定を設定するには、関数 mlreportgen.dom.setDefaultNumberFormat
を使用します。sprintf
で有効であり、%f
、%e
、%E
、%g
、または %G
の演算子を使用する書式指定を設定します。たとえば、次のコードは小数点以下を 4 桁に指定します。
mlreportgen.dom.setDefaultNumberFormat("%0.4f");
mlreportgen.dom.Number
オブジェクトとして表される数値に適用されます。たとえば、次のコードは既定の書式を使用してレポート内で pi
を表現します。import mlreportgen.dom.* setDefaultNumberFormat("%0.4f"); d = Document("myDoc","pdf"); append(d,Paragraph(pi)); close(d); rptview(d);
レポートでは、pi
は 3.1416
として生成されます。
1 つの数値に対する書式の指定
1 つの数値に対して書式を指定するには、次のようにします。
数字を
mlreportgen.dom.Number
オブジェクトとして表す。mlreportgen.dom.NumberFormat
オブジェクトで数値書式を指定し、Number
オブジェクトのStyle
プロパティにNumberFormat
オブジェクトを含める。
たとえば、次のコードは、pi
の最初のインスタンスに対して既定の数値書式を使用し、pi
の 2 番目のインスタンスに対して既定の書式をオーバーライドします。
import mlreportgen.dom.* setDefaultNumberFormat("%0.4f"); d = Document("myDoc1","pdf"); p1 = Paragraph("pi with default format: "); append(p1,pi); append(d,p1); p2 = Paragraph("pi with number format: "); n = Number(pi); n.Style = {NumberFormat("%0.2f")}; append(p2,n); append(d,p2); close(d); rptview(d);
レポートの数値は次のようになります。
段落、テーブル、またはリストに対する数値書式の指定
ドキュメント要素を表すオブジェクトの Style
プロパティに mlreportgen.dom.NumberFormat
オブジェクトを含めることにより、段落、テーブル、リストなどのドキュメント要素内のすべての数値の数値書式を指定できます。たとえば、次のコードでは、最初の段落の数値が既定の書式を使用することと、2 番目の段落の数値が小数点以下 2 桁であることを指定します。
import mlreportgen.dom.* setDefaultNumberFormat("%0.4f"); d = Document("myDoc2","pdf"); p1 = Paragraph("pi with default format: "); append(p1,pi); append(d,p1); p2 = Paragraph("pi with paragraph format: "); p2.Style = {NumberFormat("%0.2f")}; append(p2,pi); append(d,p2); close(d); rptview(d);
レポートの数値は次のようになります。
テーブル内のすべての数値に対して書式を指定する例については、テーブル内の数値の書式設定を参照してください。
参考
sprintf
| mlreportgen.dom.getDefaultNumberFormat
| mlreportgen.dom.setDefaultNumberFormat
| mlreportgen.dom.Number
| mlreportgen.dom.NumberFormat