以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=67853) |
-- 作者:青鸟 -- 发布时间:2015/5/5 9:39:00 -- [求助] 请教: 我有一个报表输出的窗口,内有如下控件: Dropbox1 - 项目名称 Dropbox2 - 子项目名称 Combobox1 - 统计分组 Datetimepicker1 - 起始日期 Datetimepicker2 - 结束日期 Button1 - 报表打印 Button1的Chick事件中有一段代码如下: 问题:1、请帮我纠正一下报表打印过滤条件 - 红色代码段中黄色代码的问题(红色部分是正确的) 2、蓝色代码段是想写一个标签,根据起始日期和结束日期,自动填写成 yyyy年mm月 或 yyyy年gg季度 或 yyyy年 Dim Filter As String With e.Form.Controls("DateTimePicker1") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "签约日期 >= #" & .Value & "#" End If End With With e.Form.Controls("DateTimePicker2") If .Value IsNot Nothing Then If Filter >"" Then Filter = Filter & " And " End If Filter = Filter & "签约日期 <= #" & .Value & "#" End If End With Dim xmtj As String \'项目条件 Dim tj As String If Filter > "" Then xmtj = "<项目代码 = \'" & (xmflt) & "\'& "And" Filter>" tj = "<项目代码 = \'" & (xmflt) & "\' and " & "子项目代码 = \'" & (zxmflt) & "\'
& "And" Filter>" End If Dim tjzq As String \'统计周期 Dim ts As TimeSpan = Cdate(jsrq) - cdate(qsrq) \'天数 DateDiff(interval,date1,date2) If val(ts) <= 30 Then tjzq = DateDiff(yyyy,qsrq,jsrq) & DateDiff(m,qsrq,jsrq) \'Cstr(Format(#qsrq#, "y")) Else If ts >= 30 And ts <= 90 Then tjzq = DateDiff(yyyy,qsrq,jsrq) & DateDiff(q,qsrq,jsrq) \'Cstr(#qsrq#.year) & "季度" Else tjzq = DateDiff(yyyy,qsrq,jsrq) \'Cstr(#qsrq#.year) End If End If Dim Sheet As XLS.Sheet = Book.Sheets(0) If zxm = "" Then Book.Marks("项目名称") = ("项目名称:") & (xm) Book.Marks("建筑面积") = CDbl(zjmflt) Book.marks("统计周期") = tjzq Sheet(5,8).Value = xmtj Else Book.Marks("项目名称") = ("项目名称:") & (xm) & "(" & (zxm) & ")" Book.Marks("建筑面积") = CDbl(jmflt) Book.marks("统计周期") = tjzq Sheet(5,8).Value = tj End If 谢谢! |
-- 作者:大红袍 -- 发布时间:2015/5/5 9:41:00 -- 例子发上来 |
-- 作者:大红袍 -- 发布时间:2015/5/5 9:43:00 -- 1、
xmtj = "<项目代码 = \'" & (xmflt) & "\' And " & Filter & ">" |
-- 作者:大红袍 -- 发布时间:2015/5/5 9:50:00 -- 2、不明白你什么逻辑,根据什么计算啊
Dim tjzq As String \'统计周期
|
-- 作者:青鸟 -- 发布时间:2015/5/5 17:04:00 -- 谢谢! 问题1正确了。 问题2: 我的意思是想在报表中加一个标签:如果起始时间是2015年1月1日,结束时间是2015年1月31日,那么标签应该填写成:2015年1月 如果起始时间是2015年1月1日,结束时间是2015年3月31日,那么标签应该填写成:2015年一季度 如果起始时间是2015年1月1日,结束时间是2015年12月31日,那么标签应该填写成:2015年
例子发上来,帮我看看,问题在“报表输出”窗体的“打印报表”Button的chick事件中。 |
-- 作者:青鸟 -- 发布时间:2015/5/5 17:06:00 -- 刚才附件没传上来,现在好了。 |
-- 作者:大红袍02 -- 发布时间:2015/5/5 17:19:00 -- 大致代码
Dim qsrq As Date = new Date(2015, 1, 1) If ts.TotalDays <= 30 Then msgbox(tjzq) |
-- 作者:青鸟 -- 发布时间:2015/5/5 18:43:00 -- 搞定,谢谢! |