Foxtable(狐表)用户栏目专家坐堂 → [求助] 关于报表,蓝版再帮看看,感激不尽!


  共有4647人关注过本帖树形打印复制链接

主题:[求助] 关于报表,蓝版再帮看看,感激不尽!

帅哥哟,离线,有人找我吗?
foxtablefanse
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:568 积分:5458 威望:0 精华:0 注册:2018/11/6 10:54:00
[求助] 关于报表,蓝版再帮看看,感激不尽!  发帖心情 Post By:2022/2/18 10:45:00 [只看该作者]

'Functions.Execute("NormalMonth",日期,扎帐日)
函数代码:
Dim dt As Date=vars(0)
Dim ed As Integer=vars(1) '扎帐日,自然月填31
If dt.Day > ed Then
    dt = new Date(dt.year,dt.month,1) '改为下个月的第一天
    dt= dt.AddMonths(1)
End If
Return dt
命令窗口
Dim d As Date=#01/29/2020#
Output.Show(Functions.Execute("NormalMonth",d,25))
怎么返回的是0001-02-01?
[此贴子已经被作者于2022/2/18 11:47:06编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/18 11:00:00 [只看该作者]

Dim dt As Date=args(0)
Dim ed As Integer=args(1) '扎帐日,自然月填31

 回到顶部
帅哥哟,离线,有人找我吗?
foxtablefanse
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:568 积分:5458 威望:0 精华:0 注册:2018/11/6 10:54:00
  发帖心情 Post By:2022/2/18 11:08:00 [只看该作者]

图片点击可在新窗口打开查看图片点击可在新窗口打开查看图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
foxtablefanse
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:568 积分:5458 威望:0 精华:0 注册:2018/11/6 10:54:00
  发帖心情 Post By:2022/2/18 11:46:00 [只看该作者]


生成报表的按钮代码:
Dim rq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
Dim zb As WinForm.TextBox = e.Form.Controls("TextBox1") '值班车
Dim ry As WinForm.TextBox = e.Form.Controls("TextBox2") '人员
Dim js As WinForm.TextBox = e.Form.Controls("TextBox3") '记事

If rq.Value IsNot Nothing Then
    vars("用车日期")=rq.Value '用于报表传值
    vars("值班车辆")=zb.Text
    vars("人员动态")=ry.Text
    vars("记事备忘")=js.Text
    '生成以YYYY-MM格式的文件目录
    Dim ym As String=CStr(Functions.Execute("NormalMonth",vars("用车日期"),25)).SubString(0,7) '取前7位做目录名
    If FileSys.DirectoryExists(ProjectPath & "PgReports\" & ym)=False Then '如果目录不存在
        FileSys.CreateDirectory(ProjectPath & "PgReports\" & ym) '创建目录
    End If
    '生成报表
    Dim Book As New XLS.Book(ProjectPath & "Attachments\排车记录.xls")
    Book.Build() '生成细节区
    Book.Sheets(0).Rows.RemoveAt(0) '删除第一行,Excel报表的第一行通常是标记行
    Book.Save(ProjectPath & "pgReports\" & ym & "\" & CStr(vars("用车日期")) & ".xls") '保存工作簿,以用车日期命名工作薄!!
    Dim Proc As New Process '打开工作簿
    Proc.File = ProjectPath & "pgReports\" & ym & "\" & CStr(vars("用车日期")) & ".xls"
    Proc.Start()  
Else
    MessageBox.show("没有数据可以导出!")
End If

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20220218114427.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:360截图17571120156046.png
图片点击可在新窗口打开查看



 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/18 13:46:00 [只看该作者]

1、模板路径、模板名称不正确。找不到文件
2、模板处于打开状态。先关闭所有execl进程再试试

 回到顶部
帅哥哟,离线,有人找我吗?
foxtablefanse
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:568 积分:5458 威望:0 精华:0 注册:2018/11/6 10:54:00
  发帖心情 Post By:2022/2/18 21:40:00 [只看该作者]

是文件夹里没有这个报表,说明没有生成成功,不知是哪里出了问题

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/19 9:55:00 [只看该作者]

不是没有生成成功,而是模板找不到

Dim Book As New XLS.Book(ProjectPath & "Attachments\排车记录.xls")

 回到顶部
帅哥哟,离线,有人找我吗?
foxtablefanse
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:568 积分:5458 威望:0 精华:0 注册:2018/11/6 10:54:00
  发帖心情 Post By:2022/2/19 15:00:00 [只看该作者]

Dim rq As WinForm.DateTimePicker = e.Form.Controls("DateTimePicker1")
Dim zb As WinForm.TextBox = e.Form.Controls("TextBox1") '值班车
Dim ry As WinForm.TextBox = e.Form.Controls("TextBox2") '人员
Dim js As WinForm.TextBox = e.Form.Controls("TextBox3") '记事
'
''If rq.Value IsNot Nothing Then
Dim d As Date=rq.Value
vars("用车日期")=rq.Value '用于报表传值
vars("值班车辆")=zb.Text
vars("人员动态")=ry.Text
vars("记事备忘")=js.Text

Dim Book As New XLS.Book(ProjectPath & "Attachments\排车记录.xls")
Dim fl As String = ProjectPath & "Reports\排车记录.xls"
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(1,4).Value = vars("用车日期") '修改模板,加入用车日期
Sheet(1,8).Value = "25吨吊车值班车辆:" & vars("值班车辆") '修改模板,加入值班车辆
Sheet(5,1).Value = "人员动态:" & vars("人员动态") '修改模板,加入人员动态
Sheet(6,1).Value = "记事备忘:" & vars("记事备忘") '修改模板,加入记事备忘
Book.Build() '生成细节区
Book.Sheets(0).Rows.RemoveAt(0) '删除第一行,Excel报表的第一行通常是标记行
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()

1、通过一个个排除,发现是模板中写入了一个日期怎么转换成星期的公式,然后就不能正常生成报表了,删掉公式就可以,
2、在一个单元格生成两个字段数据,发现按下图写不成正常生成。

图片点击可在新窗口打开查看此主题相关图片如下:报表出错.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:报表出错2.png
图片点击可在新窗口打开查看





[此贴子已经被作者于2022/2/19 15:05:33编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110574 积分:562760 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2022/2/19 15:50:00 [只看该作者]

不能在明细里使用execl的公式。合并2个列数据参考:http://www.foxtable.com/webhelp/topics/1388.htm

比如

<[列1] & "/" &  [列2]>

 回到顶部
帅哥哟,离线,有人找我吗?
foxtablefanse
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:二尾狐 帖子:568 积分:5458 威望:0 精华:0 注册:2018/11/6 10:54:00
  发帖心情 Post By:2022/2/19 16:26:00 [只看该作者]

谢谢蓝版!!!!合并2个列数据是因为少个尖括号,公式的问题再折腾折腾!

 回到顶部
总数 13 1 2 下一页