以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  【求助】如何打印关联表子表内容  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=26730)

--  作者:wangcza
--  发布时间:2012/12/12 17:58:00
--  【求助】如何打印关联表子表内容
求助:
1、当加班人员表添加新的加班人员时,加班统计表能否实现自动加载不重复的加班人员的姓名和相关的加班小时、金额等,不用每次都要去重置列才能改变数据
例如:当加班人员表为空时,加班统计表也是空的,当加班人员表有王小利这个加班人员时,加班统计表就能自动按月份生成相关的姓名、加班小时、金额、合计?
2、我打印按通知单模板打印加班通知单,但有几个问题不知道怎么解决
    2.1加班开始时间-加班结束时间 = 加班时间,在模板里面不知道怎么处理比较好,加班时间如果是2个小时,但打印出来的却是7200,怎么样能现实成2小时?
    2.2模板内加班人员是想显示当前加班通知单的[加班通知单.加班人员表]内的全部人员,如何实现?

不知道我表达的清不清楚,如不清楚的请老师指出,谢谢了!

--  作者:lin_hailun
--  发布时间:2012/12/12 18:00:00
--  
 把相关的文件打包上传上来。自然有热心人帮助解决。
--  作者:wangcza
--  发布时间:2012/12/12 18:10:00
--  
我前面已经添加附件了,竟然没添加成功。。。。。
现在重新添加上来
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加班单(模板).xlsx
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加班管理.rar



--  作者:wangcza
--  发布时间:2012/12/12 20:38:00
--  
求大神关注图片点击可在新窗口打开查看
--  作者:狐狸爸爸
--  发布时间:2012/12/12 20:54:00
--  

1、项目事件MainTableChanged加上代码:

 

Select Case e.DataCol.Name
    Case "姓名"
        Dim dt_jiaban As DataTable = DataTables("加班人员表")
        Dim dt_jishu As DataTable = DataTables("加班计费基数")
        Dim dr_jiaban As DataRow = dt_jiaban.Find("加班人员 = \'" & e.NewValue & "\'" )
        If dr_jiaban IsNot Nothing Then
            Dim dr_jishu As DataRow = dt_jishu.Find("职务 = \'" & dr_jiaban("职务") & "\'")
            e.DataRow("工作日加班_小时") = dt_jiaban.Compute("Sum(加班时长)", "加班人员 = \'" & e.NewValue & "\' And 加班类型 = \'工作日\'") / 3600
            e.DataRow("工作日加班_金额") = e.DataRow("工作日加班_小时") * dr_jishu("工作日")
            e.DataRow("周末加班_小时") = dt_jiaban.Compute("Sum(加班时长)", "加班人员 = \'" & e.NewValue & "\' And 加班类型 = \'周末\'") / 3600
            e.DataRow("周末加班_金额") = e.DataRow("周末加班_小时") * dr_jishu("周末")
            e.DataRow("法定节假日加班_小时") = dt_jiaban.Compute("Sum(加班时长)", "加班人员 = \'" & e.NewValue & "\' And 加班类型 = \'法定节假日\'") / 3600
            e.DataRow("法定节假日加班_金额") = e.DataRow("法定节假日加班_小时") * dr_jishu("法定节假日")          
        End If
End Select

 

2、除以3600,就是你要的小时数。

 

3、看看如何打印关联表:

http://www.foxtable.com/help/topics/0204.htm

 


--  作者:wangcza
--  发布时间:2012/12/13 9:30:00
--  
谢谢狐爸的指导,由于对狐表的掌握还很欠缺,根据狐表的指导
打印报表模板有了我想要的效果,但还是存在一些问题,请大侠再多多指教
1、在项目事件MainTableChanged加上代码,提示“e”是“private”,因此它在此上下文不可访问


2、在“加班统计”代码除以3600,是可以得到我想要的小时数(例如2小时),但点打印到模板上的时候它显示的却是7200,

    

3、看了如何打印关联表,得到了我想要的打印效果,但还是有以下的问题(插不了图片,我添加到附件了)


 


--  作者:wangcza
--  发布时间:2012/12/13 9:32:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加班管理12-13.rar

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:想要的模板效果.xlsx


图片点击可在新窗口打开查看此主题相关图片如下:加班通知单(问题).jpg
图片点击可在新窗口打开查看


--  作者:lin_hailun
--  发布时间:2012/12/13 10:35:00
--  
 这样。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加班管理12-13_01.zip



--  作者:wangcza
--  发布时间:2012/12/13 11:47:00
--  
问题解决了,谢谢林老师
--  作者:wangcza
--  发布时间:2012/12/14 16:33:00
--  
在“加班通知单”打印时,一张纸打印一张单(这样比较浪费),如何设置它一张纸横向打印两张单再换页?
我在另一边添加再添加一个模板,这样横着打印时可以打印两张,但这两单的数据都是一样的
还有个问题,如果是一张A4纸横着打印两张单是需要设置两个模板才能打印的话,那如果我有时候需要只需要打印一张单而已呢?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:加班管理1215.rar