1

プログレスバー(グラデーション画像)のように見えるクリスタルレポートにグラフを実装したいと思います。パーセンテージに応じてマークを含む円を配置する必要があります。この画像に示すように。誰でも私がこれを達成する方法を助けてください

4

1 に答える 1

2

Crystal Reports は、このタイプのグラフをネイティブでサポートしていません。

概算は次のとおりです。

  • バーの画像と円形の画像を作成します(スコアは省略)
  • 新しいレポートを作成します(サブレポートになります)
  • 詳細セクションに 2 つの画像を配置します。互いに整列する
  • 3 つの数値パラメーターを追加: 低、高、スコア
  • バー画像の左端に Low パラメータを追加します。右端に High パラメータを追加
  • Score パラメータを追加し、円形の画像の上に配置します。画像の幅に合わせたサイズ
  • 「位置」という名前の数式を作成します (以下のテキストを参照)
  • 円形の画像を右クリックし、[サイズと位置...] を選択します。位置式を X 位置の条件式に追加します
  • Score パラメータの X 位置の条件式についても同じことを行います。
  • 詳細以外のすべてのセクションを非表示にします
  • 必要に応じてサブレポートを他のレポートに埋め込む

数式テキスト:

//{@Position}
//
// RETURNS: position in inches
// TODO: set properties to match your layout
//
// width of circle image (inches)
Local Numbervar circleDiameter:= 0.5;

// X position of left edge of image (inches)
Local Numbervar barLeftX:=1;

// X position of right edge of image (inches)
Local Numbervar barRightX:=3;

// width of bar image
Local Numbervar barWidth:= barRightX - barLeftX;

// relative position of score in relation to low and high scores
Local Numbervar relativePosition:={?Score} / ({?High} - {?Low});

// calculate position of image's X position (return value in INCHES)
barLeftX + (barWidth * relativePosition) - (circleDiameter/2)

条件式のテキスト:

// 
// convert inches to twips (1440 twips/inch); confusing because UI uses inches
//
{@Position}*1440

何らかの理由で、Crystal Reports 2008 は条件式を無視しています。私はいくつかの調査を行い、結果を投稿します。

それ以外の場合は、Chart の置き換えを検討してください。

于 2012-09-19T14:13:38.867 に答える