阿泰的软件实用主义
水晶报表/BOE
博客园
首页
新随笔
联系
订阅
管理
176 Posts :: 9 Stories :: 2046 Comments :: 38 Trackbacks
公告
如果站内的图片和资源文件失效,请将facesun.cn这个网址更改为facesun.net
【
常用水晶报表资源列表
】
与我联系
发短消息
搜索
我的标签
交叉表
(2)
mysql
(1)
水晶报表报错
(1)
infoview
(1)
随笔分类
(154)
A_Blog通告(29)
A_CR答疑区(12)
A_Others(9)
BOE(6)
CR报表设计(18)
CR编程开发(17)
CR部署(5)
CR我的原创(54)
水晶报表视频教程(1)
水晶报表资源(3)
随笔档案
(171)
2008年11月 (16)
2008年10月 (10)
2008年9月 (4)
2008年8月 (9)
2008年6月 (1)
2008年5月 (9)
2008年4月 (4)
2008年3月 (8)
2008年2月 (8)
2008年1月 (9)
2007年12月 (2)
2007年6月 (1)
2007年1月 (1)
2005年10月 (1)
2005年8月 (1)
2005年7月 (3)
2005年6月 (6)
2005年5月 (8)
2005年4月 (32)
2005年3月 (38)
A_有情连接
Mack.Z
多么盼望能有把枪
木野狐
B_精彩连接
haibodotnet水晶报表
Python
Python-Fantasy Soft
奋斗中的灵感之泉
蝈蝈俊论坛构想
计算机术语辞典
小气的神
积分与排名
积分 - 394239
排名 - 61
最新评论
1. re: 2008年11月下旬答疑贴
@maihuasen(48楼) 基本上可以肯定的说,目前的水晶报表系统本身是做不到即用即清理的(虽然水晶报表本身的临时文件在一个正规流程中是即用即清,但是不可避免会存在其他情况,比如页面未加载完毕即...
--阿泰
2. re: 2008年11月下旬答疑贴
我现在只能是另外做一个程序定期去清理TEMP目录下的临时文件,不过毕竟是占用资源呀。所以我想看看这里有没有人能有科学的方法去解决这个问题!
--maihuasen
3. re: 【教程系列】VS2005水晶报表PUSH模式(DataSet)视频教程+源代码工程示例
谢谢你啦。我好好学习
--liuliu001
4. re: 【教程系列】VS2005水晶报表PUSH模式(DataSet)视频教程+源代码工程示例
谢谢你的教程,已经下载,还没来得及看呢
--jjcl521
5. re: 2008年11月下旬答疑贴
@maihuasen(46楼) 首先非常感谢!确实是我疏忽了。 事实上,我就这个视频收集到的反馈信息并不多,因为很多人可能并没有认识到这个的问题或许更多的人并不习惯于反馈。 对于报表的性能问题,是...
--阿泰
阅读排行榜
1. [部署系列之一]轻松搞定水晶报表9.2打包(26949)
2. 在水晶报表中实现任意选择指定字段显示(18334)
3. 水晶报表网络资源(不断更新)(15738)
4. [水晶报表]创建不受数据库限制的报表(2) (12159)
5. OWC使用方法(11804)
评论排行榜
1. 水晶报表自动补空行,补格线思路(82)
2. 2008年9月问题征集帖(79)
3. 2008年11月答疑贴 (75)
4. 在水晶报表中实现任意选择指定字段显示(74)
5. 2008年二月份&三月份问题收集帖 (71)
60天内阅读排行
1. 2008年10月答疑贴(315)
2. 直连数据库拉模式(PULL)的水晶报表编程实现之极简教程(212)
3. 2008年11月答疑贴 (203)
4. AIX内存使用情况监控相关资料汇总(152)
5. 基于MySQL的水晶报表及乱码解决(142)
2008年8月问题征集帖
有问题请在此贴跟贴回复,我亦会在此贴回复。
请不要到无关的帖子中跟帖
请尽量描述清楚你的问题和需要
posted on 2008-08-15 16:56
阿泰
阅读(436)
评论(66)
编辑
收藏
网摘
所属分类:
A_Blog通告
、
水晶报表资源
Feedback
#1楼
2008-08-17 00:25
elvaxiao [未注册用户]
博主你好,我想问下如何让文本对象内的文本不但水平居中,而且垂直方向上也要居中。
回复
引用
#2楼
2008-08-18 09:18
@zhanglei [未注册用户]
阿泰你好,有一个问题请教,内容如下:
有一个主报表a,它包含子报表b1 和 子报表b2,子报表b1要求纵向打印,子报表b2要求横向打印,怎么设置?我发现通过“编辑子报表”->在子报表中右键,然后选择“页面设置”-> 在"方向" 中选择“纵向”或“横向”打印,结果先在子报表b1设置了“纵向”,再在子报表b2设置了“横向”,发现子报表b1也变为“纵向”了,好像通过”页面设置“不能设置子报表的打印方向,”页面设置“ 只是针对主报表的,对子报表不起作用。
我要求是,在主报表按”打印预览“ 时子报表b1 是纵向的,子报表b2是横向的。因为子报表b1要表一个,表头 有很多列,表头在页眉中,横向打印放不下,且表体在”详细资料“中, 行数不确定,。
回复
引用
#3楼
[
楼主
]
2008-08-18 09:45
阿泰
@elvaxiao(1楼)
水晶报表的文本对象没有此属性。
垂直居中可以通过在顶部加空行的形式来模拟实现,但不够精确。
回复
引用
查看
#4楼
[
楼主
]
2008-08-18 09:48
阿泰
@@zhanglei(2楼)
在前一帖子中已经回答过了,水晶报表实现不了你的这个要求。
要全部打印出来,还是要把整个报表调整到需要的最宽宽度才行。
回复
引用
查看
#5楼
2008-08-18 13:09
cesc [未注册用户]
阿泰,你好,请教个问题
交叉表,求百分比,用公式实现了每一行的百分比,但最后一行总计显示的是百分比之和,如何让其实现总计的百分比.
谢谢
回复
引用
#6楼
[
楼主
]
2008-08-18 16:29
阿泰
@cesc(5楼)
参见:
http://www.cnblogs.com/babyt/archive/2008/08/18/1270353.html
回复
引用
查看
#7楼
2008-08-19 15:41
露为霜 [未注册用户]
阿泰,请教一个问题。
我想把两个不相关的报表和在一起,我是这样做的。在主报表增加一个报表页脚b,将子报表放到此处。
我的主报表有页眉、详细、汇总内容。这样导致子报表显示的那页也有一个页眉,但是没有主报表的详细内容。不知道这种情况该如何处理?谢谢。
回复
引用
#8楼
2008-08-19 15:43
露为霜 [未注册用户]
--引用--------------------------------------------------
露为霜: 阿泰,请教一个问题。
我想把两个不相关的报表和在一起,我是这样做的。在主报表增加一个报表页脚b,将子报表放到此处。
我的主报表有页眉、详细、汇总内容。这样导致子报表显示的那页也有一个页眉,但是没有主报表的详细内容。不知道这种情况该如何处理?谢谢。
--------------------------------------------------------
我的意思是在子报表的那页不需要显示主报表的页眉,能做到吗?
回复
引用
#9楼
2008-08-19 16:00
露为霜 [未注册用户]
阿泰,再请教一个问题。
如何让水晶报表导出的文件不分页?我是导出成Excel97格式。谢谢。
回复
引用
#10楼
[
楼主
]
2008-08-19 16:34
阿泰
@露为霜
7楼、8楼
子报表放在报表页脚上,则肯定显示在最后一条记录之后。
在节专家中设置页眉和页脚,勾选抑制显示,编辑公式为onlastrecord
9楼
如果你是用界面上的控件导出而不是代码的话,
导出选项中的导出页眉页脚,选【每个报表一次】,不勾选每页显示分页符,
就能导成一页。
回复
引用
查看
#11楼
2008-08-21 09:45
露为霜 [未注册用户]
--引用--------------------------------------------------
阿泰: @露为霜
9楼
如果你是用界面上的控件导出而不是代码的话,
导出选项中的导出页眉页脚,选【每个报表一次】,不勾选每页显示分页符,
就能导成一页。
--------------------------------------------------------
我用的是9.2版本,似乎没有这个选项。
只能把导出页眉页脚这个选项不选,才能导出一个不分页的报表。那样我的报表明细标题似乎要移到报表页眉才行了:)
回复
引用
#12楼
2008-08-21 14:48
风吹小屁屁 [未注册用户]
阿泰,您好.以前看到你一篇关于spreadsheet控件的文章,写的是最基本的内容,收获很大.现在做的一个东西用到了非常多的spreadsheet控件,想问你一些关于该控件的一些问题:
1)现在需要把控件的单元格与SQL2005数据库对应起来.通过日期查询出该日的数据表,反应在spreadsheet中.
2)当对spreadsheet做出修改后,保存后,同样把对应的数据库表改掉.
3)当我在键盘上输入字母"P"时,让数据库中的book表记录字母"P"和按下字母时的时刻.应该如何实现呢?
由于我对VB也不熟悉,希望能告知以上3点的实现方法,希望越详细越通俗越好不胜感激.
回复
引用
#13楼
2008-08-21 15:58
fredrickhu [未注册用户]
最近小弟要做一个项目,要求用水晶报表实现对数据的统计和打印功能,做的是C/S版的,开发语言是C#.现在这个项目要求我实现的功能是:在winform上选择一个字段,比如是a,然后生成关于这个字段的水晶报表,如果是B,则生成关于B字段的.其实也就是一种动态显示.现在生成表这个我已经能够做到了,但是当我把图加在里面以后就出现错误了.无论是线状图.饼状图都不能实现.现在我做的这个项目中对有些数据只要求生成图,而不要表.我无法实现啊...希望阿泰兄看见以后能够给我个例子,谢谢
回复
引用
#14楼
[
楼主
]
2008-08-21 16:09
阿泰
@fredrickhu (13楼)
请参考
http://www.cnblogs.com/babyt/archive/2008/01/22/1049234.html
回复
引用
查看
#15楼
[
楼主
]
2008-08-21 16:21
阿泰
@风吹小屁屁(12楼)
你的这几个要求用spreadsheet似乎不是很合适,直接用datagrid更好些。
不过建议你自己多研究研究,呵呵。因为我的电脑上没有VB6这样的环境了。
要是我做的话,基本上是这样的:
1)根据查询条件从数据库生成一个recordset,逐格填充spreadsheet
2)将修改后的数据根据每一行的一个唯一性标志位,逐行去更新数据库
3)这个要监控keypress事件,出发时回写数据库即可。
希望你自己先多试试
回复
引用
查看
#16楼
[
楼主
]
2008-08-21 16:22
阿泰
@露为霜(11楼)
很久没用CR9了,我现在一直用CR XI,所以可能有不少一样的地方,希望你的方法能解决你的问题 :)
回复
引用
查看
#17楼
2008-08-22 10:24
露为霜 [未注册用户]
再向阿泰请教一个问题。
我用水晶报表9.2直接导出Excel的时候,有一个列宽选项是“基于下列区域内对象的列宽度”,然后右边有一个下拉框,可以选择“整个报表”。
但用程序来做的时候,我是这样设置的:
objRPT.ExportOptions.ExcelUseConstantColumnWidth = False
objRPT.ExportOptions.ExcelAreaType = crReportFooter
其中ExcelAreaType没有一个属性值是对应整个报表的。这个觉得比较困惑。不知阿泰有没有碰到过这个问题?谢谢。
回复
引用
#18楼
2008-08-22 10:28
fredrickhu [未注册用户]
我用的是CR XI,还是不能实现啊,你给我的例子是CR 9的,我现在的要求是动态生成图(不是表),正如我上面说的,选a,生成a的图,选b,则生成b的图,请指点一二,谢谢
回复
引用
#19楼
[
楼主
]
2008-08-22 10:34
阿泰
@fredrickhu
对那篇文章里的功能来说,CRXI和CR9没有任何差别。
对于实现的效果,可能是我理解错了你的意思吧,呵呵。
回复
引用
查看
#20楼
2008-08-22 10:43
fredrickhu [未注册用户]
能不能给我一个实例看看???我用的是C#,小弟对这个有点困惑.因为我接触水晶报表不久.动态生成图的.用winform做的.如果可能的话发到我邮箱,好吗?
回复
引用
#21楼
2008-08-22 10:44
fredrickhu [未注册用户]
忘记告诉你了.我用的是VS 2005自带的水晶报表
回复
引用
#22楼
[
楼主
]
2008-08-22 10:52
阿泰
@fredrickhu (20/21楼)
这种实例自然是没有的,就我现在的理解,之前的那篇文章应该可以实现你想要的效果。但看来是我理解错了。但对于一个字段(也就是所说的选a生成a图,选b生成b图),怎么能生成图表呢?
所以请你仔细描述一下你的要求,从最初的来源表、字段,到如何选择某些字段,用那些字段生成一个什么样的图表,横轴是什么,纵轴是什么,这样我才有可能去做一个合乎你要求的实例。不做最早也要下周一前。
回复
引用
查看
#23楼
2008-08-22 11:05
fredrickhu [未注册用户]
那不如这样 我把我做的东西发给你看看,然后再说 好吗?
回复
引用
#24楼
2008-08-22 11:07
fredrickhu [未注册用户]
这个上面怎么发图啊?
回复
引用
#25楼
[
楼主
]
2008-08-22 11:14
阿泰
@露为霜(17楼)
实际上,导出的那个界面上的“整个报表”其实是不起作用的。
选这个的时候,其实什么都没有变,
你导出的时候选不同的区域对比一下就知道了。
固定列宽,只能是到以某个区域为准,而不可能以整个报表为准。
这个你可以想一下,不同区域的“格”是上下排列的,但肯定不是完全的左右对齐,会有偏差
即使有时候肉眼感觉不出来。
用Excel格式导出完美表格的唯一方法请参考以下文章,N年的实战成果,呵呵
http://www.cnblogs.com/babyt/archive/2008/04/04/1137345.html
回复
引用
查看
#26楼
2008-08-22 13:53
露为霜 [未注册用户]
--引用--------------------------------------------------
阿泰: @露为霜(17楼)
用Excel格式导出完美表格的唯一方法请参考以下文章,N年的实战成果,呵呵
<a href="
http://www.cnblogs.com/babyt/archive/2008/04/04/1137345.html"
target="_new">
http://www.cnblogs.com/babyt/archive/2008/04/04/1137345.html</a>
--------------------------------------------------------
呵呵,这篇文章我已经拜读过,和我目前的作法是完全一致的!
但导出宽度以“整个报表”为准是有用的!为什么这样说呢?首先我用水晶报表直接导出Excel,选择整个报表,Excel中的样式和报表设计样式是一致的。有些表格非常窄,有些又很宽,说明不是等宽,而是为了完成报表样式而设置的。
但我用代码导出时,由于没有“整个报表”对应的属性值,所以我每个属性值都试过,但都没有用报表直接导出时那么完美,所以有此一问。不知道是否这些属性值能不能采取“或”的方式组合呢?还是水晶报表9.2就有此bug,呵呵。
回复
引用
#27楼
[
楼主
]
2008-08-22 15:26
阿泰
@露为霜 (26楼)
我说的“不起作用”其实跟你描述的是一样的。呵呵。
属性值不能是or关系,只以最后一个为准。
这也不能说是BUG,CR11里面也没有整个报表的项目。
一般情况应该使用crDetail这个常量。但要达到100%的原样,好像不行。
回复
引用
查看
#28楼
2008-08-22 16:32
fredrickhu [未注册用户]
我的数据表 SQL server 2000 :
Adress data1 temperature
a 2007-1-1 8
a 2007-2-1 12
a 2007-3-1 15
a 2007-4-1 16
a 2007-5-1 20
b 2007-1-1 7
b 2007-2-1 10
b 2007-3-1 13
b 2007-4-1 14
b 2007-5-1 18
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace CrystalReports
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
ReportData.GetAdree(this.toolStripComboBox1);
}
private void toolStripComboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//MessageBox.Show(toolStripComboBox1.SelectedItem.ToString());
ReportData.ReportHOSTSN(this.crystalReportViewer1, toolStripComboBox1.SelectedItem.ToString());
}
}
}
回复
引用
#29楼
2008-08-22 16:33
fredrickhu [未注册用户]
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Data.SqlClient;
using System.Text;
using System.Windows.Forms;
namespace CrystalReports
{
class ReportData
{
private static string strMessage;
private static SqlConnection objConnection = GetData.GetConnection();
private static SqlDataAdapter objAdapter;
private static DataSet objDataset;
public static DataSet GetAssets()
{
try
{
objConnection.Open();
strMessage = "select Adress,date1,temperature from table1";
objAdapter = new SqlDataAdapter(strMessage, objConnection);
objDataset = new DataSet();
objDataset.Clear();
objDataset.Dispose();
objAdapter.Fill(objDataset, "Adress");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
objConnection.Close();
}
return objDataset;
}
public static DataSet GetAssets2()
{
try
{
objConnection.Open();
strMessage = "select Adress from table1 group by Adress ";
objAdapter = new SqlDataAdapter(strMessage, objConnection);
objDataset = new DataSet();
objDataset.Clear();
objDataset.Dispose();
objAdapter.Fill(objDataset, "Adress");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
objConnection.Close();
}
return objDataset;
}
public static DataSet GetAssets3(string Adress)
{
try
{
objConnection.Open();
strMessage = "select Adress,date1,temperature from table1 where Adress like '" + Adress + "'";
objAdapter = new SqlDataAdapter(strMessage, objConnection);
objDataset = new DataSet();
objDataset.Clear();
objDataset.Dispose();
objAdapter.Fill(objDataset, "Adress");
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
finally
{
objConnection.Close();
}
return objDataset;
}
public static void GetAdree(ToolStripComboBox box)
{
GetAssets2();
for (int i = 0; i < objDataset.Tables[0].Rows.Count; i++)
{
box.Items.Add(objDataset.Tables[0].Rows[i][0].ToString());
}
}
public static void ReportHOSTSN(CrystalDecisions.Windows.Forms.CrystalReportViewer viewer, string Adress)
{
GetAssets3(Adress);
CrystalReport1 assets = new CrystalReport1();
assets.Load(Application.StartupPath + "CrystalReport1.rpt");
assets.SetDataSource(objDataset.Tables["Adress"]);
viewer.ReportSource = assets;
}
}
}
回复
引用
#30楼
2008-08-22 16:34
fredrickhu [未注册用户]
using System;
using System.Collections.Generic;
using System.Text;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace CrystalReports
{
class GetData
{
private static SqlConnection objConnection;
//连接数据库
public static SqlConnection GetConnection()
{
string str = "server=.;uid=sa;pwd=sa;database=huxizhi";
try
{
objConnection = new SqlConnection(str);
}
catch (SqlException ex)
{
MessageBox.Show(ex.Message);
}
finally
{
objConnection.Close();
}
return objConnection;
}
}
}
回复
引用
#31楼
2008-08-22 16:44
fredrickhu [未注册用户]
我的代码大体是这样.用C#内置的CR 10.2制作的表能实现选采集点a得出a的表,选采集点b得到b相关的表.现在的问题是我用CR 10.2制作图就无法实现了.请阿泰兄指点.
回复
引用
#32楼
2008-08-22 17:36
figo [未注册用户]
阿泰兄,就今天早上的那个问题“我已经做好2个水晶报表,但是如何通过一次预览就将它们调用出来. ”。
我把将第二个报表作为子报表放到第一个报表的页脚,但是运行的时候浏览第二个报表,弹出了一个登陆窗口,要输入登陆信息。这一般是什么问题引起呢?请阿泰兄指点下。
回复
引用
#33楼
[
楼主
]
2008-08-22 18:02
阿泰
figo (33楼)
子报表需要单独的给与登录信息,即使他用的是与主报表同一个数据源。
回复
引用
查看
#34楼
[
楼主
]
2008-08-22 18:08
阿泰
@fredrickhu(31楼)
我粗略看了一下,似乎很简单,呵呵。等我再仔细看看吧
回复
引用
查看
#35楼
2008-08-22 18:36
figo [未注册用户]
谢谢阿泰兄的指点。
但是我之前弄的子报表都不用给与登陆信息的,不知道为什么。对了,我忘记说我用的是vs2005自带的水晶报表开发的。
要是给与子报表登陆信息,应该怎样写呢?阿泰兄举个例子行吗?我用的数据库是access和用C#开发语言,谢谢。
回复
引用
#36楼
2008-08-25 08:49
风吹小屁屁 [未注册用户]
--引用--------------------------------------------------
阿泰: @风吹小屁屁(12楼)
你的这几个要求用spreadsheet似乎不是很合适,直接用datagrid更好些。
不过建议你自己多研究研究,呵呵。因为我的电脑上没有VB6这样的环境了。
要是我做的话,基本上是这样的:
1)根据查询条件从数据库生成一个recordset,逐格填充spreadsheet
2)将修改后的数据根据每一行的一个唯一性标志位,逐行去更新数据库
3)这个要监控keypress事件,出发时回写数据库即可。
希望你自己先多试试
--------------------------------------------------------
谢谢阿泰的回答,受益非浅.我的表述可能有点错误,因为我做的表格必须和生产线现在使用的表格相一致,而spreadsheet可以直接从EXCEL中复制过来,所以也是很懒的一个方法.但是每个单元格对应一个数据库表的列的方法也非常头疼.DATAGRID貌似不能实现我所说的功能吧.希望阿泰能给个具体的例子.
比如单元格(B,2)调用DB数据库的TB表中的YG列,应该如何实现呢?
期待你的回复~~非常感谢~
回复
引用
#37楼
2008-08-25 10:50
wrxking [未注册用户]
泰哥 我用的是VS2005自带的水晶报表 在本机运行一切正常 可是在服务器上运行时 不出现黄色错误页面 但是提示报表加载错误 而且pdf阅读器的按钮图片也不显示 这是怎么回事啊
请泰哥指教 非常感谢
回复
引用
#38楼
2008-08-25 11:11
露为霜 [未注册用户]
请教阿泰。
用水晶报表直接导出Excel的时候有一个选项是“导出页眉和页脚”,请问用程序实现的话这个属性值该怎么设置,一直没有找到,谢谢
回复
引用
#39楼
[
楼主
]
2008-08-26 10:06
阿泰
@露为霜 (38楼)
此属性为objCRReport.ExportOptions.ExcelExportPageAreaPair
回复
引用
查看
#40楼
[
楼主
]
2008-08-26 10:08
阿泰
@wrxking(37楼)
需保证internet来宾帐号对系统temp有可读写权限,内网系统的话建议把这个权限赋给everyone
回复
引用
查看
#41楼
2008-08-26 10:55
wrxking [未注册用户]
--引用--------------------------------------------------
阿泰: @wrxking(37楼)
需保证internet来宾帐号对系统temp有可读写权限,内网系统的话建议把这个权限赋给everyone
--------------------------------------------------------
@泰哥
我已经把服务器上C盘的temp文件夹加了everyone权限(可读可写) 可是还是不显示报表 而且报表工具栏上的按钮图片也不显示(在本机正常显示) 提示:报表加载失败 请泰哥帮忙啊
回复
引用
#42楼
2008-08-26 13:47
露为霜 [未注册用户]
--引用--------------------------------------------------
阿泰: @露为霜 (38楼)
此属性为objCRReport.ExportOptions.ExcelExportPageAreaPair
--------------------------------------------------------
唉,太遗憾了。我用的还是9.2版本,没有此属性。
回复
引用
#43楼
2008-08-26 16:49
露为霜 [未注册用户]
@阿泰
我用程序方式间接地实现了9.2版本没有“导出页眉页脚”属性。
我将报表的标题放到了“报表页眉”这节,然后将“页脚”这节设置为“抑制显示”,“页眉”将其隐藏。这样出来的报表,就有一个标题,然后后面跟着明细内容和汇总内容,没有分页了。
回复
引用
#44楼
2008-08-27 11:08
xiaozhi7566 [未注册用户]
阿泰你好:
请教一个子报表的问题:有多个图片,每个图片对应多条记录,(根据图片id关联)这个怎么实现?(每个图片一页,每个图片对应的记录不会超过一页)
我的思路:把图片放在详细资料的左边,右边放子报表,子报表显示改图片对应的记录。
遇到的问题:如果根据图片id获取子报表的数据源?
回复
引用
#45楼
2008-08-27 13:59
jiessie9 [未注册用户]
@阿泰
你好,感觉看你的东西比较实用.我现在有个水晶报表的问题:通常的报表上面是表头,下面是详细资料。可是我有一个报表,它是2个这样的表上下显示堆叠出来的,不知道怎么做,能帮我分析一下吗?最好能有一个rpt实例,谢谢!
回复
引用
#46楼
2008-08-27 14:04
jiessie9 [未注册用户]
@阿泰
你好,感觉看你的东西比较实用.我现在有个水晶报表的问题:通常的报表上面是表头,下面是详细资料。可是我有一个报表,它是2个这样的表上下显示堆叠出来的,不知道怎么做,能帮我分析一下吗?最好能有一个rpt实例.使用主从报表是可以,就是上下2个表的表头很难对齐,这是个很大的问题。谢谢! --------------------------------------------------------
回复
引用
#47楼
[
楼主
]
2008-08-27 14:15
阿泰
@露为霜(42,43楼)
不好好意思,我现在用的是CR XI,所以肯定是有些不一样的地方了~~
非常感谢你的分享
回复
引用
查看
#48楼
[
楼主
]
2008-08-27 14:29
阿泰
@xiaozhi7566(44楼)
请参考
http://www.cnblogs.com/babyt/articles/165887.html
回复
引用
查看
#49楼
[
楼主
]
2008-08-27 14:37
阿泰
@jiessie9 (45、46楼)
其实完全可以使用一个空的主报表,挂两个子报表,这样容易对齐
单纯的一个主报表+一个子报表也是可以对齐的。
子报表与主报表对不齐,主要是子报表的左侧默认有一个空出的区域
把子报表的全部内容(Ctrl+a)后,全部往往左拖,直到最左边的字段顶到最左边
然后再到主报表里去做对齐就好做了
回复
引用
查看
#50楼
2008-08-28 11:21
xiaozhi7566 [未注册用户]
@阿泰
谢谢,问题已解决
回复
引用
#51楼
2008-08-28 15:30
wrxking [未注册用户]
@啊泰
还是我 又来麻烦你了
还是当水晶报表上传到服务器后 运行时提示错误:System.Runtime.InteropServices.COMException: 类文字列无效
我在网上查了好多资料 感觉好像是需要下载CrystalReportsRedist2005_X86.msm,将它合并到项目中生成安装包,然后到服务器上安装吧
可是我一直在网上找下载 CrystalReportsRedist2005_X86.msm 的地址 可是所有的都链接到
http://www.businessobjects.com/products/dev_zone/net/2005.asp
这个地址 是个英文网站 没看懂 不知道应该在那下载 能提供个下载CrystalReportsRedist2005_X86.msm 的地址吗 或者本站有? 谢谢啊泰兄弟了
回复
引用
#52楼
[
楼主
]
2008-08-29 00:06
阿泰
@wrxking
http://xianexs.mail.qq.com/cgi-bin/downloadfilepart/svrid241/cr_net_2005_mm_mlb_x86.zip?svrid=241&fid=78c71191be178aaff54e5636fe09901673756de64fc05be8&&txf_fid=54c939014f306b2554bdae2a286c85a734a69062&&txf_sid=be0787d4eb909c4d47d456e79a362ed6f9613dd4
如果需要提取码,是92f8be9d
回复
引用
查看
#53楼
2008-08-29 00:32
makty [未注册用户]
阿泰
你好
我才学报表 现在遇到一个很愁人的交叉表,格式看起来很明了,可是不知道数据怎么设计,能帮我分析下吗,我邮箱是59629797@qq.com你可以先联系下我给吧我的报表样式给你帮我分析下 谢谢~
回复
引用
#54楼
2008-08-29 00:41
makty [未注册用户]
http://xianexs.mail.qq.com/cgi-bin/downloadfilepart/svrid230/%D0%C2%BD%A8+Microsoft+Excel+%B9%A4%D7%F7%B1%ED.xls?svrid=230&fid=78c71191be178aaf199d8148242230bfbfeab1097dedc9f5&&txf_fid=4e59d11efdd7d9a94abbba804da3849f0491c9c7&&txf_sid=64ee34b9f7ab388e3e71df47d7a1ee1f2516074a
才知道QQ邮箱上传的可以给别人下载啊,阿泰,我把这个例子上传了下,麻烦你有时间看看,办我分析下这个表怎么做好,不胜感谢~~
回复
引用
#55楼
[
楼主
]
2008-08-29 10:02
阿泰
@makty(54楼)
提取码是啥?
回复
引用
查看
#56楼
2008-08-29 15:12
lovecoding [未注册用户]
@泰哥
我用的是VS2005自带水晶报表
带有水晶报表的页面,发布到服务器上后出现如下错误:
异常详细信息: System.IO.FileNotFoundException: 检索 COM 类工厂中 CLSID 为 {11BD5260-15B6-412D-80DB-12BB60B8FE50} 的组件时失败,原因是出现以下错误: 8007007e。
出错代码:
行 16: <div>
行 17: <CR:CrystalReportViewer ID="CrystalReportViewer1" runat="server" AutoDataBind="True" Height="1106px" Width="876px" ReportSourceID="CrystalReportSource1" />
行 18: <CR:CrystalReportSource ID="CrystalReportSource1" runat="server">(第18行为红色字体)
行 19: <Report FileName="CrystalReport.rpt">
行 20: </Report>
请问这是什么原因啊? 请泰哥指教
回复
引用
#57楼
[
楼主
]
2008-08-29 15:25
阿泰
@lovecoding
很大可能是部署的问题。
看这个内容的51楼和52楼,如果你打包的时候没用到这个文件,那就是部署的原因
回复
引用
查看
#58楼
2008-08-29 16:30
lovecoding [未注册用户]
@泰哥
我用到了CrystalReportsRedist2005_X86.msm文件 可是还是不行
我不确定自己部署的是否正确,部署的时候还需要别的什么文件吗
能教一下我怎么部署吗 或者本站有相关讲解 提供一下地址 我是第一次用水晶报表(VS2005自带的) 非常感谢
回复
引用
#59楼
2008-08-29 22:45
makty [未注册用户]
哦 忘记了 fd16c919 这个是提取码
http://xianexs.mail.qq.com/cgi-bin/downloadfilepart/svrid230/%D0%C2%BD%A8+Microsoft+Excel+%B9%A4%D7%F7%B1%ED.xls?svrid=230&fid=78c71191be178aaf199d8148242230bfbfeab1097dedc9f5&&txf_fid=4e59d11efdd7d9a94abbba804da3849f0491c9c7&&txf_sid=64ee34b9f7ab388e3e71df47d7a1ee1f2516074a
希望这次麻烦阿泰帮我讲解下,以后这种多维交叉表的设计我就有的参考了
回复
引用
#60楼
2008-08-30 10:01
steve_zhong [未注册用户]
泰哥
你好
我是刚学水晶报表的,请问有没有办法去掉详细资料和页脚之间的空白,我用的是VS2005自带的
谢谢
回复
引用
#61楼
[
楼主
]
2008-08-30 12:08
阿泰
@lovecoding (58楼)
请参考
http://www.cnblogs.com/babyt/archive/2008/08/29/1279569.html
回复
引用
查看
#62楼
[
楼主
]
2008-08-30 12:17
阿泰
@makty(59楼)
像这种报表,用交叉表实现起来会有诸多限制
不过这类的报表确实是很普遍的
一般情况我们是这样实现的:
不过原始表如何,单独构造一个中间汇总表,为报表服务。
而且像这种按年、按月汇总的,数据量一般也比较大,
交给报表即时汇总,性能也比较差
在我们常规的报表系统中,每天会有计划任务做数据汇总,如
日汇总、周汇总、月汇总、季度汇总、年度汇总
这些汇总一般都是给报表用的,用于报表的快速展现
也就是说,报表本身并不进行复杂的运算,以呈现为主
数据的汇总,行列转换等都是在存储汇总时的程序或存储过程或其他sh脚本里的
单对这个表来说,可以构造一个有如下字段的行集
大类、小类、年份(本年、去年)、1月份收入、1月份成本、2月份收入、2月份成本
然后按照大类、小类进行分组就行了
虽然说构造如下的记录集可能更简单点
大类、小类、年份、月份、月份收入、月份成本
相对简单
但是既然汇总了,不如就一步到位,呵呵~~
回复
引用
查看
#63楼
2008-08-30 21:49
makty [未注册用户]
大类、小类、年份(本年、去年)、1月份收入、1月份成本、2月份收入、2月份成本
这么构建表的话就用不到交叉表了吧?就相当于我直接查询出12个月收入成本 也就是24行数据了吧。(我的理解哦) 这样的话我这个小类是会变动的 字段拼凑会有问题的,所以我第一念头就是交叉表实现下。【大类、小类、年份、月份、月份收入、月份成本】这个我周五写了个类似的SQL 差点累死 嗷嗷多的UNION拼起来的 恩 我试着写下 谢谢~~~
回复
引用
#64楼
[
楼主
]
2008-08-30 22:04
阿泰
@makty(63楼)
这个我们也经常遇到,就是左边的条目是需要固定的,但是实际的数据呢又不可能全部有
有两种方法可以实现:
前提是这个表需要关联一个基础代码表,就是大类、小类这样的
一是使用外连接,外连接代码表
二是在数据表里添加空行,比如说基础代码表里有20行
那么就在数据表里先预先插入20个行,只有代码就可以,数值为0
这样就能补全报表样式
回复
引用
查看
#65楼
2008-08-31 08:12
steve_zhong [未注册用户]
泰哥
你好
我现在在做一张报表,其中有个备注要求支持HTML格式,比如说:
这是其中的一个备注:
(1)请提供送货单</br> (即要求在此处换行)
(2)请提供详细资料<b>送香港</b>(要求香港2个字用粗体)。。。
请问有办法实现吗???
回复
引用
#66楼
[
楼主
]
2008-08-31 09:02
阿泰
@steve_zhong(65楼)
请参考
http://www.cnblogs.com/babyt/archive/2008/08/03/1259451.html
回复
引用
查看