版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Cognos培训课程查询&报QueryStudioReportStudioFrameworkManager分ysisStudio1 w近年来业务智能的话题开始在国内热起来。w业务智能是在计算机应用水平达到一定程度w业务智能是为更好的决策而对数据进行收集、w业务智能是把数据转化成知识的过程。包括信2 w业务智能的⑴查询与报→Query→Report ysis
关 信Z
维度 层度量 立方体 切片&旋转(Slice&Dice) Y3查询事先有原始数据QueryReport •ITQueryReport用户生成报FrameworkFramework表 发4分
模型(.mdl维度
立方体
ysis 5Cognos8BI产wCognos8的BI产品,对以往的技术和思想进行了较wCognos8的模块主要包括QueryReport
───查询:自助报表生成工───查询:专有报表构筑工 ysis
分析 数据展示工§
分析 数据设计工Framework ─查询:业务数据组织工6几个模块在Cognos体系中的应Query查 Report
专Framework分 ysis
7理解Cognos8wQuery&Report是Cognos新一代基于Web方式的业务智wQuery&Report由下面几个组件组wFrameworkManager:用来组织和发布元数据模wCognosConnection:是Cognos8的Web门户,包含进入各个操作模块的和报表保存的空间。wQueryStudio:用来创建基本的自助式即席报表wReportStudio:用来构筑更完备的常用特有报表wCognosViewer:用来运行特有报表8FrameworkCognosQuery&ReportFrameworkCognoswQuery&Report是Cognos基于Web的业务智能报表解决方案面面向报表建和管理CognosReportQueryWeb界元数据建数据数据9Query&Report流物理数据
Cognos
Framework.cpf
DataData输 SQLServer…备份
连QueryStudioReportStudioCognos
(查询发包.zip
指Cognos
FrameworkManager的几种作
Data
Framework工程 GO销售(GO销售(查询工程
包 发其他平面文.xls
QueryReport
ContentwCognosConnection是Cognos8的上网门户。QueryStudio,ReportStudio和ysisStudio的都被组织在了这个门户中。w进入门户:http://〈服务器名〉/cognos8wCognosConnection门户中可以: w可以通过在文件夹中创建 条目来CognosConnection中的数据进行组织Cognos8的Web门户Cognos已有报表、创 表 分中报表
或ReportStudio
中进 分了解报w可以创建新的报表或者从CognosConnection访w报表指的是w 表中包含何种信息的定w或报表w使用QueryStudio创建基本的自助式即席查询w使用ReportStudio创建更完备的特有Query应Query查 Report
专Framework分 ysis
已有报表、创 表 分或ReportStudio选择“包使用QueryStudio和ReportStudio操作报FrameworkManager已经发布的“包”QueryStudio界QueryStudio菜Query删 重
过 汇撤 运 排 计图 交叉 设 组收分 去分 交
组展查 和查询w模型是来自一个或多个数据库的数据结构w模型含有若干查询 (querysubject),查询 能够添加到报表中的查询项(queryitem)。命名空查
w模型的数据内容Manager发布的“包”(Package)查询 查询项类似“字段给自助式报表添加数w双 w拖
w按设置每页行数和加行w在菜单的ChangeLayout节可以w必要时可以加保存自助式w保存报表以保留任何修改。w也可以使用不同名称或地址 重新打开现QueryStudio中的编辑按钮打开QueryStudio可以打开现有报表w察看报表中的当w修改报w将其用作 了解报表类
了解图w创建图表对信息进行图w要生成一个图表,报表需要至少一个度量和一个饼型图(100%堆栈 柱型图(标准该图表含有一个非数字报表项(Productline)该图表含有两个非数字报表项(ProductlineOrder使用列表型w列表型报表以每w列表型是最常见创建分组式列表报多层分组的收缩与展完全展开
分组收缩了一分组收缩了两把分组列设成段
后按按钮,。组选中设好分的列或段,再按按组修改数据格点中某列,在左边菜单上选EditData节下的FormatData修改数据格小数
千位分节按某
单的EditData节中转交叉 使用图表对数据进行图形化显w ww wColumn-选None可以去掉
w
ww设定一个图表w在选择一个图表类型前,要考虑希望使用图表来说明的w使用饼图突出显示比例,而不是实际值ww设定一个图表类(续w在选择一个图表类型前要考虑你想要图表解释的w
w
w
使用图比较增强图表的显w在每一类图表的内部又含几个变种图
图表展 在非数字项上w在列表中点中一列,按Filterw使用提示设定过滤标ww根据数字项细节对数据进行过w可以对报表细节行中出现的值进行过滤。这种过滤将清不满足所设定标准的细节根据数字项细节对数据进行过w选中一个数字列(如:数量)作为当前列后,点开过滤细节数组合过根据组汇总(GroupSummaries)过滤数w可以对自助式报表中的脚标值进行过滤。这种过滤将从表中删除不满足所设定标准的组数量summaryfor产品系列Lessthanorequalto根据组汇总(GroupSummaries)过滤数 w选中一个数字列(如:数量)作为当前列后,点开过滤汇汇总数脚标汇总的种销售代表ChadMichaels销 单元格汇总的
设定高级查询选在附加项上过在附加项上设只只保留2005年的数删除附加的过滤项,但保留过w把已设过滤的数据[订单日期(年删掉,出现Delete屏过滤项不出现在报表w把已设过滤的数据项[订单日期(年)]删掉,出现Deletew点击No。[订单日期(年)]列从报表中删除了,但是按年过滤按数值大小设定格按数值大小设定格w按照条件的设定可为的数据显示不同的格w这种格式设定可以带入交叉创建报表视点开一个报表后面的More…在随即展开的页面中点Createareportviewofthisreport,可定义报表视图设置报表视图w给报表视图起一个名字保存到“我的文件夹”w点开报表视图后面的Runwithoptions按钮,wRunwithadvancedoptions页面出现后可以设置报表视图设置好后按Run查看报表输设置确认后按OK。在“我的文件夹”点击Refresh 报表视图后多了一个Viewtheoutputversionsforthisreport图标查看报表输此时列出设置中所选定的DefineCustom自定义组的设组中成自定义组在列表中展自定义组在交叉表中展w转为交叉表后自定义w自定义组的构成改变给自助式报表增加计算数w使用计算功能给报表添加基础数据源中不存在w计算结果并不保存在基础数据源中。每次运行报时QueryStudio会重新运行计算w计算结果总是基于数据源中 数据w可以在自助式报表中直接创建计算,或者添加来package的预定义计计算OperationOperation-RounddownSquareroot
%%of%difference
%of
w可以通过对一个或多个
察看报表的w可以选择 w你可能想要核实报表运行是否成功或者报表 w可以察看报表运行历史来了解
点开More然后Viewrun设置需要保留运行历史的 本保留操作记录的版本 保留输出数据的版本察看多报表在门户首页Tools下拉列表中,选ScheduleManagement在 页选择要应用的过滤选项点击Apply,显示满足过滤选项的所有报表和作调度自助式w可以对报表进行调度,使其在方便的时候运行如在 时段,系统需求比较低的时候w可以单独调度报表或者使用作业w可以调度报表,使其每分、每时、每日月或每年运行w创建调度之后,报表或作业会在所设定的日期间运报表的定时调点击Scheduler图标可具体设定调度事项(见下页)报表定时调度的设可以点开此项具体设定报表定时调度的输出格式设新的报表输出出一个报表输出图标。点击此图标,可按照预先设定的格式(如HTML,PDF)查看新产生的报表输出。查看报表输调度执行后点击报表输出图标,可按照预先设定用“作业”去调度执行多个报 上点击NewJob按钮。给作业起一个名字。在Selectthesteps页面点击Add,给作业添加报表。指定“作业”包含哪些报“作业”的选项设进入选项设“作业”的选项设“作业”的执行时可以定点执行,Report应Query查 Report
专Framework分 ysis
ReportReportwReportStudio是用来制作更加精细的专有报表的w专有报表的设计和运行两个过程是进入Report在ReportStudio用ReportStudio制作报表要先选择“包 Manager将用户的业CognosConnectionReportStudio制了解报表类w一个“包”之下的报表组织在若干个文件夹中w制作报表时要选择一种w可以将不同的报表类型组合到相同的页w可以使用预定义模板,或者从一个空白报w常见的报表类型有www
wRepeaterwReportStudio列表界 标注ReportStudio工具
过 汇
交叉 交
顶 排
分 分
合 单元 字 方
格 帮
提示 钻查 和查询w模型是来自一个或多个数据库的数据结构w模型含有若干查询 (querysubject),查询 能够添加到报表中的查询项(queryitem)。命名空查
w模型的数据内容Manager发布的“包”(Package)查询 查询项类似“字段从左边的查询中选择适当的查询到右边报表中,组织成拖拽改变列属性窗格和对象的从属层在属性窗格P,PageBd,Lst,Lstouns等。
在List级的Data大项设置每按指定列设置分 指指定分组报
改变分组的组跨组跨分组加组表头(Create»在已设分组的列上操»点开Headers&Footer图»删去原有的分组加组表头(CreateHeader)结
设置字体属具栏上设具体指定选中的类型(如货币)的格按照某一列排
在指定列上加汇 城市小国家合或改属性窗格的Data大项下的AggregateListCell─总计选择左右对齐汇集(Aggregate)展 国家合w报表在“产品系列”上分w“收入”按照“产品系列”的w“数量”按照报表的细节降序排两级排序结w报表在“产品系w“收入”按照“产w“数量”按照报ReportStudio交叉表界定义查看交叉表汇总行
交叉表汇总交叉表的灵活交叉表的灵活交叉表的灵活交叉表的灵活交叉表的灵活交叉表的灵活
ReportStudio图表型报表界大
类确定图表中各项的位MeasuresPies
PieSlices区图表展现──按订购方法切图表展现──按产品系列切
饼图显示百分改为点中图表的背景区后点鼠标右键,或从Structure菜单下ConvertChart(转换图表),可以把原图表改为定义
显示
(Gauge)型图的分区报表显地图类型报在“GODataWarehousequery)”包上建立地图(Map)w地图类型的报表可以根据对w要事先有一些地图文件w地图可由MapInfow地图文件中有各个国家的标地图中的层w区域层根据度量值来区分不同的区域。例如,区域层选定按Countries(国家)w点层用来标定地图中的点。根据数据源中的数据决定点的颜色和大小。例如,把Cts(城市设为地图中的点,用各城市的销售收入决定点的颜色,用利润决定点的大小。w
区域Region点Point显示Display在区域层中拖入数据
地图类型报表运行结数据 数据不匹配的解决(定义别名通过别名匹配的国家显示出颜改变颜色和它们之间的临界临界值的改变导致颜色的改中国变到了深 更改填充颜在地图中加注背景颜前景颜底部位左侧位高宽
置;在“注释内容”(NoteContent)地图中的注
点层地图的数
RepeaterTable(重复表)类型在重复表的工作区插入一个(Table),并指定表1列7行Repeater类型报
过 框的两 数据进DetailSummary数字文字建过滤的数据项数据源建过滤的数据项报表准备对报表数据进行过[收入值和<国家>上行限定实现已在报表
能通过DetailFilters(见下过滤对报表数据进行过后,[收入]比原先小了SummaryFilters去设过(见下过滤[国家/地区in('荷兰','芬兰','瑞典过滤过滤[国家/地区in('荷兰','瑞典','芬兰对报表数据进行了两层过了‘瑞典’,‘修改某一列的表达修改列的表达“名”和“姓”合并到起两项在过滤表达式中加输入参带参数的过参数伴随着“提示
报表运行时[国家/地区]in在汇集后的数据上过
在汇集后的数据上过指定在汇集后的数据上过由于每个销售代表的单笔销售都不够100万所以如果在汇集前脚标区的聚合的汇总是按单元格的聚合报表间 钻取(Drill-概要报
细节报
w从概要报表钻取到细节报表,察看感的细节信w在概要报表中选击一个国现由粗看
创建一个Drill-through报w通过给细节报表增加一个参数和一个从概要报表到细节报建建立细节报加接参建建立概要报创创建一个到细节报表的drill-through连定 钻指明钻
如何传递参钻取的传递参选择传递数据项列上定义了一个过滤参数[国家/地区钻取效概要报设钻取个钻取
细节报定义地 钻目地图 钻 钻取的目标地写带参数的日期过滤表达运行报表时要给定日期参数]在Blank报表中先加一个复杂报表──插入子右格子 复杂报表──插入放一个图选定一种图为列表右格打算在整个表格下方再插入一个交复杂报表的三个区三个区域同时复杂报表的三个查由查询窗口切换到报表页PageExplorer区域,窗口切换到入TextItem并输入文字用图形和数字两种形式显示同一组查询改为同一查询中的数据项在另一种形式中对“DataItems”页,在参数w提示利用参数值形成过表达式w值提在提示中要定义一个参数提示定义了一个包含参数的过滤表达式提示的过滤表报表用的查询是提示用的查询是[[产品系列代码]=是[产品系列代码],可以换成对应的[产品系列]的名字。把提示按钮的类型改为“Reprompt”
wCancelwBackwNextww
带值提示的报表运
加入“选择和搜索提示“选择和搜索提示”的参[产品系列in确定提示的查询名以及它的使用值和报表用的是提示用的是拖入提示按钮并指定它的类“选择和搜索提示”的运增加 上的BuildPromptPage按钮增加一个提定义提示的参数名和过滤表达[国家/in提示中的提示对应的Query加入了一个提运行中的提
w报表运行时首先弹出提示w值提示在提示页中而不是在报[国家/地区]in[国家/地区]in(‘德国法国瑞典级联提示及其行为模CascadeCascadeSource要按“完成”利用文本框提示过滤数
w我们希望在报表中只w先加入一个提示页w在提示页中加入两个w还可以加入起说明作文本框提示TextBox[订单].[收入[订单].[收入提示页面与报表页面的切上的PageExplorer指定在汇总数据上过TextBoxprompt的运行和结运行时在两数字区间w加入字符串变 在ConditionExplorer点中 拖拽左侧StringVariable到Variables框w写入变量表达 在弹出的ReportExpression窗口中输入变量表达式,给定变量的条件w字符串变量命 属性窗格Miscellaneous大项Name小项:给变量命w为字符串变量赋 在ConditionExplorer为变量加入几个与表达式一致的w将特定数据项与字符串 选中要设条件格式的数据 属性窗格Conditional大项StyleVariable小项:选择一个字符串变w为变量的不同值分别指定具体 选中数据项后在ConditionExplorer中选变量的一个值,为它指条件格式:加入字符串变ExplorerBar上指向ConditionExplorer,点Variables。写入变量表达字符串变量重新命字符串变量赋注意大小要与变量表将特定数据项与字符串变量绑在属性窗格“Conditional”大项“StyleVariable”小项处绑为变量的不同值分别指定具体格条件格式展蓝红蓝if([query1].[收入]>30,000,000)then(‘High’)else加入计算(条件语句IfIf([Query1].[城市=[Query1].[城市then"OK"else拖入LayoutCalculation后会自动弹出ReportExpression窗口,if(条件为真)then(表达式)else(替代表达式条件语句效报表语言变量(用于语言切w创建一个语言变 在ConditionExplorer点中 w为语言变量选择语言并命 为语言变量选择几组语言,每组含若干种同类语 属性窗格Miscellaneous大项Name小项:w把一段文字绑定在语言变量上使其成为条件文 选中一段文 属性窗格Conditional大项TextSourceVariable小项:选择一个w为条件文本设置每组语言的显示内 在ConditionExplorer中的语言变量下逐一选择不同的语言(组),为条文本分别输入不同语言下的具体文字w以不同的语 展开RunReport按钮旁的下拉列表,选Run 在Language栏下选择语在报表中加入语言变w添加数据w分w汇w报表标w加入语言变w选定若干种w把同类语言归入一将近似语言集中到同一将选定的语言分成三组 语言变量更
标题文本与语言变量绑在不同语言中分别定义标题文本后运
ReportProductReportRapportsurlesproduits不同语言的运行结布尔变量应真/假是//布尔变量设置w建一个参数,用于接收值 在提示页中加一个文本项,写上“要显示‘产品编号’ 在提示页上加一个值提示,接收值的参数名字为‘Para1’w在值提示上加一个布尔变量,值提示参数决定其真假状 设置值提示的属性:Data大项,StaticChoices小项,新建布尔变 给定布尔条件:ParamDisplayValue(‘Para1’)='要 分别给定布尔变量真 Use值和Displayw把指定列与布尔变量绑定,由布尔变量决定该列是否显 指定报表中一列,将其选 属性Conditional大项RenderVariable小项,选择一个布尔变 参数用于接收提示 这个值决定了布尔变量的真假状 布尔变量的状态决定了指定的数据列建立布尔变量要用的值提
参数为值提示建布尔变参数的值通过值提示来接ParamDisplayValue('Para1')='要ParamDisplayValue('Para1')='要
§值提示的对象§Data大否为预设的‘要’,如果值提
布尔变
布尔变量的表
布尔变量真 Use值和Display布尔变量有两个固有的值Yes和No,对应真假两让接收参数可以接收“要”和“不要”两种值,按照布尔变量的表达式对应成“真”与“假”两种状态。真假把指定的列绑定到布尔变量把“产品编号”这一列绑定到布尔变量上在ListColumn对象属性的Conditional大项的RenderVariable布尔变量表达式用到了接收参数Para1接收参数通过值提示可以接收“要”和“不要”两种值,按照布尔变量的表达式对应成“真”与“假”产品编号这一列是否显示。与这个布尔变量通过值提示接收参与这个布尔变量加入查询计查询计算结百分比的汇选择Calculated在标题区加入一个图象
改变对象的高度和宽在提示页中加入值提“请选择此次限定的国家范w在提示页中建立提示
可通过滤器看到由提示加入的过滤条in在Block中加入一个布局计这个报表中已经加入了ValuePrompt在这个计算前可加入文字“此次限定的国家:”输入计算表达Layout类型计w这个计算的表达式是一个文本w它显示的是通过提示选择的国家的名布局计算的运行结[国家/地区]in布局计算改条件语
8Demo2ifif(ParamDisplayValue('Country') else'全部国家报表对象的重w为了避免重复工作,可以把一个报表对象复 w重复 项)”。w报表对象在另一个位置被重复时,如果其他对象代替。例如“块”被重复,但它内部的“文本”可以换成其他内容。插入页眉和页入一个TextItem并写入一段文字:“按年查看各产品系列的收入给块和文本项分别命w报表对象还可以套有下级组件w指定某个报表对象可以被重复 w有可能被重复 在新位置拖入“布局组 w在页脚区域拖入“布局组 w可供重用的对象已经命名w指定一个名字使它重用对象的下级组件可改 w重用对象Block包含下级组件TextItem。当Block被级组件TextItem可以忽略原有定义而另外定义,另外报表对象在不同报表之间的重w报表对象还可以在不同报表之间重 w至少要有两个报表,一个被 w可供重 的对象在 报表中已命名w在报表中的对象可以自动随被报表中 的下级组件可以重新定义做一个可 的报在被报表中拖 命名为LayoutLibrary。
把这个表格“标准页眉
给报表增加内容对指定内容对象的具体内前日期和时给重用对象的可忽略部分命内容:里是公司徽标,整个表格是可重用对象,已命名为“标准页眉”可忽略部分。把它命名为“ReportTitle”。在另一报表中拖入“布局组 标题文本可另指重对报表中“布局组 ”的嵌入属这个报表运行时,页眉部分出现的是被报表中定义的内容。当被报表中的定义改变将Ebed属性改为Copy,这个报表就不自动改变。选了UpdateCoponentCopy后才手工跟为QueryStudio设模w报表类型选QueryStudiow对它的主标题文本选定格w保存GOQueryStudio
QueryStudio进一步加工模加入图 指定图象文
将模板应用到QueryStudio的查询
修改按分组项的值w先加入Pageset,然后指定按照加入页加入页改成把Page1放入页
指定按照哪个数据项分按组分页的结
加入报表封面页并命观察和改变报表结在PageExplorer选报表页Page1,从View菜单选PageStructure。从页面的设计视图转为。展开结构视图的相关层次,可在这里修改报表对象的特报表列的归并加入标注文字去多余标注文字可分别“办 :”、“电子邮件:”“雇用日期修改归并后的列标把归并后的列“联系信息紧缩后的报按段(销售区域)逐段显示图表和列报表中的结构和关wwwwwww两层查询嵌销售区域?territory段内空行中加入图在查询2上加入带参数的主要/明细关按段(销售区域)逐段显示图表和列
设立单项 单项(Singleton)也是一种设立单项表会为它新开出单项(Singleton)。
为插入的对象设立单项TotalSalesforAll单更 新查SalesbyOrderTotalSalesforAll单项(Singleton)是在Query2
Query2:
已过滤未过滤,未按订购方法分解Query2:单项(Singleton)联合w联合查询可把两个或多结果集中 产w两个分散查询必须有 系w例如一个按产品系列 订联合操作符
进入双击Query2定义它的数据Query2
Query3加入附加数据用这个数据项的值决定两个查询的先后顺Query2标记Query3标记给附加数据项赋附加数据项重命修改Union操作项的属给Union后的数据为Query1加入数
选定在Query1上制作联合查询先切换回报表页,接着加在列项排
Sortkey
制作联合查询报Query1=Query2∪联合
查询间的“并”、“交”、“排Q2 UnionIntersect
无数据的空行是否显进入修改指定无数据的空行显示出切换ysis应查 QueryReport
专Framework分 ysis
产欧个人附户外防护用登山装 地
日理解维w维度 字符 日期wTransfomer将业务的每个方面构造成一个维度 w一个维度下设有若干层。例如:地区维度下有地域国家、办事处、销售员4层理解度w度量是用于评价业务状况的数值型数w例如HowHowHowHowHowHowHowHoww在企业活动中通常是通过如销售额、费用、库存量和 w不同的度量反映出不同的业务性质。度量之间相wPowerPlay可以监测任何能够用数值表示的业务的成功因交 销售 X地 Y 产品系季 产品类 产
层(Levels)类别w数据被组织进各个维度,并放在相应级别的层w类别是各维度每层中数据的具体取值。下层类与上层的某个类 层1=地 层2=国
层3=办事处层4=w类别 ysisStudio报告中出现在行、列的表头上
维度、层和类别维类年(第一层(第二层 9 9
(第三层
分 中进 分选择分析报告的初始形ysis的操作界
理解“上下文产个人附户外防护用
表头上的维度是主显维度(日期和产品)日“上下文”
向下钻取和向上钻
改变行或列的内容为其他维它在结构中的
有维度的排按标图表──饼
按百分比显
在饼
在图形上向下钻
柱形3-D柱形
折线交叉表和图表显示的选由图与表共存到仅交叉表单独出现不同维度表头
相嵌套的不同维度位置互不同维度嵌套时的钻取──各自独嵌套同维度嵌套展同维度嵌套展开以相同维度嵌套时的钻取──联多值同时下w若直接点击表头上的一个具w若要将一个层上的大量细节数据的展点击鼠标右大量细节数据的展按某一列的值对细节数据排层中部分值(类别)选入交叉表(6-2-同一表栏上补放其他维度(6-2-同一表栏上补放其他度量(6-2-额外的度量出现在行上(6-2-
在列上补充其他维度(6-2-在列上补入其他维度之后(6-2-不分季嵌套附加的维度(6-2-嵌套附加的维度后(6-2-制作非平衡交叉表(6-只将地区维度中“英国同维度嵌
非平衡交叉表(6-
基本布组合维嵌套维非平衡嵌嵌套数据排序(6-4-环境产品--体育产品--户外产嵌套数据排序(6-4-欧洲 ─远嵌套外层数据排序(6-4-嵌套两层数据分别排序(6-4-内层数据(产品)按照2006年定义外层排序所依赖的列(6-4-指定外层排序所依赖的列(6-4-内外层排序在同一列上(6-4-过
层面上作文章,并没有在结自定义过滤(7-
依次加入过滤行(7-默认的过滤组合的结对各过滤行进行适当组在某个过滤组合中将AND变为上下文区的上下钻取(7-“上下文”“上下文首尾首尾型过滤中的嵌
在嵌套层上也设首尾型过首尾两层首尾型过
和Σ的含义(Numberof销售 销售额占 累计占 累计销售 英 澳大利 法 德 西班 瑞 墨西 新加 比利
首尾过滤(动态上下文)(7-─英国 首尾过滤(动态上下文)(7-─英国 把首尾过滤设成“保持现有上下文”(7-“保持现有上下文”的首尾型过滤(7-首尾过滤被设成“保持现有上下文”后,在首尾过年变为2007年,国家的前─英国 隐藏指定的列(7-5-排除指定的列(7-5-一个维度下的选择集合(7-5-成一个选择集合。合计栏中只在选择集合选择集合-Round
%%%of
Rollup
SingleItem
我们希望算出欧洲与远东的销售收入之和比 的销售收入多多少。这就是一个把中间结果添入可选w分析报告的行上是几个国家(地区)w我们要针对“ 横排 收入在不同年份 自横排 一个国家的销售收入在不同年份上与其竖排:每一年份
竖排:每一年份 自 与其他同将某一年向下钻取一层 效果自动调整定制报告的显“按地区看不同产品的销售收入“嵌套层可钻取定制报告的显示(分页设置定制报告的显钻 “户外公司(中文)”
钻取是把立方体上的分析报告和ReportStudio的报表联系起来, 的目标报表上要事先建好几个带参数的过滤条件,参数用于受分析报告传过来的当 在立方体所在的包上要建立“钻取定义”,先指定目标报表的存放FrameworkManager的几种作Data
Framework工程
工程 户外销售户外销售与零售Outdoors示
包 发其
Query平面文
Report
Content钻取目这是一个用Report保存为:包:户外公司(中文钻取目标上的过建 钻取定立方体所在的包建 钻取定连 钻取目标定把过滤参数对应在Cube的具体层过滤参
Cube中的
钻取定实 钻实施钻取时,在Cube所在“包”的钻取定义
应Query查 Report
专Framework分 ysis
w业务智能的⑴查询与报→Query→Report ysis
关 信Z
切片&旋转Slice&DiceY
X分
模型(.mdl维度
立方体
ysis 连接_:\ProgramUserID=%s;Password=%s;DataSource=super;Provider_String=InitialTransformer
Data
Framework工程 GO销售(GO销售(查询工程
包 发其他平面文.xls
QueryReport
ContentTransfomer模型设开
多数据度模型设计Transfomer模型设计第一开模型设计的本
80是艺务数据及其关系的理解20是科数据建模的过
w是否有满足我和用户需要的数据w它们能否反映你如何衡量业务的性能3.建立和检3.建立和检验维度和wPowerCube是 w由TransformerTransfomer模型设计第二章规模型设w维度字符 日期wTransfomer将业务的每个方面构造成一个维度,例如:时间维 w一个维度下设有若干层。例如:地区维度下有地域国家、办事处、销售员4w度量是用于评价业务状况的数值型Howw例HowHowHowHowHowHowHoww在企业活动中通常是通过如销售额、费用、库存量和 w不同的度量反映出不同的业务性质。wPowerPlay可以监测任何能够用数值表示的业务的成功因 X Y
w数据源(DataSources)窗格的作用是将平面数据集成到w在数据源窗格中可以有一个或多个数据源,每个数据源件(例如.iqd,Excel表格等)。数据源由构成它的若干列(Columns)组成,它们是型的基本素材。w数据源窗格中列的数据类打开列的属性表(双击列名 Data如果数据源不是来源于.iqd或报表,则它其中列的据类型开始为Unspecified(未指定)w维度图窗格是一个用于建立 立方体结构的工作区。根据数据源中的文本数据,各个维度以及每个维度的层在此组织。每个维度的最底层数据项要对应数据源窗格中的一个列。各个维度的定义顺序最好按使用频率排 对应一列(计算度量除外)。wPowerCube窗格显示用模型创建的PowerCubeww主要说明数值性问题,如“w
追加度w虽不是所有的业务指标都要包含在模型设计中,但应尽量寻找 w数据被组织进各个维度,并放在相应级别的层地区地区 层1=地
层2=
层3=办事处层4=w类别
类年(第一层(第二层 9 9
(第三层
w个维度中的层数不超过5层。为了使数据关系一1:10以内,如果过大可考虑加层维度数尽量保持在5~7个,如果太多会使立方体急剧胀 效率降低和结构紊乱w在生成PowerCube前,在Transfomer定义需求的
组织数据源数wTransformer使用三种类型的数据w数值:定义度量值的数值性数据,另外也叫作BillJeanAkiko
w数据源文件是把数据带入模型的计算机文件wTransformerwTransformerw为Transfomerv结构数据源v事务数据源.IQD Oracle,SQLServeru.IQD文件的主体部分是SQL语句,仅仅包含了结构信息,所以占 .IQD可由FrameworkManager
www将二维数据转换
在数据源窗格中右击数据源名——ModifyColumns
建立模维度图窗格只是反映了结构的维度和层,并没有反映层RunGenerateDiagramShow 或按工具条上层 w类别只在w生成类别并不意可以移动层或类别项-可以创建层或类别,或连w1:10w拖拽维度图示中某层名的右侧,定义手工层。w从某一个上层类别框的右侧向右拖拽,生成手工 ”w“ w手工层名为“w各个办事处(城市w ww检测模型无误后,按工具条上的CreatePowerCubes按w 双击PowerCubes图标,弹出PowerCube框。我们可以在Dimensions和Measures两个页里对某些维度和, w可以根据需要对某些类别加以 w在维度图示窗格中,用鼠 某一个维度名,选AddNewView,可以为这个维度加一个Vieww可以针对一个View具体设定对类 或排除的范围 Cloak:把指定类别及全部下层类别 Suppress:仅把本层指定的类 Summarize:把指定类别的全部下层类别 Apex:以当前类别作为本维度层次构架的顶点,即只保留当前类w在PowerCubes窗格中,点开一个Cube,在Dimensions的名字。这个Cube就使用这个View的设置
日期维w由单独一列建w通常是由Transformerw可以自定义ww类别之间的关系完全由用户日期列属性日期列属性数据是源源数设置日设置日把数据设否否Transformer用年、 ww双击维度图 w把“订购日期”从数据源窗格拖到维度图 w双击新加入的新层“订购日期”,展开Level 转到Time wDateFunction中目前没有对应的函数,把它改为函数Day;w把层名(LevelName)改为ww按工具条上按钮生成“类别”w在数据源窗格加入一个自定义的列“旬w鼠标右击数据源名,选择InsertColumn,新列命wColumntypeCalculated按Calculation按Ifday(订货日期)<=10)then('上旬')(ifday(订货日期)<=20)then('中旬')else('下旬w在层标“旬”上双击,在OrderBy w如果按照年(Year)设分则每一个年份产生一Cube w这些分Cube可以单独使用在时间维度上跨年份
多数据w多数据源模型能够 wwTransfomer通过wwwww提高模型的性能:多数据源减少了Transfomer处理的数据的总w数据易于管理:不必象许多数据库管理那样要管理表连接,也 根据所含列的数据类型分为结构数据源和事物数据源
事务数据(通常
w为提供度量每个维度中集合计算(Rollup)ww结构数据源结构数据源
销售员
客户类结构数据源结构数据源国办事结构数据源客户类结构数据源客户类
结构数据Œ出现在不同数据源需要考虑层中的唯一性问
事务数
结构数据源结构数据源w当维度最底层数据不唯一时,如果硬要 最底层类别是否唯一
在层属性表 否创建新的一列当产品码和黄光玉(rollup)呢?结构数据源产品系列产品类型产品码 环境产品防晒用 帐 把它需要的上
事务数据源销售员产品码 黄光 EditShow
w从层属性表设置唯一性。双击层名展开 wTransformer在PowerCube 要求唯
确Label,选择对应的w为每个维度各自创建一个结构数据源;w结构数据源放 w各维度底层数据项也要出现在事务数据源中w用ShowScope显示颜色检查覆盖关系 唯一w将代码转换成文
度结果,或关键的性能指w标准度量:由数据源的列直接定义的度w计算度量:用Transformerw类别计数:是具有唯一属性的维度的一层,它是一层的标准度量直接从数据源中的一个有效源列提取不同的度量值可以通过修改相关集合计算的属性,从 ysisStudio中将怎样集合计算19981998最小 标 举 求 (如职工人数、存款余额)在日期维度Rollup这两个页中设置度w“追加度量”的类型为Column建立在原有数据源中的一个列上(不属于Calculated类型)Rollupw在度量中加入一项名为“平均成本”的“追加度量InsertMeasure页,在Measuretype区选Column,展开下拉列表,选中“销售成本”,转到Rollup 页,将Regularrollup方式改为Average。w计算度量在源数据列不直接生效时,为度量衍生出了新的w通过定制计算度量可以发现源数据没有表现出来的趋势w右击度量窗格,选InsertMeasure,或按Insw为这个计算度量取名“利润”w在Type type选为w计算度量是含有计算的度量。当在不同的层之间进Rollup。这就会有一个度量本身的计算和Rollup操作的先后顺序问AfterRollupwBefore计算的顺序在集合计算之前(Before:ProfitMargin%=Profit/
Margin%
Before ProfitMargin(75%+67%=计算的顺序在集合计算之后(AfterProfitMargin%=Profit/
Margin%
After ProfitMargin是根据profits的和被(500/700=算销售总价,必须单价×数量。如果计算顺序是AfterRollup,将产生错误的销售总价。而用BeforeRollup才能得出正确的结果:单价总After Before单价×数量 总
55×5=×=
$2× $3× $2×
w比如,显示在某季度或某月 右击Measures窗Insert(Measurew右击度量窗格可以建立度量w度量组可能是ww计算度量(没有更低层
备选钻取路w在同一个维度中可按照另一种途径向下钻取w探察数据的新的观察角度 ww为特殊情况下的数据分析提供更直观的w表示源文件中部分数据间的不同InInIn有三种类型的备选钻取路径直 引入新
www如果会合层预先没 货币转 在Transformer中用转换表换算金融度w用下列方法之一配置货币转换从外部货币表向模型添加一个包含汇率转换数据的数据wwww货币转换表加到PowerCubePowerCubew w把汇率数据作为一个w从数据源为模型生成wFile--CurrencyTable-->弹出“Currency w“Useanexternalcurrencydatasource”选项w定义好四个Basetablecolumns。它w按LoadTable按钮w从度量窗格双击General页。w选“Allowcurrencyw度量图标wwPowerPlay:ExploreConvertCurrencywPowerCubes的自动定时更新可借助于SchedulerwScheduler“D:\ProgramFiles\cognos\cer5\bin\trnsfrmr.exe8989-n2:- c:\Cube\Demo.pyiUpdatedData
Query
Framework应Query查 Report
专Framework分 ysis
认识通用的数据结认识通用的数据结FrameworkManager介在FrameworkManager中准备元在FrameworkManager中为可预期结果建在FrameworkManager中创建业务视在FrameworkManager管理在FrameworkManager中设置安w在本章中 wwBI用户使用模型对他们的数据源进行分析和报告
关系文关系文立方其报表型数
w一个标准化业务型数据库用来提高精确度并减少冗余 业务数据库是 用 每天业务的流
w业务型数据库:w因为标准化业务型数据库中的数据被细分为很(为了消除有客户类w报表型数据源通常使用星型结构布局w所有事务型、大部分数值型数据 典型业务数据库的拷
认识标准化数据产品系列 产品AA11BA21B1B2222 4 12认识非标准化数据含有12行的产品A1A1A1A2A22BBBBBB系进行明 了解关系类型基数
§一对一一个员工持有§一对多:每个 §多对多每个零件可以w(0,1)..n(0,1)..n(多对多,需要在模型/数据库中w0..(1,n1..(1,n)(可以引起性能的降低。产生外连w1..11..1(如同一张表。可以考虑在模型中合并w1..11..n(被认为是理想状态。理论上,所有的事UML符号中的第一个数字指示关系是可选(0)或必要 w有四种基本的陷阱扇型陷阱(fanww这种结构不能记录数据和 w深坑陷阱在
w
明客
哪个关系是多余的:客户和订单明细之间或订单和订单明细公公员 员在部门和员工之间存在直接关系吗ww通过所有真正有联系的实体必须有一个可靠路径如果员工并不为一个部门工作,他们为公司工作吗w在本章中,我们已经FrameworkManager介认识通用的数据结FrameworkManager介在FrameworkManager中准备元在FrameworkManager中为可预期结果建在FrameworkManager中创建业务视在FrameworkManager管理在FrameworkManager中设置安w在本章中 定义FrameworkManager描述FrameworkManager环了解Cognos8和FrameworkManager工作流了解FrameworkManager FrameworkManager为Cognos8提供元数据模型环 FrameworkManager中的模型是对来自一个或多个数据源的 根据业务需求创建一个模型:OLAP分析和报表的维度化建模关系型(DMR关系型模
维度化模
当在FrameworkManager中工作时,实际上是在一个中进行操作的 Project文件(.cpf)和XML文件。§在一个Project的 §§§§§w在一个Project中,采用以下元素进行定义和组织数据范围关 §是底层数据源视图的SQL查§根据输入的对象创建缺省的数据源查 § 过程查§含有基于数据 过程返回列表创建的查询
FrameworkManager中的对象 §[namespace].[querysubject].[query §[namespace].[dimension].[hierarchy].[level].[queryCognos8 FrameworkManager ysisw分w创创建w准添加计w要增强模型的业务视图,可以模型化预知的结果(星型结构添加计w要创建和管理包,可以: Cognos8的安全性是通过用户认证和内容 要在FrameworkManager中设置安全性,可§定义包 权§§定义对象 权§定义包管理w执行Project管理活动,例如实现多用户分段(segmenting)检验了解FrameworkManagerFrameworkManager ysis 确定要解决的与业务智能相关的问题。要了解的问题包括§多语§§安§表 §元数§§建模需§关 设定Project的名称和文件 当首次创建Project时应给其设定设计 §关系型数§SAP§现有Cognos8模§OLAP§Architect模§Impromptu信§Data§ 元数据§其它FrameworkManager模§要考虑下面几点§选择导入数据选关系的标选择导入数据选关系的标 从关系型数据库导入元数据数据关系的标§选择一关系的标§(1)根据主键和外键创建关§(2)根据两个表的唯一索引创关§(3)根据查询匹配名称和数据§选择在关系生成过程中涉及的对象§(1检查所选表间的关系,略所有现有查§(2忽略所选中表的关系,检查每个导入的查 和有查 的关§(3执行上面两个选 入查 间的关系§选项(1)转成 (1..n)。 边的数据关系中有一边必须为 为了清晰和方便,确定和创建一个project结构§对每个数据源应用详细 表需求和数 策只输入需要的报表对象,并且改变尽可能的定制运行的元数手工确定查询的使用模型查 控制查询的生成和使定义determinants需解决两个查 之间的多个不确定关如果需要OLAP风格的查询模型化维用星型结构的分组构筑业务视 在本章中,我们已经§定义了FrameworkManager及其§描述了FrameworkManager§了解了Cognos8和FrameworkManager§了解了FrameworkManager用户在FrameworkManager中准备元认识通用的数据结FrameworkManager介在FrameworkManager中准备元在FrameworkManager中为可预期结果建在FrameworkManager中创建业务视在FrameworkManager管理在FrameworkManager中设置安w在本章中 检查和修改查询项属性和关系,控制数据的展现保证得到期望的结果为一个多语言用户定制元为运行时动态控制返回的数据定制元FrameworkManager ysisww修改查询项或度量属性,控制ww通过设置用途属性,确定一个查询 w通过确定数据的预期使用情况,可以确定需要何种聚合规则。w通过设置常规聚合属性来设置一个查询项的聚合规则。§使用属性有§Identifier:代表被用于分组或汇 Attribute:代表一个既非标识 w关系在对象图表或内容探察器中 w它们定义查询 w基数定义查询 wFrameworkManager中有四种类型的基数w0..n–零记录到多记录w1..n一个记录到多记录w0..1零记录到一个记录w1..1–必须有一个记录 (0,1)..n(0,1)..n(多对多,需要在模型/数据库中调整 0..(1,n1..(1,n)(可以引起性能的降低。产生外连接, 1..11..1(如同一张表。可以考虑在模型中合并 1..11..n(被认为是理想状态。理论上,所有的事情应该wFrameworkManager在导入过程中为元数据创建关系。w可以修改现有关系,也可以创建一个不存在的新关系。w关系可以在任意两个查询 w模型查 ww在查询 计算可以使用§§参§函
计划收入计 *算 有两种类型的计算§内置(Embedded):只想给一个查询§独立(stand–alone):
查询 过滤被用来限制查 FrameworkManager有两种过滤 (可重复使用 内嵌式(面向单个查 在FrameworkManager中为可预期结果建认识通用的数据结FrameworkManager介在FrameworkManager中准备元在FrameworkManager中为可预期结果建在FrameworkManager中创建业务视在FrameworkManager管理在FrameworkManager中设置安w在本章中 FrameworkManager ysiswww在下列情况下会发生报表陷阱:ww w所有查询都应该至少用一个公共维度属性来加以 享维表 该项OrderOrderdetailActualrevenueUnitcostProductnameProductimage
StaffcodeStaffcodeRetailernameSalestargetSalesHanagataGolfAlloHinodeCordages查 Retailername
OrderdetailRetailerSalesRetailerSalesHanagataGolfAlloHinodeCordages
报表输Product
StaffcodeStaffcodeSales
w(完全外连接会在下列情况下 产生不需要的查询裂缝:示
产生不需要的查询裂缝 可以看到ActualRevenue膨胀了。这是因为ActualRevenue是 这就是一个盲点。由于一个查询在查询中被省略使一个需解决不需要的查询裂缝
查
解决不需要的查询裂缝:示PRODUCTNAME:AloeRelief,BearEdgeLASTNAME:AloeReliefBearEdge
合并前的报表输AloeBear合并后的报表输
w当一个查询对象和另一个查询 wShipDate=DayShipDate=DayCloseDate=DayCognoa8CloseDate 让查 扮演不同的角色解决多模糊连接的问题ShipDate=DayShipCloseClosew无论是对业务型还是报表型数据源进行建模,将其模型化w模型化不恰当的元数据会产生不可预料的结果和各种报表 (星型模式分组w数据针对特定的业w最终用户更加容易——表数量最w可编辑和扩展——可以轻松添加一个新的事实并重复使用w共享维度可以防止数据陷阱——事实通过维度和其它事实wCognos8使用基数告诉Cognos8哪些查
§只带有0..n或1..n基数的查 w了解包括四个查 维 事
w了解包括SALES_STAFF、SALES_BRANCH事 不在查询w手工建模确定哪些查 作业1对象图表(解决方案⑤OrderDetails⑤
②Branch④①③ 们是十分合适的合并对象,因为PRODUCT是一个雪花维度。可以合并、PRODUCT_TYPE、PRODUCT_LINE和PRODUCT_MULTILINGUAL§②ORDER_HEADER和ORDER_DETAILS可以合并,因此ORDER_HEADER不模糊了。这对于ORDER_HEADER不是最终的解决方案,但是一个开端§③SALES_BRANCH和SALES_STAFF根据它们在查询中的使用,两者都是模糊 销售事件进行追踪 为每个查 删除不必要的关系,保持合适的关系§⑤尽管ORDER_DETAILS和ORDER_ITEM之间没有报表问题,为了遵循星型 逻辑业务组中放置一个事实(星型模式)。我们还可以用共享维度查询两个事实w模型查询 ww模型查 ProductProductProductProductProductProduct模型查用于创建模型查 的数据源查ww当数据源发生变化时可以减 ProductProduct
FrameworkManager模型ProductProductProductProductProductw通过添加模型和计算创建动态SQLw当为运行时定制查 Filterw通过下列方式使用模型查
SalesSalesStaff
一些查 可能含有到另一个查 的多个模糊连接SalesBranchSalesBranchOrdersOrdersOrderswORDER_HEADER含有应该在一个OrdersFact查询 UnitUnitCostUnitUnitSaleActualRevenueGrossProfitProductionCost§合并ORDER_HEADER和ORDER_DETAILS创建一个可用的 UnitCostUnitUnitSaleActualRevenueGrossProfitProductionCostwRETURNED_ITEM需要和OrdersFactReturnsReturnsRDER_DCE RDER_ERDER_LEDESHP_DAEUnitCostUnitUnitSaleActualRevenuePlannedRevenueGrossProfitProductionCost
ORDER_METHOD_CODE
§为了建RETURNED_ITEMRETURN_DATE RETURN_DATE w将来自ORDER_HEADER的维度查询项添加到OrderDetailsDimensionRETAILER_NAME_MBRETAILER_NAME_MB§我们可以安RETAILER_NAME
需求项到OrderDetailsDimension中。通过把查询失,来创建一个“纯”维度§报告也可能需OrderOrderDetailsRETAILER_NAME_MBOrderDetailsDimension解决ORDER_HEADER作一个模糊查 产生问题
Fact模型查询 w需要克服的一 大量连接的性能影响(为提高报表性能,参考数据 缺少时间维度表造成时间汇总很难处理(没有时间LevelsFactOrdersFact期的结果wProductProduct
Product
Timew实现一个时间维度后,我们可能需要使用不同角色ShipDate=DayShipCloseClose设定w Dtrmt可以定义唯一标识一个数据集的数据库列(查询项)集合,或者可以指定一个能够标识数据中的非唯一集的列集合。w下列情景,在很有限的情况下才需要设定determinants,连接在一个查 上的多个粒度wBLOB数据类型在查 设定Determinant(续ProductProduct
Actual
Time在一个TimeDimension查询中,出现多粒度层的连接,MONTH_KEY和DAY_KEY。这样当在两层进行多事实查询2222211111日月年月产月产库1Aloe1Bear1Bear1Blue1Blue2Aloe2Bear2Bear2Blue2Blue3Aloe3Bear3Bear3Blue3BlueAloeBearBearBlueBlue
年月产品库年月产品库存1Aloe1Bear1Bear1Blue1Blue2Aloe2Bear2Bear2Blue2Blue3Aloe3Bear3Bear3Blue3BlueAloeBearBearBlueBlue年月单粒度查询的正确结年月12123456789月产库1111BlueSteelMax12222BlueSteelMax23333BlueSteelMax3BlueSteelMax
年月年月产库1Aloe1Bear1Bear1Blue1Blue2Aloe2Bear2Bear2Blue2Blue3Aloe3Bear3Bear3Blue3BlueAloeBearBearBlueBlue设定设定Determinant(续数YearMonthMonthDayDayJanSunday,Jan1,JanMonday,Jan2,Determinant设 UniquelyGroupYearMonthMonthDayDayNameMonthKeyMonthNameYearKey设定Determinant续§在例中,能定义3个Determinant,两个非唯一DeterminantYearKey和MonthKey),和一个唯一Determinant(DayKey)。不选GroupBy§MonthKey也是键,但不唯一。因此不能选UniquelyIdentified设置。然而,MonthKey是所有在数据中为一个特定年指定一个月值所需要的。如果要从这个时间表查询月,要通过MonthKey分组查询。这样做是因为值是重复的。这就是为什么我们在Determinant设置中选GroupBy。§类似的逻辑应用于YearDeterminant§当用上表的一个列评估一个查询时,Cognos8查询引擎每次就要寻找一Determinant列参照,当找到它时就停设定设定Determinant(续数YearMonthMonthDayDaySunday,Jan1,Monday,Jan2,Determinant设UniquelyGroupYearYearKey,MonthMonthDayDayNameMonthKeyMonthNameYearKey设定Determinant续(YearKey和MonthKey),和一个唯一Determinant(Day§与数据集示例#1不同,MonthKey不能满足在数据中为一的年查询月,我们要写一个使用selectminfunction的语法和通过YearKey和MonthKey分组。们为月组合一个YearKey和MonthKey的Det
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 手写合同范例
- 承包职工餐厅合同范例
- 建筑代工合同模板
- 出租消防合同范例
- 打井合同模板乙方出合同
- 律师不给合同范例
- 2024年石家庄客运员考试题库及答案
- 2024年黑龙江客运资格证理论考试题
- 2024年四川客运考试口诀图片高清版
- 2024年西藏客运从业资格证急救考试试题教程及答案
- 色谱柱Agilent安捷伦化色谱柱介绍
- 电气设备防潮技术措施规程范本
- 不动产登记表.doc
- 医疗器械生产场地的相关要求
- 《产品合格证》(通用格式模板)
- 电梯控制器DP30使用手册应用篇
- (完整版)塔吊基础专项施工方案(专家论证)
- 测绘专业职称考试中级复习资料
- 外汇与汇率教学课件PPT
- 施工现场区域特点和规定
- 1765号文具体计价范围和计算方法
评论
0/150
提交评论