找回密码
 加入
搜索
楼主: userlong

[系统综合] 打印控件vsPrint8.ocx。如何插入图片 请高手指点一下

 火.. [复制链接]
 楼主| 发表于 2016-6-5 17:02:24 | 显示全部楼层
回复 45# chzj589


    我看你的预览里有些打印的功能  不知道你如何实现的、?
发表于 2016-6-5 17:22:42 | 显示全部楼层
回复 46# userlong
HTML代码实现的。
单写一条HTML打印代码是不能操作的。
百度一下HTML代码大全
 楼主| 发表于 2016-6-5 20:20:59 | 显示全部楼层
回复 47# chzj589


    理解了!!!我知道了 !你用的GUICtrlListView 来显示  显示应该会出现卡顿把?
发表于 2016-6-5 20:32:24 | 显示全部楼层
回复 48# userlong
怎么讲?
GUICtrlListView读取数据会卡顿?
还是读取GUICtrlListView里数据显示在报表会卡顿? 
 楼主| 发表于 2016-6-6 08:41:42 | 显示全部楼层
回复 49# chzj589


   我说的是显示。。我看了你的程序  你这样读取显示在列表  肯定会卡顿。就是如果数据多就会慢动作显示出来
发表于 2016-6-6 09:26:32 | 显示全部楼层
回复 50# userlong
读取显示需要时间,数据越大读取显示需要时间越长,不知算不算卡顿?
读取数据Listview1列表显示


读取Listview1列表数据报表显示

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×
 楼主| 发表于 2016-6-6 11:36:07 | 显示全部楼层
回复 51# chzj589


    这个表这样读取 会卡顿。有种方法不会卡顿。一秒显示3000条 没问题。论坛里有介绍。。但是麻烦。我用的是表格控件    所以没有这个问题
发表于 2016-6-6 13:49:12 | 显示全部楼层
回复 52# userlong

好象与列数有关系,
用三条列数,是的一秒显示3000条。
用五条列数,三秒显示3000条。
用七条列数,五秒显示3000条。
实际操作的就不是这个速度了。要慢很多。
主要看要读取的数据源。
发表于 2016-6-7 15:03:36 | 显示全部楼层
回复 52# userlong

哪個表格控件??
 楼主| 发表于 2016-6-7 17:29:28 | 显示全部楼层
回复 54# kk_lee69

vsFlex8.ocx
   
你这个插入图片都是固定位置的啊。如何插入到表格里  跟着表格下移。
或是 怎么样可以不靠坐标来固定位置。 也就是直接插在本位位置。例如.Paragraph  或是.text 那样。
.DrawPicture(.LoadPicture("C:\名5.jpg"),3000,10000, "10cm", "10cm", "500%", "500%")
如何把这个图片拆入表格中?  如
AddTable("2000|2000|5500|1800", "图片|项目1|项目2|项目3","")如何插入在这个表格中的图片位置
发表于 2016-6-7 17:37:02 | 显示全部楼层
回复 55# userlong


    我不用這個的  當時 插入圖片方法 也是 幫你測試出來的,所有的事情 回到原點就是 測試 實驗 找資料.....現在你問我 我也沒做過
发表于 2016-6-16 20:41:44 | 显示全部楼层
收藏备用
发表于 2016-6-23 03:47:32 | 显示全部楼层
回复 1# userlong
你这个不高级,我用的是 lodop 这个高级多了。
发表于 2016-6-23 09:20:24 | 显示全部楼层
回复 58# tvzml

老大 有空  何不提供個範例  學習學習!!
发表于 2016-6-23 09:32:07 | 显示全部楼层
Lodop 是网页打印控件,根据 Lodop 语法,咋按它要求生成 HTM,不就可以按要求打印了。


PRINT_BARCODE()

Func PRINT_BARCODE()
        PRINT_INIT()
        If IsArray($CODE_Array) Then
                If UBound($CODE_Array) > 2 Then
                        Dim $SOLen
                        $SOLen = _SOLen("LODOP.PREVIEW();")
                        If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.PRINT();'
                EndIf
        EndIf
        PRINT_act()
EndFunc   ;==>PRINT_BARCODE
Func PRINT_INIT()
        If Not FileExists("C:\Lodop") Then DirCreate("C:\Lodop")
        If Not FileExists("C:\Lodop\install_lodop32.exe") Then
                If FileExists(@ScriptDir & "\Lodop\install_lodop32.exe") Then
                        FileCopy(@ScriptDir & "\Lodop\install_lodop32.exe", "C:\Lodop\install_lodop32.exe", 1)
                EndIf
        EndIf
        If Not FileExists("C:\Lodop\LodopFuncs.js") Then
                If FileExists(@ScriptDir & "\Lodop\LodopFuncs.js") Then
                        FileCopy(@ScriptDir & "\Lodop\LodopFuncs.js", "C:\Lodop\LodopFuncs.js", 1)
                EndIf
        EndIf
        _FileCreate("C:\Lodop\Lodop.htm")
        If $CODE_Array_Save[0] = "" Then
                If FileExists(@ScriptDir & "\Lodop\Lodop.htm") Then
                        _FileReadToArray(@ScriptDir & "\Lodop\Lodop.htm", $CODE_Array_Save)
                        If IsArray($CODE_Array_Save) Then
                                If UBound($CODE_Array_Save) > 2 Then
                                EndIf
                        EndIf
                EndIf
        EndIf
        $CODE_Array = $CODE_Array_Save
        If IsArray($CODE_Array) Then
                If UBound($CODE_Array) > 2 Then
                        Dim $SOLen, $len_h = 60, $len_hh = 0, $SETLEN = 0, $STYLEA_add = 0, $KH_Code_A, $KH_Code_B, $FontSize_add = 30
                        $SOLen = _SOLen("上网凭证")
                        If $SOLen > 0 Then
                                Dim $SWPZ_STR = $CODE_Array[$SOLen]
                                $SWPZ_STR = StringReplace($SWPZ_STR, "上网凭证", $wbName)
                                $CODE_Array[$SOLen] = $SWPZ_STR
                        EndIf
                        If StringLen($KH_Code) > 7 Then
                                $len_hh = 20
                                $STYLEA_add = 1
                                $FontSize_add = 22
                                $KH_Code_A = StringMid($KH_Code, 1, 10)
                                $KH_Code_B = StringMid($KH_Code, 11, 8)
                                $SOLen = _SOLen("用_户_编_号_A")
                                If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.ADD_PRINT_TEXT(15,10,170,30,"' & $KH_Code_A & '");'
                                $SOLen = _SOLen("用_户_编_号_B")
                                If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.ADD_PRINT_TEXT(45,10,170,30,"' & $KH_Code_B & '");'
                                $SOLen = _SOLen("字体大小B")
                                If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.SET_PRINT_STYLEA(4,"FontSize",' & $FontSize_add & ');'
                                $SOLen = _SOLen("登_录_口_令_加_粗")
                                If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.SET_PRINT_STYLEA(5,"Bold","1");'
                        Else
                                $len_hh = 0
                                $SOLen = _SOLen("用_户_编_号_A")
                                If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.ADD_PRINT_TEXT(15,10,170,30,"' & $KH_Code & '");'
                                $SOLen = _SOLen("登_录_口_令_加_粗")
                                If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.SET_PRINT_STYLEA(4,"Bold","1");'
                        EndIf
                        $SOLen = _SOLen("字体大小A")
                        If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.SET_PRINT_STYLEA(3,"FontSize",' & $FontSize_add & ');'
                        $SOLen = _SOLen("字体大小C")
                        If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.SET_PRINT_STYLEA(' & 7 + $STYLEA_add & ',"FontSize",14);'
                        $SOLen = _SOLen("登录口令")
                        If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.ADD_PRINT_TEXT(' & $len_h + $len_hh & ',10,85,20,"口令:' & $KH_PASS & '");'
                        $SOLen = _SOLen("预付现金")
                        If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.ADD_PRINT_TEXT(' & $len_h + $len_hh & ',95,85,20,"现金:' & $KH_YFF & '");'
                        $SOLen = _SOLen("开户时间")
                        If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.ADD_PRINT_TEXT(' & $len_h + 20 + $len_hh & ',10,65,20,"时间:");'
                        $SOLen = _SOLen("开户日期")
                        If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.ADD_PRINT_TEXT(' & $len_h + 20 + $len_hh - 4 & ',40,140,20," ' & $KH_Time & '");'
                        $SOLen = _SOLen("替换条形码行")
                        $KH_Code = StringLower($KH_Code)
                        If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.ADD_PRINT_BARCODE(' & $len_h + 20 + 20 + $len_hh & ',1,195,' & $CodeH_SAVE & ',"' & $CodeType_SAVE & '","' & $KH_Code & '");'
                        $SOLen = _SOLen("ShowBarText")
                        If $SOLen > 0 Then $CODE_Array[$SOLen] = '                LODOP.SET_PRINT_STYLEA(' & 8 + $STYLEA_add & ',"ShowBarText",0);'
                EndIf
        EndIf
EndFunc   ;==>PRINT_INIT
Func _SOLen($str = "")
        Dim $so_codeline = _ArraySearch($CODE_Array, $str, 0, 0, 0, 1)
        Return Int($so_codeline)
EndFunc   ;==>_SOLen
Func PRINT_act()
        _FileWriteFromArray("C:\Lodop\Lodop.htm", $CODE_Array, 1)
        _IENavigate($oIE_print, "file:///C:/Lodop/Lodop.htm")
        _IELoadWait($oIE_print, 1, 1000)
        Dim $oIE_printText = _IEBodyReadText($oIE_print)
        If StringInStr($oIE_printText, "打印控件未安装") > 0 Then
                _WinSetOnTop(0)
                If MsgBox(49, "Lodop", "打印控件未安装!点击确定执行安装,安装后请重新打印!") = 1 Then
                        If FileExists("C:\Lodop\install_lodop32.exe") Then
                                Run("C:\Lodop\install_lodop32.exe")
                                _exit()
                        EndIf
                EndIf
                _WinSetOnTop(1)
        EndIf
        If StringInStr($oIE_printText, "打印控件需要升级") > 0 Then
                _WinSetOnTop(0)
                If MsgBox(49, "Lodop", "打印控件需要升级!点击确定执行升级,安装后请重新打印!") = 1 Then
                        If FileExists("C:\Lodop\install_lodop32.exe") Then
                                Run("C:\Lodop\install_lodop32.exe")
                                _exit()
                        EndIf
                EndIf
                _WinSetOnTop(1)
        EndIf
        If StringInStr($oIE_printText, "未安装打印控件") > 0 Then
                _WinSetOnTop(0)
                If MsgBox(49, "Lodop", "打印控件未安装!点击确定执行安装,安装后请重新打印!") = 1 Then
                        If FileExists("C:\Lodop\install_lodop64.exe") Then
                                Run("C:\Lodop\install_lodop64.exe")
                                _exit()
                        EndIf
                EndIf
                _WinSetOnTop(1)
        EndIf
        If StringInStr($oIE_printText, "需要升级打印控件") > 0 Then
                _WinSetOnTop(0)
                If MsgBox(49, "Lodop", "打印控件需要升级!点击确定执行升级,安装后请重新打印!") = 1 Then
                        If FileExists("C:\Lodop\install_lodop64.exe") Then
                                Run("C:\Lodop\install_lodop64.exe")
                                _exit()
                        EndIf
                EndIf
                _WinSetOnTop(1)
        EndIf
        If StringInStr($oIE_printText, "曾安装过Lodop旧版附件") > 0 Then
                _WinSetOnTop(0)
                If MsgBox(49, "Lodop", '(注意:如曾安装过Lodop旧版附件npActiveXPLugin,请在【工具】->【附加组件】->【扩展】中先卸它)') = 1 Then
                EndIf
                _WinSetOnTop(1)
        EndIf
        If StringInStr($oIE_printText, "仅因浏览器升级或重安装而出问题") > 0 Then
                _WinSetOnTop(0)
                If MsgBox(49, "Lodop", '(如果此前正常,仅因浏览器升级或重安装而出问题,需重新执行以上安装)') = 1 Then
                EndIf
                _WinSetOnTop(1)
        EndIf
EndFunc   ;==>PRINT_act

您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-5-3 10:14 , Processed in 0.072627 second(s), 14 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表