Foxtable(狐表)用户栏目专家坐堂 → [求助]word模板遇到难题了!!


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

主题:[求助]word模板遇到难题了!!

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
[求助]word模板遇到难题了!!  发帖心情 Post By:2014/3/25 14:20:00 [只看该作者]

想写一个报告,报告下方要附一个表,如:姓名,职务等,但现在是根据一行生成一个报告,我想要的是:在一个报告内,红字的内容是根据表格每行内容生成的,不要一行生成一个报告,怎么办,求助!!!!!


各县、区人民政府,各管理区、开发区,市政府各部门

市政府研究决定:

***同志任人口和计划生育委员会副主任;

免去***同志物价管理办公室副主任职务;

***同志任公安交通警察支队支队长;

免去***同志重点项目办公室副主任职务;

***同志任物价管理办公室副主任;



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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/25 14:27:00 [只看该作者]

用标记:
 
http://www.foxtable.com/help/topics/2890.htm

 
例如
 
Dim tm As String  = ProjectPath & "Attachments\模版.doc"
Dim fl As String = ProjectPath & "Reports\模版.doc"
Dim wrt As New WordReport(Tables("表"),tm,fl) '定义一个WordReport
wrt.Replace("[列表]",DataTables("表").GetComboListString("列").Replace("|",vbcrlf))
wrt.Build() '生成报表
wrt.Show() '显示报表


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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/3/25 14:46:00 [只看该作者]

狐爸,wrt.Replace("[列表]",DataTables("表").GetComboListString("列").Replace("|",vbcrlf)) 
内容是由[姓名]&[职务]组合的,怎么弄,如:***同志任人口和计划生育委员会副主任;***同志在姓名列人口和计划生育委员会副主任在职务列,怎么改

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/3/25 14:47:00 [只看该作者]

组合我已经弄了,改上述代码,组合表达式为:<IIF([拟免职务空], "免去" &[姓名] & "同志" & [拟免职务] & ";", [姓名] & "同志"  & "" & [拟任职务] & ";")>


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/25 14:51:00 [只看该作者]

那就逐行组合合并:

 

dim s as string

for Each dr as datarow in datatables("xxx").datarows

   if s > ""  then

      s = s & vbcrlf

   end if

   s = s & dr("列1") & dr("列2")

next


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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/3/25 14:56:00 [只看该作者]

wrt.Replace("[列表]",DataTables("表").GetComboListString("列").Replace("|",vbcrlf)) ,列表是表的列字段吗,

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/3/25 15:01:00 [只看该作者]

你没搞清楚GetComboListString的作用吧http://www.foxtable.com/help/topics/1435.htm

要获得所有列

应该这样
dim s as string

for each dc as datacol in DataTables("表").datacols
      s= s & dc.name & vbcrlf
next


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


加好友 发短信
等级:管理员 帖子:47497 积分:251403 威望:0 精华:91 注册:2008/6/17 17:14:00
  发帖心情 Post By:2014/3/25 15:02:00 [只看该作者]

就是你在模版中插入的[列表],就和普通的[单价]、[单位]一样,你可以取任何名称,在生成报表前替换即可,例如[xxx]都行。

 

请认真看一下:

http://www.foxtable.com/help/topics/2890.htm

 

 

说道底,在模板中无法通过表达式实现的计算,就插入一个标记,在生成模版前,用代码生成内容替换掉模版中的标记。

[此贴子已经被作者于2014-3-25 15:14:14编辑过]

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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/3/25 15:31:00 [只看该作者]

谢谢


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


加好友 发短信
等级:五尾狐 帖子:1142 积分:8900 威望:0 精华:0 注册:2012/7/10 9:09:00
  发帖心情 Post By:2014/3/26 9:33:00 [只看该作者]

狐爸,根据你给的思路和代码,生成了报告,但有一个问题,生成的从第二行之后,不能和第第一行左对齐,这是怎么回事,请看:红色的部分不能和加黑的一行左对齐。

各县、区人民政府,各管理区、开发区,市政府各部门

市政府研究决定:

   黄荣武同志任信阳市人社局科长;

刘去同志任信阳市人社局科长,免去其信阳市人社局局长职务;

大家同志任信阳市人社局科长;

周老大同志任信阳市人社局科长;

免去王家银同志信阳市人社局局长职务;


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