以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  单据打印  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152483)

--  作者:outcat
--  发布时间:2020/7/13 11:45:00
--  单据打印

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

我这是一个参数配置表,然后我要做一个打印功能,写了下面的自定义函数,想实现 不同的窗体,打印功能开启,该种单据可以打印,打印功能关闭,该窗体不打印,可下面这段代码,在控制 参数名称,对应不同的窗体调用,不知道该怎么写了,请老师赐教
Dim e = args(0)
Dim 参数类型 As String = args(1)
Dim 参数名称 As String = args(2)
Dim 配置参数 As String = args(3)
If Tables("参数配置表").Current IsNot Nothing Then
    Dim r As Row = Tables("参数配置表").Current
    If r("参数类型") = "是否启用打印" And r("配置参数") = "是"  Then
        Dim doc As PrintDoc = e.Form.GernatePrintDoc()
        For Each c As object In Doc.Body.Children
            If Typeof c Is prt.RenderTable Then
                Dim t As prt.RenderTable = c
                t.Rows(0).Style.Font = new font("宋体", 10, fontstyle.bold)   \'第一行,即标题行加粗
                \'t.Rows(t.Rows.count-1).Style.Font = new font("宋体", 10, fontstyle.bold) \'最后一行,即标题加粗,这里是打印表格明细,不需要
                For i As Integer = 0 To t.Rows.count-1
                    For j As Integer = 0 To t.Cols.count-1
                        t.cells(i,j).Style.BackColor = Color.white
                        t.cells(i,j).Style.TextColor = Color.black
                    Next
                Next
            End If
        Next
        doc.Preview()
        \'doc.Print()
    Else
        Return Nothing
    End If
End If

--  作者:有点蓝
--  发布时间:2020/7/13 12:14:00
--  
Dim e = args(0)
Dim 参数类型 As String = args(1)
Dim 参数名称 As String = args(2)
Dim 配置参数 As String = args(3)
dim dr as datarow = DataTables("参数配置表").find("参数名称=\'" & 参数名称 & "\' and 参数类型=\'" & 参数类型 & "\' and 配置参数=\'" & 配置参数 & "\'")
If dr IsNot Nothing Then
    Dim doc As PrintDoc = e.Form.GernatePrintDoc()
……

--  作者:outcat
--  发布时间:2020/7/13 14:31:00
--  
老师,还得请教了
dim dr as datarow = DataTables("参数配置表").find("参数名称=\'" & 参数名称 & "\' and 参数类型=\'" & 参数类型 & "\' and 配置参数=\'" & 配置参数 & "\'")
改成
Dim dr As DataRow = DataTables("参数配置表").find("参数名称=\'" & 参数名称 & "\'and 参数类型=\'是否启用打印\' And 配置参数=\'是\'") 不能打印
改成具体的值
Dim dr As DataRow = DataTables("参数配置表").find("参数名称=\'新增验收入库单\' and 参数类型=\'是否启用打印\' And 配置参数=\'是\'") 
配置参数 “是” 则 全部单子都能打印, “否”,则所有单子都不打印

我的函数 调用  Functions.Execute("print1",e,"参数类型","参数名称","配置参数") ,感觉好像是 我这个参数名称和具体的窗体名关联不起来,不知道该怎么处理了,再麻烦老师了。

--  作者:有点蓝
--  发布时间:2020/7/13 14:33:00
--  
函数 调用  Functions.Execute("print1",e,"是否启用打印","新增验收入库单","是")
--  作者:outcat
--  发布时间:2020/7/13 14:55:00
--  
老师,这样是解决了这个单据,可是如果系统交给了客户,客户要改这个配置就没办法处理了,我是这么想的,我录入参数名称 比如 新增验收入库单时,如何指定 新增验收入库单 就是真正的  Forms(新增验收入库单)这个窗体呢,这样保存 参数名称时,是真正的窗体名,然后函数调用时,不同的窗体就可以对应了吧。这个参数名称 ,有很过个单据,都在这里写 具体的值,好像很繁琐了
Dim cmb As WinForm.ComboBox = e.Form.Controls("ComboBox2")
Select Case cmb .Value
    Case "新增验收入库单"
        Forms("新增验收入库单").open
    Case "新增直拨入库单"
        Forms("新增直拨入库单").open
    Case "编辑验收入库单"
        Forms("编辑验收入库单").open
    Case "编辑直拨入库单"
        Forms("编辑直拨入库单").open
    Case "新增商品调拨单"
        Forms("新增商品调拨单").open
    Case "新增家具调拨单"
        Forms("新增家具调拨单").open
    Case "编辑商品调拨单"
        Forms("编辑商品调拨单").open
    Case "编辑家具调拨单"
        Forms("编辑家具调拨单").open
End Select     我写了,这个代码, 可是 .open 这块应该改成什么, 就能建立关联呢

--  作者:有点蓝
--  发布时间:2020/7/13 14:59:00
--  
Functions.Execute("print1",e,"是否启用打印",e.form.name,"是")