Foxtable(狐表)用户栏目专家坐堂 → 请教表ABC输出顺序问题


  共有3386人关注过本帖树形打印复制链接

主题:请教表ABC输出顺序问题

帅哥哟,离线,有人找我吗?
lanbor
  1楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:433 积分:4351 威望:0 精华:0 注册:2017/3/20 21:08:00
请教表ABC输出顺序问题  发帖心情 Post By:2023/7/14 20:51:00 [只看该作者]

请教专家关于A,B,C表输出排序问题,数据表结构如下图:


图片点击可在新窗口打开查看此主题相关图片如下:表abc结构.png
图片点击可在新窗口打开查看

请教:
下列语句需要如何编写?
PO_NO =用户选择的订单号
才能保证,从表C输出的记录,被表B的记录输出先后顺序控制。
就是若:表B里记录输出顺序是:机种B,机种A,机种C,  那么表C就应当输出:机种B明细,机种A明细,机种C明细

 ‘book.AddDa taTable("表A", "GX_DBS", "Select * f rom {表A} where quot_code= '" & PO_NO & "'") '添加父表
 'book.AddDa taTable("表B", "GX_DBS", "Select * f rom {表B} where quot_id=  '" & PO_NO  & "' order by  [FID-B,序号]") '添加子表
 'book.AddRe lation("表A", "FID", "表B", "FID") '建立关联
 'book.AddDa taTable("表C", "GX_DBS", "Select * f rom {表C} where quot_id=  '" & PO_NO & "' ") '添加子表
 'book.AddRe lation("表A", "订单号", "表C", "订单号") '建立关联

感谢感谢!
[此贴子已经被作者于2023/7/14 20:51:26编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/15 8:53:00 [只看该作者]

请把模板文件发上来

 回到顶部
帅哥哟,离线,有人找我吗?
lanbor
  3楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:433 积分:4351 威望:0 精华:0 注册:2017/3/20 21:08:00
请教ABC表输出顺序  发帖心情 Post By:2023/7/15 9:46:00 [只看该作者]

以下输出代码,附件为输出模板

'If Vars("quot_code") = "" Or Vars("quot_code")=Nothing Then
'    messagebox.show("请选定报价单后再点打印!","提示:")
'    Return
'Else
'    Dim s1, fl, f2 As String
'    Vars("_Str01") = "综合信息"
'    If Vars("_Print_staute") = "导出电子表" Then
'        fl = ProjectPath & "Reports\" & Vars("quot_code") & "独立解决方案.xls"
'        f2 = "Gooxi_Quote_CH.xls"
'    Else
'        fl = ProjectPath & "Reports\" & Vars("quot_code") & "StandaloneSolutions.xls"
'        f2 = "Gooxi_Quote_EN.xls"
'    End If 
'    Dim Book As New XLS.Book(ProjectPath & "Attachments\" & f2)
    
'    Dim Style As Xls.Style = book.NewStyle
'    Style.BackColor = Color.Red
'    book.AddDat aTable("Product_Order1", "GX_DBS", "Select * fr om {Product_Order} where quot_code= '" & Vars("quot_code") & "'") '添加报价主记录
'--------添加报价单机种记录
'    book.AddDat aTable("Product_amount1", "GX_DBS", "Select * fr om {Product_Amount} where quot_id=  '" & Vars("quot_code") & "' order by  [qu_SN]") 
'    book.AddRe lation("Product_Order1", "quot_code", "Product_amount1", "quot_id") '建立关联
'---------添加各机种包括的配件明细
'    book.AddDat aTable("Product_Entry1", "GX_DBS", "Select * fr om {Product_Entry} where quot_id=  '" & Vars("quot_code") & "' and [piecewise] >" & 0 & " order by line_Identify,sequence") 
'    book.AddRe lation("Product_Order1", "quot_code", "Product_Entry1", "quot_id") '建立关联
'    Book.Build() '生成细节区
'    Book.Save(fl) '保存工作簿
'    Dim Proc As New Process '打开工作簿
'    Proc.File = fl
'    Proc.Start()
'End If
[此贴子已经被作者于2023/7/15 10:49:27编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:110738 积分:563610 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2023/7/15 10:44:00 [只看该作者]

应该把表B和表C进行关联,把表B的序号引入表C,然后在表C使用序号排序

比如
book.AddDa taTable("表C", "GX_DBS", "Select *,(select top 1 序号 from 表B as b where b.FID-B=c.FID-B) as 序号 f rom {表C} as c where quot_id=  '" & PO_NO & "' ") '添加子表

然后在模板里把FID-B,序号作为排序条件:http://www.foxtable.com/webhelp/topics/1397.htm
<product_Entry1,FID-B|序号>

 回到顶部
帅哥哟,离线,有人找我吗?
lanbor
  5楼 | QQ | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:433 积分:4351 威望:0 精华:0 注册:2017/3/20 21:08:00
哦,明白了  发帖心情 Post By:2023/7/15 10:48:00 [只看该作者]

感谢专家指教!

 回到顶部