以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]扫描仪图片存储路径  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=117299)

--  作者:天一生水
--  发布时间:2018/4/10 12:55:00
--  [求助]扫描仪图片存储路径
1、在全局代码设置了存储路径,默认为ProjectPath & "Attachments\\sm" :
\'扫描事件
Public Sub LinkLabel1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Dim frm As WinForm.Form = Forms("图片管理器")
Dim piv As WinForm.PictureViewer = Forms("图片管理器").Controls("PictureViewer1")
Dim imageFile As WIA.imageFile
Dim cdc As  New WIA.CommonDialogClass()

Try
    imageFile = cdc.ShowAcquireImage(WIA.WiaDeviceType.ScannerDeviceType, WIA.WiaImageIntent.TextIntent, WIA.WiaImageBias.MaximizeQuality, "{00000000-0000-0000-0000-000000000000}", True, True,False)
    If  imageFile IsNot Nothing Then
        \'Dim path As String = ProjectPath & "Attachments\\sm" & Format(Date.Now,"yyyyMMddHHmmss") & ".jpg"
        \'-----------------------------------
        Dim ary = piv.BindingField.split(".")      \'有点甜改扫描存放地址
        Dim str As String = Tables(ary(0)).DataTable.DataCols(ary(1)).DefaultFolder
        str = iif(str = "", projectPath & "attachments", str)
        Dim path As String = str & "\\sm" & Format(Date.Now,"yyyyMMddHHmmss") & ".jpg"
        \'-----------------------------------
        imageFile.SaveFile(path)
        piv.AddFile(FileSys.GetName(path))
    End If
Catch generatedExceptionName As System.Runtime.InteropServices.COMException
    MessageBox.Show("您的扫描仪尚未准备好!","错误",MessageBoxButtons.OK,MessageBoxIcon.Error)
End Try
End Sub

2、扫描仪窗口afterload,设置了绑定字段:
Dim pbx As WinForm.PictureViewer \'图片浏览器绑定窗口表列
pbx = Forms("图片管理器").Controls("PictureViewer1")
pbx.BindingField = "扫描仪_Table1.扫描图片"
--------------------------------------------------------------

问题:
还需要在表格的列属性或者窗口图片浏览器控件设置存储路径吗?
现在不设置或者都设置为”\\sm“,扫描后,都提示系统找不到指定路径。
请老师看看是哪里问题。
谢谢!


--  作者:有点甜
--  发布时间:2018/4/10 14:43:00
--  

弹出值看看不就好了?

 

Dim str As String = Tables(ary(0)).DataTable.DataCols(ary(1)).DefaultFolder

msgbox(str)

str = iif(str = "", projectPath & "attachments/sm/", str)
msgbox(str)
Dim path As String = str & "\\" & Format(Date.Now,"yyyyMMddHHmmss") & ".jpg"
msgbox(path)

--  作者:天一生水
--  发布时间:2018/10/9 12:14:00
--  

一直用着没有问题,现在点击扫描时出现下列提示:

 

系统调用失败:异常来自 HRESULT:0x80010100 (RPC_E_SYS_CALL_FAILED)

 

 
此主题相关图片如下:aaa.jpg
按此在新窗口浏览图片

 

我查看了所有涉及扫描的代码,并没有改动过,打开先前备份的项目,也可以正常扫描。

会是哪里的原因?


[此贴子已经被作者于2018/10/9 12:14:23编辑过]

--  作者:有点甜
--  发布时间:2018/10/9 12:35:00
--  

如果原来的项目正常,那拷贝原来的代码覆盖现在代码后测试


--  作者:天一生水
--  发布时间:2018/10/11 11:13:00
--  

甜老师好!

又测试了2天,项目原有60(有时61)个表,发现在所有代码不变的情况下,如果再创建一个表(内部表和外部表都试过),使表数量增加1个后,扫描就会报错。

删除任意1个表,使表数量减少1个,再重启项目,扫描就正常了。

这是什么情况?好像只给表的数量有关,与具体表的内容无关。


--  作者:有点甜
--  发布时间:2018/10/11 11:21:00
--  

 

把扫描功能单独拿出来测试,去掉多余的代码单独测试 ShowAcquireImage

 

在你的项目以及新项目那里一起测试。