以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]跨表条件取值  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=159023)

--  作者:sunion
--  发布时间:2020/12/10 22:40:00
--  [求助]跨表条件取值
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:员工.foxdb



遇到个疑难,请专家帮忙解答:

现在有2个表(员工表、指标表),现在要从“指标表”中找出“员工表”对应指标的数值,然后写DOC中,不知道是用FIND还是什么函数?
比如“张三丰”查找出的对应指标数就应该是2002、2304、3213、5645、8978



图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20201210223213.png
图片点击可在新窗口打开查看



图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20201210223246.png
图片点击可在新窗口打开查看


代码如下:
Dim doc As New PrintDoc \'定义一个报表
Dim tbl As Table = Tables("员工表")
For i As Integer = tbl.TopRow To tbl.BottomRow
    Dim rw As Row = tbl.Rows(i)
    Dim rt As New prt.RenderTable() \'定义一个表格对象
    Dim rx As New prt.RenderText \'定义一个文本对象
    Dim ra As New prt.RenderArea \'定义一个容器
    ra.SplitVertBehavior = prt.SplitBehaviorEnum.Never  \'禁止容器因为分页而被垂直分割
    \'加入标题
    rx.text = "员工卡"
    rx.Style.FontBold = True \'字体加粗
    rx.Style.FontSize = 16 \'大体大小为16磅
    rx.Style.TextAlignHorz = prt.AlignHorzEnum.Center \'水平居中排列
    rx.Style.Spacing.Bottom = 3 \'和下面的对象(表格)距离3毫米
    ra.Children.Add(rx) \'加入到容器中
    \'指定行数?列数?列宽?行高
    rt.Rows.Count = 6 \'设置总行数
    rt.Cols.Count = 3 \'设置总列数
    rt.Height = 75 \'设置表格的高度
    rt.CellStyle.Spacing.All = 1 \'单元格内容缩进1毫米
    rt.Style.Spacing.Bottom = 5 \'和下一个资料卡的距离是5毫米
    rt.Style.GridLines.All = New prt.Linedef \'设置网格线
    rt.Style.TextAlignVert = prt.AlignVertEnum.Center \'内容垂直居中
    \'下面很简单,指定每一个单元格的内容
    rt.Cells(0,0).Text= "姓名"
    rt.Cells(0,1).Text = rw("姓名")
    rt.Cells(0,2).Text = "指标数"

    rt.Cells(1,0).Text= "A1指标数"
    rt.Cells(1,1).Text = rw("A1")
    rt.Cells(1,2).Text = " "       \'---------------如何从指标表中获取员工表中对应等级的指标数值?

    rt.Cells(2,0).Text= "A2指标数"
    rt.Cells(2,1).Text = rw("A2")
    rt.Cells(2,2).Text = " "         \'---------------如何从指标表中获取员工表中对应等级的指标数值?
    rt.Cells(3,0).Text= "A3指标数"
    rt.Cells(3,1).Text = rw("A3")
    rt.Cells(3,2).Text =  " "        \'---------------如何从指标表中获取员工表中对应等级的指标数值?

    rt.Cells(4,0).Text= "A4指标数"
    rt.Cells(4,1).Text = rw("A4")
    rt.Cells(4,2).Text = " "         \'---------------如何从指标表中获取员工表中对应等级的指标数值?

    rt.Cells(5,0).Text= "A5指标数"
    rt.Cells(5,1).Text = rw("A5")
    rt.Cells(5,2).Text = " "         \'---------------如何从指标表中获取员工表中对应等级的指标数值?

    ra.Children.Add(rt) \'加入到容器中
    Doc.Body.ChildRen.Add(ra) \'将容器加入到报表中
Next
Doc.Preview() \'预览报表
[此贴子已经被作者于2020/12/10 22:49:44编辑过]

--  作者:有点蓝
--  发布时间:2020/12/10 23:19:00
--  
    rt.Cells(1,0).Text= "A1指标数"
    rt.Cells(1,1).Text = rw("A1")
dim dr as datarow = DataTables("指标表").find("指标=\'A1\'")
if dr isnot nothing then
    rt.Cells(1,2).Text = dr(rw("A1"))       \'
end if