Cap*_*n16 8 crystal-reports crystal-reports-2008
如何获取7天或每周取决于Crystal Report的公式字段中的日期范围?
Example:
Date Range from March 01, 2014 to March 31, 2014
Output:
Week 1 (March 01 to March 07)
Week 2 (March 08 to March 14)
Week 3 (March 15 to March 21)
Week 4 (March 22 to March 28)
Week 5 (March 29 to March 31)
Run Code Online (Sandbox Code Playgroud)
自定义功能RangeWeekSplitter在一年内有效。水晶语法。
Function (dateTimeVar dFrom, dateTimeVar dTo)
// First day of the year
local dateTimeVar dBegCurrYear:= Date (Year(dFrom), 1, 1);
// Day of year (1 to 365 or 366 in a leap year)
local numberVar nFrom:= DatePart ("y", dFrom);
local numberVar nTo:= DatePart ("y", dTo);
local numberVar i;
local numberVar iTo;
local numberVar nDaysInWeek:= 7; // number of days in the week
local numberVar nWeek:= 0; // counter weeks
local stringVar sResult:= ""; // output string
for i:= nFrom to nTo step nDaysInWeek do
(
nWeek:= nWeek+1;
iTo:= i+(nDaysInWeek-1);
if(i+nDaysInWeek > nTo)
then iTo:= nTo;
// generate output string
sResult:= sResult + chr(13)+
"Week " + CStr(nWeek) + " (" +
CStr(DateAdd ("y", i-1, dBegCurrYear), "MMMM d") +
" to " +
CStr(DateAdd ("y", iTo-1, dBegCurrYear), "MMMM d") +
")";
);
sResult;
Run Code Online (Sandbox Code Playgroud)
使用示例:
// Date range
local dateTimeVar dFrom:= Date (2016, 1, 14);
local dateTimeVar dTo:= Date (2016, 3, 4);
RangeWeekSplitter (dFrom, dTo);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1143 次 |
| 最近记录: |