以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  打印预览出现问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=194912)

--  作者:18365900066
--  发布时间:2025/2/5 18:02:00
--  打印预览出现问题
“C1.Win.C1Preview.C1PreviewPane”的类型初始值设定项引发异常。
未能加载文件或程序集“C1.C1Zip.4, Version=4.0.20191.359, Culture=neutral, PublicKeyToken=79882d576c6336da”或它的某一个依赖项。找到的程序集清单定义与程序集引用不匹配。 (异常来自 HRESULT:0x80131040)

打印机预览按钮,我的电脑可以预览,换电脑不能预览了,但是可以打印出来。

预览代码这样写的
Dim cmb As WinForm.ComboBox = e.form.Controls("cmbprinters")
Dim doc As PrintDoc = e.Form.gernateprintdoc()
If cmb.Value <> "默认打印机" Then
Doc.PrinterName =  cmb.Value
End If
doc.Preview()

--  作者:18365900066
--  发布时间:2025/2/5 18:05:00
--  

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

--  作者:有点蓝
--  发布时间:2025/2/6 8:38:00
--  
发布后的程序?把没有问题的电脑的程序复制到有问题的电脑试试
--  作者:18365900066
--  发布时间:2025/2/6 12:24:00
--  
谢谢老师,我在换电脑试试,
请教您另外一个问题
我的用户   用 系统需要两个打印机,一个默认打印机,还需要另外热敏一个打印机,
问题是   这用户    好几位需要两台打印机,,但是他们的每个热敏打印机型号都不同,

怎么让用户的客服使用另外一个打印机的时候 打开这个窗口,直接自动切换到需要这个热敏打印机。

能让 用户 自己选择一次以后,就在本机 记住 此用户自己的选择么?

Tables("打印快递单明细_Table1").Filter = "编号 = \'" & Vars("编号") & "\'"
Dim v As String
For Each p As String In InstalledPrinters
v = v & "|" & p
Next

e.Form.Controls("cmbprinters").combolist =  v



--  作者:有点蓝
--  发布时间:2025/2/6 13:39:00
--  
到组合框valuechanged事件把用户选择的打印机保存到设置里:http://www.foxtable.com/webhelp/topics/1544.htm

在1楼代码后面读取设置给组合框赋值

--  作者:18365900066
--  发布时间:2025/2/7 16:12:00
--  
组合框valuechanged事件
Dim xm As String =  Vars("姓名")
Dim cmb As String = e.Form.Controls("cmbprinters").Value
SaveConfigValue(xm, cmb)
\'MessageBox.Show(GetConfigValue(xm,1))

这个GetConfigValue离开了这个   组合框   控件就不能用了啊。 
我在命令窗口执行  MessageBox.Show(GetConfigValue(xm,1)) 也没有结果

[此贴子已经被作者于2025/2/7 16:12:48编辑过]

--  作者:有点蓝
--  发布时间:2025/2/7 16:26:00
--  
组合框valuechanged事件
Dim cmb As String = e.sender.text
if cmb > ""
SaveConfigValue("打印机名称", cmb)
else
msgbox("没有选择打印机")
end if

组合框设置的地方
Tables("打印快递单明细_Table1").Filter = "编号 = \'" & Vars("编号") & "\'"
Dim v As String
For Each p As String In InstalledPrinters
v = v & "|" & p
Next

e.Form.Controls("cmbprinters").combolist =  v
dim name as string = GetConfigValue("打印机名称","")
msgbox(name)
e.Form.Controls("cmbprinters").text = name

--  作者:18365900066
--  发布时间:2025/2/7 17:05:00
--  
谢谢有点蓝老师。谢谢


关于 一楼 和 二楼出现的  那个  打印预览错误  导致的原因如下

把foxtable.exe 改成 XXXX管理系统.exe导致 了窗口 预览出错的问题了。
[此贴子已经被作者于2025/2/7 17:22:09编辑过]

--  作者:18365900066
--  发布时间:2025/2/7 21:48:00
--  
第一段代码
Dim cmb As WinForm.ComboBox = e.form.Controls("cmbprinters")
Dim doc As PrintDoc = e.Form.GernatePrintDoc()
If cmb.Value <> "默认打印机" Then
    Doc.PrinterName =  "cmb.Value"
End If
doc.Print()

上面代码只能   使用  窗口- 文件 - 页面设置 里面的打印机?

第二段代码
Dim cmb As WinForm.ComboBox = e.form.Controls("cmbprinters")
Dim doc As PrintDoc = e.Form.GernatePrintDoc()
Select Case Vars("姓名")
    Case "张三"
        Doc.PrinterName =  "Gprinter GP-1124D"
        doc.Print()
    Case "李四"
        Doc.PrinterName =  "HP DJ 2130 series"
        doc.Print()
End Select
\'\'------------这个上面代码能指定  那个账号用那个打印机


老师您好,为什么第一段代码指定不了打印机,第二段代码就可以按名字指定打印机?
[此贴子已经被作者于2025/2/7 21:48:35编辑过]

--  作者:有点蓝
--  发布时间:2025/2/8 8:57:00
--  
Doc.PrinterName =  cmb.Value
调试看区别
msgbox(cmb.Value)
msgbox("cmb.Value")