【原创+分享】VS2005水晶报表PUSH模式(DataSet)视频教程+源代码工程示例

阿泰 2008-11-18 10:29:59
加精
昨天抽空做了下,因为总有事情打断,断断续续做了好几次,加上第一次正经做视频,所以有点乱。
而且为了便于压缩,没有出声,大家看着会有点费力,不过好在整个过程比较简单。

本示例包含:

单表模板演示
多表模板演示
子报表演示

基本涵盖了日常需求,按照此方式,也基本可满足基于水晶报表的日常开发,代码基本上可以不用操心了

视频+代码下载地址:

点击这里>>>>>>>>>>

压缩文件:6.4M,视频总长:26分钟左右。建议初学者仔细研读。

说明一下,因为我的工程文件里的报表版本是CR XI,所以你可能跑不起来,建议你自己按照视频重新构造一下。

如果视频中有说错的地方,还请大家多多指正。

请不要在本贴中问与主题无关的问题,谢谢
...全文
18181 318 打赏 收藏 举报
写回复
318 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
董事长Kevin 2012-09-07
还没下。真心谢过
  • 打赏
  • 举报
回复
董事长Kevin 2012-09-07
顶 顶
  • 打赏
  • 举报
回复
wwb562883398 2012-09-07
这个视频是拿什么软件录得啊
  • 打赏
  • 举报
回复
zp1201 2012-08-28
阿泰fans。。思密达
  • 打赏
  • 举报
回复
kankankankan2222 2012-03-26
还没看。真心谢过
  • 打赏
  • 举报
回复
jiajia_890605 2012-03-11
不好意思,我想请问一下,如何将水晶报表设计的部分与WINform窗体应用程序整合到一起,以达到普通用户能够直接用的效果……也不知道我的表述您能了解吗……
  • 打赏
  • 举报
回复
juiky 2012-03-07
谢谢了,有用
  • 打赏
  • 举报
回复
zhoukun6071 2012-02-28
强烈支持
  • 打赏
  • 举报
回复
al198865 2012-02-09
谢谢泰哥分享!
  • 打赏
  • 举报
回复
jxyga111 2012-01-02
阿泰水晶報表牛人
  • 打赏
  • 举报
回复
jilonglv 2011-12-24
不谢 真过意不去啊。。。。
  • 打赏
  • 举报
回复
custom1234 2011-11-10
  • 打赏
  • 举报
回复
lb90214 2011-11-10
阿泰,我遇到了一个问题,我给参数字段赋值了,可是点击打印的时候,它还是弹出赋值的框出来;代码如下://报表源绑定
private void ReportDataBind()
{
if (!checkDateTime())
{
return;
}
DataView SelectQuality = OracleHelper.ExecuteDataSet("select * from v_Qualtiy").Tables[0].DefaultView;
string strIsDisplayCal = "F";
if (SelectQuality.Count > 0)
{
strIsDisplayCal = SelectQuality[0][0].ToString().Trim();

}
string sqlStr = "";
string dateTime = Convert.ToDateTime(this.txtDate.Text).ToString("yyyy-MM-dd");
if (RBLDate.SelectedValue.Equals("ReachDate"))
{
sqlStr =string.Format(@"select substr(SampleDateTime,1,10) AS SampleDateTime,substr(MAVTestDatetime,1,10) AS MAVTestDatetime,s.transmode, b.coalbreed_name, c.coal_name, t.station_name, CarCount, SendWeight, ReceiveWeight, Mar, Mad, Aad, Ad, Vad, Vdaf, Stad, Std, FCad, Qb, Qgrad, Qgrd, Qnetar, cast(round(Qnetar*239.1429,0) as int) as Cal, c.Coal_Name
from t_Quality q join t_samplemakecode s on q.thirdcode=s.thirdcode join t_CoalName c on c.coal_code=s.coal_code join t_station t on t.station_code=s.station_code join t_coalkind c on c.coal_code=s.coal_code join t_coalbreed b on b.coalbreed_code=s.coalbreed_code where substr({0},1,10)='{1}' and q.auditlastf = 'T' and s.comparef = 'T'
order by TransMode, c.coal_name",RBLDate.SelectedValue,dateTime);
}
else
{
sqlStr =string.Format(@"select substr(SampleDateTime,1,10) AS SampleDateTime,substr(MAVTestDatetime,1,10) AS MAVTestDatetime,s.transmode, b.coalbreed_name, c.coal_name, t.station_name, CarCount, SendWeight, ReceiveWeight, Mar, Mad, Aad, Ad, Vad, Vdaf, Stad, Std, FCad, Qb, Qgrad, Qgrd, Qnetar, cast(round(Qnetar*239.1429,0) as int) as Cal, c.Coal_Name
from t_Quality q join t_samplemakecode s on q.thirdcode=s.thirdcode join t_CoalName c on c.coal_code=s.coal_code join t_station t on t.station_code=s.station_code join t_coalkind c on c.coal_code=s.coal_code join t_coalbreed b on b.coalbreed_code=s.coalbreed_code where substr(FirstCode,1,8)='{0}' and q.auditlastf = 'T' and s.comparef = 'T'order by TransMode, c.coal_name", dateTime.Replace("-", ""));

}
DataSet ds = OracleHelper.ExecuteDataSet(sqlStr);
//连接报表文件
CrystalReportSource1.ReportDocument.Load(Server.MapPath("CR_QualityDay.rpt"));

CrystalReportSource1.ReportDocument.SetDataSource(ds.Tables[0]);
CrystalReportSource1.ReportDocument.ParameterFields["Year"].CurrentValues.AddValue(txtDate.Text.Substring(0, 4));
CrystalReportSource1.ReportDocument.ParameterFields["month"].CurrentValues.AddValue(txtDate.Text.Substring(5, 2));
CrystalReportSource1.ReportDocument.ParameterFields["Date"].CurrentValues.AddValue(txtDate.Text.Substring(8, 2));
//CrystalReportSource1.ReportDocument.ParameterFields["ptitle"].CurrentValues.AddValue("华 电 国 际 漯 河 发 电 厂");
CrystalReportSource1.ReportDocument.ParameterFields["title"].CurrentValues.AddValue("入 厂 煤 化 验 日 报");
CrystalReportSource1.ReportDocument.ParameterFields["Maker"].CurrentValues.AddValue(strUserName);
GetDataCount("0");
GetDataCount("1");

CrystalReportSource1.ReportDocument.ParameterFields["truckCoalCount"].CurrentValues.AddValue(truckCoalCount);
CrystalReportSource1.ReportDocument.ParameterFields["carCoalCount"].CurrentValues.AddValue(carCoalCount);
CrystalReportSource1.ReportDocument.ParameterFields["receiveTruckCount"].CurrentValues.AddValue(truckReceiveCount);
CrystalReportSource1.ReportDocument.ParameterFields["receiveCarCount"].CurrentValues.AddValue(carReceiveCount);
CrystalReportSource1.ReportDocument.ParameterFields["truckCarCount"].CurrentValues.AddValue(truckCount);
CrystalReportSource1.ReportDocument.ParameterFields["carCarCount"].CurrentValues.AddValue(carCount);
CrystalReportSource1.ReportDocument.ParameterFields["coalCount"].CurrentValues.AddValue(coalCount);
CrystalReportSource1.ReportDocument.ParameterFields["receiveCount"].CurrentValues.AddValue(receiveCount);

CrystalReportSource1.DataBind();

CrystalReportViewer1.ReportSource = CrystalReportSource1;
CrystalReportViewer1.DataBind();
}

private int truckCoalCount = 0;//火车矿数
private int carCoalCount = 0;//汽车矿数
private double truckReceiveCount = 0.00;//火车来煤验收量
private double carReceiveCount = 0.00;//汽车来煤验收量
private int coalCount = 0;//矿数
private double receiveCount = 0.00;//总验收量
private int carCount = 0;//汽车来煤车数
private int truckCount = 0;//火车来煤车数

private void GetDataCount(string transMode)
{
string sql = "";
string dateTime = Convert.ToDateTime(this.txtDate.Text).ToString("yyyy-MM-dd");
if (RBLDate.SelectedValue.Equals("ReachDate"))
{
sql = "select count(Coal_Code) as coalCount,sum(ReceiveWeight) as ReceiveWeight,sum(CarCount) as CarCount from t_Quality t join t_samplemakecode s on t.thirdcode=s.thirdcode where transMode = '0' and substr(ReachDate,1,10) = '"+txtDate.Text+"' and t.auditlastf = 'T' and s.comparef = 'T'";
}
else
{
sql = "select count(Coal_Code) as coalCount,sum(ReceiveWeight) as ReceiveWeight,sum(CarCount) as CarCount from t_Quality q left join t_samplemakecode s on q.thirdcode=s.thirdcode where transMode = '" + transMode + "' and substr(FirstCode,1,8) = '" + dateTime.Replace("-", "") + "' and auditlastf = 'T' and s.comparef = 'T'";
}
DataView dv = OracleHelper.ExecuteDataSet(sql).Tables[0].DefaultView;
if (transMode == "0")
{
if (dv.Table.Rows[0]["coalCount"].ToString() != "")
{
truckCoalCount = Convert.ToInt32(dv.Table.Rows[0]["coalCount"].ToString());
}
if (dv.Table.Rows[0]["ReceiveWeight"].ToString() != "")
{
truckReceiveCount = Double.Parse(dv.Table.Rows[0]["ReceiveWeight"].ToString());
}
if (dv.Table.Rows[0]["CarCount"].ToString() != "")
{
truckCount = Convert.ToInt32(dv.Table.Rows[0]["CarCount"].ToString());
}
coalCount += truckCoalCount;
receiveCount += truckReceiveCount;
}
else
{
if (dv.Table.Rows[0]["coalCount"].ToString() != "")
{
carCoalCount = Convert.ToInt32(dv.Table.Rows[0]["coalCount"].ToString());
}
if (dv.Table.Rows[0]["ReceiveWeight"].ToString() != "")
{
carReceiveCount = Double.Parse(dv.Table.Rows[0]["ReceiveWeight"].ToString());
}
if (dv.Table.Rows[0]["CarCount"].ToString() != "")
{
carCount = Convert.ToInt32(dv.Table.Rows[0]["CarCount"].ToString());
}
coalCount += carCoalCount;
receiveCount += carReceiveCount;
}
}
  • 打赏
  • 举报
回复
panxunmiao1 2011-11-02
好人那,感激涕零
  • 打赏
  • 举报
回复
zhangyajun0723 2011-10-18
谢谢分享~
  • 打赏
  • 举报
回复
cywmxrfzl 2011-10-10
这个教程怎么下载不了呢?
  • 打赏
  • 举报
回复
li367321 2011-09-30
qiu积分···
  • 打赏
  • 举报
回复
谢谢分享,顶一下
  • 打赏
  • 举报
回复
ecdyf1989 2011-09-18
谢谢楼主 正在看您写的文章
  • 打赏
  • 举报
回复
zhouyangmgzx 2011-09-15
慢慢学习
  • 打赏
  • 举报
回复
加载更多回复(292)
相关推荐
CruiseYoung提供的带有详细书签的电子书籍目录 http://blog.csdn.net/fksec/article/details/7888251 该资料是《iPhone开发秘籍:第2版》的源代码 对应的书籍资料见: iPhone开发秘籍:第2版(iphone开发必备佳作,在第一版的基础上进行了全面修订和大量扩充) 基本信息 原书名: The iPhone Developer's Cookbook: Building Applications with the iPhone 3.0 SDK (2nd Edition) 原出版社: Addison-Wesley Professional 作者: (美)Erica Sadun 译者: 张彩霞 高颖 易磊 丛书名: 图灵程序设计丛书 移动开发类 出版社:人民邮电出版社 ISBN:9787115240019 上架时间:2010-11-11 出版日期:2010 年11月 开本:16开 页码:654 版次:2-1 编辑推荐   iPhone开发的重量级参考书    揭示官方文档未详述的细节    代码示例清晰易懂 内容简介    《iphone开发秘籍(第2版)》提供了关于iphone sdk以及iphone开发的全面信息,对iphone sdk中的各种组件做了深入浅出的介绍,包括iphone 3.0 sdk的所有新增特性,同时对iphone开发的基本流程、基本原理和基本原则进行了详细且通俗的讲解。此外,还结合实例讲解了如何开发各种iphone特性,包括视图、视图控制器、警告、表格、媒体、控件、人物、位置和事件。   《iphone开发秘籍(第2版)》适合iphone和mac开发人员。 作译者 作者:(美国)萨丹(Erica Sadun) 译者:张彩霞 高颖 易磊 等 萨丹(Erica Sadun),著名iPhone技术专家,畅销书作者。佐治亚理工学院计算机科学博士。拥有多年Apple开发经验。著有30多本技术书籍。涉及编程、数字媒体、网站设计和数码摄影等多个领域。Erica开发了十多个本地应用。他常在其iPhone编程博客发表些极有见地的文章。 目录 封面 -26 封底 -25 扉页 -24 版权 -23 版权声明 -22 译者序 -20 致谢 -19 前言 -18 目录 -9 第1章 iPhone SDK简介 1 1.1 iPhone开发人员计划 1 1.1.1 在线开发人员计划 1 1.1.2 标准开发人员计划 2 1.1.3 企业开发人员计划 2 1.1.4 大学开发人员计划 2 1.1.5 注册 2 1.2 开始 2 1.2.1 下载SDK 2 1.2.2 开发设备 3 1.2.3 模拟器的限制 4 1.2.4 Tethering 4 1.3 理解型号差异 5 1.3.1 摄像头 5 1.3.2 扬声器和麦克风 5 1.3.3 手机 6 1.3.4 Core Location的差异 6 1.3.5 振动支持和接近传感器 6 1.3.6 处理器速度 6 1.3.7 OpenGL ES 7 1.4 平台限制 7 1.4.1 存储限制 7 1.4.2 数据访问限制 7 1.4.3 内存限制 7 1.4.4 交互限制 8 1.4.5 电量限制 8 1.4.6 应用程序限制 8 1.4.7 用户行为限制 9 1.5 SDK限制 9 1.6 使用开发人员门户 9 1.6.1 建立团队 10 1.6.2 请求证书 10 1.6.3 注册设备 11 1.6.4 注册应用程序标识符 11 1.6.5 设置 12 1.7 组建iPhone项目 12 1.7.1 iPhone应用程序的主干 13 1.7.2 main.m 14 1.7.3 应用程序委托 15 1.7.4 视图控制器 16 1.7.5 关于本书示例代码的说明 16 1.8 iPhone应用程序组件 17 1.8.1 应用程序文件夹层次结构 17 1.8.2 可执行文件 17 1.8.3 Info.plist文件 17 1.8.4 图标和默认图像 19 1.8.5 NIB文件 20 1.8.6 应用程序束中不存在的文件 20 1.8.7 IPA归档 20 1.8.8 沙盒 20 1.9 编程范例 21 1.9.1 面向对象编程 21 1.9.2 模型—视图—控制器 22 1.10 小结 27 第2章 构建第一个项目 28 2.1 创建新项目 28 2.2 用模板构建Hello World应用程序 29 2.2
发帖
图表区

4811

社区成员

.NET技术 图表区
社区管理员
  • 图表区社区
加入社区
帖子事件
创建了帖子
2008-11-18 10:29
社区公告
暂无公告