我已經在Crystal Reports 10中創建了4個自定義函數。這些函數從數據庫記錄中獲取日期時間值,並確定該日期時間屬於當前會計年度或上一會計年度之內。Crystal Reports 10:是否可以通過命令調用自定義函數
這些計算以前是作爲SQL Server上的存儲過程執行的,但我們正在轉移到另一個票據應用程序(託管在供應商站點),並且當前沒有DB來執行這些計算。
下面是這些功能中的一個例子:
// 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上,它們是從水晶報表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
利用在我來說,我希望通過撥打我的自定義功能isCloseDateWithinCurrentFY
替換對dbo.fn_FiscalYear
的呼叫。
但是有可能從SQL命令調用一個自定義函數嗎?
或者是否有其他方法來限制基於在Crystal Report端進行的計算返回的記錄?
TIA
多數民衆贊成我認爲,非常感謝您的投入瑞安。它可能是在Select Expert中使用自定義函數的替代方法嗎? – user100487
您可以使用晶典在選擇專家,但是這不會是儘可能快地將其轉化爲SQL因爲實際的查詢將不會改變,處理仍然會發生在客戶端。這個問題應該有所幫助:http://stackoverflow.com/questions/2678869/round-date-to-fiscal-year – Ryan