以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  指定  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=152639)

--  作者:yetle
--  发布时间:2020/7/17 9:24:00
--  指定
标颜色这段代码,为什么Tables("下采购订单_table2")当前行已经指定在最后一行了,却获取到的是表的第一行的数据。

Dim Book As New XLS.Book(ProjectPath & "Attachments\\下采购订单大料.xls") \'打开模板
 Dim fl As String = ProjectPath & "Reports\\下采购订单大料.xls"
  Dim Sheet As XLS.Sheet = Book.Sheets(0)
\'  Sheet(3,9).Value = "<日期= # " & Date.Today & "#>"  \'写入打印条件

book.AddDataTable("采购明细表","XSC_ERP","Select * f rom {采购明细表} where 采购单号= \'" & Tables("下采购订单_table1").current("采购单号") & "\'") 

If Forms("下采购订单").opened
Dim dr As DataRow = DataTables("供应商").sqlfind("供应商简称= \'" & Tables("下采购订单_table2").current("供应商属性_供应商名称") & "\' and 供应商代码= \'" & Tables("下采购订单_table2").current("供应商属性_供应商代码") & "\'")
Dim dr1 As DataRow = DataTables("采购订单主表").sqlfind("采购单号= \'" & Tables("下采购订单_table1").current("采购单号") & "\'")
Sheet(3,10).Value = dr("全称")
Sheet(4,10).Value = dr("地址")
Sheet(5,10).Value = dr("联系人")
Sheet(6,10).Value = dr("联系手机")
Sheet(6,14).Value = dr("传真")
Sheet(1,15).Value = dr1("采购单号")
Sheet(49,2).Value = dr1("下单期")
End If


 Book.Build() \'生成报表
 Book.Save(fl) 
Dim Proc As New Process 
Proc.File = fl
 Proc.Start()

--  作者:有点蓝
--  发布时间:2020/7/17 9:41:00
--  
当前行随时可能会因为其它代码而改变,

msgbox(Tables("下采购订单_table2").current("供应商属性_供应商名称"))

如果要取最后一行
dim r as row = Tables("下采购订单_table2").rows(Tables("下采购订单_table2").rows.count - 1)
msgbox(r("供应商属性_供应商名称"))


--  作者:yetle
--  发布时间:2020/7/17 9:54:00
--  
不是要取最后一行,是要取当前行,鼠标选中的行
--  作者:有点蓝
--  发布时间:2020/7/17 10:11:00
--  
那么代码没有问题。注意副本选择的行,和主表选择的行是可以不同的
--  作者:yetle
--  发布时间:2020/7/17 10:49:00
--  
主表和副表都选择了,可是还是取的表第一行的数据??怎么回事???
--  作者:有点蓝
--  发布时间:2020/7/17 11:00:00
--  
请上传实例说明
--  作者:yetle
--  发布时间:2020/7/17 11:17:00
--  
MessageBox.show(Tables("下采购订单_table1").Position)
MessageBox.show(dr("全称"))
我用调试的方法获取到的都是指定到的当前行的数据,检查是报表写错了


[此贴子已经被作者于2020/7/17 11:23:03编辑过]

--  作者:有点蓝
--  发布时间:2020/7/17 11:24:00
--  
去掉报表里面的表达式

Sheet(3,9).Value = "供应商名称:" & dr("全称")