以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  生成查询表问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141596)

--  作者:keli0917
--  发布时间:2019/10/6 12:19:00
--  生成查询表问题

希望根据业务录入,报关商品,采购信息,收票登记,出口发票表头这5个表生成如下格式的一个查询表。具体看图片和实例。希望大神能给些思路和代码。

 


图片点击可在新窗口打开查看此主题相关图片如下:qq截图20191006115932.jpg
图片点击可在新窗口打开查看

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:系统.rar

 

对SQL不太懂。大概说说我的思路:

是否能用SQLJoinTableBuilder生成一个查询表,再用SQLGroupTableBuilder生成统计表(比如需要统计的增票认证日期列,不含税金额列,出口发票表头.开票日期列等)

最后再用Combine组合查询表和统计表。生成一个TABLE。

 

 


 

[此贴子已经被作者于2019/10/7 16:16:04编辑过]

--  作者:有点蓝
--  发布时间:2019/10/6 14:52:00
--  
参考:http://www.foxtable.com/webhelp/topics/2305.htm
--  作者:keli0917
--  发布时间:2019/10/7 10:53:00
--  

Dim tb1 As Table = Tables(e.Form.Name & "_Table1")
Dim   jb1 As  New   SQLJoinTableBuilder("查询表1","报关商品")
jb1.ConnectionName =  "myacc"
Dim dt1 As fxDataSource
jb1.AddTable("报关商品","工作号","业务录入","工作号")  \'父表业务录入为右表
jb1.AddCols("申报日期","{业务录入}.工作号","{报关商品}.报关单项号","{报关商品}.商品中文名称","报关数量","{报关商品}.计量单位中文")

jb1.AddExp("FOB美元","报关金额-报关金额/报关总额*(总运费+总杂费+总保费)") 

dt1 =   jb1.BuildDataSource()

 

Dim  jb2 As New  SQLJoinTableBuilder("查询表2","采购信息")
jb2.C \'使用外部表,一定要设置数据源名称

Dim Cols2() As String = {"工作号","报关单项号","供货厂家"}
jb2.AddTable("采购信息",Cols2,"收票登记",Cols2) \'添加表
Dim dt2  As fxDataSource
jb2.AddCols("{采购信息}.工作号","{采购信息}.报关单项号","{采购信息}.供货厂家","采购数量","发票收齐",True)\'根据工作号报关单项号客户ID分组

jb2.AddExp("增票认证日期","max(增票认证日期)")
jb2.AddExp("发票不含税金额","sum(发票不含税金额)")
jb2.AddExp("发票进项税额","sum(发票进项税额)")
jb2.AddExp("发票征收率","avg(发票征收率)")
jb2.AddExp("发票退税率","avg(发票退税率)")
jb2.AddExp("发票退税额","sum(发票不含税金额)*avg(发票退税率)")
jb2.AddExp("发票退税成本","sum(发票不含税金额)-sum(发票不含税金额)*avg(发票退税率)")


dt2 = jb2.BuildDataSource()

Dim nms As String() = {"工作号","报关单项号"}
dt1.Combine(nms,dt2,nms) \'将销售统计数据组合到进货统计数据
tb1.DataSource = dt1

 


图片点击可在新窗口打开查看此主题相关图片如下:qq1.jpg
图片点击可在新窗口打开查看
DT1,DT2分开是正常的,组合起来就不对了。请老师帮忙修改代码。不知道怎么改.

[此贴子已经被作者于2019/10/7 10:54:37编辑过]

--  作者:有点蓝
--  发布时间:2019/10/7 11:11:00
--  
这个代码我放到1楼的例子里测试没有问题哦
--  作者:keli0917
--  发布时间:2019/10/7 12:21:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:myacc.rar

1楼的发票部分没有数据。增加数据后就不行了。我新上传了个有数据的数据库。麻烦帮我看一下。
--  作者:keli0917
--  发布时间:2019/10/7 12:25:00
--  

业务录入和报关商品,通过工作号关联。

报关商品和采购信息,通过工作号和报关单项号关联。

采购信息和收票登记,通过工作号和报关单项号,客户ID关联。

 


--  作者:有点蓝
--  发布时间:2019/10/7 13:48:00
--  
要保证没有重复的关联列数据,也就是要有相同的关联列


Dim   jb1 As  New   SQLJoinTableBuilder("查询表1","报关商品")
jb1.ConnectionName =  "myacc"
Dim dt1 As fxDataSource
jb1.AddTable("报关商品","工作号","业务录入","工作号")  \'父表业务录入为右表
Dim Cols3() As String = {"工作号","报关单项号"}
jb1.AddTable("报关商品",Cols3,"采购信息",Cols3)  \'父表业务录入为右表
jb1.AddCols("申报日期","{业务录入}.工作号","{报关商品}.报关单项号","{采购信息}.供货厂家","{报关商品}.商品中文名称","报关数量","{报关商品}.计量单位中文")
jb1.AddExp("FOB美元","报关金额-报关金额/报关总额*(总运费+总杂费+总保费)")  
\'Output.Show(jb1.BuildSql)
dt1 =   jb1.BuildDataSource()
 
Dim  jb2 As New  SQLJoinTableBuilder("查询表2","采购信息")
jb2.ConnectionName =  "myacc" \'使用外部表,一定要设置数据源名称

Dim Cols2() As String = {"工作号","报关单项号","供货厂家"}
jb2.AddTable("采购信息",Cols2,"收票登记",Cols2) \'添加表
Dim dt2  As fxDataSource
jb2.AddCols("{采购信息}.工作号","{采购信息}.报关单项号","{采购信息}.供货厂家","采购数量","发票收齐",True)\'根据工作号报关单项号客户ID分组

jb2.AddExp("增票认证日期","max(增票认证日期)")
jb2.AddExp("发票不含税金额","sum(发票不含税金额)")
jb2.AddExp("发票进项税额","sum(发票进项税额)")
jb2.AddExp("发票征收率","avg(发票征收率)")
jb2.AddExp("发票退税率","avg(发票退税率)")
jb2.AddExp("发票退税额","sum(发票不含税金额)*avg(发票退税率)")
jb2.AddExp("发票退税成本","sum(发票不含税金额)-sum(发票不含税金额)*avg(发票退税率)")
\'Output.Show(jb2.BuildSql)

dt2 = jb2.BuildDataSource()
\'Dim nms As String() = {"工作号","报关单项号"}
dt1.Combine(Cols2,dt2,Cols2) \'将销售统计数据组合到进货统计数据
dt1.show("查询表1")
[此贴子已经被作者于2019/10/7 13:48:27编辑过]