我正在使用Crystal Reports for Eclipse 2.0.4,我遇到了问题。我在报告中使用公式从字符串中减去一天:
ToText(CDate({Agreement.EndDate})-1, "dd.MM.yyyy");
这适用于德语区域设置。使用英语语言环境,计算绝对错误,因为日期和月份互换。 例如: 当{Agreement.EndDate}是07.05.2010并且我从它减去一天时,我得到06.04.2010与德语区域设置但是04.07.2010与英语区域设置。我如何解决这个问题,我在不同的语言环境中工作?
答案 0 :(得分:1)
我找到了一个不那么干净的解决方案,但只要字符串总是采用相同的格式,它就能正常工作:
NumberVar day := Val(Mid({Agreement.EndDate}, 1, 2));
NumberVar month := Val(Mid({Agreement.EndDate}, 4, 2));
NumberVar year := Val(Mid({Agreement.EndDate}, 7, 4));
Local DateVar enddate := Date(year, month, day);
enddate;
现在,您可以使用enddate独立于区域设置进行计算。 如果有人知道更好的解决方案,请告诉我。
(顺便说一句:我无法更改服务器的语言环境)