以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  生成word表的奖惩内容错误代码求改正  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=134219)

--  作者:yfy13338431925
--  发布时间:2019/4/30 10:50:00
--  生成word表的奖惩内容错误代码求改正

甜哥,蓝老师:

这段代码的错误在哪里?调整多次,生成的word表单“奖惩情况”栏,得不到没有正确结果,实例传上去,帮我看看

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目4.zip

Dim pdr1 As DataRow = Nothing
Dim str1 As String = ""
For Each dr1 As DataRow In DataTables("奖惩表").Select("档案编号 = \'" & Tables("人事档案基础信息").current("档案编号") & "\'", "内容描述")
    If pdr1 IsNot Nothing Then
     If pdr1.IsNull("奖惩年度") OrElse pdr1.IsNull("类别") OrElse pdr1.IsNull("内容描述") OrElse pdr1.IsNull("奖惩单位") =False  Then \'如果数量或单价为空
str1 &= ""
Else
 str1 &= format(pdr1("奖惩年度"),"yyyy.MM") &" 考核评为"& pdr1("奖惩单位") &"奖励"& pdr1("类别")& "一次, 主要表现"& pdr1("内容描述") & chr(13)

End If
End If
 
    pdr1 = dr1
Next

 
If pdr1 IsNot Nothing Then
If pdr1.IsNull("奖惩年度") OrElse pdr1.IsNull("类别") OrElse pdr1.IsNull("内容描述") OrElse pdr1.IsNull("奖惩单位") =False  Then \'如果数量或单价为空
str1 &= "无"
Else
    str1 &= format(pdr1("奖惩年度"), "yyyy.MM") &" 考核评为"&pdr1("奖惩单位")&"奖励" & pdr1("类别")&"一次, 主要表现"&  pdr1("内容描述")
End If

End If
wrt.Replace("[奖惩年度][奖惩单位][类别][内容描述]",str1) \'用代码计算出总的销售数量并替换模板中的合计标记
wrt.Build() \'生成报表
wrt.Show() \'显示报表


 



--  作者:有点甜
--  发布时间:2019/4/30 11:17:00
--  

Dim pdr1 As DataRow = Nothing
Dim str1 As String = ""
For Each dr1 As DataRow In DataTables("奖惩表").Select("档案编号 = \'" & Tables("人事档案基础信息").current("档案编号") & "\'", "内容描述")
    If pdr1 IsNot Nothing Then
        If pdr1.IsNull("奖惩年度") OrElse pdr1.IsNull("类别") OrElse pdr1.IsNull("内容描述") OrElse pdr1.IsNull("奖惩单位") Then \'如果数量或单价为空
            str1 &= ""
        Else
            str1 &= format(pdr1("奖惩年度"),"yyyy.MM") &" 考核评为"& pdr1("奖惩单位") &"奖励"& pdr1("类别")& "一次, 主要表现"& pdr1("内容描述") & chr(13)
           
        End If
    End If
   
    pdr1 = dr1
Next


If pdr1 IsNot Nothing Then
    If pdr1.IsNull("奖惩年度") OrElse pdr1.IsNull("类别") OrElse pdr1.IsNull("内容描述") OrElse pdr1.IsNull("奖惩单位") Then \'如果数量或单价为空
        str1 &= "无"
    Else
        str1 &= format(pdr1("奖惩年度"), "yyyy.MM") &" 考核评为"&pdr1("奖惩单位")&"奖励" & pdr1("类别")&"一次, 主要表现"&  pdr1("内容描述")
    End If
   
End If
wrt.Replace("[奖惩年度][奖惩单位][类别][内容描述]",str1) \'用代码计算出总的销售数量并替换模板中的合计标记


--  作者:yfy13338431925
--  发布时间:2019/4/30 12:53:00
--  

谢谢甜哥,我加了一个 =False ,前面的一大段等于不是空,哎,让人感觉是在执行

甜老师,执行这段代码时间大概需要好多秒,怎么加一个进度条


--  作者:有点甜
--  发布时间:2019/4/30 14:39:00
--  

 

你做一个【独立窗口】,在代码开始的地方打开,在代码结束的地方关闭。窗口上显示你的提示。

 

 


--  作者:yfy13338431925
--  发布时间:2019/4/30 15:05:00
--  

我试一下

 


--  作者:yfy13338431925
--  发布时间:2019/5/5 13:21:00
--  

甜哥,用您说的方法,感觉不是很好,还是有假死的样子,加上进度条后,进度条不动,

在论坛上也看了几天,没有任何进展

Marquee模式,也是不显示,有没有办法做得更专业些


--  作者:有点甜
--  发布时间:2019/5/5 14:37:00
--  
以下是引用yfy13338431925在2019/5/5 13:21:00的发言:

甜哥,用您说的方法,感觉不是很好,还是有假死的样子,加上进度条后,进度条不动,

在论坛上也看了几天,没有任何进展

Marquee模式,也是不显示,有没有办法做得更专业些

 

参考这个 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=73365&skin=0

 

http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=123048&skin=0