2009年12月25日
摘要: http://office.microsoft.com/training/training.aspx?AssetID=RP061827602052&ofcresset=1 “订单”表中的主键。“产品”表中的主键。一个订单可以包含多种产品 ... ... 且每种产品可以出现在多个订单上。课程文本在多对多关系中,一个表中的一个记录与第二个表中的多... 阅读全文
posted @ 2009-12-25 16:05 一粒沙 阅读(314) 评论(0) 推荐(0) 编辑
  2009年12月23日
摘要: 新建数据源中,数据源类型选择“Report Server Model”,链接字符串使用如下的格式:Server=http://localhost/reportserver; datasource=/AnalysisTestModel 阅读全文
posted @ 2009-12-23 13:31 一粒沙 阅读(384) 评论(0) 推荐(0) 编辑
  2009年12月20日
摘要: 系统的复杂度 假设我们需要开发一个坦克模拟系统用于模拟坦克车在各种作战环境中的行为,其中坦克系统由引擎、控制器、车轮、车身等各子系统构成。public class Wheel{public void WAction1() {....}public void WAction2() {....}}public class Engine{public void EAction1() {....}publ... 阅读全文
posted @ 2009-12-20 21:03 一粒沙 阅读(678) 评论(0) 推荐(0) 编辑
  2009年12月18日
摘要: 子类复子类,子类何其多 假如我们需要为游戏中开发一种坦克,除了各种不同型号的坦克外,我们还希望在不同场合中为其增加以下一种或多种功能:比如红外线夜视功能,比如水陆两栖功能,比如卫星定位功能等等。// 抽象坦克public abstract class Tank {public abstract Shot();public abstract Run();}//各种型号public class T50... 阅读全文
posted @ 2009-12-18 23:18 一粒沙 阅读(236) 评论(0) 推荐(0) 编辑
摘要: 每个 Web Service都需要唯一的命名空间,它可使客户端应用程序区分出可能使用相同方法名称的 Web Service。在 Visual Studio.NET中创建的Web Service的默认命名空间是“http://tempuri.org/”。尽管命名空间类似于典型的URL,但在Web浏览器中是不能查看的,它只是一个唯一标识符。 Web Service(Web服务)提供以下属性。 l D... 阅读全文
posted @ 2009-12-18 11:47 一粒沙 阅读(1907) 评论(0) 推荐(0) 编辑
  2009年12月17日
摘要: 对象容器的问题在面向对象系统中,我们常会遇到一类具有“容器”特征的对象——即它们在充当对象的同时,又是其他对象的容器。 [代码]如果我们要对这样的对象容器进行处理: [代码] 动机(Motivation) 上述描述的问题根源在于:客户代码过多地依赖于对象容器复杂的内部实现结构,对象容器内部实现结构(而非抽象接口)的变化将引起客户代码的频繁变化,带来了... 阅读全文
posted @ 2009-12-17 23:20 一粒沙 阅读(347) 评论(0) 推荐(0) 编辑
  2009年12月16日
摘要: 抽象与实现 抽象不应该依赖于实现细节,实现细节应该依赖于抽象。 抽象B ——稳定 实现细节b ——变化 问题在于如果抽象B由于固有的原因,本身并不稳定,也有可能变化,怎么办? 举例来说 假如我们需要开发一个同时支持PC和手机的坦克游戏,游戏在PC和手机上功能都一样,都有同样的类型,面临同样的功能需求变化,比如坦克可能有多种不同的型号:T50,T7... 阅读全文
posted @ 2009-12-16 22:26 一粒沙 阅读(435) 评论(0) 推荐(0) 编辑
摘要: 适配(转换)的概念无处不在…… 适配,即在不改变原有实现的基础上,将原先不兼容的接口转换为兼容的接口。 动机(Motivation) 在软件系统中,由于应用环境的变化, 常常需要将“一些现存的对象”放在新的环境中应用,但是新环境要求的接口是这些现存对象所不满足的。 如何应对这种“迁移的变化”?如何既能利用现有对象的良好实现,同... 阅读全文
posted @ 2009-12-16 14:00 一粒沙 阅读(325) 评论(0) 推荐(0) 编辑
  2009年12月14日
摘要: 依赖关系的倒置抽象不应该依赖于实现细节,实现细节应该依赖于抽象。– 抽象A直接依赖于实现细节b –抽象A依赖于抽象B,实现细节b依赖于抽象B 动机(Motivation) 在软件系统中,经常面临着“某些结构复杂的对象”的创建工作;由于需求的变化,这些对象经常面临着剧烈的变化,但是它们却拥有比较稳定一致的接口。 如何应对这种变化?如何向“... 阅读全文
posted @ 2009-12-14 22:32 一粒沙 阅读(224) 评论(0) 推荐(0) 编辑
摘要: http://www.microsoft.com/downloads/details.aspx?FamilyID=1fbeb8a0-25e6-4963-9cf2-b0a3c6852f49&DisplayLang=enProClarity 6.3 SP2 中文版釋出6/8日Proclarity 6.3 SP2 終於出了中文版的HOTFIX.請各位一定要下載唷Proclarity Deskto... 阅读全文
posted @ 2009-12-14 15:18 一粒沙 阅读(1287) 评论(1) 推荐(0) 编辑
  2009年12月13日
摘要: 从耦合关系谈起 耦合关系直接决定着软件面对变化时的行为 – 模块与模块之间的紧耦合使得软件面对变化时,相关的模块都要随之更改 – 模块与模块之间的松耦合使得软件面对变化时,一些模块更容易被替换或者更改,但其他模块保持不变动机(Motivation) 在软件系统中,经常面临着“某个对象”的创建工作;由于需求的变化,这个对象经常面临着剧烈的变化,但是它却... 阅读全文
posted @ 2009-12-13 23:39 一粒沙 阅读(331) 评论(0) 推荐(0) 编辑
  2009年12月12日
摘要: Builder模式的缘起假设创建游戏中的一个房屋House设施,该房屋的构建由几个部分组成,且各个部分要富于变化。如果使用最直观的设计方法,每一个房屋部分的变化,都将导致房屋构建的重新修正……动机(Motivation)在软件系统中,有时候面临着“一个复杂对象”的创建工作,其通常由各个部分的子对象用一定的算法构成;由于需求的变化,这个复杂对象的各个部... 阅读全文
posted @ 2009-12-12 22:18 一粒沙 阅读(410) 评论(0) 推荐(0) 编辑
摘要: 1.AttributeHierarchyDisplayFolder。定义显示文件夹 可以使用显示文件夹将用户和属性层次结构分组为文件夹结构,以增加用户友好性。 2.数据源视图,“新建命名计算”,可以输入下列语句,好像就是t-sql CASE ProductLine WHEN 'M' THEN 'Mountain' WHEN 'R' THEN 'Road' WHEN 'S' THEN 'Access... 阅读全文
posted @ 2009-12-12 16:53 一粒沙 阅读(273) 评论(0) 推荐(0) 编辑
  2009年12月11日
摘要: 动机(Motivation) 在软件系统中,经常面临着“一系列相互依赖的对象”的创建工作;同时,由于需求的变化,往往存在更多系列对象的创建工作。 如何应对这种变化?如何绕过常规的对象创建方法(new),提供一种“封装机制”来避免客户程序和这种“多系列具体对象创建工作”的紧耦合? 意图(Intent) 提供一个接口,让该接口负责创建一系列“相关或者相互依赖的对象”,无需指定它们具体的类。——《设计模... 阅读全文
posted @ 2009-12-11 22:26 一粒沙 阅读(267) 评论(0) 推荐(0) 编辑
摘要: 工厂模式专门负责将大量有共同接口的类实例化。工厂模式可以动态决定将哪一个类实例化,不必事先知道每次要实例化哪一个类。工厂模式有以下几种形态: 简单工厂(Simple Factory)模式工厂方法(Factory Method)模式抽象工厂(Abstract Factory)模式 工厂类角色Creator (LightSimpleFactory):工厂类在客户端的直接控制下(Create方法)创建产... 阅读全文
posted @ 2009-12-11 21:47 一粒沙 阅读(237) 评论(0) 推荐(0) 编辑
  2009年12月10日
摘要: 点击链接型报表的外观取决于所单击的数据是标量值还是聚合值。 例如,假定您需要这样一个报表:当读取报表生成器报表的用户单击主报表中的产品名称时,将提供有关要显示的特定产品的相关信息 BaseEntity 对象必须具有以下子类型:EntityID 在报表生成器中,BaseEntity 为主实体。当用户将第一个实体、字段或字段集拖至设计区域时,将首先确定主实体。根据添加到报表中的字段和实体的情况,主实... 阅读全文
posted @ 2009-12-10 20:19 一粒沙 阅读(551) 评论(0) 推荐(0) 编辑
摘要: “安全登录名”和”安全用户”的区别: “安全登录名”是在通过以下方式添加:<服务器名称> ——》安全性——》登录名,右键选择“新建登录名” ”安全用户”:具体数据库——》安全性——》用户,右键选择“新建用户”,在弹出的“数据库用户界面”,用户名可以随便自定义,登录名则要求是填写已存在的“安全登录名” 报表模型项应用安全筛选器的原理是,在需要启用安全筛选的表需要一个字段来保存对应的w... 阅读全文
posted @ 2009-12-10 13:36 一粒沙 阅读(430) 评论(0) 推荐(0) 编辑
  2009年12月8日
摘要: 字段与属性.cs属性、方法作用范围.cs一加到一百.cs使用接口排序(2).cs使用接口排序(1).cs求质数.cs冒泡法排序.cs九九表.cs静态与非静态.cs构造函数.cs方法重载.cs多态性.cs递归求阶乘.cs打印三角形.cs传值调用与引用调用.cs字段与属性.cs代码 Code highlighting produced by Actipro CodeHighlighter (freew... 阅读全文
posted @ 2009-12-08 21:16 一粒沙 阅读(543) 评论(0) 推荐(0) 编辑
摘要: 模式分类从目的来看:– 创建型(Creational)模式:负责对象创建。– 结构型(Structural)模式:处理类与对象间的组合。– 行为型(Behavioral)模式:类与对象交互中的职责分配。从范围来看:– 类模式处理类与子类的静态关系。– 对象模式处理对象间的动态关系。 动机(Motivation)在软件系统中,经常有这样一些... 阅读全文
posted @ 2009-12-08 20:36 一粒沙 阅读(253) 评论(0) 推荐(0) 编辑
摘要: 本系列内容引用微软WebCast的“C#面向对象设计模式纵横谈”,讲师:李建忠 设计模式简介 每一个模式描述了一个在我们周围不断重复发生的问题,以及该问题的解决方案的核心。——Christopher Alexander 设计模式描述了软件设计过程中某一类常见问题的一般性的解决方案。 面向对象设计模式描述了面向对象设计过程中、特定场景下、类与相互通信的对象之间常见的组织关系。 GoF 23 ... 阅读全文
posted @ 2009-12-08 20:15 一粒沙 阅读(258) 评论(0) 推荐(0) 编辑
摘要: 对于包含许多主题区域(例如销售数据、生产数据和提供数据)的模型,如果创建了模型的透视,则对于报表生成器用户而言可能非常有用。透视是模型的子集。对于模型用户而言,创建透视使得导航模型内容变得更加轻松。 在树视图中,右键单击“模型”,指向“新建”,再单击“透视”。 在“编辑透视”对话框中,单击“全部清除”。 找到“采购订单详细信息”实体,再选中其复选框。 请注意,“采购订单标题”和“产品”复选框处... 阅读全文
posted @ 2009-12-08 16:14 一粒沙 阅读(282) 评论(0) 推荐(0) 编辑
摘要: 1.在树视图中,选择需要设置链接型报表的实体,比如“采购订单详细信息” 2.在“属性”窗口中,找到 DefaultDetailAttributes 属性,再单击省略号 (…) 按钮 3.将显示“AttributeReferenceCollection 编辑器”对话框,可以添加移除成员. 4.当查看报表生成器报表的用户单击“采购订单详细信息”列中显示的值时,在生成的点击链接型报表中将会显示上图设置的... 阅读全文
posted @ 2009-12-08 15:37 一粒沙 阅读(179) 评论(0) 推荐(0) 编辑
摘要: 创建报表时,用户可能需要无法直接从数据库获取的信息。您可以向模型中添加计算字段,以使模型用户能够使用这些常用计算 1.在树视图中,右键单击“采购订单详细信息”实体,指向“新建”,再单击“表达式”。可以添加四则混合运算表达式 2.单击“确定”。然后在“属性”窗口的 Name 框中,键入 Fulfilled Qty。 3.再添加一个计算字段,可以这是这样的表达式,基于刚刚添加的计算字段建立一个新的计算... 阅读全文
posted @ 2009-12-08 14:48 一粒沙 阅读(331) 评论(0) 推荐(0) 编辑
摘要: 您可以更改实体的属性以便它能够继承所绑定到的实体的字段。例如,在 AdventureWorks 模型中,“销售人员”实体绑定到“雇员”实体上。在报表生成器中使用“销售人员”实体可以查看到“雇员”的字段,但外键字段除外。 1.在Reporting Service中的“报表模型”中选中实体,展开实体的“InHeritance(继承)”,选择需要继承的实体,然后在“Binding”下拉框中会自动列出与当... 阅读全文
posted @ 2009-12-08 10:51 一粒沙 阅读(232) 评论(0) 推荐(0) 编辑
  2009年12月7日
摘要: 某些实体可能只包含一个创建报表的用户感兴趣的属性。例如,在“产品子类别”实体中,报表生成器用户可能只对 Name 属性感兴趣。可以将角色更改为“查找实体”,而不是要求模型用户在每次向其报表添加属性时导航到包含该属性的实体。当角色转换为查找实体时,标识属性将会显示为父实体中的一个字段。例如,如果将“产品子类别”实体更改为查找实体,则“产品子类别”的 Name 属性将会针对报表生成器用户显示为“产品”... 阅读全文
posted @ 2009-12-07 16:11 一粒沙 阅读(330) 评论(0) 推荐(0) 编辑
摘要: 对于关系数据源才可以建立在Reporting Service项目中建立报表模型,但可以在报表中心使用多维数据源连接生成报表模型。 阅读全文
posted @ 2009-12-07 15:32 一粒沙 阅读(210) 评论(0) 推荐(0) 编辑
摘要: 1.使用报表生成器添加查询参数,添加参数时点击参数名称,会弹出一个下拉框把“提示”勾选上就可以了,要不然不会提示输入参数 2.使查询同时可以查询多个参数值。 阅读全文
posted @ 2009-12-07 12:07 一粒沙 阅读(565) 评论(0) 推荐(0) 编辑
  2009年12月4日
摘要: http://msdn.microsoft.com/zh-cn/vsx2008/products/bb933751.aspx 最新版是visual studio 2008 shell, shell指的是没有编译器的visual studio 2008 Visual Studio Shell是一个外壳程序,他提供了Visual Studio的API,你可以使用它来开发一个基于Visual Studi... 阅读全文
posted @ 2009-12-04 16:32 一粒沙 阅读(3097) 评论(0) 推荐(1) 编辑
摘要: 报表模型技术人员建好分析模型,然后业务人员就可以使用这个模型设计各种各样的报表,而不需关心这个模型是怎么得来的,数据又是从哪里来的 建立报表模型三个基本步骤: 1.新建“报表模型项目”2.新建一个数据源视图3.新建报表模型 建立好报表模型以后,可以修改报表型模的一些相关属性,以方便业务人员更好的使用报表模型。 1.使用文件夹管理模型中的实体2.设置实体描述信息,方便业务人员了解实体的功能 3.设置... 阅读全文
posted @ 2009-12-04 16:03 一粒沙 阅读(305) 评论(0) 推荐(0) 编辑
摘要: f2和c2都是合法的Microsoft .NET Framework 格式字符串 c2指定此格式字符串后,每个值都会显示为带有两个小数位数的货币值 f2指定此格式字符串后,每个值都会显示为带有两个小数位数浮点数 其它格式化请参考: http://www.cnblogs.com/timy/archive/2009/12/04/1617046.html 阅读全文
posted @ 2009-12-04 15:35 一粒沙 阅读(291) 评论(0) 推荐(0) 编辑
摘要: 一、用{0:?}格式化 可通过 String.Format 方法或通过 Console.Write 方法格式化数值结果,其中后一种方法调用 String.Format。使用格式字符串指定格式。下表包含受支持的标准格式字符串。格式字符串采用的形式为 Axx,其中 A 为“格式说明符”,而 xx 为“精度说明符”。格式说明符控制应用于数值的格式化类型,而精度说明符控制格式化输出的有效位数或小数位数。... 阅读全文
posted @ 2009-12-04 15:32 一粒沙 阅读(1020) 评论(0) 推荐(0) 编辑
  2009年12月3日
摘要: 1.下载报表模型 http://www.codeplex.com/Wikipage?ProjectName=SqlServerSamples#ssrs 2.报表模型示例.http://msdn.microsoft.com/zh-cn/partners/ms160735.aspx 阅读全文
posted @ 2009-12-03 20:44 一粒沙 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 1.使用背景色显示 KPI 的当前状态在表中,右键单击包含 [LineTotal] 字段的单元,并选择“文本框属性”。 在“填充”中,键入以下表达式: =IIF(Sum(Fields!LineTotal.Value) >= 30, "Transparent", IIF(Sum(Fields!LineTotal.Value) < 20, "Red", "Yellow")) 对于包含的... 阅读全文
posted @ 2009-12-03 20:11 一粒沙 阅读(473) 评论(0) 推荐(0) 编辑
摘要: 选择“类别组属性”。 单击“筛选器”。此时将显示筛选表达式的列表。默认情况下,此列表是空的。 单击“添加”。此时将显示一个新的空白筛选器。 在“表达式”框中,键入以下表达式: =Sum(Fields!SalesYTD.Value) 在“运算符”列表框中,选择 Top N。 在“值”框中,键入 =5 单击“预览”。图表中将会显示五个名字,即销售数据中的前 5 名销售人员。 阅读全文
posted @ 2009-12-03 19:43 一粒沙 阅读(347) 评论(0) 推荐(0) 编辑
摘要: 1.组标题字段需要跟分组方式一致,才能得到正确的统计结果。 2.行组和列组都一样的要求 阅读全文
posted @ 2009-12-03 13:45 一粒沙 阅读(802) 评论(0) 推荐(0) 编辑
摘要: 1.sql server 2008中Reporting Service的教程。 2.只有一个查询就能显示下面的分析结果。单元值:9008.442061,上下文是:Clothing(Category维度), Caps(Subcat维度), 2003(year维度)。 3.year维度,有两个成员:2003、2004,如果有多个,还会在2004列后面扩展,这跟传统一般的报表只能在列固定、行扩展是很大不... 阅读全文
posted @ 2009-12-03 13:02 一粒沙 阅读(389) 评论(0) 推荐(0) 编辑
摘要: 在学习Reporting Service联机教程的时候,提示要用Adventureworks2008数据库,于是用codeplex网站下载了SQL2008.AdventureWorks_All_Databases.x86.msi,安装上去,没有看到有Adventureworks2008数据库,却有一个Adventureworks数据库,我想这也应该能用吧 于是就开始用Adventureworks数... 阅读全文
posted @ 2009-12-03 12:03 一粒沙 阅读(5891) 评论(2) 推荐(0) 编辑
  2009年12月2日
摘要: 以产品小类大类为例: 1.添加大类数据集,CategoryValuesSELECT DISTINCT Name AS Category FROM Production.ProductCategory 2.添加小类数据集,SubcategoryValuesSELECT DISTINCT PSC.Name AS Subcategory FROM Production.ProductSubcatego... 阅读全文
posted @ 2009-12-02 20:56 一粒沙 阅读(1193) 评论(1) 推荐(0) 编辑
摘要: SET DATEFIRST { number | @number_var } 参数 number | @number_var 指示一周的第一天的一个整数。可以是下列值之一。值 一周的第一天是 1 星期一2 星期二3 星期三4 星期四5 星期五6 星期六7(默认值,美国英语)星期日 阅读全文
posted @ 2009-12-02 17:07 一粒沙 阅读(279) 评论(0) 推荐(0) 编辑
摘要: 看了Reporting Service中的列子,看到类似下面的语句,原来in子句中可以使用参数噢,where soh.SalesPersonID IN (@BusinessPersonID)这是太方便了。 阅读全文
posted @ 2009-12-02 16:54 一粒沙 阅读(1446) 评论(0) 推荐(0) 编辑