Foxtable(狐表)用户栏目专家坐堂 → 【table复选】如何实现√的部分才打印呢?不勾的部分就不要打印?


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

主题:【table复选】如何实现√的部分才打印呢?不勾的部分就不要打印?

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
【table复选】如何实现√的部分才打印呢?不勾的部分就不要打印?  发帖心情 Post By:2017/11/9 13:27:00 [只看该作者]

【table复选】如何实现√的部分才筛选呢?不勾的部分就不要筛选?

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

当前代码如下:
If Tables("涉案款物").Current IsNot Nothing Then
    If Tables("涉案款物").Current.Checked = True Then
        Tables("款物明细").Filter = "案件编号 = '" & Tables("涉案款物").Current("案件编号") & "'"
    End If
End If

上述代码运行会将当前表所有符合条件数据筛选出来  而不是打勾部分筛选出来?

麻烦老师们多多指导 谢谢!
[此贴子已经被作者于2017/11/9 13:29:37编辑过]

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/9 15:02:00 [只看该作者]

 1、逻辑是什么?上传具体实例说明。

 

 2、参考代码

 

Dim t As Table = Tables("涉案款物")
Dim idxs As String = ""
For Each r As Row In t.GetCheckedRows
    idxs &= "'" & r("编号") & "',"
next
msgbox(idxs.trim(","))

 

 


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)?1、逻辑是什么?上传具体实例说...  发帖心情 Post By:2017/11/9 17:02:00 [只看该作者]

就是想实现案件款物表的复选框被选中的  在打印二维码预览的时候 全部二维码预览出来  没有选择的二维码就不要预览了

下面是我现在写的按钮代码  但是不能实现效果
If Tables("涉案款物").Current IsNot Nothing Then
    
    If Tables("涉案款物").Current.Checked = True Then
        Tables("款物明细").Filter = "案件编号 = '" & Tables("涉案款物").Current("案件编号") & "'"
        Dim doc As New PrintDoc
        Dim rg As prt.RenderGraphics
        Dim Bar As New BarCodeBuilder
        Dim dr As Row=Tables("打印机").Current
        doc.PageSetting.Width = val(dr("设置宽度"))
        doc.PageSetting.Height = val(dr("设置高度") )
        doc.PageSetting.LeftMargin=val(dr("左边距") )
        doc.PageSetting.RightMargin=val(dr("右边距") )
        doc.PageSetting.TopMargin=val(dr("上边距") )
        doc.PageSetting.BottomMargin=val(dr("下边距") )
        Doc.PrinterName = dr("打印机名称")
        doc.AutoRotate = dr("是否旋转")
        doc.PageSetting.Landscape=dr("是否横向")
        Bar.Symbology = Barpro.Symbology.QRCode
        Doc.Stacking = prt.StackingRulesEnum.InlineLeftToRight
        For Each r As Row In Tables("款物明细").Rows
            bar.Text=r("款物序号") & "号款物"
            bar.Code = r("加密字符")
            rg = new prt.RenderGraphics
            bar.DrawOnCanvas(rg.Graphics,0,0, val(dr("缩放比例") ))
            rg.Style.Spacing.All = 1
            Doc.Body.Children.Add(rg)
            bar.SaveImage(ProjectPath & "Reports\款物二维码\" & r("案件编号") & r("款物序号") & "二维码.jpg")
            r("二维码")=ProjectPath & "Reports\款物二维码\" & r("案件编号") & r("款物序号") & "二维码.jpg"
            r.DataRow.SQLInsertFile("图片",ProjectPath & "Reports\款物二维码\" & r("案件编号") & r("款物序号") & "二维码.jpg")
            r.Save

        Next
        Dim r1 As WinForm.RadioButton = e.Form.Controls("RadioButton1")
        Dim r2 As WinForm.RadioButton = e.Form.Controls("RadioButton2")
        If r1.Checked=True Then
            Doc.Preview()
        Else
            If r2.Checked=True Then
                Doc.Print()
            Else
                MessageBox.Show("请选择预览或者直打!")
            End If
        End If
    End If
End If
[此贴子已经被作者于2017/11/9 17:04:24编辑过]

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


加好友 发短信
等级:狐精 帖子:3205 积分:21305 威望:0 精华:0 注册:2016/3/28 16:57:00
  发帖心情 Post By:2017/11/9 17:40:00 [只看该作者]

打印前调用以下代码

Dim ids As new List(of String)
For Each r As Row In Tables("表A").GetCheckedRows
    ids.Add(r("_Identify"))
Next

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/11/9 18:34:00 [只看该作者]

你想控制这个查询条件?

 

Tables("款物明细").Filter = "案件编号 = '" & Tables("涉案款物").Current("案件编号") & "'"

 

查询条件是什么?逻辑是什么?根据哪个列查询?


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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点甜)你想控制这个查询条件? Ta...  发帖心情 Post By:2017/11/11 12:36:00 [只看该作者]

Dim rs As List(of Row) = Tables("卷宗入库").GetCheckedRows
If rs.Count > 0 Then '如果存在符合条件的行
    Dim doc As New PrintDoc '定义一个报表
    For Each r As Row In rs
        doc.……‘这个部分的代码怎么写?才能实现卷宗入库被选中的行按照行打印数据呢?’
    Next
    Dim Rows As List(Of DataRow)
    Dim CurRow As Row = Tables("卷宗入库").Current
    
    Dim bg As New prt.RenderTable() '定义一个表格对象
    
    bg.Style.GridLines.All = New prt.LineDef '将网格线类型设为默认类型
    bg.CellStyle.Spacing.All = 1 '内容距离网格线1毫米
    bg.Width = 160 '表宽为150毫米
    bg.Height = 50 '表高为150毫米
    bg.Rows.Count = 6 '设置行数
    bg.Cols.Count = 6 '设置列数
    bg.Cells(0,0).text = "贵州省瓮安县人民检察院"
    bg.Cells(0,0).SpanCols = 6 '合并第一行全部单元格,用于显示主标题
    bg.Cells(0,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '主标题居中
    bg.Cells(0,0).Style.Font = New Font("宋体", 16, FontStyle.Bold) '设置主标题字体
    bg.Rows(0).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉第一行的网格线
    '设置副标题
    bg.Cells(1,0).text = "涉案卷宗及财物二维码管理系统" '通过左边空格数量来调整副标题位置
    bg.Cells(1,0).SpanCols = 6 '合并地二行全部单元格,用于显示副标题
    bg.Cells(1,0).Style.Font = New Font("宋体", 16, FontStyle.Bold) '设置主标题字体
    bg.Cells(1,0).Style.TextAlignHorz = prt.AlignHorzEnum.Center '副标题内容居中
    bg.Rows(1).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉第二行的网格线
    bg.Rows(1).Style.Borders.Bottom = New prt.Linedef  '恢复第二行底端的网格线
    bg.Rows(1).Height = 8 '设置第二行的高度,拉开和表格主体的距离.
    '设置列标题
    
    bg.Cells(2,0).text = "基本信息" '通过左边空格数量来调整副标题位置
    bg.Cells(2,0).SpanCols = 3 '合并地二行全部单元格,用于显示副标题
    bg.Cells(2,0).Style.Font = New Font("宋体", 10, FontStyle.Bold) '设置主标题字体
    bg.Cells(2,0).Style.TextAlignHorz = prt.AlignHorzEnum.left '副标题内容居中
    bg.Cells(2,3).text = "卷宗编号"
    bg.Cells(2,3).Style.TextAlignHorz = prt.AlignHorzEnum.right '副标题内容居中
    bg.Cells(2,4).text = currow("卷宗编号")  '通过左边空格数量来调整副标题位置
    bg.Cells(2,4).SpanCols = 2 '合并地二行全部单元格,用于显示副标题
    bg.Cells(2,4).Style.Font = New Font("宋体", 10, FontStyle.Bold) '设置主标题字体
    bg.Cells(2,4).Style.TextAlignHorz = prt.AlignHorzEnum.Center '副标题内容居中
    
    bg.Rows(2).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉第二行的网格线
    bg.cells(2,0).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉第二行的网格线
    bg.cells(2,3).Style.Borders.All = New prt.LineDef("0mm", Color.white) '去掉第二行的网格线
    bg.cells(2,3).Style.Borders.Bottom = New prt.Linedef  '恢复第二行底端的网格线
    bg.cells(2,0).Style.Borders.Bottom = New prt.Linedef  '恢复第二行底端的网格线
    bg.Rows(2).Style.Borders.Bottom = New prt.Linedef  '恢复第二行底端的网格线
    bg.Rows(2).Height = 8 '设置第二行的高度,拉开和表格主体的距离.
    '设置列标题
    bg.Cols(0).Width = 20
    bg.Cols(1).Width = 45
    bg.Cols(2).Width = 20
    bg.Cols(3).Width = 45
    bg.Cols(4).Width = 20
    bg.Cols(5).Width = 20
    bg.Rows.Count = 4
    bg.Rows(0).Height = 15
    bg.Rows(1).Height = 15
    bg.Rows(2).Height = 10
    bg.Rows(3).Height = 10
    bg.Rows(4).Height = 10
    bg.Rows(5).Height = 10
    bg.Rows(6).Height = 10
    bg.Style.TextAlignHorz = prt.AlignHorzEnum.Center '所有文本内容居中'
    bg.Cells(3,0).Text = "所属地州"
    bg.Cells(3,1).Text = CurRow("所属地州")
    bg.Cells(3,2).Text = "卷宗名称"
    bg.Cells(3,3).Text = CurRow("卷宗名称")
    bg.Cells(3,4).Text = "涉案款物"
    bg.Cells(3,5).Text = CurRow("涉案款物")
    
    bg.Cells(4,0).Text = "所属单位"
    bg.Cells(4,1).Text = CurRow("所属单位")
    bg.Cells(4,2).Text = "卷宗册数"
    bg.Cells(4,3).Text = CurRow("卷宗册数")
    bg.Cells(4,4).Text = "款物数量"
    'bg.Cells(4,5).Text = ndr("款物数量")
    bg.Cells(5,0).Text = "承办部门"
    bg.Cells(5,1).Text = CurRow("承办部门")
    bg.Cells(5,2).Text = "承办人员"
    bg.Cells(5,3).Text = CurRow("承办人")
    bg.Cells(5,4).Text = "使用人员"
    bg.Cells(5,5).Text = CurRow("使用人")
    bg.Cells(6,0).Text = "录入时间"
    bg.Cells(6,1).Text = CurRow("录入时间")
    bg.Cells(6,2).Text = "联系电话"
    bg.Cells(6,3).Text = CurRow("联系电话")
    bg.Cells(6,4).Text = "办理状态"
    bg.Cells(6,5).Text = CurRow("办理状态")
    doc.Body.Children.Add(bg)
    
    
    Dim r1 As WinForm.RadioButton = e.Form.Controls("RadioButton1")
    Dim r2 As WinForm.RadioButton = e.Form.Controls("RadioButton2")
    If r1.Checked=True Then
        Doc.Preview()
    Else
        If r2.Checked=True Then
            Doc.Print()
        Else
            MessageBox.Show("请选择预览或者直打!")
        End If
    End If
End If

 回到顶部
帅哥,在线噢!
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

红色的代码和选中没有任何关系,按照你原来的代码直接写打印代码即可

选中控制已经在前面控制好了

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


加好友 发短信
等级:九尾狐 帖子:2472 积分:17346 威望:0 精华:0 注册:2013/1/31 0:03:00
回复:(有点蓝)红色的代码和选中没有任何关系,按照...  发帖心情 Post By:2017/11/11 14:52:00 [只看该作者]

谢谢有点甜老师提醒 谢谢

[此贴子已经被作者于2017/11/11 14:54:21编辑过]

 回到顶部