Foxtable(狐表)用户栏目专家坐堂 → 请老师看下代码哪错了?


  共有2163人关注过本帖树形打印复制链接

主题:请老师看下代码哪错了?

帅哥哟,离线,有人找我吗?
ls93005
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
请老师看下代码哪错了?  发帖心情 Post By:2018/12/27 10:53:00 [只看该作者]

Dim b1 As DataTable = DataTables("运费明细表")
Dim nm As List (of String) = b1.GetValues("结算单编号")
For i As Integer = 0 To nm.count - 1
If nm(i) IsNot Nothing Then
Dim Book As New XLS.Book(ProjectPath & "Attachments\G215-运费-凯达运输队-明细表-模板.xls") '打开模板
Dim Sheet As XLS.Sheet = Book.Sheets(0)
Sheet(4,22).Value = "<结算单编号 = " & nm("结算单编号")(i) & ">"
Book.Build() '生成细节区
Book.Save(ProjectPath & "Reports\凯达\" & nm("结算单编号")(i) & " .xls")
End If
Next


---------------------------
版本:2018.10.9.1
---------------------------
代码执行出错,错误信息:



System.InvalidCastException: 从字符串“结算单编号”到类型“Integer”的转换无效。 ---> System.FormatException: 输入字符串的格式不正确。

   在 Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat)

   在 Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value)

   --- 内部异常堆栈跟踪的结尾 ---

   在 Microsoft.VisualBasic.CompilerServices.Conversions.ToInteger(String Value)

   在 UserCode.Test()
---------------------------
确定  
---------------------------

[此贴子已经被作者于2018/12/27 10:53:59编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/27 11:47:00 [只看该作者]

Sheet(4,22).Value = "<结算单编号 = " & nm("结算单编号")(i) & ">"

 

改成

 

Sheet(4,22).Value = "<结算单编号 = '" & nm("结算单编号")(i) & "'>"


 回到顶部
帅哥哟,离线,有人找我吗?
ls93005
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
回复:(有点甜)Sheet(4,22).Value = "<结算单编号...  发帖心情 Post By:2018/12/27 14:45:00 [只看该作者]

 Dim b1 As DataTable = DataTables("运费明细表")
Dim nm As List (of String) = b1.GetValues("结算单编号")
For i As Integer  = 0 To nm.count - 1
If nm(i) IsNot Nothing Then
    Dim Book As New XLS.Book(ProjectPath & "Attachments\G215-运费-凯达运输队-明细表-模板.xls") '打开模板
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Sheet(4,22).Value =" <结算单编号 = '" & nm(i) & "'>"
    Book.Build() '生成细节区
    Book.Save(ProjectPath & "Reports\凯达\" & nm(i) &".xls")
End If
Next

老师 这个空值判断无效,请问要如何判断空值?

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/27 15:47:00 [只看该作者]

 

If nm(i) <> Nothing Then

 

 


 回到顶部
帅哥哟,离线,有人找我吗?
ls93005
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
回复:(有点甜)?If nm(i)?<> Not...  发帖心情 Post By:2018/12/27 16:01:00 [只看该作者]

以下内容为程序代码:
Dim dr As Row = Tables("运费明细表").Current
Dim pth As String = ProjectPath & "Reports\凯达运输队\"
If FileSys.DirectoryExists(pth) = False Then
    FileSys.CreateDirectory(pth)
End If

Dim nb As String =  dr("结算单编号")
Dim allshet As String = pth & "00-凯达运输队总表.xls"
Dim bok As New XLS.Book()
If FileSys.FileExists(allshet) = False Then
    Bok.Save(allshet)
End If

'=========================

Dim b1 As DataTable = DataTables("运费明细表")
Dim nm As List (of String) = b1.GetValues("结算单编号","结算单编号 is not null")
For i As Integer  = 0 To nm.Count - 1
    Dim Book As New XLS.Book(ProjectPath & "Attachments\G215-运费-凯达运输队-明细表-模板.xls") '打开模板
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Sheet.Name = "KD" & nm(i)
    Sheet(4,22).Value =  "<结算单编号 = '" & nm(i) & "'>"
    Book.Build()
    Book.Save(ProjectPath & "Reports\凯达运输队\" & nm(i) &".xls")
    Dim Book1 As New XLS.Book(ProjectPath & "Reports\凯达运输队\" & nm(i) &".xls")
    Dim pSheet = Book1.Sheets(0)
    Dim Book2 As New XLS.Book(ProjectPath & "Reports\凯达运输队\00-凯达运输队总表.xls")
    Book1.Sheets.Remove(pSheet)
    Book2.Sheets.Add(pSheet)
    Book2.Save(ProjectPath & "Reports\凯达运输队\00-凯达运输队总表.xls")
Next
 


代码已经大体完成了,老师麻烦指导,也可以给入门的朋友一个参考……
现在余下一个问题就是:
    Sheet.Name = "KD" & nm(i)

这一句,为什么不可以直接使用
nm(i)
做名称?前边不加字符串就报错
[此贴子已经被作者于2018/12/27 16:02:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/12/27 16:29:00 [只看该作者]

Dim b1 As DataTable = DataTables("运费明细表")
Dim nm As List (of String) = b1.GetValues("结算单编号","结算单编号 is not null")
For i As Integer  = 0 To nm.Count - 1
    Dim Book As New XLS.Book(ProjectPath & "Attachments\G215-运费-凯达运输队-明细表-模板.xls") '打开模板
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    Sheet(4,22).Value =  "<结算单编号 = '" & nm(i) & "'>"
    Book.Build()
    sheet = Book.Sheets(0)
    Sheet.Name = "KD" & nm(i)
    Dim pSheet = sheet
    Dim Book2 As New XLS.Book(ProjectPath & "Reports\凯达运输队\00-凯达运输队总表.xls")
    Book.Sheets.Remove(pSheet)
    Book2.Sheets.Add(pSheet)
    Book2.Save(ProjectPath & "Reports\凯达运输队\00-凯达运输队总表.xls")
Next
 

 回到顶部