以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  tiantian,睡了吗?又一个问题,关于打印事件  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=65334)

--  作者:cyrollin
--  发布时间:2015/3/13 20:31:00
--  tiantian,睡了吗?又一个问题,关于打印事件
之前,加入了一段代码到打印事件:
Select e.Book.TempLate
    Case "派工表模板"
        Dim Sheet As XLS.Sheet = e.Book.Sheets(0)
        Sheet(3,9).Value = "<日期 >= # " & Date.Today & "#>"  \'写入打印条件
End Select

打印范围从今天的数据开始打印

现在,我设置了复选框, 如果选中了几行,就能打几行,该如何修改我这个代码呢?

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


Select e.Book.TempLate
    Case "派工表模板"
        Dim Sheet As XLS.Sheet = e.Book.Sheets(0)
        Dim r As Row In Tables("派工表“).Rows
       If r.Checked = True
        Sheet(3,9).Value = GetCheckedRows
     Else
        Sheet(3,9).Value = "<日期 >= # " & Date.Today & "#>"  \'写入打印条件
       End If
End Select

这样吗?






--  作者:Bin
--  发布时间:2015/3/14 9:26:00
--  
Select e.Book.TempLate
    Case "派工表模板"
        Dim Sheet As XLS.Sheet = e.Book.Sheets(0)
        dim ids as string 
        for each r as row in Tables("派工表“).Rows
             ids = ids & "," & r("_Identify")
      next
      Sheet(3,9).Value = Sheet(3,9).Value = "<_Identify in (" & ids.trim(",") & ")>"
End Select


--  作者:cyrollin
--  发布时间:2015/3/15 8:45:00
--  
Bin 不行,生成的报表是空白

看附件

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar



--  作者:有点甜
--  发布时间:2015/3/15 9:19:00
--  
Select e.Book.TempLate
    Case "一周派工表模板"
        Dim Sheet As XLS.Sheet = e.Book.Sheets(0)
        Dim ids As String
        For Each r As Row In Tables("派工表").GetCheckedRows
             ids = ids & "," & r("_Identify")
      Next
      Sheet(3,10).Value = "<_Identify in (" & ids.trim(",") & ")>"
End Select

--  作者:cyrollin
--  发布时间:2015/3/15 10:01:00
--  
如果我不特别选择几行出来打印,他会跳出来一个提示:

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.11.11.1
错误所在事件:Excel报表,BeforeBuild
详细错误信息:
未将对象引用设置到对象的实例。


--  作者:有点甜
--  发布时间:2015/3/15 10:15:00
--  

Select e.Book.TempLate
    Case "一周派工表模板"
        Dim Sheet As XLS.Sheet = e.Book.Sheets(0)
        Dim ids As String
        For Each r As Row In Tables("派工表").GetCheckedRows
             ids = ids & "," & r("_Identify")
      Next

      If ids > "" Then
          Sheet(3,10).Value = "<_Identify in (" & ids.trim(",") & ")>"

      End If
End Select


--  作者:cyrollin
--  发布时间:2015/3/15 10:20:00
--  
恩 ,搞定了 谢谢!但我试图用您上面这个代码,生成派工单时,又不能实现了。也是在表里面选择几个,就打印几个,只能打印连续选择的几行,如果不是连续选择的(复选框打勾)几行,只能打印鼠标所在的那一行。



--  作者:有点甜
--  发布时间:2015/3/15 10:22:00
--  

1、sheet单元格的位置要设置好,不一定是 (3,10)

 

2、名称什么的也要相应改


--  作者:cyrollin
--  发布时间:2015/3/15 10:26:00
--  
恩 ,是你那样操作的,如下:

Select e.Book.TempLate
    Case "派工单模板"
        Dim Sheet As XLS.Sheet = e.Book.Sheets(0)
        Dim ids As String 
        For Each r As Row In Tables("派工表").GetCheckedRows
             ids = ids & "," & r("_Identify")
      Next
      If ids > "" Then
          Sheet(2,9).Value = "<_Identify in (" & ids.trim(",") & ")>"
      End If
End Select

但没实现

--  作者:有点甜
--  发布时间:2015/3/15 10:31:00
--  

1、你的模板,必须要有 <End> http://www.foxtable.com/help/topics/0205.htm

 

2、算单元格你也不会?