Foxtable(狐表)用户栏目专家坐堂 → 又请教时间转换问题


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

主题:又请教时间转换问题

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/10 15:40:00 [显示全部帖子]

rt.Cells(r + 1, c).Text = Format(tb(r,c), "HH:mm")

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/10 15:47:00 [显示全部帖子]

不可能,上传例子。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/10 16:19:00 [显示全部帖子]

汗,你例子什么也没有啊,做好窗口,贴出代码。

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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/10 16:36:00 [显示全部帖子]

设置列格式

 

DataTables("考勤_Table1").DataCols("上班时间").SetDateTimeFormat(DateTimeFormatEnum.Time)
DataTables("考勤_Table1").DataCols("上班时限").SetDateTimeFormat(DateTimeFormatEnum.Time)
DataTables("考勤_Table1").DataCols("上班计时").ExtendType = ExtendTypeEnum.TimeSpan
DataTables("考勤_Table1").DataCols("下班时间").SetDateTimeFormat(DateTimeFormatEnum.Time)
DataTables("考勤_Table1").DataCols("下班时限").SetDateTimeFormat(DateTimeFormatEnum.Time)
DataTables("考勤_Table1").DataCols("下班计时").ExtendType = ExtendTypeEnum.TimeSpan
DataTables("考勤_Table1").DataCols("工作时长").ExtendType = ExtendTypeEnum.TimeSpan

 

------------------------------------------------

 

打印代码

 

Dim doc As New PrintDoc '定义一个新报表
Dim rt As New prt.RenderTable() '定义一个新表格
Dim n As New prt.RenderText '定义一个文本对象
Dim n1 As New prt.RenderText '定义一个文本对象
Dim n2 As New prt.RenderText '定义一个文本对象
Dim n3 As New prt.RenderText '定义一个文本对象
'Dim n4 As New prt.RenderText '定义一个文本对象
Dim st As String
Dim tb As Table = Tables("考勤_Table1")
n.Text = "员工工作考勤明细报表" '设置文本对象的内容
n.Style.Font = New Font("黑体", 20 , FontStyle.Bold) '设置文本对象的字体
n.Style.TextAlignHorz = prt.AlignHorzEnum.Center '文本内容水平居中
doc.Body.Children.Add(n)
n1.Text = "打印日期:"& Date.Now
n1.Style.Font = New Font("黑体", 8 , FontStyle.Bold) '设置文本对象的字体
n1.Style.TextAlignHorz = prt.AlignHorzEnum.Right '文本内容水平居中
n1.X = 0 + 20 '指定水平位置
n1.y = 18 + 20 '指定垂直位置

n3.Style.Font = New Font("黑体", 8 , FontStyle.Bold) '设置文本对象的字体
n3.Style.TextAlignHorz = prt.AlignHorzEnum.Left '文本内容水平居中
n3.X = 5 + 20 '指定水平位置
n3.y = 18 + 20 '指定垂直位置
n3.Text = e.Form.Controls("Label5").Text

doc.Body.Children.Add(n3) '将文本对象加入到报表
doc.Body.Children.Add(n2) '将文本对象加入到报表
doc.Body.Children.Add(n1)
doc.PageSetting.Landscape = True '横向打印
rt.Width = "243" '表格宽度为自动,也就是等于各列设置宽度之和
rt.SplitHorzBehavior = prt.SplitBehaviorEnum.SplitIfNeeded '表格宽度超出页宽时,可以水平换页
rt.Style.Font = tb.Font
For c As Integer = 0 To tb.Cols.Count -1 '逐列设置和填入内容
    rt.Cells(0,c).Text = tb.Cols(c).Name '列名作为标题
    rt.Cells(0,c).Style.TextAlignHorz = prt.AlignHorzEnum.Center '标题内容水平居中
    rt.Cols(c).Width = tb.Cols(c).PrintWidth '列宽等于实际列宽
    rt.Style.Spacing.Top = 10 '表格和前面对象的垂直间隔为4毫米
    rt.Style.Spacing.Bottom = 10 '表和和前对象的垂直间隔为10毫米
    If tb.Cols(c).IsNumeric OrElse tb.Cols(c).IsDate Then '如果是数值或日期列
        rt.Cols(c).Style.TextAlignHorz = prt.AlignHorzEnum.Center '数据水平居中
    End If
   
    If tb.Cols(c).IsNumeric Then
        Select tb.Cols(c).Name
            Case "工作时长"
                For r As Integer = 0 To tb.Rows.Count -1 '开始填入该列内容
                    rt.Cells(r + 1, c).Text = tb(r,c) \ 3600 & ":" & Format((tb(r,c) Mod 3600) \ 60,"00")
                    rt.Rows(0).Height = 7 '设置行高
                Next
            Case Else
                For r As Integer = 0 To tb.Rows.Count -1 '开始填入该列内容
                    rt.Cells(r + 1, c).Text = Format(tb(r,c), "0")
                    rt.Rows(0).Height = 7 '设置行高
                Next
        End Select
       
    ElseIf tb.Cols(c).IsDate
        Select tb.Cols(c).Name
            Case "上班时间"
                For r As Integer = 0 To tb.Rows.Count -1 '开始填入该列内容
                    rt.Cells(r + 1, c).Text = Format(tb(r,c), "HH:mm")
                    rt.Rows(0).Height = 7 '设置行高
                Next
        End Select
    Else
        For r As Integer = 0 To tb.Rows.Count -1 '开始填入该列内容
            rt.Cells(r + 1, c).Text = tb(r,c)
            rt.Rows(0).Height = 7 '设置行高
        Next
        For i As Integer = 1 To 9
            rt.Rows(i).Height = 5.5
        Next
    End If
Next
rt.Style.Gridlines.All = New prt.Linedef(Color.Black) '灰色网格线
rt.CellStyle.Spacing.All = 0.5 '单元格内距设为0.5毫米
rt.Rows(0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '第一行内容水平居中
rt.RowGroups(0,1).Header = prt.TableHeaderEnum.All '利用行组,将第一行设为表头
rt.Style.Font = New Font("宋体", 10 , FontStyle.Bold) '设置文本对象的字体
doc.Body.Children.Add(rt) '将表格加入到报表
doc.Preview()


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


加好友 发短信
等级:贵宾 帖子:39310 积分:196782 威望:0 精华:1 注册:2015/4/25 9:23:00
  发帖心情 Post By:2015/12/10 18:08:00 [显示全部帖子]

Case "上班时间", "上班时限"

 

需要处理的列,都写上去,而且要处理其余的的情况

 

     Select tb.Cols(c).Name
            Case "上班时间", "上班时限"
                For r As Integer = 0 To tb.Rows.Count -1 '开始填入该列内容
                    rt.Cells(r + 1, c).Text = Format(tb(r,c), "HH:mm")
                    rt.Rows(0).Height = 7 '设置行高
                Next

            Case Else

                '写上你的代码
        End Select


 回到顶部