• Notes中的进度条


    大家好,才是真的好。

    随着Notes/Domino产品使用的年限越来越多,积累的数据也越来越多,用程序或代理处理这些文档和数据时,需要漫长等待,常常得不到更多的提示,很多用户会以为Notes客户机假死,于是强制关掉,造成数据处理的失败,接着又跑一遍,造成更多时间浪费。

    如果有一种详细进度条提示我们,任务还在正常进行,并且速度还不赖,那么我们的内心的欣喜和体验感受会提升很多。

    今天我们就介绍一下Notes应用中的进度条,主要是原生应用中的提示实现。

    当然,早在近30年前,这些功能都能够实现,Notes默认就有,如果你的眼睛足够尖锐就可以发现状态栏中的进度显示:
    在这里插入图片描述
    当然我们更多人希望它在对话框中显示:
    在这里插入图片描述
    或者像这样的对话框:
    在这里插入图片描述
    如果对话框能够更加详细就好了:
    在这里插入图片描述
    还有人在功能实现的基础上,对对话框的美观程度提出了高标准、严要求,也可以进一步进行优化,
    在这里插入图片描述
    无论哪种,只要你的代码功底强大,在Notes上都充满了可能。

    今天我们介绍一个简单的LotusScript进度条。

    如果你的Notes运行在Windows平台上,一切就很好办了。我们可以通过C API方式调用几个函数,例如NEMProgressBegin、NEMProgressEnd等,如下图:

    Declare Function NEMProgressBegin Lib "nnotesws.dll" ( Byval wFlags As Integer ) As Long
    
    Declare Sub NEMProgressEnd Lib "nnotesws.dll" ( Byval hwnd As Long )
    
    Declare Sub NEMProgressSetBarPos Lib "nnotesws.dll" ( Byval hwnd As Long, Byval dwPos As Long)
    
    Declare Sub NEMProgressSetBarRange Lib "nnotesws.dll" ( Byval hwnd As Long, Byval dwMax As Long )
    
    Declare Sub NEMProgressSetText Lib "nnotesws.dll" ( Byval hwnd As Long, Byval pcszLine1 As String, Byval pcszLine2 As String )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    说明一下,nnotesws.dll是一个动态文件,里面包含很多可以公开调用的C函数。你可以在https://hclsoftware.flexnetoperations.com/flexnet/operationsportal/entitledDownloadFile.action?downloadPkgId=CAPI_Toolkit_11.0.1站点下载说明和示例nsf库,其中apiref.nsf中列举了可公开使用的C API函数。

    我们声明调用的函数,如下图所示:
    在这里插入图片描述
    然后写上正式的代码,里面的注释我写得非常详细,如下:

    Const NPB_TWOLINE% = 1
    
    	Dim hwnd As Long
    
    	Dim i As Long
    
    	Dim j As Long
    
    	hwnd = NEMProgressBegin( NPB_TWOLINE )
    
       ' 设置进度条数据区间
    
    	NEMProgressSetBarRange hwnd, 100
    
       ' 进度条对话框中的文本显示.
    
    	NemProgressSetText hwnd, "Calculating ...", "Start"
    
    	For i = 0 To 200
    
    		For j = 0 To 9000
    
             '循环,延迟时间
    
    		Next j
    
          ' 更新进度条位置
    
    		NEMProgressSetBarPos hwnd, i
    
          '  更新进度条位置到25%
    
    		If i = 50 Then
    
    			NEMProgressSetText hwnd, "Calculating ....", "25%"
    
    		End If
    
          ' 更新进度条位置到50%
    
    		If i = 100 Then
    
    			NEMProgressSetText hwnd, "Calculating .....", "50 %"
    
    		End If
    
           ' 更新进度条位置到75%
    
    		If i = 150 Then
    
    			NEMProgressSetText hwnd, "Calculating ......", "75 %"
    
    		End If
    
    	Next
    
       ' 关闭更新进度条对话框
    
    	NEMProgressEnd hwnd
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32
    • 33
    • 34
    • 35
    • 36
    • 37
    • 38
    • 39
    • 40
    • 41
    • 42
    • 43
    • 44
    • 45
    • 46
    • 47
    • 48
    • 49
    • 50
    • 51
    • 52
    • 53
    • 54
    • 55
    • 56
    • 57
    • 58
    • 59

    也可以在里面加入自己的处理语句等。

    执行时,就会出现下列图示:
    在这里插入图片描述
    这是调用Notes内置的默认进度条对话框,如果需要进一步扩展,可以采用其他方式,例如Java(LS2J)方式来生成更为详细的进度条。

    不过,限于篇幅,今天我们就讲到这里吧。

    更多精彩文章,请关注微信公众号:协作者

  • 相关阅读:
    23软考备考已开始,网络工程师知识点速记~(1)
    Hadoop 基础文件上传下载 警告:WARN util.NativeCodeLoader解决 MapReduce入门
    (数位dp) 算法竞赛入门到进阶 书本题集
    深搜&回溯&剪枝-全排列
    CA周记 - Build 2022 上开发者最应关注的七大方向主要技术更新
    JavaScript 语法基础
    git安装部署与gitee的配置
    Linux实用指令
    湖仓一体电商项目(十五):实时统计商品及一级种类、二级种类访问排行业务需求和分层设计及流程图
    OpenCV 4.x 版本的新特性都有哪些?
  • 原文地址:https://blog.csdn.net/XZZ_2018/article/details/125998792