Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Crystal reports 在Crystal Report中打印一个月的天数_Crystal Reports_Days - Fatal编程技术网

Crystal reports 在Crystal Report中打印一个月的天数

Crystal reports 在Crystal Report中打印一个月的天数,crystal-reports,days,Crystal Reports,Days,我想在Crystal Report中打印给定月份的所有日期。这就是我的Crystal报告的样子: 诸如此类 我所做的是,我创建了一个带有日期的表,当用户通过日期时间选择器选择一个月时,我的程序会将所选月份的所有日期插入到表中。尽管也可以在SQL级别尝试(如@Azing所建议的),如果您只想在Crystal Report级别执行此操作,您可以根据以下基本思想进行调整,以完成日期没有记录的行 在报告设计中创建三个公式字段,即第一个日期,中间日期,最后一个日期,并在公式编辑器中设置其值,如下所示:

我想在Crystal Report中打印给定月份的所有日期。这就是我的Crystal报告的样子:

诸如此类


我所做的是,我创建了一个带有日期的表,当用户通过日期时间选择器选择一个月时,我的程序会将所选月份的所有日期插入到表中。

尽管也可以在SQL级别尝试(如@Azing所建议的),如果您只想在Crystal Report级别执行此操作,您可以根据以下基本思想进行调整,以完成日期没有记录的行

在报告设计中创建三个公式字段,即
第一个日期
中间日期
最后一个日期
,并在公式编辑器中设置其值,如下所示:

  • 第一次约会

    WhilePrintingRecords;
    numberVar TotalDays := Day ({Sale_Date_Field}) - 1;
    numberVar i;
    stringVar DayList := "";
    for i := 1 to TotalDays step 1 do 
        DayList := DayList & ToText(i, 0) & "          0.00          0.00" & Chr(13);
    DayList;
    
  • 中秋节

    WhilePrintingRecords;
    numberVar FromDay := Day({Sale_Date_Field}) + 1;
    numberVar To_Day := Day(Next({Sale_Date_Field})) - 1;
    numberVar i;
    stringVar DayList := "";
    for i := FromDay to To_Day step 1 do
    DayList := DayList & ToText(i, 0) & "          0.00          0.00" & Chr(13);
    DayList;
    
  • 最后日期

    WhilePrintingRecords;
    numberVar NextDay := Day ({Sale_Date_Field}) + 1;
    numberVar i;
    numberVar MonthDays := 30;
    if (Month ({Sale_Date_Field}) in [1,3,5,7,8,10,12]) then
        MonthDays := 31
    else if (Month ({Sale_Date_Field}) in [4,6,9,11]) then
        MonthDays := 30
    else if (Month ({Sale_Date_Field}) = 2
      and Remainder(Year({Sale_Date_Field}), 4) = 0) then
        MonthDays := 29
    else
        MonthDays := 28;
    stringVar DayList := "";
    for i := NextDay to MonthDays step 1 do
        DayList := DayList & ToText(i, 0) & "          0.00          0.00" & Chr(13);
    DayList;
    
  • 现在将这些公式字段放置在报告中,如下所示:

  • 报告标题部分中的第一个\u日期
  • Mid_日期
    详情b部分
  • 报告页脚部分的上次日期
  • 现在,在
    Common
    选项卡上的
    格式字段
    中启用
    可以增长
    选项。
    在Section Expert中为细节b部分启用
    抑制空白部分
    选项。
    设置字段格式并相应地设置日期列表。
    对于多个月,报告可以按月份分组,
    First_Dates
    Last_Dates
    公式可以分别放在组的页眉和页脚中


    此解决方案不适用于交叉表格式。

    那么您到底想要什么?在{April}的几天还是在??你能举个例子吗?看看这个…&这:谢谢你先生的回复…我想要先生是垂直打印一个月的天数(以数字形式)(来自参数字段)先生…谢谢你的链接先生,但这不是我想要的…我已经有一个公式来确定一个月有多少天…我想要先生是垂直打印它…仍然不清楚。请你更新你的问题,以了解你的期望。据我所知,您需要列中的天数,因此30行表示月份有30天,31行表示月份有31天。对吗?别叫我先生。。