己修改,麻烦老师再
看看,还需不需要将四和九加上,类号又如何表述?
[此贴子已经被作者于2024/5/10 11:18:08编辑过]
Dim i As Integer = 3
Dim idx As Integer = 1
Dim lst As List(Of String) = DataTables("类别字典").GetValues("材料类别", "", "排序号1")
Dim s1 As String() = {"一", "二", "三", "四", "4-1", "4-2", "4-3", "4-4", "五", "六", "七", "八", "九", "9-1", "9-2", "9-3", "9-4", "十"}
For k As Integer = 0 To lst.Count - 1 '第一个获取遍历类别的循环改为从字典表取值
Dim n As String = lst(k)
rt.Cells(i, 0).Text = idx
rt.Cells(i, 1).Text = s1(k)
rt.Cells(i, 2).Text = n
idx += 1
i += 1
Dim drs As List(Of DataRow) = DataTables("表A").Select("材料类别='" & n & "' and 材料名称 is not null", "排序号")
For j As Integer = 0 To drs.Count - 1
Dim dr As DataRow = drs(j)
rt.Cells(i + j, 0).Text = idx
rt.Cells(i + j, 1).Text = j + 1
rt.Cells(i + j, 2).Text = dr("材料名称")
rt.Cells(i + j, 3).Text = dr("材料形成日期").Year
rt.Cells(i + j, 4).Text = dr("材料形成日期").Month
rt.Cells(i + j, 5).Text = dr("材料形成日期").Day
rt.Cells(i + j, 6).Text = dr("份数")
rt.Cells(i + j, 7).Text = dr("页数")
rt.Cells(i + j, 8).Text = dr("备注")
idx += 1
Next
i += drs.Count
rt.Cells(i, 0).Text = idx
idx += 1
i += 1
Next
我这样修改后,结果正常,就是在四和九之后各多空一行,这两行怎么消除
理解一下代码,看看是什么代码添加空行的。然后想想四和九和其它的有什么不一样的地方,应该怎么判断
For k As Integer = 0 To lst.Count - 1
Dim n() As String = lst(k)
rt.Cells(i, 0).Text = idx
rt.Cells(i, 1).Text = n(0)
rt.Cells(i, 2).Text = n(1)
idx += 1
i += 1
Dim drs As List(Of DataRow) = DataTables("表A").Select("材料类别='" & n(1) & "' and 材料名称 is not null", "排序号")
For j As Integer = 0 To drs.Count - 1
Dim dr As DataRow = drs(j)
rt.Cells(i + j, 0).Text = idx
rt.Cells(i + j, 1).Text = j + 1
rt.Cells(i + j, 2).Text = dr("材料名称")
rt.Cells(i + j, 3).Text = dr("材料形成日期").Year
rt.Cells(i + j, 4).Text = dr("材料形成日期").Month
rt.Cells(i + j, 5).Text = dr("材料形成日期").Day
rt.Cells(i + j, 6).Text = dr("份数")
rt.Cells(i + j, 7).Text = dr("页数")
rt.Cells(i + j, 8).Text = dr("备注")
idx += 1
Next
i += drs.Count
rt.Cells(i, 0).Text = idx
idx += 1
if 类号不是“四”和“九” then
i += 1 '去掉这行代码时,表示类别间不留空行
end if
Next
蓝老师,留空行代码可能是红色处,怎么加判断,类号不是四和九,这里怎么表述?
看看字典表里,想想四和九和其它的一二三....有什么不一样的地方?如果没有什么可以区分的东西,那就增加一个列进行区分了
i += drs.Count
rt.Cells(i, 0).Text = idx
idx += 1
i += 1
If n(0) <> "四" And n(0) <> "九" Then
i += 1
End If
加上这个代码就非常完美了,谢谢老师