Foxtable(狐表)用户栏目专家坐堂 → 请老师看一下这代码哪里出了问题


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

主题:请老师看一下这代码哪里出了问题

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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
请老师看一下这代码哪里出了问题  发帖心情 Post By:2019/5/5 18:06:00 [只看该作者]

Dim bok As New XLS.Book(ProjectPath & "Attachments\路缘石质量检验评定表_汇总_模板.xlsx") 
Dim sht As XLS.Sheet = Bok.Sheets(0)

Dim kxs As List(of String) = DataTables("路缘石检查数据").GetValues("公里桩")
Dim buwei() As String = {"右侧" , "左侧"}
Dim shtrow() As Integer= {7,11,13}
For ix As Integer = 0 To kxs.Count-1
    For bw As Integer = 0 To 1
        For Index As Integer = 0 To 2
            Dim xcs As List (of DataRow) = DataTables("路缘石检查数据").Select("[工程部位] = '" & buwei(bw) & " 'And [项次] = '" & Index+1 & "' And [公里桩] = '" & kxs(ix) & " ' ")
            If xcs.Count > 0 Then
                For i0 As Integer = 0 To xcs.Count-1
                    Dim cov As Double
                    Double.TryParse(xcs(i0)("数据内容"),cov)
                    If i0 <= 9 Then
                        sht(shtrow(Index),8+i0).Value = cov
                    ElseIf i0 > 9 And i0 <= 19 Then
                        sht(shtrow(Index)+1,8+(i0-10)).Value = cov
                    ElseIf i0 > 19  Then
                        Exit For
                    End If
                Next
                sht(3,5).Value = "工程部位:" & buwei(bw)
                sht(3,2).Value =  kxs(ix) 
                Bok.Save(ProjectPath & "Reports\LYJC_" & kxs(ix) & "_" & buwei(bw) & ".xlsx")
                
            End If
        Next
    Next
Next


以上代码,如果不加入标红部分的循环,直接输入固定值,则最后生成的EXCLE文件正确。
若加入以上循环,最后生成的EXCEL就会把其他{公里桩}的数据也插入到最后生成的文件中。

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


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

你这里得到的,是所有的值 Dim kxs As List(of String) = DataTables("路缘石检查数据").GetValues("公里桩")

 

你希望得到哪个值?或者哪些值?逻辑是什么?


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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
  发帖心情 Post By:2019/5/5 18:20:00 [只看该作者]

对的,所有不重复的值。 满足select条件的都单独生成一个excel

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


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

试试

 

 


Dim kxs As List(of String) = DataTables("路缘石检查数据").GetValues("公里桩")
Dim buwei() As String = {"右侧" , "左侧"}
Dim shtrow() As Integer= {7,11,13}
For ix As Integer = 0 To kxs.Count-1
    Dim bok As New XLS.Book(ProjectPath & "Attachments\路缘石质量检验评定表_汇总_模板.xlsx")
    Dim sht As XLS.Sheet = Bok.Sheets(0)
    For bw As Integer = 0 To 1
        For Index As Integer = 0 To 2
            Dim xcs As List (of DataRow) = DataTables("路缘石检查数据").Select("[工程部位] = '" & buwei(bw) & " 'And [项次] = '" & Index+1 & "' And [公里桩] = '" & kxs(ix) & " ' ")
            If xcs.Count > 0 Then
                For i0 As Integer = 0 To xcs.Count-1
                    Dim cov As Double
                    Double.TryParse(xcs(i0)("数据内容"),cov)
                    If i0 <= 9 Then
                        sht(shtrow(Index),8+i0).Value = cov
                    ElseIf i0 > 9 And i0 <= 19 Then
                        sht(shtrow(Index)+1,8+(i0-10)).Value = cov
                    ElseIf i0 > 19  Then
                        Exit For
                    End If
                Next
                sht(3,5).Value = "工程部位:" & buwei(bw)
                sht(3,2).Value =  kxs(ix)
                Bok.Save(ProjectPath & "Reports\LYJC_" & kxs(ix) & "_" & buwei(bw) & ".xlsx")
               
            End If
        Next
    Next
Next


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


加好友 发短信
等级:幼狐 帖子:108 积分:1044 威望:0 精华:0 注册:2018/11/21 18:11:00
  发帖心情 Post By:2019/5/5 19:01:00 [只看该作者]

非常感谢!!!
一下午的问题老师一句话点醒,您真是我的偶像!

 回到顶部