急!水晶报表问题

hello_syt 2009-08-04 09:57:33
能随便打印任何一月的考勤记录,哪个高手能帮我解决这个存储过程的写法。
用一个月的日期做参数,检索每天数据,然后插入临时表
最后汇总出一张表

1 2……
姓名1 上班
下班
备注
姓名2 上班
…… 下班
备注
最后作出这样的报表
有两个表:customerInfo中有一下字段cid,cname,sex,Birthday,Workdate,State,Username,password,Mome
workinfo表中有wid,cid,ondate,ondutytime,offdutytime,mome
请高手们帮帮忙喔,我是一个新手!
我主要是怎么把数据绑定到报表上出问题,有人能帮我解决吗?
...全文
134 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
hello_syt 2009-08-06
  • 打赏
  • 举报
回复
不啊好哦意思上面发错了,问题是下面的:
这在oracle中怎么写这个存储过程呢?
hello_syt 2009-08-06
  • 打赏
  • 举报
回复
内蒙古自治区房地产资质管理操作手册(建设厅)1
llsen 2009-08-05
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 hello_syt 的回复:]
但是我上面的日期已经都固定的写好了
[/Quote]

你写好的日期只能确定某个月
但是你这个报表是整月的

所以你要从这月的一号遍历到这月的最后一条

差不多30来次的循环
hello_syt 2009-08-05
  • 打赏
  • 举报
回复
但是我上面的日期已经都固定的写好了
zhxingway 2009-08-04
  • 打赏
  • 举报
回复
用水晶报表行吗?

我也在考虑这个问题,期待高手解答.^
llsen 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 hello_syt 的回复:]
页眉抑制怎么写条件呢?
[/Quote]

这个抑制显示和详细资料节的一样

抑制显示-编辑公式 字段= 'AAA'
llsen 2009-08-04
  • 打赏
  • 举报
回复
这个问题,,,,,,
hello_syt 2009-08-04
  • 打赏
  • 举报
回复
这在oracle中怎么写这个存储过程呢?
llsen 2009-08-04
  • 打赏
  • 举报
回复
等我有空了试试,这会有点忙,呵呵
hello_syt 2009-08-04
  • 打赏
  • 举报
回复
页眉抑制怎么写条件呢?
llsen 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 llsen 的回复:]
引用 9 楼 hello_syt 的回复:
这些东西应该放在那一部分呢,这些sql语句写好了,就相当于我做的报表的格式吗?
如果一个月没有31一天,我怎么让没有的号不出现在报表中呢?


这个可能要用到抑制显示了
[/Quote]

没有数据的时候你填入一个实际不可能出现的值,
比如AAA,然后你在这个字段的抑制显示处加上公式 字段= 'AAA'
但是这是详细资料
标题处如何抑制还要试试
llsen 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 hello_syt 的回复:]
这些东西应该放在那一部分呢,这些sql语句写好了,就相当于我做的报表的格式吗?
如果一个月没有31一天,我怎么让没有的号不出现在报表中呢?
[/Quote]

这个可能要用到抑制显示了
hello_syt 2009-08-04
  • 打赏
  • 举报
回复
这些东西应该放在那一部分呢,这些sql语句写好了,就相当于我做的报表的格式吗?
如果一个月没有31一天,我怎么让没有的号不出现在报表中呢?
llsen 2009-08-04
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 hello_syt 的回复:]
这里面的NO1……是指的我在报表中设置的1,2……吗?
NO1与循环取出的值怎么联系呢?
[/Quote]

对,差不多就这个样子,这个只是个别名
你可以自己取

hello_syt 2009-08-04
  • 打赏
  • 举报
回复
这里面的NO1……是指的我在报表中设置的1,2……吗?
NO1与循环取出的值怎么联系呢?
llsen 2009-08-04
  • 打赏
  • 举报
回复
中间取数据的部分应该是 双层循环

第一层用人,循环所有人
第二层用日期,循环这个月的所有日期
然后中间检索

declare @cid varchar(50);
declare @cname varchar(50);
declare @date datetime;

select @cid = cid,@cname = cname
from customerInfo

SELECT ondutytime,offdutytime,more
FROM WorkInfo
WHERE cid = @cid;
AND ondate = @date ++;
llsen 2009-08-04
  • 打赏
  • 举报
回复
我这有个sql server的也是一个月31天的例子

ALTER PROCEDURE [dbo].[PI_InoculateSummery]
AS
BEGIN
SET NOCOUNT ON;
--定义临时表
declare @temp_InoculateSummery table(
VaccineName varchar(10),
NeedleNo varchar(10),
No1 int,
No2 int,
No3 int,
No4 int,
No5 int,
No6 int,
No7 int,
No8 int,
No9 int,
No10 int,
No11 int,
No12 int,
No13 int,
No14 int,
No15 int,
No16 int,
No17 int,
No18 int,
No19 int,
No20 int,
No21 int,
No22 int,
No23 int,
No24 int,
No25 int,
No26 int,
No27 int,
No28 int,
No29 int,
No30 int,
No31 int
)

--申明变量
declare
@VaccineName varchar(10),
@NeedleNo varchar(10),
@No1 int,
@No2 int,
@No3 int,
@No4 int,
@No5 int,
@No6 int,
@No7 int,
@No8 int,
@No9 int,
@No10 int,
@No11 int,
@No12 int,
@No13 int,
@No14 int,
@No15 int,
@No16 int,
@No17 int,
@No18 int,
@No19 int,
@No20 int,
@No21 int,
@No22 int,
@No23 int,
@No24 int,
@No25 int,
@No26 int,
@No27 int,
@No28 int,
@No29 int,
@No30 int,
@No31 int
/****
中间赋值部分省略,这个地方要根据你的逻辑写
****/
insert into @temp_InoculateSummery (
No1,No2,No3,No4,No5,No6,No7,No8,No9,No10,
No11,No12,No13,No14,No15,No16,No17,No18,No19,No20,
No21,No22,No23,No24,No25,No26,No27,No28,No29,No30,No31
)
values
(
@No1,@No2,@No3,@No4,@No5,@No6,@No7,@No8,@No9,@No10,
@No11,@No12,@No13,@No14,@No15,@No16,@No17,@No18,@No19,@No20,
@No21,@No22,@No23,@No24,@No25,@No26,@No27,@No28,@No29,@No30,@No31,@AllSum
)

--检索出数据
select * from @temp_InoculateSummery

END
hello_syt 2009-08-04
  • 打赏
  • 举报
回复
高手们,快快给我出出主意!

4,819

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧