以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [原创]打印选中的复选框中的内容 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106292) |
-- 作者:sysckj -- 发布时间:2017/9/6 10:49:00 -- [原创]打印选中的复选框中的内容 Dim i As Integer For Each r As Row In Tables("数据表").rows r.Table.Position = r.Index Select Case Vars("规格") Case "0.5kg/袋" For i=1 To r("qty")/0.5 Step 1 Dim doc As PrintDoc = e.Form.GernatePrintDoc() Doc.print() Next Case "1kg/袋" For i=1 To r("qty")/1 Step 1 Dim doc As PrintDoc = e.Form.GernatePrintDoc() Doc.print() Next End Select Next 已经在数据表中调出复选框选项,如何在该代码的基础上增加为只打印选中的复选框数据
|
-- 作者:有点甜 -- 发布时间:2017/9/6 11:05:00 -- Dim i As Integer For Each r As Row In Tables("数据表").GetCheckedRows |
-- 作者:sysckj -- 发布时间:2017/9/6 11:27:00 -- 回复:(有点甜)Dim i As IntegerFor Each r As Row ... Dim cnames() As String = {"BarCode1", "BarCode2", "BarCode3"} Dim ge As String = vars("规格").GetCheckedRows ge = iif(ge="0.5kg/袋", "500.0g", iif(ge="1kg/袋", "1000.0g", "")) For Each r As Row In Tables("数据表").rows Dim cnt As Integer = r("qty") / (val(ge.replace("g", "")) / 1000) Dim st As Integer = Math.Ceiling(cnt /3) For i As Integer = 0 To 2 e.Form.controls("label" & i & "1").text = r("fullname") e.Form.controls("label" & i & "2").text = r("outfactorydate") e.Form.controls("label" & i & "3").text = r("jobnumber") e.Form.controls("label" & i & "4").text = ge Next For i As Integer = 0 To st - 1 For Each cname As String In cnames Dim bar As WinForm.BarCode = e.Form.Controls(cname) Dim str As String = "" For j As Integer = 1 To 35 str &= Rand.Next(10) Next bar.Code = "*" & str bar.Text = str.substring(0,12) & vbcrlf & str.SubString(12, 12) & vbcrlf & str.SubString(24) Next If i = st-1 Then If i * 3 + 1>=cnt Then e.Form.controls("label11").text = Nothing e.Form.controls("label12").text = Nothing e.Form.controls("label13").text = Nothing e.Form.controls("label14").text = Nothing Dim bar As WinForm.BarCode = e.Form.Controls("BarCode2") bar.Code = "" bar.Text = "" End If If i * 3 + 2>=cnt Then e.Form.controls("label21").text = Nothing e.Form.controls("label22").text = Nothing e.Form.controls("label23").text = Nothing e.Form.controls("label24").text = Nothing Dim bar As WinForm.BarCode = e.Form.Controls("BarCode3") bar.Code = "" bar.Text = "" End If End If Dim doc As PrintDoc = e.Form.GernatePrintDoc() doc.print Next Next 这个该怎么加呢
|
-- 作者:sysckj -- 发布时间:2017/9/6 11:30:00 -- 回复:(有点甜)Dim i As IntegerFor Each r As Row ... 还有就是,我在窗口中的一个Label控件,现在是字数超过设置的长度就换行打印覆盖到下面的内容上面了,我想要他超出的那部分就不要打印了,怎么设置呢 |
-- 作者:有点甜 -- 发布时间:2017/9/6 11:35:00 -- For Each r As Row In Tables("数据表").rows
改成
For Each r As Row In Tables("数据表").GetCheckedRows |
-- 作者:有点甜 -- 发布时间:2017/9/6 11:39:00 -- 以下是引用sysckj在2017/9/6 11:30:00的发言:
还有就是,我在窗口中的一个Label控件,现在是字数超过设置的长度就换行打印覆盖到下面的内容上面了,我想要他超出的那部分就不要打印了,怎么设置呢
你可以设置label的自动大小->False;宽高设置成你定义的宽高。 |
-- 作者:sysckj -- 发布时间:2017/9/6 11:45:00 -- 回复:(有点甜)以下是引用sysckj在2017/9/6 11:30:0... 自动大小是False啊,但是打印出来就是自动换行了 |
-- 作者:有点甜 -- 发布时间:2017/9/6 11:48:00 -- 以下是引用sysckj在2017/9/6 11:45:00的发言:
自动大小是False啊,但是打印出来就是自动换行了
打印出来的,是你设置的控件的宽度和高度那个大小的,不会超出打印的。 |
-- 作者:sysckj -- 发布时间:2017/9/6 11:51:00 -- 回复:(有点甜)以下是引用sysckj在2017/9/6 11:45:0... 那我再调下高度看看,DateTimePicker日期控件怎么设置默认是计算机时间呢 |
-- 作者:有点甜 -- 发布时间:2017/9/6 11:57:00 -- 以下是引用sysckj在2017/9/6 11:51:00的发言:
那我再调下高度看看,DateTimePicker日期控件怎么设置默认是计算机时间呢
e.form.controls("DateTimePicker1").Value = Date.Now |