Foxtable(狐表)用户栏目专家坐堂 → excel报表问题


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

主题:excel报表问题

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


加好友 发短信
等级:童狐 帖子:288 积分:2404 威望:0 精华:0 注册:2017/6/19 23:37:00
excel报表问题  发帖心情 Post By:2019/8/23 22:47:00 [只看该作者]


老师请问下,我只做了如附件所示的excel报表,其中 <手动订单对账表>和<平台订单表1>为关联表,前者为主表。
导出后没有显示对应表格内容,而是如下图,请问是啥原因呀?

图片点击可在新窗口打开查看此主题相关图片如下:aa微信图片_20190823224605.png
图片点击可在新窗口打开查看
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:手工订单对账单导出.xls




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


加好友 发短信
等级:超级版主 帖子:105473 积分:536350 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/8/23 23:11:00 [只看该作者]

模板没有问题。确定有符合条件的数据

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


加好友 发短信
等级:童狐 帖子:288 积分:2404 威望:0 精华:0 注册:2017/6/19 23:37:00
  发帖心情 Post By:2019/8/24 9:07:00 [只看该作者]

确定有符合条件的数据,问题是我导出excel表格里面的内容完全就是截图的内容,哪怕没有符合条件的内容,那些引用也因该显示空白啊。怎么会显示模板引用的内容,带方括号那种
[此贴子已经被作者于2019/8/24 9:07:37编辑过]

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


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

这是不可能的,肯定没有用对。在菜单生成报表?还是自己写代码生成的?贴出代码看看

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


加好友 发短信
等级:童狐 帖子:288 积分:2404 威望:0 精华:0 注册:2017/6/19 23:37:00
  发帖心情 Post By:2019/8/24 9:18:00 [只看该作者]

用代码,代码如下,麻烦看下
Dim ct As Date =Cdate(Format(Date.now, "yyyy-MM-dd HH:mm:ss"))
Dim drpc As String =ct.year & format(ct.month, "00") & Format(ct.day, "00") & Format(ct.hour, "00") & Format(ct.minute, "00") & Format(ct.second, "00")

Dim pc As String = e.Form.Controls("TextBox5").value
If pc="" Then
    messagebox.show("请输入批次号")
    Return
End If

Dim drs As List (of DataRow) = DataTables("手动订单对账表").SQLSelect("对账_设定对账批次号='" & pc & "'")
If drs.count<1 Then
    messagebox.show("表中没有对应批次的行")
    Return
End If


Dim Book As New XLS.Book(ProjectPath & "Attachments\手工订单对账单导出.xls")


Dim sheet0 As xls.sheet= book.sheets(0)


sheet0(6,21).VALUE= "<对账_设定账期='" & pc & "'>"


Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器

dlg.FileName = "手动订单对账单" & drpc & "导出时间" & drpc

If dlg.ShowDialog = DialogResult.Ok Then
    
    
    
    
    
    Book.Save(dlg.FileName)
    
    
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()
    
End If

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


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

Build如果Book来自于一个模板文件,必须先调用方法,才能生成细节区。

示例:

Dim Book As New XLS.Book(ProjectPath & "Attachments\出库单.xls")
Book.Build() 
'生成细节区
Book.Save(
"c:\reports\test.xls"'保存工作簿
Dim
 Proc As New Process '打开工作簿
Proc.File = 
"c:\reports\test.xls"
Proc.Start()


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


加好友 发短信
等级:童狐 帖子:288 积分:2404 威望:0 精华:0 注册:2017/6/19 23:37:00
  发帖心情 Post By:2019/8/24 9:39:00 [只看该作者]

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:手工订单对账单导出.xls

我增加了build方法,也把条件改成了all,如附件所示,为什么导出来变成一片空白呢?

Dim ct As Date =Cdate(Format(Date.now, "yyyy-MM-dd HH:mm:ss"))
Dim drpc As String =ct.year & format(ct.month, "00") & Format(ct.day, "00") & Format(ct.hour, "00") & Format(ct.minute, "00") & Format(ct.second, "00")

Dim pc As String = e.Form.Controls("TextBox5").value
If pc="" Then
    messagebox.show("请输入批次号")
    Return
End If

Dim drs As List (of DataRow) = DataTables("手动订单对账表").SQLSelect("对账_设定对账批次号='" & pc & "'")
If drs.count<1 Then
    messagebox.show("表中没有对应批次的行")
    Return
End If

Dim nms() As String = {"备注", "订单号", "收货人姓名","收货人地址",   "发货品名", "发货数量", "发货单价", "货值小计", "运费", "订单收款总计", "客户", "平台"}
Dim Book As New XLS.Book(ProjectPath & "Attachments\手工订单对账单导出.xls")
book.sheets.add("对账单2")

Dim sheet0 As xls.sheet= book.sheets(0)
Dim sheet1 As xls.sheet= book.sheets("对账单2") '从表,


sheet1(0,0).value = "账单批次:" & pc
sheet1(1,0).value = "手工订单"
sheet1(2,0).value = "导出人:" & user.name & "     导出时间:" & Date.now

For n0 As Integer =0 To nms.length-1 Step 1
    sheet1(3,n0).value = nms(n0)
Next

Dim i As Integer=0


For Each dr As DataRow In drs
    
    
    sheet1(i+4,0).value = dr("对账_备注1")
    sheet1(i+4,1).value = dr("订单号")
    sheet1(i+4,2).value = dr("收货人姓名")
    sheet1(i+4,3).value = dr("收货人省") &  dr("收件人市") &  dr("收件人区") & dr("收件人详细地址")
    sheet1(i+4,8).value = dr("订单金额_运费")
    Dim sum2 As Double = DataTables("平台订单表1").SQLCompute("SUM(手工订单参数_货款应收小计)", "原始订单信息_主单号='" & dr("订单号") & "'")
    sheet1(i+4,9).value = dr("订单金额_运费") + sum2
    
    Dim drs1 As List (of DataRow) = DataTables("平台订单表1").SQLSelect("原始订单信息_主单号='" & dr("订单号") & "'")
    For Each dr1 As DataRow In drs1
        
        sheet1(i+4,4).value = dr1("订单货品验证_产品链接名称")
        sheet1(i+4,5).value = dr1("订单货品验证_产品链接数量")
        sheet1(i+4,6).value = dr1("手工订单参数_手工订单连接单价")
        sheet1(i+4,7).value = dr1("手工订单参数_货款应收小计")
        sheet1(i+4,10).value = dr1("平台备案_客户名称")
        sheet1(i+4,11).value = dr1("平台备案_平台名称")
        i=i+1
    Next
    
    
    
    
Next
'sheet0(1,21).VALUE= "<ALL>"
'sheet0(6,21).VALUE= "<对账_设定账期='" & pc & "'>"


Dim dlg As New SaveFileDialog '定义一个新的SaveFileDialog
dlg.Filter= "Excel文件|*.xls" '设置筛选器

dlg.FileName = "手动订单对账单" & drpc & "导出时间" & drpc

If dlg.ShowDialog = DialogResult.Ok Then
    
    
    Book.Build()
    
    
    Book.Save(dlg.FileName)
    
    
    Dim Proc As New Process
    Proc.File = dlg.FileName
    Proc.Start()
    
End If

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


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

上传具体实例测试

 回到顶部