![]() |
#2
sdta2023-04-12 12:34
|
只有本站会员才能查看附件,请 登录
其实办法实现很简单的啦,进度条类随你喜欢怎么做都行,大概前端程序也就这样子了,基本通用。
甚至加不加 loProgress.IsCancel 也是无所谓的,If loProgress.Step() = .F. Exit 也是可以的。

Local loProgress As frm_progress1 Of CAT_forms.vcx
Local lcOutPath As String
lcOutPath = "D:\OutPut\"
*-- 创建一个单进度对象
loProgress = NewObject("frm_progress1", "CAT_forms.vcx")
*-- 设置进度条 Titile, Min, Max
loProgress.Caption = "正在导出 PDF 文件,请稍候..."
loProgress.Inits(1, RecCount("pdftmp"))
Select pdftmp
Scan
lnBill_Id = Bill_Id
*-- 在此方法中刷新进度条进度,且增加一个 DoEvents,由于 DoEvents 很耗时,可以根据 Max 的大小选择每几行触发一次 DoDevents
loProgress.Step()
ThisForm.grfStore2.grfExportFilename = Addbs(m.lcOutPath) + Alltrim(Bill_RefNo) + "_" + Alltrim(Bill_Kh) + "_" + Alltrim(Bill_Ys)
Select * from pdftmp Where Bill_Id = m.lnBill_Id Into Cursor Bill
Select * from pdftmp1 Where Bill_Id = m.lnBill_Id Into Cursor Bill1 Order By Sub_Order
ThisForm.grfStore2.OnPrint("PrintToPdf")
*-- 是否中断导出
If loProgress.IsCancel
Exit
EndIf
EndScan
If 6 = Sy_MsgBox("文件己成功导出,是否打开文件夹查看导出结果?", 4+32+256, ThisForm)
ShellExecute(0, "Open", JustPath(m.lcOutPath), "", "", 1)
EndIf