0

Crystal Reports 10 で 4 つのカスタム関数を作成しました。これらは、DB レコードから日時の値を入力として受け取り、その日時が現在の会計年度または前の会計年度に含まれるかどうかを判断します。

これらの計算は、以前は SQL Server でストアド プロシージャとして実行されていましたが、別のチケット アプリケーション (ベンダー サイトでホストされている) に移行しており、現在、これらの計算を実行するための DB がありません。

これらの関数の 1 つの例を次に示します。

// Function name: isCloseDateWithinCurrentFY
Function (DateTimeVar closeTime)
// This replaces dbo.fn_FiscalYear
// Determine if the incident close date falls inside the current Fiscal Year
DateTimeVar startCurrentFiscalYear;
NumberVar currentMonth;
StringVar returnVal;

currentMonth := Month(CurrentDate);

If currentMonth >= 2 Then
    startCurrentFiscalYear := Date(Year(CurrentDate), 2, 1)
Else
    startCurrentFiscalYear := Date(Year(CurrentDate)-1, 2, 1);

If (closeTime >= startCurrentFiscalYear) Then
    "T"
Else
    "F";

これらの計算が SQL Server 上にあった場合、Crystal Report SQL コマンドから利用されました。

SELECT
category,
subcategory,
close_time,
tyCount
FROM (
    SELECT 
        category=ISNULL(UPPER(category),'*Unspecified'),
        subcategory=ISNULL(UPPER(subcategory),'*Unspecified'),
        tyCount=SUM(CASE WHEN dbo.fn_FiscalYear(close_time)='T' THEN 1 ELSE 0 END)
    FROM 
        incident_tickets
    GROUP BY
        UPPER(category),
        UPPER(subcategory)
) tickets
WHERE
    tycmCount>0
ORDER BY
    category,
    subcategory

dbo.fn_FiscalYear私の場合、 への呼び出しをカスタム関数への呼び出しに置き換えたいと思いますisCloseDateWithinCurrentFY

しかし、SQL コマンドからカスタム関数を呼び出すことは可能ですか?

または、Crystal Report 側で行われた計算に基づいて返されるレコードを制限する他の方法はありますか?

ティア

4

1 に答える 1