Dim cmd As New SQLCommand
cmd.ConnectionName = "chuanbojianguan"
Dim dt As DataTable
cmd.CommandText = "SELECT 报检号,领用日期及编号,印刷流水号,'' as 船名,getdate() as 日期,'' as 使用人 From {列表项目} Where 领用日期及编号='2025011701'"
dt = cmd.ExecuteReader() '生成一个临时表dt
dt.ReplaceFor("日期", system.DBNull.Value)
For Each dr1 As DataRow In dt.DataRows '在已经生成的临时表中循环
' MessageBox.Show(dr1("报检号"))
If dr1("报检号").SubString(6, 1) = "A" Then '如果是入境
Dim dr2 As DataRow = DataTables("检疫资料").sqlFind("[入境签证编号] = '" & dr1("报检号") & "'")
If dr2 IsNot Nothing Then
dr1("船名") = dr2("中文船名")
dr1("日期") = dr2("入境签证日期及时间")
dr1("使用人") = dr2("入境检疫医师")
End If
ElseIf dr1("报检号").SubString(6, 1) = "C" Then '如果是出境
Dim dr3 As DataRow = DataTables("检疫资料").sqlFind("[入境签证编号] = '" & dr1("报检号") & "'")
If dr3 IsNot Nothing Then
dr1("船名") = dr3("中文船名")
dr1("日期") = dr3("入境签证日期及时间")
dr1("使用人") = dr3("入境检疫医师")
End If
End If
Next
Dim Book As New XLS.Book(ProjectPath & "证书记录打印模版.xlsx")
Dim fl As String = ProjectPath & "证书记录.xlsx"
book.AddDataTable("dt", dt)
Book.Build() '生成细节区
Book.Sheets(0).Rows.RemoveAt(0) '删除第一行,Excel报表的第一行通常是标记行
Book.Save(fl) '保存工作簿
Dim Proc As New Process '打开工作簿
Proc.File = fl
Proc.Start()
[此贴子已经被作者于2025/1/20 8:48:01编辑过]