以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]目录树节点对应DataRow的打印代码怎么写?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=82943)

--  作者:狂风暴雨狂波
--  发布时间:2016/3/28 16:00:00
--  [求助]目录树节点对应DataRow的打印代码怎么写?

比如窗口1中有个目录筛选树,现在要打印选定节点所对应的DataRow("姓名")的内容,该代码怎么写?请高手赐教!

 如:rt.Cells(1,4).Text= "姓名:"
     rt.Cells(1,5).Text= ?.DataRow("姓名")

?的代码怎么写?

[此贴子已经被作者于2016/3/28 16:19:19编辑过]

--  作者:大红袍
--  发布时间:2016/3/28 16:15:00
--  

 关键是你要怎么打印,直接列出内容?

 

Dim trv As WinForm.TreeView = forms("窗口1").controls("treeview1")

Dim doc As New PrintDoc \'定义一个报表
Dim rt As New prt.RenderText \'定义一个文本对象
rt.Text = trv.SelectedNode.DataRow("第一列")
doc.Body.Children.Add(rt) \'将文本对象加入到报表
doc.Preview() \'预览


--  作者:狂风暴雨狂波
--  发布时间:2016/3/28 16:26:00
--  

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim drv As  WinForm.TreeNode = trv.SelectedNode

Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView2")
Dim drv1 As  WinForm.TreeNode = trv1.SelectedNode

...

If drv.IsSelected = True  Then

 rt.Cells(1,5).Text= drv.DataRow("姓名")

elseIf drv1.IsSelected = True  Then

rt.Cells(1,5).Text= drv1.DataRow("姓名")

End If

是这样写的,老是提示"未将对象引用设置到对象的实例。"

[此贴子已经被作者于2016/3/28 16:31:14编辑过]

--  作者:大红袍
--  发布时间:2016/3/28 16:29:00
--  

1、你的目录树,必须是通过 buildtree 生成的才能用 DataRow 属性。

 

2、如果是提示错误,可以直接查询,再赋值,如

 

Dim fdr As DataRow = DataTables("表A").Find("条件")

If fdr IsNot Nothing Then

    rt.Cells(1,5).Text = fdr("姓名")

End If


--  作者:狂风暴雨狂波
--  发布时间:2016/3/28 16:33:00
--  

窗口中有两个目录筛选树.


--  作者:大红袍
--  发布时间:2016/3/28 16:37:00
--  

1、看4楼;

 

2、那是不是你有一个目录树的SelectedNode为空值?

 

If drv is Nothing Then

    drv = trv.Nodes(0)

End If

If drv1 is Nothing Then

    drv1 = trv1.Nodes(0)

End If


--  作者:狂风暴雨狂波
--  发布时间:2016/3/28 16:41:00
--  

窗口中afterload事件

Dim trv As WinForm.TreeView = e.Form.Controls("TreeView1")
Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.C
cmd.CommandText = "SELECT DISTINCT ...\'\'

dt = cmd.ExecuteReader()
trv.BuildTree(dt, "收款人|年|月|日")
trv.Nodes.Insert("收款人员",0)
Dim trv1 As WinForm.TreeView = e.Form.Controls("TreeView2")
trv1.BuildTree(dt, "收款部门|年|月|日")
trv1.Nodes.Insert("收款部门",0)


--  作者:大红袍
--  发布时间:2016/3/28 16:44:00
--  
看6楼。
--  作者:大红袍
--  发布时间:2016/3/28 16:45:00
--  
判断一下 drv 和 drv.DataRow 是不是空值
--  作者:狂风暴雨狂波
--  发布时间:2016/3/28 16:53:00
--  
drv.IsSelected = True 这个还要不要判断?