楼主: Imasasor
3784 20

能否利用sas ods将每条观测打印成检查报告单 [推广有奖]

  • 1关注
  • 64粉丝

VIP

学科带头人

34%

还不是VIP/贵宾

-

TA的文库  其他...

超哥喜欢的文章

威望
1
论坛币
47033 个
通用积分
3.1376
学术水平
238 点
热心指数
246 点
信用等级
231 点
经验
36380 点
帖子
866
精华
3
在线时间
2234 小时
注册时间
2012-7-4
最后登录
2024-5-17

初级学术勋章 初级热心勋章 初级信用勋章 中级热心勋章 中级学术勋章

1008论坛币
raw_data.rar (16.78 KB) 本附件包括:
  • raw_data.sas7bdat

我有一个sas数据集,已经整理成了打印需要的格式,如图示
sas dataset.jpg

sas 数据集见附件 sas dataset
现在我想对每个编号打印出一张报告单,生成如图的格示
报告单格式2.jpg

最好是生成rtf文档,一张文档有两张报告单,这样我就可以批量打印了

我能想到的就是利用ods rtf,但是对于表格上面的一行文字不知道怎么弄,字体粗细,大小也不能个性设置
求高手有没有什么办法,最好与上述图片格式保持一致。

或者不用sas, 用excel或者access能不能实现,或者有没有其它软件可以实现上述需求

求高位高手不吝赐教,悬赏1008币,聊表寸心。

最佳答案

zhengbo8 查看完整内容

1、讲数据集中数据,整理为标准格式。 2、将数据集导出到Excel2003,邮件合并。详见附件。 3、共计296份检验单。 完美解决,睡觉去了。
关键词:ods 报告单 dataset 用excel access 打印
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
webgu + 3 观点有启发
a6566792 + 1 + 1 + 1 对论坛有贡献

总评分: 学术水平 + 4  热心指数 + 1  信用等级 + 1   查看全部评分

本帖被以下文库推荐

欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;
沙发
zhengbo8 发表于 2013-4-9 19:54:47 |只看作者 |坛友微信交流群
1、讲数据集中数据,整理为标准格式。


  1. data a;
  2.     set raw_data;
  3.     if F1 ^="";
  4. run;


  5. data b(keep=_no _date);

  6.     set a;
  7.         
  8.         length _no $9 _date $10;
  9.         if _N_>1 and (mod((_N_-2),13)=0 ) then do;
  10.             
  11.             no=scan(F1,2,":");
  12.             date=scan(F1,3,":");
  13.             _no=substr(no,1,9);
  14.             _date=substr(date,1,9);

  15.         end;
  16.         
  17.         if _no ^="" and _date^="";

  18. run;

  19. data c(keep=var1-var10);

  20.     set a;

  21.         if F2^="结果" and F2^="" then do;
  22.             array _var(*) $6 var1-var10;
  23.             x=mod((_N_-4),13)+1;
  24.             _var(x)=F2;
  25.             output;
  26.         end;

  27.         if F2^="结果" and F2^="";

  28. run;

  29. %macro getname;
  30.     %do i=1 %to 10;
  31.         c&i.(keep=var&i.)
  32.     %end;
  33. %mend;


  34. data %getname;
  35.      set c;
  36. run;

  37. data _NULL_;
  38.    
  39.     length code $1000;         
  40.     array _name(14) $50;

  41.     do i=1 to 10;
  42.         _name(i)=cat("data c",strip(i),";set c",strip(i),";if var",strip(i),"^='';run;");
  43.     end;

  44.      code=cat(of _name:);
  45.      call execute(code);

  46. run;

  47. data result;
  48.     merge b %getname;
  49. run;

  50. proc datasets lib=work;
  51.     delete c: a b;
  52. quit;
复制代码
2013-04-10_074216.gif

2、将数据集导出到Excel2003,邮件合并。详见附件。

邮件合并.rar (334.83 KB)

3、共计296份检验单。

2013-04-10_074931.gif

完美解决,睡觉去了。










已有 10 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
yzsxdlcc + 1 + 1 精彩帖子
webgu + 100 + 100 + 3 + 3 + 3 精彩帖子
论坛小生 + 1 + 1 + 1 观点有启发
yongyitian + 1 + 1 + 1 精彩帖子
Imasasor + 100 + 100 + 5 + 5 + 5 精彩帖子,万分感谢
老师她摸我 + 1 + 1 + 1 精彩帖子,虽然不知道邮件合并是怎么回事!
playmore + 1 + 1 + 1 精彩帖子
jingju11 + 5 + 5 + 5 so good, even not understandable to me!
a6566792 + 1 + 1 + 1 精彩帖子
pobel + 3 精彩帖子

总评分: 经验 + 200  论坛币 + 200  学术水平 + 22  热心指数 + 22  信用等级 + 21   查看全部评分

使用道具

藤椅
论坛小生 发表于 2013-4-9 21:10:06 |只看作者 |坛友微信交流群
这个比较难,求大神帮忙吧,替楼主顶一下

使用道具

板凳
yingyang22 发表于 2013-4-10 04:40:16 |只看作者 |坛友微信交流群
sas不知道怎么做,但是用word的邮件合并功能可以做,给调查对象反馈结果就用这个功能。

使用道具

报纸
playmore 发表于 2013-4-10 08:37:33 |只看作者 |坛友微信交流群
zhengbo8 发表于 2013-4-10 07:51
1、讲数据集中数据,整理为标准格式。
真心佩服ls的
结果都出来了
word的域功能还真是强大

不知道proc template可以做吗
我简单查了下,大多是控制SAS直接导出的数据和图表的罗列方式
这样自定义表格,然后取数据填充表格的功能不知道能否实现
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

地板
zhengbo8 发表于 2013-4-10 08:40:13 |只看作者 |坛友微信交流群
playmore 发表于 2013-4-10 08:37
真心佩服ls的
结果都出来了
word的域功能还真是强大
proc template,我想也是应该可以的,只是格式设置起来比较麻烦,要破费一番心血。

使用道具

7
老师她摸我 发表于 2013-4-10 12:36:39 |只看作者 |坛友微信交流群
zhengbo8 发表于 2013-4-10 07:51
1、讲数据集中数据,整理为标准格式。
不明觉厉!
另在你的程序上修改了下,生成标准数据集就代码就少点儿了:
  1. data a(keep=_:);
  2.     set raw_data;
  3.         length _no $9 _date $10;
  4.         if prxmatch('/(编号)/',f1) then do;
  5.                 _no=prxchange('s/\D+(\d{9})\D+(\d{4}-\d{1,2}-\d{1,2})\D+/$1/',-1,f1);
  6.                 _date=prxchange('s/\D+(\d{9})\D+(\d{4}-\d{1,2}-\d{1,2})\D+/$2/',-1,f1);
  7.         end;
  8.         if _no^=' ';
  9. run;
  10. data b(keep=var:);
  11.         array _var $6 var1-var10;
  12.         do i=1 to 10;
  13.                 set raw_data(where=(F2^="结果" and F2^=""));
  14.                 _var(i)=F2;
  15.         end;
  16.         output;
  17. run;
  18. data result;
  19.     merge a b;
  20. run;
复制代码
已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
webgu + 100 + 100 + 3 + 3 + 3 正则的强大。
Imasasor + 100 + 100 + 5 + 5 + 5 精彩帖子. newbility

总评分: 经验 + 200  论坛币 + 200  学术水平 + 8  热心指数 + 8  信用等级 + 8   查看全部评分

欢迎加入SAS群:144839730-蜗牛

使用道具

8
playmore 发表于 2013-4-10 12:40:35 |只看作者 |坛友微信交流群
zhengbo8 发表于 2013-4-10 08:40
proc template,我想也是应该可以的,只是格式设置起来比较麻烦,要破费一番心血。
嗯,我看了下proc template的文档
感觉这东西就和latex的模板一样
用一月的时间学,用一天的时间用,然后三天不碰又都忘了
对此真是有心无力啊
playmore邀请您访问ChinaTeX论坛!!!进入ChinaTeX论坛

使用道具

9
semenljw 在职认证  发表于 2013-4-10 15:15:01 |只看作者 |坛友微信交流群
很经典!

使用道具

10
Imasasor 发表于 2013-4-10 15:45:20 |只看作者 |坛友微信交流群
zhengbo8 发表于 2013-4-10 07:51
1、讲数据集中数据,整理为标准格式。
不知道该用什么方法来表达对您的崇敬之情,仅奉上些许论坛币,聊表心意。太强大了
欢迎加入亚太地区第一R&Python数据挖掘群: 251548215;

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-5-17 20:50