Foxtable(狐表)用户栏目专家坐堂 → 请教:变量值如何填充到Excel报表中?


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

主题:请教:变量值如何填充到Excel报表中?

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4315 威望:0 精华:0 注册:2017/3/20 21:08:00
请教:变量值如何填充到Excel报表中?  发帖心情 Post By:2017/12/8 12:26:00 [只看该作者]

请教:统计条件如何填充到Excel报表中?
报表主页代码如下:
Dim e As RequestEventArgs = args(0)
Dim date1,Date2 As Date
If e.GetValues.ContainsKey("da1") Then
    Date1 = e.GetValues("da1")  '统计开始日期
    Date2 = e.GetValues("da2") '统计结束日期
Else
    Return ""
End If
Dim company_name As String = e.Cookies("cookcompanyname")      '取出cookies 中的企业名称
Dim Book As New XLS.Book(ProjectPath & "Attachments\report_href1.xls")
Dim sheet As XLS.Sheet = Book.Sheets(0)
Dim fl As String = ExcelPath & "ExcelReport\report_href1.xls"
book.AddD ataTable("采购明细",SQLdataSource,"Select *,b.po_isl * b.po_idj As po_ijr  fro m {poOrderMaster} as a left join {poOrderLine} as b on a.po_id=b.po_id") '添加父表 where a.po_date>= #" & Date1 & "# and a.po_date<= #" & Date2 & "#"
book.save( fl )
e.WriteBook(book, "report_href1.xls",False) 


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

目的:希望把上面主页中的红颜色变量值填充到->如图(Excel报表)所示的位置。
请问:我在Excel 表中应该如何书写代码?
先谢谢专家!


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2017/12/8 14:31:00 [只看该作者]

用vars变量,模板写成

 

[!企业名]

 

[!条件]

 

代码写

 

vars("企业名") = e.Cookies("cookcompanyname")  

vars("条件") = "查询日期:从" & date1 & "到" & date2


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


加好友 发短信
等级:一尾狐 帖子:430 积分:4315 威望:0 精华:0 注册:2017/3/20 21:08:00
多谢专家及时指教!  发帖心情 Post By:2017/12/8 14:34:00 [只看该作者]

多谢专家及时指教!

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4315 威望:0 精华:0 注册:2017/3/20 21:08:00
如果将动态表的动态字段名称填充到Excel 中。  发帖心情 Post By:2017/12/12 22:48:00 [只看该作者]


‘1. 以下代码是从FT表中取各类性质的记录后生成的一个动态报表(刀具记录日记帐)
If DataTables("TBhref3").DataRows.Count>0 Then
Dim b As new CrossTableBuilder("tjb3",DataTables("TBhref3"))
b.HGroups.adddef("ibh01","类别")
b.HGroups.adddef("imc01","名称")
b.HGroups.adddef("igg01","规格")
b.HGroups.adddef("idw01","单位")
b.HGroups.adddef("isl01","库存数")
b.HGroups.adddef("state1","状态")
b.VGroups.adddef("day1","{0}日")
b.Totals.adddef("qty1","数量") ’每日发生的不同性质变化数量
b.build
MainTable=Tables("tjb3")
’ 2. 以上是交叉生成流水记录表部份
    Dim tbl As Table = Tables("tjb3")
    Dim hdr As Integer = tbl.HeaderRows '获得表头的层数
    Dim Book As New XLS.Book
    Dim Sheet As XLS.Sheet = Book.Sheets(0)
    sheet(0,1).value = Vars("company_name")
    sheet(1,1).value = Vars("PrnExp")
    sheet(1,tbl.Cols.Count -2).value = "报表日期:" & Date.now
    tbl.CreateSheetHeader(Sheet,2,1,False) '生成表头
    For c01 As Integer = 0 To tbl.Cols.Count -1
        For r01 As Integer = 0 To tbl.Rows.Count  -1
            If c01>5 Then        ‘第5列以后全是数字列,对0值加以判断并以空白填充。
                If tbl(r01,c01)=0 Then
                    sheet(r01 + 2 + hdr,c01+1).value = ""
                Else
                    sheet(r01 + 2 + hdr,c01+1).value = tbl(r01,c01)
                End If
            Else
                sheet(r01 + 2 + hdr,c01+1).value = tbl(r01,c01)
            End If
        Next
    Next
    Dim t01 As Date =Date.now
    Dim rname As String="REP" & year(t01) & hour(t01) & minute(t01) & second(t01) & ".xls"
    Book.Save(ExcelPath & "\"  & rname)
  e.WriteBook(book,rname,False)
’3. 以上是动态生成Excel表部份,感觉生成的表不好看,还要进行二次排版。
End If
问题是:通过上面自动生成的Excel 报告不好操作排版,也不好看。

请教:如何将这个动态表TBhref3的动态字段名称也填充到Excel模板中去呢?
请教在Excel 中应该如何定义:用来接收这表字段名称?


[此贴子已经被作者于2017/12/13 10:15:27编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

模板的表面和标题名称改为统计表的名称和列名即可:http://www.foxtable.com/webhelp/scr/2877.htm

比如<订单>改为:<tjb3>

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4315 威望:0 精华:0 注册:2017/3/20 21:08:00
感谢专家及时指教!  发帖心情 Post By:2017/12/12 23:18:00 [只看该作者]

感谢专家及时指点!
[此贴子已经被作者于2017/12/12 23:29:41编辑过]

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4315 威望:0 精华:0 注册:2017/3/20 21:08:00
再请教后面的号数列是动态出现的情况  发帖心情 Post By:2017/12/12 23:39:00 [只看该作者]

再请教表的标题后半部分是随当月日期变化动态产生新列 比如今天是12号、这个报告的数据列也只能动态显示出 出1-12号的列数据! 在excel中应该如何定义? 或是说我只能把31天都提前定义在excel模板中吗? 这点我是不懂的! 请再指点一下、谢谢你
[此贴子已经被作者于2017/12/12 23:51:02编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

把31天都提前定义在excel模板中

生成报表前,先清除多余的天数列数据,类似这种用法:http://www.foxtable.com/webhelp/scr/2627.htm

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4315 威望:0 精华:0 注册:2017/3/20 21:08:00
这下明白了,谢谢您!  发帖心情 Post By:2017/12/13 8:56:00 [只看该作者]

这下明白了,谢谢您!

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


加好友 发短信
等级:一尾狐 帖子:430 积分:4315 威望:0 精华:0 注册:2017/3/20 21:08:00
Tables 记录填充Excel 表再请教!  发帖心情 Post By:2017/12/15 12:06:00 [只看该作者]

在报表输出部份如下:
Dim Book As New XLS.Book(ProjectPath & "Attachments\report_href4.xls")
Dim fl As String = ExcelPath & "ExcelReport\report_href4.xls"
If DataTables("TBhref4").DataRows.Count>0 Then    ‘TBhref4本身就是个临时表,暂存所有汇总记录
msgbox("有记录")  ‘确认有记录
    Dim tjb4 As New DataTableBuilder("TBhref4") '增加一临时表,暂时存放所有汇总记录
    book.AddDataTable("itemDetail4",tjb4.build(True))  '这个方法可能没理解对头。
    book.save( fl )
    Dim proc As new process
    proc.file=fl
End If
Dim day1 As Date =Date.now
Dim da2 As String=day1.day & day1.hour & day1.minute & day1.second
e.WriteBook(book, "item4" & da2 & ".xls",False)  ’ 这里输出了一个空白表头

图片点击可在新窗口打开查看此主题相关图片如下:href4.jpg
图片点击可在新窗口打开查看
请教专家:
针对上面已经生成好的临时表:TBhref4
如何正确传送到当前模板中?
先谢谢了!


 回到顶部
总数 12 1 2 下一页