如何将Crystal Report表达式编写为Vb代码?

时间:2019-02-13 04:27:00

标签: vb.net reporting-services crystal-reports ssrs-2008 activereports

我是Crystal报表的新手,并且正在研究Active Report Jap 9.5版本。我最近开始研究它们,我想知道水晶报表表达式是否可以转换为等效的vb代码,因此可以在Active report(SSRS),(。rdlx)

中使用它们。

下面的水晶报表表达式本身也看起来像某种vb代码(如果我错了,请纠正我)。

晶体报告公式:

A)公式1:

numberVar iDay := ToNumber(Right(Cstr({@PrntStartDate}), 2)) + 24; select iDay case 1 : {wk_TORIO0430_b.AcquisitionAmnt1} case 2 : {wk_TORIO0430_b.AcquisitionAmnt2} case 3 : {wk_TORIO0430_b.AcquisitionAmnt3}

B)公式2:

numberVar iDay;
stringvar sDay;

If (12 <= ToNumber({?NoOfDays})) Then
numberVar iDay := ToNumber (Right ({?StartDate}, 2)) + 11;

if iDay < 10 then
sDay := "0" + left(Cstr(iDay), 1)
else
sDay :=  left(Cstr(iDay), 2);
sDay + "(" + Left(WeekDayName(WeekDay(CDate (ToNumber (Left ({?StartDate},4)),ToNumber (Mid ({?StartDate}, 5, 2)) , iDay))), 1) +  ")";

C)公式3:

numberVar iPos1 := InStr({?StartDate}, "年");
numberVar iPos2 := InStr({?StartDate}, "月");

numberVar iPos3 := InStr({?StartDate}, "日");

stringVar sYr := left ({?StartDate}, 2);

stringVar sMonth := mid ({?StartDate}, iPos1 + 2, (((iPos2) - (iPos1)-3)));

sMonth := IIF (Length(sMonth) = 1, "0" + sMonth, sMonth);

stringVar sDay := mid ({?StartDate}, iPos2 + 2, (((iPos3) - (iPos2)-3)));

sDay := IIF (Length(sDay) = 1, "0" + sDay, sDay);

现在我可以将此晶体公式转换为VB代码吗? 请帮助我。

1 个答案:

答案 0 :(得分:0)

您无需将此代码转换为VB。如果您有RPT文件,则可以使用ActiveReports中的内置转换器工具将Crystal报表转换为RDL。 RDL报告还具有内​​置的表达式支持。表达式类似于MS和SSRS,但不像您提供的代码那样复杂。如果您仍然遇到问题或需要更多指导,可以在supportone.componentone.com上提交支持票。