在数据集打开的情况下新增加一个字段

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Excel 2007数据透视表完全剖析 1/7 完整清晰版 PDF ,有目录。共 100MB,分为7个分卷 Excel 2007 数据透视表完全剖析 OFFICE2007 作者:(美)杰莱(Jelen,B.),(美)亚历山大(Alexander,M.) 著,潘洪涛,解巧云 译 出版社:人民邮电出版社 出版日期:2008-2-1 ISBN:9787115171962 字数:496000 页码:301 -------------------------------------------------------------------------------- 高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据,数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。   “使用没有数据透视表的电子表格软件就像使用没有生火的壁炉。Bill和Mike提供了进一步理解数据的潜能。本书用浅显易懂的方法,以及适合专业人士的小篇幅论述了功能强大、容易理解的指令。”     ——菲利普服务公司产品服务组CEO,Bruce Roberson “在如今这个有太多数据和太少时间的时代,本书非常专业地提供了内容丰富的数据透视表教程,让我们可以更高效地利用自己的数据和时间。”     ——德勒咨询公司高级经理,Kameron Yu   本书集中了数据透视表所有优秀的功能,是一本内涵丰富的指南,提供了日常问题的解决方案。 只需学习前2章就可以掌握如何创建基本的数据透视表并提高生产率,在数分钟内生成报表。 在前6章内可以学会使用数据透视表快速突出显示排名前1O的客户或者收益率排在后5位的产品;快速创建分析结果,根据产品或者地区,或同时根据这二者来对比本阶段与上一阶段的销售额;单击几下鼠标,而不需要了解任何公式,就可以方便地按月、按季度或者按年汇总交易数据。 读完本书,您将成为数据透视表的真正权威,能够利用VBA使数据透视表自动化,用OLAP多维数据集创建外部数据的数据透视表,甚至创建动态报表系统。让企业经理单击几下鼠标就可以自己找到问题的答案。   ·利用大量数据透视表的诀窍;   ·在数秒钟内创建功能强大的汇总报表:   ·方便地构建高级(ad-hOC)查询工具:   ·增强执行报表的能力;   ·筛选出前10位客户或者产品的报表:   ·将动态图表添加到报表中;   ·按月、按季度或者按年快速汇总日常数据。 在目前的电子表格软件中,Microsoft公司的Excel无疑是人们用得最多的。但是普遍认为大约50%的Excel用户只利用了20%的Excel功能,要真正发挥Excel强大的功能,数据透视表无疑是必须掌握的。本书首先介绍了数据透视表的基础,然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、在透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、在透视表中使用宏和VBA等内容,并集中解答了一些常见的透视表问题。   本书由Mr.Excel等经验丰富的Excel专家执笔,图文并茂,内容详实,并在相关网站上提供了书中示例使用的Excel文件,可供读者练习操作时使用,非常适合中、高级Excel用户,以及公司中需要大量统计报表的工作人员。 第1章 数据透视表基础 1 1.1 什么是数据透视表 1 1.2 为什么应该使用数据透视表 2 1.3 何时应该使用数据透视表 4 1.4 数据透视表的结构 4 1.4.1 值区域 4 1.4.2 行区域 5 1.4.3 列区域 5 1.4.4 报表筛选区域 6 1.5 数据透视表的幕后 7 1.6 对数据透视表报表的限制 7 1.7 下一步 9 第2章 创建基本数据透视表 11 2.1 为数据透视表报表准备数据 11 2.1.1 确保数据以表格形式布局 12 2.1.2 避免在分节标题中存储数据 12 2.1.3 避免重复组作为列 13 2.1.4 消除数据源中的空白和空单元格 13 2.1.5 应用适当的类型格式于字段 14 2.1.6 有效的数据源设计概要 14 2.2 案例学习:清除数据用于数据透视表分析 15 2.3 创建基本数据透视表 16 2.3.1 添加字段到报表中 19 2.3.2 增加数据透视表的层次 22 2.3.3 重新排列数据透视表 22 2.3.4 创建报表筛选 23 2.4 案例学习:依据市场分析行为 25 2.5 与数据源保持一致 29 2.5.1 对现有数据源已经进行修改 29 2.5.2 数据源的范围已经随着行或者列的增加而扩大 29 2.6 共享数据透视表缓存 30 2.7 利用新的数据透视表工具节约时间 31 2.7.1 推迟布局更新 31 2.7.2 利用一次单击从头开始 32 2.7.3 重新定位数据透视表 33 2.8 下一步 33 第3章 自定义数据透视表 35 3.1 改变常用修饰 36 3.1.1 应用表格样式恢复网格线 37 3.1.2 修改数字格式来添加千位分隔符 38 3.1.3 用0代替空值 39 3.1.4 修改字段名称 41 3.2 改变布局 42 3.2.1 使用新的压缩形式布局 42 3.2.2 使用大纲形式的布局 44 3.2.3 使用传统的表格形式布局 44 3.3 案例学习 46 3.4 利用样式和主题自定义数据透视表的外观 50 3.4.1 自定义样式 52 3.4.2 修改未来数据透视表的默认样式 53 3.4.3 用文档主题修改样式 54 3.5 修改汇总计算 55 3.5.1 了解空单元格会导致计数的原因 55 3.5.2 使用除计数或求和之外的其他函数 56 3.6 添加和删除分类汇总 58 3.6.1 有许多行字段时,禁止分类汇总 58 3.6.2 为一个字段添加多种分类汇总 59 3.7 使用累积总计选项 60 3.7.1 利用差异选项显示年与年之间的不同 61 3.7.2 利用差异百分比选项将当年与上一年进行对比 62 3.7.3 利用“按某一字段汇总”跟踪YTD总和 62 3.7.4 确定每一行业务对总计的贡献大小 62 3.7.5 创建季节性报表 63 3.7.6 用占总和的百分比选项度量两个字段的百分比 63 3.7.7 使用百分比选项将一行与另一行进行对比 65 3.7.8 利用指数选项跟踪相对重要性 65 3.8 案例学习:根据业务报表的行计算收入 67 3.9 下一步 71 第4章 控制查看视图数据的方法 73 4.1 组合数据透视表字段 73 4.1.1 组合日期字段 74 4.1.2 按月组合时包含年 75 4.1.3 按周组合日期字段 76 4.1.4 在一个报表中组合两个日期字段 77 4.2 案例学习:创建订单时间间隔报表 78 4.3 案例学习:组合文本字段 80 4.4 查看数据透视表字段列表 82 4.4.1 停靠和浮动数据透视表字段列表 82 4.4.2 重新排列数据透视表字段列表 83 4.4.3 使用区域节下拉菜单 83 4.4.4 使用字段下拉菜单 84 4.5 对数据透视表中的数据进行排序 86 4.5.1 使用“选项”选项卡上的排序图标排序 86 4.5.2 使用字段列表隐藏的下拉菜单排序 88 4.5.3 了解关于自动排序布局变化的影响 89 4.5.4 使用手动排序 90 4.5.5 使用自定义序列排序 91 4.6 对数据透视表中的数据进行筛选 92 4.6.1 添加字段到报表筛选区域 92 4.6.2 从报表筛选区中选择一项 94 4.6.3 从报表筛选区中选择多项 94 4.6.4 快速选择或清除所有筛选项 96 4.6.5 使用字段列表筛选 96 4.6.6 使用标签筛选 98 4.6.7 使用日期筛选 99 4.6.8 使用值筛选 101 4.7 案例学习:创建10个最大值的报表 102 4.8 下一步 104 第5章 在数据透视表内进行计算 105 5.1 计算字段与计算项简介 105 5.1.1 方法1:手工添加计算字段到数据源中 106 5.1.2 方法2:在数据透视表外使用公式创建计算字段 107 5.1.3 方法3:直接在数据透视表内插入计算字段 108 5.2 创建第1个计算字段 109 5.3 案例学习:汇总下一年的预算 112 5.4 创建第1个计算项 117 5.5 了解数据透视表计算的规则和缺陷 121 5.5.1 记住运算符的优先级次序 121 5.5.2 使用单元格引用和命名区域 122 5.5.3 使用工作表函数 122 5.5.4 使用常量 123 5.5.5 引用总计 123 5.5.6 计算字段专用规则 123 5.5.7 计算项专用规则 124 5.6 管理和维护数据透视表计算 125 5.6.1 编辑和删除数据透视表计算 125 5.6.2 改变计算项的求解次序 126 5.6.3 提供公式的说明文档 127 5.7 下一步 128 第6章 使用数据透视图和其他可视化工具 129 6.1 什么是真正的数据透视图 129 6.2 创建第一个透视图表 130 6.3 牢记数据透视图规则 133 6.3.1 修改基础数据透视表影响数据透视图 133 6.3.2 数据透视表中数据字段的放置可能不一定最适合数据透视图 133 6.3.3 Excel 2007中仍然存在的少量格式限制 135 6.4 案例学习:创建显示产品发货频率和收入分布情况的报表 136 6.5 能够替代使用数据透视图的其他办法 141 6.5.1 方法1:把数据透视表转化成实际的数值 142 6.5.2 方法2 :删除基本的数据透视图 143 6.5.3 方法3:分发数据透视图的图片 143 6.5.4 方法4:使用单元格链接回数据透视表,作为图表的数据源 143 6.6 使用条件格式处理数据透视表 146 6.7 下一步 153 第7章 借助数据透视表对不同的数据源进行分析 155 7.1 使用多重合并计算数据区域 156 7.2 多重合并计算数据区域的数据透视表的详细分析 161 7.2.1 “行”字段 162 7.2.2 “列”字段 162 7.2.3 “值”字段 162 7.2.4 页字段 163 7.2.5 重新定义数据透视表 164 7.3 案例学习:合并和分析数据集 164 7.4 使用外部数据源构建数据透视表 167 7.4.1 使用MicrosoftAccess数据构建数据透视表 167 7.4.2 使用SQL Server数据构建数据透视表 170 7.5 下一步 174 第8章 与其他人共享数据透视表 175 8.1 与其他版本的Office共享数据透视表 175 8.1.1 Excel 2003数据透视表中不可用的功能 176 8.1.2 Excel 2007的兼容模式 176 8.1.3 版本为12的数据透视表没有降级方法 176 8.1.4 共享数据透视表的策略 177 8.2 将数据透视表另存为网页 177 8.3 将数据透视表发布到Excel Services 179 8.3.1 使用Excel Services显示电子表格的要求 180 8.3.2 为Excel Services准备电子表格 180 8.3.3 将电子表格发布到Excel Services 181 8.3.4 Excel Services中最终用户可以执行的操作 183 8.3.5 使用Excel Services不能执行的操作 183 8.3.6 在浏览器中查看数据透视表 184 8.4 下一步 185 第9章 使用和分析OLAP数据 187 9.1 什么是OLAP 187 9.2 连接到OLAP多维数据集 188 9.3 理解OLAP多维数据集的结构 191 9.4 理解OLAP数据透视表的局限性 192 9.5 创建脱机多维数据集 193 9.6 摆脱具有多维数据集函数的数据透视表模板 196 9.7 下一步 198 第10章 借助宏改善数据透视表报表 199 10.1 为什么对数据透视表报表使用宏 199 10.2 录制第一个宏 200 10.3 创建带有表单控件的用户界面 202 10.4 改变已录制的宏以添加功能 204 10.5 案例学习:借助一个组合框将两个数据透视表同步 208 10.6 下一步 213 第11章 使用VBA创建数据透视表 215 11.1 VBA简介 215 11.1.1 在Excel中启用VBA 215 11.1.2 启用开发工具功能 216 11.1.3 Visual Basic编辑器 217 11.1.4 Visual Basic工具 217 11.1.5 宏录制器 218 11.1.6 理解面向对象编码 218 11.2 学习技巧 219 11.2.1 编写代码处理任意大小的数据区域 219 11.2.2 使用超变量:对象变量 220 11.3 Excel的版本 220 11.4 使用Excel VBA构建数据透视表 223 11.4.1 用“求和项”取代“计数项” 225 11.4.2 为什么不允许移动或更改透视报表的一部分 227 11.4.3 确定完成的数据透视表的大小 227 11.5 创建表示生产收入的报表 230 11.5.1 在“值区域”中消除空白单元格 231 11.5.2 确保使用了表格布局 232 11.5.3 使用AutoSort控制排序 232 11.5.4 更改默认的数字格式 232 11.5.5 禁用多个行字段的分类汇总功能 233 11.5.6 禁用行总计 233 11.6 创建最终报表要处理的一些问题 234 11.6.1 创建一个新的工作簿来保存报表 234 11.6.2 在空白报表工作表上创建摘要 235 11.6.3 填充大纲视图 235 11.6.4 处理最终格式 236 11.6.5 添加分类汇总 237 11.6.6 将所有步骤汇总 238 11.7 处理两个以上数据字段的问题 241 11.7.1 计算数据字段 243 11.7.2 计算项 245 11.8 使用分组汇总数据字段 247 11.9 使用高级数据透视表技术 251 11.9.1 使用AutoShow生成执行概要 251 11.9.2 使用ShowDetail过滤记录集 254 11.9.3 为每个区域或模型创建报表 256 11.9.4 手动筛选数据透视表中两个以上的项 260 11.10 手动控制排序方式 261 11.11 使用求和、平均值、计数、最小值、最大值等 261 11.12 创建报表百分比 262 11.12.1 占总量百分比 263 11.12.2 月增长率 263 11.12.3 特定项的百分比 263 11.12.4 汇总 264 11.13 使用Excel 2007中数据透视表的新功能 264 11.13.1 使用新筛选器 265 11.13.2 应用表格样式 269 11.13.3 更改布局 270 11.13.4 应用数据可见形式 271 11.13.5 理解Excel 97 273 11.14 下一步 274 第12章 数据透视表的常见问题 275 12.1 数据透视表常见问题诊断 275 12.1.1 我总是遇到错误“数据透视表 字段名无效” 275 12.1.2 刷新数据透视表时数据消失了 276 12.1.3 我的数据透视表总是使用“计数”而不使用“求和” 276 12.1.4 我的数据透视表总是将工作簿中的列调整为最适合标题的列宽 276 12.1.5 “推迟布局更新”选项锁住了排序、刷选、分组等功能 277 12.1.6 老版本的Excel无法正常地打开数据透视表 277 12.1.7 在试图给字段分组时得到一个错误消息 278 12.1.8 我的数据透视表将同一个数据项显示两次 278 12.1.9 删除的数据项仍然显示在筛选区域中 279 12.1.10 刷新了数据透视表,然后计算字段显示为错误值 280 12.2 数据透视表常见问题解答 281 12.2.1 怎样让数据透视表自动刷新 281 12.2.2 怎样才能同时刷新一个工作簿中的所有数据透视表 281 12.2.3 怎样使用一种独特的顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样将数据透视表转换为硬数据 283 12.2.5 有简单的方法填充行字段留下的空单元格吗 283 12.2.6 简单的方法填充许多列中行字段留下的空单元格 285 12.2.7 为什么我的数据透视表对于某些数据项不包含月 286 12.2.8 怎样将一个排名数值字段添加到数据透视表 288 12.2.9 怎样隐藏数据透视表中的计算错误 290 12.2.10 怎样使数据透视表报表更小 291 12.2.11 怎样为每个市场创建一个单独的数据透视表 292 12.2.12 怎样避免不断地重定义数据透视表的数据区域 294 附录A 查找选项卡上的数据透视表命令 297 A.1 插入数据透视表 297 A.2 从传统的数据透视表工具栏中查找命令 298
DEP大类 DEP方案编码 DEP方案中文名称 业务场景 简要实现方案 参考开发工作量(人/天) 新增及调整字段 EASSCMA1P0001 采购入库单增加项目字段 希望能实现项目采购,需要在采购入库单中加入项目字段,调用辅助资料中的“项目”基础资料; "1、 采购入库单增加“采购项目”字段; 2、 配置“采购项目”取辅助资料“项目” " 0.1 新增及调整字段 EASSCMA1P0005 领料出库单增加对方科目字段 领料出库单生成凭证时,对应的费用类科目明细很多。难以通过BOTP配置取不同的科目,希望在表头增加“对方科目”字段,并支持在BOTP中进行配置。 在领料出库单的表头增加“对方科目”字段,并支持在“领料出库单-凭证”的BOTP中进行配置。 0.5 新增及调整字段 EASSCMA1P0005 销售订单中增加订单时间、发货时间、交货时间并精确到分秒 精细化工行业对销售订单中所涉及到的时间要求非常精确,如要求订单日期、发货日期、交货日期要精确到分钟。现有的销售订单基础上增加三个字段,分别表示订单时间、发货时间、交货时间,以此解决客户需求。 "1. 销售订单分录上面增加订单时间、发货时间、交货时间字段; 2. 增加的日期字段支持时分秒; 3. 界面锚定正确,过滤界面,序时薄界面显示正确。 " 0.5 新增及调整字段 EASSCMA1P0006 EAS供应链_采购入库单处理总本位币金额和总金额并显示到单头上 采购入库单中“总本位币金额” “总金额”两个字段启用,要求金额计算准确 "1. 采购入库单编辑界面将总金额和总本位币金额字段放出来进行数据显示; 2. 采购入库单审核时。同步更新该字段。使其值正确; " 0.5 新增及调整字段 EASSCMA1P0007 领料申请单分录里增加成本对象编码名称 在领料申请单新增界面没有成本对象编码和成本对象名称列。 "1. 领料申请单增加成本对象和成本对象名称两列 2. 增加监听器处理。成本对象选择后,同步更新成本对象名称列 " 0.5 新增及调整字段 EASSCMA1P0008 销售订单中增加“库位”字段 销售订单分录中增加“库位”字段。 1、 销售订单分录增加库位字段 0.5 新增及调整字段 EASSCMA1P0009 付款单单头增加“国家”字段 银企互联,EAS中的付款单提交到银企后,由于付款单没有收款方国家字段,导致提交失败 付款单上增加“国家”字段,F7录入,范围为辅助资料中的"国家",必录 0.2 新增及调整字段 EASSCMA1P0009 付款单单头增加“国家”字段 客户为餐饮企业,每日进行采购,且采购物品85%左右相同,做采购申请单时,往往是复制上日的采购申请单,然后再进行修改,其中很大程度上只是修改日期(包括单头的申请日期、分录的需求日期和交货日期),但现在只能逐行修改分录的需求日期和交货日期,工作量太大,希望修改表头申请日期后,表体的需求日期和交货日期能自动跟着修改 添加脚本,监听单头的申请日期,当该字段的值有改动后,自动将值赋给需求日期和交货日期。 0.5 新增及调整字段 EASSCMA1P0010 领料申请单增加库位 客户有大量批次物料需要在领料申请单上录入,操作时使用系统台账新增分录功能录入。由于申请单上没有库位信息,导致申请单关联生成领料出库单后库位信息不能携带,仓管员不得不手工录入库位信息,给操作上带来极大的不便。 "1、领料申请单加上“库位”字段,非必录,可编辑,F7类型; 2、台账新增分录时,自动从台账携带。 " 0.5 新增及调整字段 EASSCMA1P0014 领料出库单单头增加内部客户 集团总部向外部供应商要货,再供各下属分支机构领用,领用时用领料出库单处理,需要在单据头指定下属机构(内部客户),总部到一定时间汇总领用情况,按已领用数量与下属机构结算。结算时,需要用领料出库单下推销售出库单,销售出库单单头字段“送货客户”取领料出库单上的下属机构(内部客户)。 在领料出库单单头增加字段:“内部客户”,非必录,由用户手工F7选择,F7范围为领料出库单主业务组织所在财务组织的内部客户。 0.5 新增及调整字段 EASSCMA1P0016 采购收货单增加“采购组”字段 采购收货单只有采购组织字段,没有采购组字段,而采购订单及采购入库单都有这两个字段。现采购收货单需要添加字段。客户这边需要通过这个字段配合工作流,不同采购组由不同人员审批。 "1) 采购收货单编辑界面增加采购组字段; 2) 采购收货单序时簿界面增加采购组字段; 3) 在onload()方法增加KDTEditListener事件,实现采购组织与采购组的联动 " 0.5 新增及调整字段 EASSCMA1P0020 付款申请单携带上游单分录信息 根据合同或应付单下推的付款申请单能否将数量、单价、含税单价带过来,这样客户高层领导审批时就方便了,现在客户领导都不知道这笔钱是买的什么。 "1) 付款申请单编辑界面增加数量、单价、含税单价字段; 2) 付款申请单序时簿界面增加数量、单价、含税单价字段; 3) 采购合同、应付单关联生成付款申请单的BOTP添加数量、单价、含税单价的配置 " 0.5 新增及调整字段 EASSCMA1P0021 物料增加型号字段并携带到相关单据 针对“物料”基础资料,供应链客户提出将其中物料的“规格型号”字段改为“规格”和“型号”两个字段,供应链涉及到物料资源的地方全部要改,以方便其对物料资料的管控和查询。 "1) 物料上面增加型号字段。 2) 物料上的规格型号字段名称修改为规格。 3) 以销售订单为例,将物料的型号字段携带到销售订单上面。 " 0.5 新增及调整字段 EASSCMA1P0024 付款单增加物料字段 在新增和关联应付单生成付款单时,需要在付款单上反映此次付款对应的物料情况,即显示物料信息,目前付款单上没有显示,请问如何能够在付款单上显示所付款对应的物料信息。 "⑴付款单上面增加物料字段; ⑵关联生成付款单的botp携带物料到付款单。 " 0.5 新增及调整字段 EASSCMA1P0025 销售出库单增加到期日期 客户很对委托代销的产品有个委托期限,希望在出库单上增加“到期日期”,同时到期日期支持有权限的修改,审核后也可以修改。 "1. 销售出库单分录上面增加到期日期字段; 2. 到期日期字段支持字段权限; " 0.5 新增及调整字段 EASSCMA1P0026 库存调拨单增加单位标准成本,标准成本 存货核算延续计划价模式,存在库存调拨业务,但库存调拨单上无计划价(单价、金额)显示列,而计划价的审核是调出、调入双方审核的重点内容。因为客户需要采取“直接调拨”模式,自动生成调拨出、入库单,因此库存调拨单上就应有计划价(单价、金额)显示列,以便于审核。 "1) 库存调拨单增加单位标准成本、标准成本字段; 2) 单位标准成本取自物料财务页签,标准成本自动计算得出。 " 0.5 新增及调整字段 EASSCMA1P0047 费用项目增加对方科目字段并携带到应付单 "客户需要按照费用项目对应不同科目,通过DAP自动产生凭证。原计划是通过在费用项目添加记账分类,然后根据记账分类取对应的科目,但是目前系统不支持取费用项目新增的记账分类。 1.通过函数对应科目。根据费用项目,然后通过函数取对应科目编码,做到科目映射。但由于费用项目比较多,而且可能会不时做出更改,所以工作量较大。 2.在做其他应付单的时候,填上对应科目和对方科目,通过dap取数生成凭证。但业务部门工作量增大,而且可能会由于填写错误导致后续凭证有错。 " 在费用项目中二次开发增加一个字段,用于维护对应的科目,建立与科目的映射关系,在新增应付单时,可以根据录入的费用项目,自动默认携带到应付单的对应科目字段上,再根据DAP去生成凭证; 0.8 新增及调整字段 EASSCMA1P0097 EAS供应链_付款申请单可以指定比率 在做付款申请时,每次的付款都是按应付单的某一固定比例来进行支付申请,在应付单(供应商一次性开出发票)下推付款申请单时,每一分录的申请付款金额都需手工计算修改工作量太大,而且容易出错,希望在付款申请单表头增加“本次付款比例”字段,录入后每一分录行上的“申请付款金额”自动按照本次付款比例*(累计付款金额+未付款金额)得出,减少人工计算与录入的工作量与出错率。 采购入库单也可做类似处理。 0.5 新增及调整字段 EASSCMA1P0103 采购收货单分录增加单价金额字段 用户的采购收货单是关键单据,需要通过收货单关联生成和查询到票情况,但收货单上没有单价金额字段,应付单无法从它取价。 因采购收货单分录上本身已有单价、金额两个字段,但界面上不显示,只要把它们显示出来即可。 0.3 新增及调整字段 EASSCMA1P0236 应收单增加携带物料产地字段 客户总部配送中心已处上线阶段。客户的物料确实有产地的需求,没产地栏就无法区分相同名称、规格的物料。所以把物料基础资料中的“助记码”设置成了产地名称 "1. 物料基础页签上增加产地字段。 2. 应收单上增加列“产地”,自动携带显示物料上的“产地”。 3. 增加物料改变事件,自动携带物料的“产地”到表格上。 " 0.5 新增及调整字段 EASSCMA1P0260 比价单到合同放开部分字段可BOTP配置 采购比价单中的一些字段,付款条件、付款方式、采购提前期、送货方式无法带入采购合同中 1. 放开采购合同的相关字段,使其可以参与botp配置; 0.2 单据操作控制修改 EASSCMA1P0011 应收单联查销售成本 销售业务完成后,需要在同一张单据上同时显示每一笔记录的收入和成本,以便对账。 在应收单序时簿上增加两个字段:单位成本、成本,按来源单据分录ID关联对应的销售出库单,获取相应成本字段。 0.5 单据操作控制修改 EASSCMA1P0028 销售退货申请单表头金额字段有计算逻辑 在销售退货申请单表头上添加三个字段“退货金额”“换货金额”“退换货金额差额”;退换货金额差额=退货金额-换货金额。 "1. 在销售退货申请单增加三个字段; 2. 在loadfields()方法增加datachanged事件,实现逻辑计算 " 0.3 单据操作控制修改 EASSCMA1P0028 销售退货申请单增加库位需要和仓库联动 在“销售退货单”中维护分录时,系统默认只能精确到“仓库”而精确不到“仓位”,需要实现两者的联动。 "1. 在销售退货申请单分录增加库位字段; 2. 在onload()方法增加KDTEditListener事件,实现仓库与库位的联动。 " 0.3 单据操作控制修改 EASSCMA1P0032 对比价单中没有报价的物料用颜色标记 客户在做一批物料的询报后,由于个别的物料对其中某个别供应商没有询到价格,携带到比价单上也是没有报价的,但客户针对此批物料客户要按供应商总价来选择,由于存在个别物料没有报价因素的影响不好选择,现客户要求针对这种没有报价的物料利用特别醒目的颜色予以显示,以便让客户及时快速的予以判断。 比价单中对单价为0或者为空的行用红色背景色表示 0.2 单据操作控制修改 EASSCMA1P0048 应收单的付款方式字段修改显示为收款方式 新增应收单时,发现应收单的【收款方式】字段显示为【付款方式】 修改应收单付款方式为收款方式 0.2 单据操作控制修改 EASSCMA1P0053 应付单付款单放开合同号可编辑 客户只用应收应付和总账系统,没有用供应链系统,但需对采购的服务合同按合同进行应付和付款管理,但应付模块的合同号不能录入,希望合同号能够通过参数控制可以在应付模块手工录入。 "1. 放开应付单分录上的采购合同号,采购合同分录号为可编辑; 2. 放开付款单分录上的采购合同号,采购合同分录号为可编辑; " 0.2 单据操作控制修改 EASSCMA1P0055 收款单的流入预算项目值从第一行携带 应付单生成的收款单的流入预算项目不能粘贴,以前都是可以粘贴的,但是现在不行了,一个收款单分录有几千条,如果一个一个去选择要很长时间 1) 在 输入第一行的流入预算项目的时候,后面的行自动携带第一行的值 0.5 单据操作控制修改 EASSCMA1P0062 应收单应付单数量单价精度设置 "应收/应付单录入界面;单据类型选择为非采购/销售发票的其他类型;在录入表体明细选择费用项目后,自动带出来的数量及单价小数位数不能修改; 现在情况是,单据类型为采购OR销售发票的其他应收应付单据,它的数据精度可以根据物料档案中设置的数据精度带出;(客户设置物料精度为四位小数,可看附图);但其他的单据类型选择费用项目后数据精度为六位;现在客户需要设置费用类型的数量单价精度也为4位。 " 1. 设置应收单,应付单费用类型的数量单价字段精度为4位 0.5 单据操作控制修改 EASSCMA1P0069 采购入库增加仓库唯一限制 一张入库单当有多个仓库时,提交时给于提示(即一般只要一个仓库)。 "物料可以设置默认仓库,单据录入的时候携带仓库,如果物料的仓库设置一致,单据上的仓库通常一致。同时,录入第一条仓库,以后行会自动携带第一行仓库,保证整单仓库基本相同。如果不相同,通常情况下是用户进行了仓库的修改。如果提交时候还要增加提示校验仓库相同 以采购入单为例编写DEP案例。 " 0.5 单据操作控制修改 EASSCMA1P0070 仓库仓管员可跨组织选择 目前客户在选择仓管员时只能选择当前组织或平级组织,不能选择上级组织的职员,这样造成管理上的非常不便,因为在很多情况下仓管员并不是一定是当前组织的。建议改回仓管员可以自由选择。 1) 在仓库编辑界面的onLoad()方法中添加后置脚本来重新设置仓管员的F7范围 0.5 单据操作控制修改 EASSCMA1P0073 付款单选择往来户带出业务员 在做付款单时,选择往来户无法带出对应的业务员出来。财务手动添加工作量巨大。希望可以像收款单一样在客户财务资料里面维护后,自动带出来。 "⑴在供应商财务信息上增加“业务员”字段; ⑵在付款单编辑界面实现根据供应商带出业务员的逻辑 " 1 单据操作控制修改 EASSCMA1P0075 采购合同&订单上的交货日期不可编辑 单据转换,采购比价单到采购合同,采购合同到采购订单,客户希望采购合同和采购订单上面的交货日期是单据带过来的,不希望能修改。 "1) 在采购合同编辑界面的onLoad()方法中添加后置脚本来设置交货日期的控制逻辑; 2) 在采购订单编辑界面的onLoad()方法中添加后置脚本来设置交货日期的控制逻辑; " 0.5 单据操作控制修改 EASSCMA1P0075 采购合同&订单上的交货日期不可编辑 单据转换,采购比价单到采购合同,采购合同到采购订单,客户希望采购合同和采购订单上面的交货日期是单据带过来的,不希望能修改。 "1、 在采购合同编辑界面的onLoad()方法中添加后置脚本来设置交货日期的控制逻辑; 2、 在采购订单编辑界面的onLoad()方法中添加后置脚本来设置交货日期的控制逻辑; " 0.5 单据操作控制修改 EASSCMA1P0083 应收应付单据分录上的科目名称显示长编码 应收应付单的单据中,会计科目只显示短名称,这样财务部门在审核时无法判断科目是否正确,应能查看科目全称,方便审核。 通过脚本,将科目的显示格式改为显示长名称。 0.2 单据操作控制修改 EASSCMA1P0087 EAS供应链_采购申请单修改单头日期联动修改分录需求日期和交货日期 客户为餐饮企业,每日进行采购,且采购物品85%左右相同,做采购申请单时,往往是复制上日的采购申请单,然后再进行修改,其中很大程度上只是修改日期(包括单头的申请日期、分录的需求日期和交货日期),但现在只能逐行修改分录的需求日期和交货日期,工作量太大,希望修改表头申请日期后,表体的需求日期和交货日期能自动跟着修改。 添加脚本,监听单头的申请日期,当该字段的值有改动后,自动将值赋给需求日期和交货日期。 0.5 单据操作控制修改 EASSCMA1P0088 EAS供应链_采购订单自动携带第一行分录的交货日期 多行采购订单分录的交货日期相同,批量修改时,需要一行一行修改,工作量很大,希望有对交货日期进行批量填充的功能。 添加脚本,新增或插入分录时,自动取第一行分录的交货日期;添加脚本(监听器),修改第一行分录的交货日期时,自动修改其它分录的交货日期。 1 单据操作控制修改 EASSCMA1P0089 EAS供应链_采购订单的部门默认取采购员的上级部门 销售订单、采购订单等单据,比如采购订单,选择采购员后,部门默认带出的最底层的班组或科室,而统计时需要到上一级部门,因此希望单据上能默认取采购员的上级部门。 通过脚本,实现选择不同的采购员后,自动取采购员主职务所在行政组织的上级组织。 1 单据操作控制修改 EASSCMA1P0090 业务日期显示时分秒 环保行业,出入库业务发生的时间需要明细到时分秒,供政府部门监控使用,但目前系统中的出入库单据的日期类字段只能显示到日期。 新增一个日期字段,可以明细到时分秒 0.2 单据操作控制修改 EASSCMA1P0092 关联生成的其他入库单新增分录允许编辑物料 "副联产品入库,生产订单关联生成其他入库单,订单无法明确副联产品的物料编码,需要在其他入库单中根据实际生产情况新增分录,并输入入库的物料。 目前701版本关联生成的其他入库单可以新增分录、台账新增分录,但是新增分录后物料字段不可编辑。7.5则不可新增分录。 " 通过脚本,放开新增的分录行的物料字段,允许编辑;对于7.5版本,还要放开新增分录、插入分录按钮,以实现关联生成时也可以增加分录。 0.5 单据操作控制修改 EASSCMA1P0094 EAS供应链_关联生成的销售出库单显示付款方式 目前手工录入的销售出库单,可以显示付款方式字段,不显示来源单据类型,但关联生成的销售出库单,会在原付款方式字段的位置上显示来源单据类型,而付款方式字段不可见。 现在产品中将付款方式和来源单据类型放置在同一个位置,默认来源单据不可见,当关联生成销售出库单时,将来源单据类型置为可见,付款方式置为隐藏,因此只要把其中一个字段移到别的位置,使之不重叠,并确保任何时候两个字段均为可见即可。 0.2 单据操作控制修改 EASSCMA1P0095 放开领料出库单分录的“领料日期”字段,允许编辑 领料后再补单,需要记录实际领料日期,在一张单据上录入多次入库,因单头只有一个业务日期,不能满足要求,需要在分录上分别输入各笔物料领用的实际日期 放开分录上的“领料日期”,允许编辑 0.5 单据操作控制修改 EASSCMA1P0096 修改采购订单“价外税”的默认值 客户的采购业务主要是价内税,因此采购订单的“价外税”默认不勾选 通过脚本,将单头的“价外税”字段默认设为不勾选 0.2 单据操作控制修改 EASSCMA1P0100 盘点表放出附件管理菜单 库存盘点时,希望能附上盘点时的一些附件,但没有附件管理菜单可操作 系统默认将附件管理菜单隐藏,放开显示出来即可。 0.2 单据操作控制修改 EASSCMA1P0101 下推生成的采购报价单允许新增删除分录 应商报价时可能会针对数量范围,交货地址不同会有不同的报价,需要在报价单中新增删除分录 ,但目前系统对关联生成的报价单,不能新增删除分录。 在工具栏上增加新增分录和删除分录两个按钮,这个按钮本身是存在的,只是当报价单是由询价单关联生成时,默认隐藏了,至须将其放出来即可。 0.2 单据操作控制修改 EASSCMA1P0102 批量修改销售出库单的销售组和销售员 销售出库单中的销售员和销售组是必填字段,一般情况下,一张出库单都是一个销售员和销售组,希望在录入的时候和库存一样,选择第一行销售员后,下面的分录自动带出,避免每行都要录入。 工具栏上增加一个按钮:批量修改销售组和销售员,并添加相应的处理逻辑 0.5 单据操作控制修改 EASSCMA1P0107 销售订单复制新增清空已禁用的客户信息 在基础资料物料、供应商、客户禁用之后,有此物料、供应商的采购订单或其他单据,点复制新增,同样可以保存提交审核。需要在单据复制新增后校验物料、客商的状态,如果为禁用状态则复制新增后清空物料、客商信息。 以销售订单的客户为例:在复制新增的操作中增加后置脚本校验客户的状态,如果为禁用状态,清空客户信息。 0.5 单据操作控制修改 EASSCMA1P0109 付款单审核后控制不能修改 付款单目前审核后修改按钮亮显,可以修改,且与一般修改权限共用同一权限,控制与其他业务单据控制不一致,客户应用需要控制付款单审核后不允许修改。 "1. 在付款单编辑界面,“加载值(LoadFields)”项中增加后置脚本,处理当单据状态为审核状态时,修改按钮灰显; 2. 在付款单序时簿界面,操作“修改”项中增加前置脚本,控制当单据状态为审核,点击修改按钮运行失败并给出用户提示“已审核的付款单,不允许修改,请重新选择” " 0.5 单据操作控制修改 EASSCMA1P0111 销售订单下推生成采购订单需要控制费用承担部门 销售订单下推生成采购订单,已默认出费用承担部门为上游单据字段,此时修改采购员时系统会自动更新费用承担部门为‘总部服装产品部’。采购订单的费用承担部门不应根据采购员的修改而改变。 "1. 增加字段“是否携带部门”,用于记录是否销售订单下推携带的部门,隐藏。 2. 扩展handleAfterTransform方法,处理销售订单下推来的采购订单“是否默认部门”字段的值。 3. 采购订单界面,扩展loadfields的后置脚本;如果“是否默认携带部门”为是,而且有值则不允许修改 4. 在“部门”字段上扩展dataChange事件;如果是销售订单下推的,而且有值则不允许修改 " 0.5 单据操作控制修改 EASSCMA1P0112 采购申请单申请人F7改为全集团职员范围UI 采购申请单的采购申请人的F7,现在虽然你帮我改对了逻辑,但是客户使用有障碍(今天好多个部门无法继续采购申请流程,很着急)。因为703原来松散的判断让客户的特殊的组织架构反而没有问题,但是现在严格了,客户就无法用了。所以希望把采购申请人的F7改成现在财务模块通用的F7:默认显示当前单据主业务组织所在的管理单元中的行政组织列表,下面还有个选项“显示全部组织”,点这个选项可以显示全集团的行政组织 "1. 扩展onload方法,增加后置脚本,设置F7UI为左树右表形式。 2. 扩展onload方法,增加前置脚本,给“申请人”控件增加事件(willShow, willCommit)控制F7的过滤条件。 " 0.3 单据操作控制修改 EASSCMA1P0113 应付单单据日期按系统当前期间设置默认 应付单拉式生成或者新增时的日期如何设置可以实现以下需求:默认是当前系统日期; 若当前系统日期不在应付系统期间内,则日期默认为应付系统期间的最后一日。(如3月13日做应付单,业务期间在2期,那单据的日期是2月28日,若业务期间在3期,则单据日期为3月13日) "1. 扩展onload方法,处理新增单据时,单据日期的默认值 2. 扩展handleAfterTransform方法,处理Botp生成时,单据日期的默认值 " 0.3 单据操作控制修改 EASSCMA1P0116 采购申请单申请人范围为申请人所在管理单元下的所有人员 "需求描述:行政领料,行政组织记账对应的财务组织,但申请人行政组织所在管理单元与财务组织所在管理单元不是同一管理单元,无法选择的申请人员。 目前范围:供应链单据与当前组织无关,申请人范围为财务组织所在的管理单元下的人员。 处理方式:建议用户DEP处理或者二次开发处理,可以定义申请人范围为申请人所在管理单元下的所有人员,默认值为当前用户。 " "1. 扩展onload方法,增加后置脚本,设置默认 2. 扩展onload方法,增加前置脚本,给“申请人”控件增加事件(willShow, willCommit)控制F7的过滤条件。 " 0.3 单据操作控制修改 EASSCMA1P0118 采购入库单锁定计量单位 "功能点:采购入库单字段控制 应用场景:集团需要按统一的计量单位对下属机构的出入库业务进行汇总,但由于之前物料已经被设为多计量单位,且多计量单位已经被使用,无法修改或删除物料的多个单位,在DEP里把计量单位字段设为锁定 " 扩展onload方法,增加后置脚本,当“单位”单元格被激活时,设置为锁定。 0.3 单据操作控制修改 EASSCMA1P0119 采购收货单不允许手工新增 客户希望采购收货单只能通过采购订单关联生成,不允许业务部门采用手工新增来完成。 1. 扩展界面逻辑校验(beforeStoreFields)方法,增加前置脚本,校验是否关联生成 0.3 单据操作控制修改 EASSCMA1P0120 销售订单下推生成的销售出库单付款方式不能显示 订单关联生成的销售出库单,一般情况下订单决定了付款方式,标准产品由于界面布局的原因,由订单携带过来的付款方式在后台隐藏显示,没有放置在界面上。 1. 扩展loadfields方法,增加后置脚本,显示付款方式 0.2 单据操作控制修改 EASSCMA1P0121 领料出库单设置默认事务类型 EAS7.0.3版本事物类型默认为领料出库,升级到7.5后,每做一张单都要选择,客户反映增加了很多工作量,对升级效果的整体产生影响,请设置一个默认值“020”,如有不同,容许客户修改。 1. 扩展onload方法,增加后置脚本,如果是新增时,且事务类型为空,设置为‘020’领料库存。 0.2 单据操作控制修改 EASSCMA1P0137 生产入库单成本中心只可过滤出生产类成本中心 生产入库单与领料出库单的成本中心都是非生产类型,在成本管理中,投入产量录入界面可以显示生产入库单,但在材料费用分配-领料出库费用分配界面不能显示领料出库单,无法进行成本费用归集。希望对生产入库单进行控制,只能使用生产类的成本中心 1. 控制生产入库单只能使用生产类型(直接生产部门、辅助生产部门)的成本中心; 0.5 单据操作控制修改 EASSCMA1P0141 付款申请单携带上游单分录信息 根据合同或应付单下推的付款申请单能否将数量、单价、含税单价带过来,这样客户高层领导审批时就方便了,现在客户领导都不知道这笔钱是买的什么。 "1、 付款申请单编辑界面增加数量、单价、含税单价字段; 2、 付款申请单序时簿界面增加数量、单价、含税单价字段; 3、采购合同、应付单关联生成付款申请单的BOTP添加数量、单价、含税单价的配置 " 0.5 单据操作控制修改 EASSCMA1P0155 单据编辑界面增加合计行及合计字段 采购收货单编辑界面金额字段没有合计,序时簿中数量、金额在合计行没有合计 设置编辑界面及序时簿界面数量、金额字段的参与合计行 0.1 单据操作控制修改 EASSCMA1P0160 采购询价计划单数量从,数量到填写之后带入采购报价单 在采购询价计划单中,通过DEP设置可以在字段“数量从”、“数量到”中填写数量,但是无法带入采购报价单中,仁和目前的采购询价业务为:比如采购产品A的数量1000个,有三家供应商分别为D/E/F,那么对这三家供应商询价的数量会出现差异,D的询价范围会是:0---200,E的询价范围是:500--800,F的询价范围是:800-1000。即在询价时由采购部向供应商提供具体的数量范围 "1. 询价计划单的数量从,数量到字段可修改 2. 数量从,数量到字段可携带到报价单 " 0.5 单据操作控制修改 EASSCMA1P0161 采购合同到期后不能再进行付款 操作采购合同付款时发现一个问题,采购合同到期失效后仍然可以进行做付款单付款,依据完美公司采购合同付款原则:合同到期失效后不再进行付款,现需要金蝶EAS系统在采购合同到期失效后自动终止做付款单付款。 在合同生成付款单时增加到期日期的校验 0.5 单据操作控制修改 EASSCMA1P0169 采购申请单校验申请数量大于0 "1、采购计划员上报采购申请的时候可以只填审批数量,申请数量可以为空,客户要求软件必须是申请数量不能为空或0; 2、申请数量为空,审批数量不大于0,提交审核以后申请数量为0; 3、客户需求申请数量不能为空,审批数量可以为0。 " "1. 提交时校验申请数量必须大于0; 2. 提交的检查审批数量,如果为空或者为0,设置审批数量等于申请数量。 " 0.5 单据操作控制修改 EASSCMA1P0174 采购订单受合同有效期控制 采购合同关联采购订单时,将采购订单的业务日期填写在合同有效期外,但依然能够提交,合同有效期并没有控制不允许单据生成。 1) 在采购订单后台_submit()前添加脚本; 0.5 单据操作控制修改 EASSCMA1P0194 销售出库单审核状态才能打印 由于用户多次将提交或保存状态下的销售出库单打印出来,并根据此发了货,而出库单没有审核,造成了极大风险。所以希望销售出库单只有在审核状态下才能打印。 控制打印时非审核状态给提示 0.5 单据操作控制修改 EASSCMA1P0262 销售订单不打印数量为0的分录,变更时可删除分录 "销售订单做变更后,分录不能删除,只能改为0;但是在打印的时候数量为0的数据仍显示出来。现客户的需求是: 1、销售订单变更后,能否删除分录。 2、不能删除分录后,分录数量为0的不打印。 " "1. 销售订单变更后,可以删除分录。 2. 分录数量为0的不打印。 " 0.5 单据操作控制修改 EASSCMA1P0302 采购订单新增时不允许修改价格但是变更时可以修改价格 强制使用供货价格时,新增和变更都能修改价格。或者重置参数设置,新增和变更都不能修改价格,不能满足客户需求.客户需要新增采购订单不能修改价格,只有变更时才能修改价格。 "设置价格控制策略采购订单的修改控制为禁止修改 通过dep设置变更时价格字段可以修改。 2.前置补丁:PT079158 " 0.3 单据操作控制修改 EASSCMA1P0331 库位F7增加维护功能按钮 采购入库单分录中F7选择库位后,希望在库位显示界面增加维护按钮,可以在采购单界面直接进行库位的维护和物料存放分配设置,方便客户操作 "1. 目前DEP不支持在F7LocationUI上增加按钮 2. 扩展onload方法,采用代码方式增加“维护”按钮 3. 按钮增加点击事件,打开库位维护界面 " 0.5 单据操作控制修改 EASSCMA1P0338 采购入库单自动根据数量计算采购费用 采购订单多次推采购入库单,采购费用从采购订单携带,修改数量后,不能按数量比例重新计算采购费用。 在采购入库单分录上增加一个字段:单位采购费用,支持botp配置从上游单据携带;在修改入库单的数量或单位采购费用后,自动按数量*单位采购费用计算出采购费用。 0.5 单据操作控制修改 EASSCMA1P0340 库存盘点可选择是否调整辅助数量 库存盘点时,数量没有差异,但辅助数量有差异,目前产品也会生成盘点调整单,但实际应用中,有可能用户不希望调整辅助数量。 在盘点表上增加字段,允许用户自由选择是否要调整辅助数量。 0.5 序时簿显示调整 EASSCMA1P0132 采购订单序时簿增加部门字段 采购订单单据头已录入了部门信息,但在序时簿无法显示出部门信息。导致数据过滤查询时无法按部门查询及统计 "1. 采购订单业务数据源导入部门 2. 采购订单序时簿增加部门字段 " 0.2 序时簿显示调整 EASSCMA1P0138 采购订单序时簿可以过滤查看费用分录的信息 用户在做采购业务环节的费用分析和查询工作,希望在采购订单序时簿查询界面,能将费用明细页签中的字段作为自定义查询条件,查询到符合条件的采购订单分录,从而对费用情况进行统计分析 "1. 采购订单查询增加费用分录相关字段; 2. 采购订单序时簿增加费用分录相关字段; " 0.5 序时簿显示调整 EASSCMA1P0141 付款申请单序时簿显示“申请人” 目前付款申请单序事簿中没有“申请人”字段,希望能够增加方便查看申请人 1) 付款申请单序时簿增加申请人字段 0.2 序时簿显示调整 EASSCMA1P0143 委外订单序时簿显示“ 未收货数量” 目前委外订单序事簿中没有“未收货数据”字段,无法查询出未关联完成的订单 1、 委外订单序时簿增加“未收货数据”字段,并放开相应的过滤条件、表格设置、排序功能; 0.3 序时簿显示调整 EASSCMA1P0144 EAS供应链_销售出库单序时簿显示辅助单位和辅助数量 物料启用辅助计量单位,但在销售出库单序时簿,辅助单位和辅助数量不可显示。 在DEP中,将序时簿的Query的辅助单位和辅助数量放出来,序时簿添加两列,用以显示这两个字段。 0.3 序时簿显示调整 EASSCMA1P0150 EAS供应链_付款申请单序时簿显示每张单据的总金额 查询付款申请单序时簿时,希望能看到每张申请单的明细,并在两列中分别显示每张单据的总申请金额、总批准金额,目前没有这两列。 付款申请单单头有两个字段:申请金额、审批金额,就是单据各分录的申请金额和审批金额的合计,而且在付款申请单序时簿的Query中也包含了这两个字段,序时簿界面没有放出来,因此只要在DEP中为序时簿添加两个列,把这两个字段显示出来即可。 0.2 序时簿显示调整 EASSCMA1P0158 采购入库单序时簿支持按照供应商进行快速查询 采购入库单序时簿快速查询栏,增加按照供应商过滤查询的“查询条件” 1. 设置业务数据源上的字段扩展属性,放开供应商字段的快速查询 0.2 综合 EASSCMA1P0002 物料增加核算项目携带到DAP中 账务系统需要核算到物料大类,目前物料基本分类分为多个分类,财务科目核算分类采用的是自定义核算项目, 分类方式及编码与物料基本完全相同,在DAP中如何根据物料取到对应在自定义核算项目中的分类编码,并在 DAP中对自定义核算项目进行赋值。 举例说明: 物料基本分类: 01 进口钛白粉 01.01 石原 01.02 杜邦 02 国产钛白粉 自定义核算项目(物料大类)分类与上面完全相同; "1. 新增自定义核算项目“物料类别”(实际做此案例时,建议用bim来开发基础资料,目前dep开发的基础资料在作为核算项目时,还有个缺陷); 2. 引入核算项目的横表,建立核算项目与新增“物料类别”基础资料的关系; 3. 物料主档基础资料页签增加“物料类别”; 4. 库存单据中增加物料类别,携带物料基础资料相应的“物料类别”; " 1 工作流 EASSCMA1P0301 采购订单工作流审批根据“是否存在附件”选择不同下级节点 如何在采购订单使用工作流审批根据“是否存在附件”选择下级节点,因为采购订单数据表中没有附件数字段。 在工作流中增加脚本判断当前单据的附件数量,根据不同的附件数量,走不同的下级节点。 0.3 二次开发案例 EASSCMA1P1100 采购订单工作流审批根据“是否存在附件”选择不同下级节点 在选择物料的之前不希望选择申请组织,希望可以直接选择物料,然后反填申请组织 "这个需求没办法通过DEP来实现,所以需要通过二次开发的代码来实现 1.去掉选物料之前对申请组织为空的校验。 2.选择物料之后处理申请组织的值 3.依赖补丁:PT079158. " 1.5 二次开发案例 EASSCMA1P1000 采购订单选择物料自带供应商 客户在 选物料之前不知道供应商是谁,现在的采购订单是先选择供应商,然后才允许选择物料。客户希望可以直接选择物料,然后根据物料携带出供应商。并且在物料f7里面可以看到供应商 "在采购订单上面增加一个菜单按钮,选择物料,弹出物料f7界面以供选择 2.新增一个业务数据源:物料供应商查询,关联物料和供应商 3.采购订单上面处理物料选择后校验供应商唯一,携带供应商到界面等。 " 2
标题:PHP基础教程 出处:风流的CG网络日志 时间:Mon, 28 Aug 2006 07:24:34 +0000 作者:yufeng 地址:http:///read.php?38 内容: 提供给新手学习的 PHP新手教程,是一个比较有价值的PHP新手教程! 一、PHP简介 PHP是一种易于学习和使用的服务器端脚本语言。只需要很少的编程知识你就能使用PHP建立一个真正交互的WEB站点。本教程并不想让你完全了解这种语言,只是能使你尽快加入开发动态web站点的行列。我假定你有一些HTML(或者HTML编辑器)的基本知识和一些编程思想。 1.简介 PHP是能让你生成动态网页的工具之一。PHP网页文件被当作一般HTML网页文件来处理并且在编辑时你可以用编辑HTML的常规方法编写PHP。 PHP代表:超文本预处理器(PHP: Hypertext Preprocessor)。PHP是完全免费的,不用花钱,你可以从PHP官方站点(http://www.php.net)自由下载。PHP遵守GNU公共许可(GPL),在这一许可下诞生了许多流行的软件诸如Linux和Emacs。你可以不受限制的获得源码,甚至可以从中加进你自己需要的特色。PHP在大多数Unix平台,GUN/Linux和微软Windows平台上均可以运行。怎样在Windows环境的PC机器或Unix机器上安装PHP的资料可以在PHP官方站点上找到。安装过程很简单。 如果你的机器解决了2000问题,那么PHP也一样没有千年虫问题! 1.1 历史 三年前,Rasmus Lerdorf为了创建他的在线简历而创造了"个人主页工具"(Personal Home Page Tools)。这是一种非常简单的语言。其后越来越多的人们注意到了这种语言并对其扩展提出了各种建议。在许多人的无私奉献下以及这种语言本身的源代码自由性质,它演变成为一种特点丰富的语言,而且现在还在成长中。 PHP虽然很容易学习,但是速度上比mod_perl(植入web服务器的perl模块)慢。现在有了可以与mod_perl速度想媲美的被称作Zend的新引擎,而PHP4就可以充分利用这个引擎。PHP4还处在BETA测试阶段。Andy Gutmans和Zeev Suraki是Zend的主要作者。可以去Zend站点(http://www.zend.com)了解更多。 PHP的应用在个人性质的web工程中增长显著。根据Netcraft在1999年10月的报告,有931122个域和321128个IP地址利用PHP技术。 1.2 PHP的先进之处 应用PHP有许多好处。当然已知的不利之处在于PHP由于是开放源码项目,没有什么商业支持,并且由此而带来的执行速度缓慢(直到PHP4之前)。但是PHP的邮件列表很是有用而且除非你正在运行像Yahoo!或者Amazon.com这样的极受欢迎的站点,你不会感觉出PHP的速度与其他的有什么不同。最起码我就没有感觉出来!好了,让我们来看看PHP有那些优点: - 学习过程 我个人更喜欢PHP的非常简单的学习过程。与Java和Perl不同,你不必把头埋进100多页的文档中努力学习才可以写出一个象样的程序。只要了解一些基本的语法和语言特色,你就可以开始你的PHP编码之旅了。之后你在编码过程中如果遇到了什么麻烦,还可以再去翻阅相关文档。 PHP的语法与C,Perl,ASP或者JSP。对于那些对上述之一的语言较熟悉的人来说,PHP太简单了。相反的,如果你对PHP了解较多,那么你对于其他几种语言的学习都很简单了。 你只需要30分钟就可以将PHP的核心语言特点全部掌握,你可能已经非常了解HTML,甚至你已经知道怎样用编辑设计软件或者手工来制作好看的WEB站点。由于PHP代码能够无障碍的添加进你的站点,在你设计和维护站点的同时,你可以很轻松的加入PHP使得你的站点更加具有动态特性。 - 数据库连接 PHP可以编译成具有与许多数据库相连接的函数。PHP与MySQL是现在绝佳的组合。你还可以自己编写外围的函数取间接存取数据库。通过这样的途径当你更换使用的数据库时,可以轻松的更改编码以适应这样的变化。PHPLIB就是最常用的可以提供一般事务需要的一系列基库。 - 可扩展性 就像前面说的那样,PHP已经进入了一个高速发展的时期。对于一个非程序员来说为PHP扩展附加功能可能会比较难,但是对于一个PHP程序员来说并不困难。 - 面向对象编程 PHP提供了类和对象。基于web的编程工作非常需要面向对象编程能力。PHP支持构造器、提取类等。 - 可伸缩性 传统上网页的交互作用是通过CGI来实现的。CGI程序的伸缩性不很理想,因为它为每一个正在运行的CGI程序开一个独立进程。解决方法就是将经常用来编写CGI程序的语言的解释器编译进你的web服务器(比如mod_perl,JSP)。PHP就可以以这种方式安装,虽然很少有人愿意这样以CGI方式安装它。内嵌的PHP可以具有更高的可伸缩性。 - 更多特点 PHP的开发者们为了更适合web编程,开发了许多外围的流行基库,这些库包含了更易用的层。你可以利用PHP连接包括Oracle,MS-Access,Mysql在内的大部分数据库。你可以在苍蝇上画图,编写程序下载或者显示e-mail。你甚至可以完成网络相关的功能。最好的是,你可以选择你的PHP安装版本需要哪些功能。引用Nissan的Xterra的话来说就是PHP可以做到你想让它做到的一切而且无所不能! 1.3 竞争对手:ASP,mod_perl,JSP 我当然不清楚ASP/JSP能做些什么。不过明确的是编写那样的代码有多简单,购买它们会有多昂贵以及它们需要多么昂贵和强大的硬件。如果你有什么中立的观点(比如说没有被SUN和Microsoft的百万美金所影响),请顺便通知我。 据我所知,JSP基于Java,因此Java程序员可以轻松开始编码。ASP只是一个一般的引擎,具有支持多种语言的能力,不过默认的并且是最常用的还是VBScript。 mod_perl与Perl一样强大,只是更快一些。 二、PHP入门 PHP站点的在线教程已经很棒了。在那里还有一些其他教程的链接。而本文的该部分将让你对PHP熟悉一点。我不可能做到没有任何遗漏,我的目的只在于能让你迅速开始你的PHP编程。 2.1 首要条件 你首先必须要有一个正在工作着的支持PHP的web服务器。我假定在你的服务器上所有PHP文件的扩展名为.php3。 2.2 PHP的安装 生成一个名为test.php3的文件,含有以下内容: 然后在你的浏览器中打开此文件。看看这个页面你就知道你的PHP安装使用的选项了。 2.3 语法 就像前面提到的一样,你可以混合编写你的PHP代码和HTML代码。因此你必须有办法将两者区别开来。以下就是你可以采用的几种方法。你可以选用其中一种你最适应的并且就这样坚持这种方法! 从HTML中分离 以下是可以使用的方法: . . . 语句 与Perl和C一样,在PHP中用(;)来分隔语句。那些从HTML中分离出来的标志也表示语句的结束。 注释 PHP支持C,C++和Unix风格的注释方式: /* C,C++风格多行注释 */ // C++风格单行注释 # Unix风格单行注释 Hello,World! 通过我们已经学过的知识,你可以编写一个最简单的程序输出一个也许是程序世界中最有名的词语: First PHP page 2.4 数据类型 PHP支持整数、浮点数、字符串、数组和对象。变量类型通常不由程序员决定而由PHP运行过程决定(真是好的解脱!)。但是类型也可以被函数cast或者settype()明确的设定。 数值 数值类型可以是整数或是浮点数。你可以用以下的语句来为一个数值赋值: $a = 1234; # 十进制数 $a = -123; # 负数 $a = 0123; # 八进制数 (等于十进制数的83) $a = 0x12; # 十六进制数(等于十进制数的18) $a = 1.234; # 浮点数"双精度数" $a = 1.2e3; # 双精度数的指数形式 字符串 字符串可以由单引号或双引号引出的字段定义。注意不同的是被单引号引出的字符串是以字面定义的,而双引号引出的字符串可以被扩展。反斜杠(\)可以被用来分割某些特殊字符。举例如下: $first = 'Hello'; $second = "World"; $full1 = "$first $second"; # 产生 Hello World $full2 = '$first $second';# 产生 $first $second 可以将字符和数字利用运算符号连接起来。字符被转化成数字,利用其最初位置。在PHP手册中有详细的例子。 数组与哈希表 数组与哈希表以同样的方法被支持。怎样运用取决于你怎样定义它们。你可以用list()或者array()来定义它们,也可以直接为数组赋值。数组的索引从0开始。虽然我在这里没有说明,但是你一样可以轻易的使用多维数组。 // 一个包含两个元素的数组 $a[0] = "first"; $a[1] = "second"; $a[] = "third"; // 添加数组元素的简单方法 // 现在$a[2]被赋值为"third" echo count($a); // 打印出3,因为该是数组有3个元素 // 用一个语句定义一个数组并赋值 $myphonebook = array ( "sbabu" => "5348", "keith" => "4829", "carole" => "4533" ); // 噢,忘了教长吧,让我们添加一个元素 $myphonebook["dean"] = "5397"; // 你定义的carale元素错了,让我们更正它 $myphonebook["carole"] => "4522" // 我还没有告诉你怎样使用数组的相似支持方式吗?让我们看一看 echo "$myphonebook[0]"; // sbabu echo "$myphonebook[1]"; // 5348 其他一些对数组或哈希表有用的函数包括sort(),next(),prev()和each()。 对象 使用new语句产生一个对象: class foo { function do_foo () { echo "Doing foo."; } } $bar = new foo; $bar->do_foo(); 改变变量类型 在PHP手册中提到:"PHP不支持(也不需要)直接在声明变量时定义变量类型;变量类型将根据其被应用的情况决定。如果你为变量var赋值为一个字符串,那么它变成了一个字符串。如果你又为它赋了整数值,那么它就变成了整数。" $foo = "0"; // $foo是字符串(ASCII 48) $foo++; // $foo是字符串"1" (ASCII 49) $foo += 1; // $foo现在是整数(2) $foo = $foo + 1.3; // $foo是一个双精度数(3.3) $foo = 5 + "10 Little Piggies"; // $foo是一个整数(15) $foo = 5 + "10 Small Pigs"; // $foo是一个整数(15) 如果想要强行转换变量类型,可以使用与C语言相同的函数settype()。 2.5 变量与常量 可能你已经注意到,变量都有一个美元符号($)的前缀。所有变量都是局部变量,为了使得定义的函数中可以使用外部变量,使用global语句。而你要将该变量的作用范围限制在该函数之内,使用static语句。 $g_var = 1 ; // 全局范围 function test() { global $g_var; // 这样就可以声明全局变量了 } 更先进一些的是变量的变量表示。请参考PHP手册。这在有时会显得很有用。 PHP内置了许多已定义的变量。你也可以用define函数定义你自己的常量,比如define("CONSTANT","value")。 2.6 运算符 PHP具有C,C++和Java中的通常见到的运算符。这些运算符的优先权也是一致的。赋值同样使用"="。 算术和字符 以下只有一种运算符是有关字符的: $a + $b :加 $a - $b :减 $a * $b :乘 $a / $b :除 $a % $b :取模(余数) $a . $b :字符串连接 逻辑和比较 逻辑运算符有: $a || $b :或 $a or $b :或 $a && $b :与 $a and $b :与 $a xor $b :异或 (当$a或$b为true时为true,两者一样时为false) ! $a :非 比较运算符有: $a == $b :相等 $a != $b :不等 $a < $b :小于 $a $b :大于 $a >= $b :大于等于 与C一样PHP也有三重运算符(?:)。位操作符在PHP同样存在。 优先权 就和C以及Java一样! 2.7 控制流程结构 PHP有着与C一样的流程控制。我将在下面大概介绍。 if, else, elseif, if(): endif if (表达式一) { . . . } elseif (表达式二) { . . . } else { . . . } // 或者像Python一样 if (表达式一) : . . . . . . elseif (表达式二) : . . . else : . . . endif ; Loops. while, do..while, for while (表达式) { . . . } do { . . . } while (表达式); for (表达式一; 表达式二; 表达式三) { . . . } //或者像Python一样 while (expr) : . . . endwhile ; switch switch是对多重if-elseif-else结构的最好的替换: switch ($i) { case 0: print "i equals 0"; case 1: print "i equals 1"; case 2: print "i equals 2"; } break, continue break中断当前的循环控制结构。 continue被用来跳出剩下的当前循环并继续执行下一次循环。 require, include 就像C中的#include预处理一样。你在require中指定的那个文件将替代其在主文件中的位置。在有条件的引用文件时,可以使用include()。这样就使得你可以将复杂的PHP文件分割成多个文件并且在不同需要时分别引用它们。 2.8 函数 你可以像以下的例子一样定义自己的函数。函数的返回值可以是任何数据类型: function foo (变量名一, 变量名二, . . . , 变量名n) { echo "Example function.\n"; return $retval; } 所有PHP代码都可以出现在函数定义中,甚至包括对其他函数和类的定义。函数必须在引用之前定义。 2.9 类 利用类模型建立类。可以参考PHP手册中对类的详细解释。 class Employee { var $empno; // 员工人数 var $empnm; // 员工姓名 function add_employee($in_num, $in_name) { $this->empno = $in_num; $this->empnm = $in_name; } function show() { echo "$this->empno, $this->empnm"; return; } function changenm($in_name) { $this->empnm = $in_name; } } $sbabu = new Employee; $sbabu->add_employee(10,"sbabu"); $sbabu->changenm("babu"); $sbabu->show(); 三、从实例入手  PHP的许多特点与其他软件或者工具有关。利用迄今为止我们所学到的PHP知识,我们可以试着建立一个简单交互的网站。利用这一过程我们又可以学到不少东西。好吧,我们现在开始专注于一个典型个人网站的建设。 3.1 计划一个站点 一般一个个人站点包括一个欢迎页面、一个留言本页面、一个书签链接页面、一个计数器、联系信息,甚至还有照片集和一些音乐文件等等。让我们从一个标题页面、一个联系信息页面和一个简历页面开始。我们同样需要标准的通用的页面头部和底部。 标题页面--front.html 这里我们有一个非常简单的html文件: 我的个人主页--欢迎 我的个人主页 欢迎 欢迎来我的寒舍,虽然这里现在暂时还没有什么。 不过我希望马上就可以多起来。 Copyright ? 我自己,1999 联系信息页面--count.html 同样我们又有了一个简单页面: 我的个人主页--联系信息 我的个人主页 联系信息 你可以通过1-800-PHP-INFO联系我 Copyright ? 我自己,1999 3.2 HTML到PHP 从上面你可以看出,每个页面有相同的头部和底部。像上面那样每个页面都写入相同的信息在工作量少的时候还可以,但是想象一下当有100多页面且你需要全部更改其头部或底部时你要花费多大精力?一页一页的手工更改是一件多么冗长无趣的事情啊!所以我们应该为这些页面编写PHP的头部和底部文件,之后我们只要在每个HTML页面中引用它们就行了。我们将把这些include文件放在一个叫include的子目录下。下面我们就把这些站点的通用内容写进文件中。 全站通用变量设定:common.inc <? // 全站通用变量 $MyEmail = "[email protected]"; $MyEmailLink = "$MyEmail"; $MyName = "PHP Talk"; $MySiteName = $MyName."'s Home Page"; ?> 通用页面头部:header.inc 通用页面底部:footer.inc Copyright ? by , 1999 新的页面front.php3: 欢迎来我的寒舍,虽然这里现在暂时还没有什么。 不过我希望马上就可以多起来。 新的cont.php3: 你可以通过1-800-PHP-INFO联系我 现在你就可以猜出这样安排的好处了。如果你想改动页面的头部或者底部,你只需要改动相应的文件就可以了。如果你要修改你的e-mail地址甚至你的名字,只要修改common.inc文件就行了。另外值得注意的是你可以把具有任何文件名或者文件扩展名的文件包含进你的文件中,你甚至可以包含其他站点上的文件。 3.3 计数器 让我们在首页上加上一个计数器。这个例子已经被讲过多次了,但是还是有利于演示怎样读写文件以及创建自己的函数。counter.inc包含以下代码: 然后我们更改front.php3文件以显示这个计数器: <? include("include/counter.inc"); // 我把计数值放在文件counter.txt中,读出并输出 printf ("%06d \n", get_hitcount("counter.txt")); include("include/footer.inc"); ?> 看看我们的新front.php3 3.4 反馈表单 让我们再添加一个反馈表单以便你的浏览者填写并e-mail给你。举例来说我们用一种很简单的方法实现它,我们只需要两个页面:一个为浏览者提供输入表单;一个获得表单数据并处理、mail给你。 PHP中获取表单数据是很简单的。当一个表单被发送后,表单中所包含的各个元素被赋上了相应的值,而这样就可以像引用一般变量一样使用了。 在process_form.php3中,变量$mytext就被赋予了输入的值--非常简单!同样的,你可以从列表框、多选框、单选框、按钮等表单元素中取得变量值。你唯一要做的就是为表单中的每一个元素取名以便将来可以引用。 根据这个方法,我们可以生成一个简单的包含三个元素的表单:姓名、e-mail地址和留言。当浏览者发送表单后,处理该表单的PHP页面(sendfdbk.php3)读取数据,检查姓名是否为空,最后将数据mail给你。 表单:form.php3 Your feedback on my home page. 处理表单:sendfdbk.php3 <? include("include/common.inc"); $title = "Feedback"; include("include/header.inc"); if ( $name == "" ) { // 现在我很讨厌匿名的留言! echo "Duh ? How come you are anonymous?"; } elseif ($name == "Your name") { // 这个浏览者真是不想透露姓名啊! echo "Hello ? Your name is supposed to be replaced with your actual name!"; } else { // 输出一段礼貌的感谢语 echo " Hello, $name. Thank you for your feedback. It is greatly appreciated. Thanking you $MyName $MyEmailLink "; // 最后mail出去 mail($MyEmail, "Feedback."," Name : $name E-mail : $email Comment : $comment "); } include("include/footer.inc"); ?> 3.5 简单的站内搜索引擎 PHP可以调用外部程序。在Unix环境下我们可以利用程序grep实现一个简单的搜索引擎。我们可以做的稍微复杂一些:使用一个页面既输出一个表单供用户输入搜索字串又输出查询结果。 <FORM ACTION="" METHOD="POST"> <INPUT TYPE="text" NAME="searchstr" value="" SIZE="20" MAXLENGTH="30"> <? if ( ! empty($searchstr) ) { // empty()用来检查查询字串是否为空 // 如果不为空,调用grep查询 echo "\n"; // 调用grep对所有文件进行大小写非敏感模式的查询 $cmdstr = "grep -i $searchstr *"; $fp = popen( $cmdstr, "r" ); // 执行命令并输出管道 $myresult = array(); // 存储查询结果 while( $buffer = fgetss ($fp, 4096)) { // grep返回这样格式: 文件名:匹配字串出现行数 // 因此我们利用函数split()分离处理数据 list($fname, $fline) = split(":",$buffer, 2); // 我们只输出第一次匹配的结果 if ( !defined($myresult[$fname])) $myresult[$fname] = $fline; } // 现在我们将结果存储在数组中,下面就可以处理并输出了 if ( count($myresult) ) { echo "\n"; while(list($fname,$fline) = each($myresult)) echo " $fname : $fline \n"; echo "\n"; } else { // 如果没有查询结果 echo "Sorry. Search on $searchstr returned no results.\n"; } pclose($fp); } ?> 注释: PHP_SELF是PHP内建的变量。包含当前文件名。 fgets()按行读取文件,最多4096(指定)字符长度。 fgetss()与fgets()相似,只是解析输出的HTML标记。 split()有一个参数是2,因为我们只需要把输出分成两部分。另外需要省略":"。 each()是一个数组操作函数,用来更方便的遍历整个数组。 popen()、pclose()与fopen()、fclose()的功能很相似,只是增加了管道处理。 请注意以上的代码并不是实现一个搜索引擎的好办法。这只是有助于我们更好学习PHP而举出的一个例子而已。理想的情况是你应该建立一个包含关键字的数据库然后进行搜索 四、与数据库链接 通过PHP你可以轻松的连接到数据库,请求数据并将其显示在你的web站点中,甚至修改数据库中的数据。MySQL是一种很流行的数据库,并且在互联网中有许多有关PHP与MySQL的教程。MySQL是免费的,这一点也许就吸引了不少人。由于其广泛应用,我就不想在这里赘述MySQL的使用方法了。Oracle被大量在企业应用中采用,因此我们就利用Oracle来介绍PHP与数据库的连接。我们当然不会提及Oracle数据库的设计原理,原因是这已经超出了我们的讨论范围。 PHP提供了两套函数与Oracle连接,分别是ORA_和OCI函数。其中ORA_函数略显陈旧。OCI函数更新据说更好一些。两者的使用语法几乎相差无几。如前所述,你的PHP安装选项应该可以支持两者的使用。 想获得更多有关在Microsoft Windows平台上安装支持PHP3的Apache服务器的知识以及更多有关Oracle数据库的知识,请查阅以下URL:www.csoft.net/~vsbabu/articles/oraphp.html。 4.1 连接 <? if ($conn=Ora_Logon("user@TNSNAME","password")) { echo "SUCCESS ! Connected to database\n"; } else { echo "Failed :-( Could not connect to database\n"; } Ora_Logoff($conn); phpinfo(); ?> 以上代码使用TNSNAME(在你的tnsnames.ora文件中指明)定义的Oracle数据库名称、用户名称和密码连接数据库。在成功连接的基础上,ora_logon函数返回一个非零的连接ID并储存在变量$conn中。 4.2 查询 假设与数据库已经连接就绪,下面我们就来实际的应用对数据库的查询。下面的代码演示了一个连接并查询的典型例子: <? /* * 连接数据库并执行查询 */ function printoraerr($in_cur) { // 检查Oracle是否出错 // 如果存在错误则显示 // 当指针被激活时每次请求Oracle后调用该函数 if(ora_errorcode($in_cur)) echo "Oracle code - ".ora_error($in_cur)."\n"; return; } /** 主程序 */ if (!($conn=ora_logon("user@TNSNAME","password"))) { echo "Connection to database failed\n"; exit; } echo "Connected as connection - $conn\n"; echo "Opening cursor ...\n"; $cursor=ora_open($conn); printoraerr($cursor); echo "Opened cursor - $cursor\n"; $qry="select user,sysdate from dual"; echo "Parsing the query $qry ...\n"; ora_parse($cursor,$qry,0); printoraerr($cursor); echo "Query parsed \n"; echo "Executing cursor ...\n"; ora_exec($cursor); printoraerr($cursor); echo "Executed cursor\n"; echo "Fetching cursor ...\n"; while(ora_fetch($cursor)) { $user=ora_getcolumn($cursor,0); printoraerr($cursor); $sysdate=ora_getcolumn($cursor,1); printoraerr($cursor); echo " row = $user, $sysdate \n"; } echo "Fetched all records\n"; echo "Closing cursor ...\n"; ora_close($cursor); echo "Closed cursor\n"; echo "Logging off from oracle... \n"; ora_logoff($conn); echo "Logged off from oracle \n"; ?> (译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分) 4.3 显示结果 以下代码演示了怎样查询数据库并将结果输出: <? function printoraerr($in_cur, $conn) { // 检查Oracle是否出错 // 如果存在错误则显示 // 当指针被激活时每次请求Oracle后调用该函数 // If it encountered an error, we exit immediately if(ora_errorcode($in_cur)) { echo "Oracle code - ".ora_error($in_cur)."n"; ora_logoff($conn); exit; } return; } function exequery($w_qry,$conn) { $cursor=ora_open($conn); printoraerr($cursor,$conn); ora_parse($cursor,$w_qry,0); printoraerr($cursor,$conn); ora_exec($cursor); printoraerr($cursor,$conn); $numrows=0; $w_numcols=ora_numcols($cursor); // 显示头部 echo " \n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; echo "\t".ora_columnname($cursor,$i)."\n"; } echo "\n"; while(ora_fetch($cursor)) { echo "\n"; for ($i=0;$i<$w_numcols;$i++) { $align=(ora_columntype($cursor,$i)=="NUMBER")?"RIGHT":"LEFT"; if(ora_columntype($cursor,$i)=="LONG") echo "". ora_getcolumn($cursor,$i)."\n"; else echo "".ora_getcolumn($cursor,$i)."\n"; printoraerr($cursor,$conn); } $numrows++; echo "\n"; } if ($numrows==0) echo "Query returned no records \n"; else { echo "\n"; echo "Count\n"; echo "$numrows\n"; echo "\n"; } echo "\n"; ora_close($cursor); return; } // 主程序 if(!($conn=ora_logon("user@SID","password"))) { echo "Error: Cannot connect to database\n"; exit; } $qry="SELECT deptno \"Dept\" ,empno \"Emp\" ,empnm \"Name\" ,salary \"Salary\" FROM employee ORDER BY 1,2"; exequery($qry); ora_logoff($conn); ?> (译者注:以上代码段缺少注释,请读者参考PHP Manual的Oracle数据库函数部分) 4.4 基于HTTP的Oracle登录 将以下代码加在PHP页面代码之前以确认Oracle登录。注意你必须正确设定$ SID。 <? if(!isset($PHP_AUTH_USER)) { Header("WWW-authenticate: basic realm=\"$SID\""); Header("HTTP/1.0 401 Unauthorized"); $title="Login Instructions"; echo " You are not authorized to enter the site \n"; exit; } else { if (!($conn=ora_logon("$PHP_AUTH_USER@$SID",$PHP_AUTH_PW))) { Header("WWW-authenticate: basic realm=\"$SID\""); Header("HTTP/1.0 401 Unauthorized"); $title="Login Instructions"; echo " You are not authorised to enter the site \n"; exit; } } ?> 五、其它功能 5.1 生成图像 PHP可以操作处理图像。如果你已经安装了GD库,你甚至可以利用PHP生成图像。 (译者注:以上代码段缺少注释,请读者参考PHP Manual的图像处理函数部分) 这段代码在其他页面中通过以下标记调用,然后以上的那段button.php3代码取得text值并在另外取得的图像文件中加上该值--在以上的代码中该图像文件是images/button1.gif--最后输出到浏览器。假如你想在表单域中使用图像按钮,但是又不希望在每次按钮上的文字改变后不得不重新生成新的图像,就可以利用这样简单的方法动态生成图像文件。 5.2 Cookies PHP支持基于HTTP的cookies。在需要时你可以像使用一般变量一样方便的使用cookie。Cookies是浏览器保存于客户端的一些信息片段,由此你可以知道是否一台特定PC上的任何人都访问过你的站点,浏览者者在你的站点上的踪迹等等。使用cookies的典型例子就是对浏览者偏好的甄别。Cookies由函数setcookie()设定。与输出HTTP标头的函数header()一样,setcookie()必须在任何实际内容杯输出到浏览器之前调用。以下是一个简单例子: <? if (empty($VisitedBefore)) { // 如果没有设定cookie,为cookie赋上当前时间值 // 函数中的最后一个参数声明了该cookie保存的时间 // 在这个例子中是1年 // time()函数返回自1970年1月1日以来的以秒数计的时间 SetCookie("VisitedBefore",time(), time()+(60*60*24*365)); } else { // 欢迎浏览者再次光临 echo "Hello there, welcome back"; // 读取cookie并判断 if ( (time() - $VisitedBefore) >= "(60*60*24*7)" ) echo "Why did you take a week to come back. You should be here more often!? "; } ?> 5.3 基于HTTP验证 基于HTTP验证当PHP以CGI模式运行时不能实现。我们可以使用函数header()发送HTTP标头强制验证,客户端浏览器则弹出供输入用户名和密码的对话框。这两个变量被储存在$PHP_AUTH_USER和$PHP_AUTH_PW中,你可以使用这两个变量验证合法并允许进入。以下的例子通过用户名称/密码对为tnc/nature的验证一名用户的登录: 事实上再实际引用中不大可能如上面使用代码段明显的用户名称/密码对,而是利用数据库或者加密的密码文件存取它们。 5.4 文件上传 你可以利用PHP实现文件的功能,注意客户端的浏览器应该是Netscape3以上或者IE3以上。以下就是该功能的简单演示: ( upload.html ): Upload Your File (You may notice a slight delay while we upload your file.) 下面是处理上传的文件: ( receiver.php3 ): 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } $the_time = time (); // 你需要对以下目录有写权限 $upload_dir = "/local/uploads"; $local_file = "$upload_dir/$the_time"; if ( file_exists ( '$local_file' ) ) { $seq = 1; while ( file_exists ( "$upload_dir/$the_time$seq" ) ) { $seq++; } $local_file = "$upload_dir/$the_time$seq"; }; rename ( $uploadfile, $local_file ); display_page (); } function display_page () { // 这里是你的页面内容 } php3 Receiving Script <? if ( $error_msg ) { echo "$error_msg"; } if ( $sendit ) { do_upload (); } elseif ( $cancelit ) { header ( "Location: $some_other_script" ); exit; } else { some_other_func (); } ?> 5.5 常用函数 我们简单来看看一些常用的函数。 数组 array - 生成数组 count - 数组元素个数 sort - 数组排序,另有其他几种排序函数可供使用 list - 列出数组元素 each - 返回下一个key/value对 current - 返回当前数组元素 next,prev - 传回当前数组元素前后指针 日期和时间 checkdate - 验证日期/时间格式 date - 生成日期/时间格式 time - 当前时间信息 strftime - 格式化日期/时间 目录、文件系统 chdir - 改变目录 dir - 目录类别 opendir, readdir, closedir - 开启、读取、关闭目录 fopen, fclose - 开启、关闭文件 fgets, fgetss - 逐行读取内容 file - 将整个文件读入一个数组变量中 正则表达式 ereg - 匹配正则表达式 eregi - 大小写非敏感匹配正则表达式 ereg_replace -匹配正则表达式并替换 eregi_replace -大小写非敏感匹配正则表达式并替换 split - 依规则切开字符串并以数组形势存储 字符串 AddSlashes - 加上斜杠后使用字符串 echo - 输出一个或多个字符串 join, implode - 将数组元素合并为字符串 htmlentities, htmlspecialchars - 将HTML特殊字符转换为HTML标记形式 split - 依规则切开字符串并以数组形势存储 5.6 扩展我们的范例主页 我们将使用以上提到的一些函数和思想为我们的范例主页添加更多的动态内容。我们可以在每个页面的顶部加上导航栏,同时使得当前页自动的不被链接显示;同时还可以添加一个用户验证表单以便上传音乐、图像等文件并自动更新页面。 导航栏 实际上就是在footer.inc文件中加上一段代码。假设你的web站点中所有后缀为.php3的文件都会出现在导航栏中,以下就是被存为include/navbar.inc的代码: <? /* 输出该导航栏,链接所有除当前页的站内.php3文件 */ # 读取目录 $d = dir("./"); echo " | \n"; while($entry = $d->read()) { // 忽略无文件情况 if ( !is_file($entry) ) continue; /* 将文件名与扩展名分开。由于.是正则表达式特殊字符,应该用\引出 */ list($filenm, $fileext) = split("\.",$entry, 2); // 忽略非.php3文件情况 if( $fileext != "php3" ) continue; /* 现在我们已经把.php3文件都选出,下面搜寻文件中的第一行(标题) 类似$title="something"; 并将以上标题内容分开,用作链接文字 */ $linknm = ""; $fp=fopen($entry,"r"); while($buffer=fgets($fp, 4096)) { $buffer = trim($buffer); // 我们已经把每个文件的标题放在文件的第一行以便搜索 // 但是当你改变变量名称时可能会带来大麻烦 if (ereg("title *= *\"", $buffer)) { /* 我们已经取得了标题内容并可以在此基础上 进行去除空格等处理。 必须以PHP代码方式处理,比如$title = "blah blah" */ eval($buffer); // 然后将链接文字显示为标题文字 $linknm = $title; break; } } fclose($fp); if ( $entry == basename($PHP_SELF) ) echo "$linknm"; else echo "$linknm"; echo " | "; } $d->close(); echo " \n"; ?> 照片收藏夹 我们将引用基于HTTP的验证、文件系统函数和文件上传功能维护放置图像文件的目录。 同时我们需要建立一个可以列出在该目录下所有照片的页面。 文件上传 <? include("include/common.inc"); // 我们在这里再做一次用户验证 if(!isset($PHP_AUTH_USER)) { Header("WWW-Authenticate: Basic realm=\"$MySiteName\""); Header("HTTP/1.0 401 Unauthorized"); echo "Sorry, you are not authorized to upload files\n"; exit; } else { if ( !($PHP_AUTH_USER==$MyName && $PHP_AUTH_PW==$MyPassword ) ) { // 如果是错误的用户名称/密码对,强制再次认证 Header("WWW-Authenticate: Basic realm=\"My Realm\""); Header("HTTP/1.0 401 Unauthorized"); echo "ERROR : $PHP_AUTH_USER/$PHP_AUTH_PW is invalid."; exit; } } if ( $cancelit ) { // 当浏览者按下"取消"按钮则转向首页面 header ( "Location: front_2.php3" ); exit; } function do_upload () { global $userfile, $userfile_size, $userfile_name, $userfile_type; global $local_file, $error_msg; global $HTTP_REFERER; if ( $userfile == "none" ) { $error_msg = "You did not specify a file for uploading."; return; } if ( $userfile_size > 2000000 ) { $error_msg = "Sorry, your file is too large."; return; } // Wherever you have write permission below... $upload_dir = "photos"; $local_file = "$upload_dir/$userfile_name"; if ( file_exists ( $local_file ) ) { $error_msg = "Sorry, a file with that name already exists"; return; }; // 你还可以由此检查文件名称/类型对以确定是何种文件:gif,jpg,mp3… rename($userfile, $local_file); echo "The file is uploaded\n"; echo "Go Back\n"; } $title = "Upload File"; include("include/header.inc"); if (empty($userfile) || $userfile=="none") { // 输出以下表单 ?> <FORM ACTION="" ENCTYPE="multipart/form-data" METHOD=POST> (You may notice a slight delay while we upload your file.) <? } else { if ( $error_msg ) { echo "$error_msg"; } if ( $sendit ) { do_upload (); } } include("include/footer.inc"); ?> 照片图库 Here are some of our family photos. This PHP script can really be made better, by splitting into multiple pages. read()) { if (is_file("photos/$entry")) echo "\n"; } $d->close(); ?> 另外,你可以在文件上传的表单中加上一个输入元素去描述该上传的文件。这个元素将被存储在文件中,然后被以上的照片图库的那段代码所读出并显示出来。 六、网络资源 你可以通过web上的众多资源更多的了解PHP3。许多邮件列表和书籍对你都非常有用。 6.1 站点 PHP的爆炸性流行使得一夜之间出现了很多基于PHP的站点,其中不少站点有在线教程、范例代码、技巧和提示等内容。 国内 http://www.phpuser.com - PHP中文用户,也就是这里了 http://www.phpx.com - 中国PHP联盟 http://www.phpsite.net - PHP专门站 http://www.phpchina.com - PHP CHINA http://www.cpcw.com/netschool/homepage/cgi/ - 电脑报网页陶吧 国外 http://www.php.net/ - PHP官方站点 http://www.devshed.com/ - 极好的教程 http://px.sklar.com - 代码交换 http://www.phpbuilder.com/ - 教程、专栏和邮件列表档案 http://www.weberdev.com/ - 文章和代码 http://www.phpwizard.net/ - 提示与技巧 http://www.iometrics.com/php/phplist.php3/ - IOMetrics scripts的档案 http://www.e-gineer.com/phpkb/ - PHP知识库 6.2 邮件列表 你可以在PHP官方站点的"支持"栏目内登记获得以下的邮件列表。值得注意的是这些都是高流量流表,一般每天会有100份e-mail。 [email protected] - 主要的列表 [email protected] - 主要针对开发者 [email protected] - 本站的邮件列表,与论坛相通 6.3 引人注目的工程 一些基于PHP的工程已经发展得比较完善。其中一些更出色更引人注目的是: http:// phplib.netuse.de - PHPLib,一整套PHP函数库 http://www.phorum.org - Phorum是一个很完善的BBS系统 http://www.fishcartsql.org - FishCartSQL是一个电子商务解决方案 http://www.midgard-project.org - Midgard是一个网络应用开发平台 Generated by Bo-blog 2.0.2 sp2
Excel 2007数据透视表完全剖析 4/7 完整清晰版 PDF ,有目录。共 100MB,分为7个分卷 Excel 2007 数据透视表完全剖析 OFFICE2007 作者:(美)杰莱(Jelen,B.),(美)亚历山大(Alexander,M.) 著,潘洪涛,解巧云 译 出版社:人民邮电出版社 出版日期:2008-2-1 ISBN:9787115171962 字数:496000 页码:301 -------------------------------------------------------------------------------- 高级(ad-hoc)查询,即时数据分析,计算字段,前10评级,根据季度将数据分组,设置解决方案的格式,常见的故障排除方法,外部和OLAP数据,数据透视图,利用VBA实现自动化,Excel服务器,熟悉功能区。   “使用没有数据透视表的电子表格软件就像使用没有生火的壁炉。Bill和Mike提供了进一步理解数据的潜能。本书用浅显易懂的方法,以及适合专业人士的小篇幅论述了功能强大、容易理解的指令。”     ——菲利普服务公司产品服务组CEO,Bruce Roberson “在如今这个有太多数据和太少时间的时代,本书非常专业地提供了内容丰富的数据透视表教程,让我们可以更高效地利用自己的数据和时间。”     ——德勒咨询公司高级经理,Kameron Yu   本书集中了数据透视表所有优秀的功能,是一本内涵丰富的指南,提供了日常问题的解决方案。 只需学习前2章就可以掌握如何创建基本的数据透视表并提高生产率,在数分钟内生成报表。 在前6章内可以学会使用数据透视表快速突出显示排名前1O的客户或者收益率排在后5位的产品;快速创建分析结果,根据产品或者地区,或同时根据这二者来对比本阶段与上一阶段的销售额;单击几下鼠标,而不需要了解任何公式,就可以方便地按月、按季度或者按年汇总交易数据。 读完本书,您将成为数据透视表的真正权威,能够利用VBA使数据透视表自动化,用OLAP多维数据集创建外部数据的数据透视表,甚至创建动态报表系统。让企业经理单击几下鼠标就可以自己找到问题的答案。   ·利用大量数据透视表的诀窍;   ·在数秒钟内创建功能强大的汇总报表:   ·方便地构建高级(ad-hOC)查询工具:   ·增强执行报表的能力;   ·筛选出前10位客户或者产品的报表:   ·将动态图表添加到报表中;   ·按月、按季度或者按年快速汇总日常数据。 在目前的电子表格软件中,Microsoft公司的Excel无疑是人们用得最多的。但是普遍认为大约50%的Excel用户只利用了20%的Excel功能,要真正发挥Excel强大的功能,数据透视表无疑是必须掌握的。本书首先介绍了数据透视表的基础,然后逐步介绍创建数据透视表、自定义透视表、查看视图数据、在透视表内进行计算、使用数据透视图等可视化工具、分析数据源、共享数据表、使用和分析OLAP数据、在透视表中使用宏和VBA等内容,并集中解答了一些常见的透视表问题。   本书由Mr.Excel等经验丰富的Excel专家执笔,图文并茂,内容详实,并在相关网站上提供了书中示例使用的Excel文件,可供读者练习操作时使用,非常适合中、高级Excel用户,以及公司中需要大量统计报表的工作人员。 第1章 数据透视表基础 1 1.1 什么是数据透视表 1 1.2 为什么应该使用数据透视表 2 1.3 何时应该使用数据透视表 4 1.4 数据透视表的结构 4 1.4.1 值区域 4 1.4.2 行区域 5 1.4.3 列区域 5 1.4.4 报表筛选区域 6 1.5 数据透视表的幕后 7 1.6 对数据透视表报表的限制 7 1.7 下一步 9 第2章 创建基本数据透视表 11 2.1 为数据透视表报表准备数据 11 2.1.1 确保数据以表格形式布局 12 2.1.2 避免在分节标题中存储数据 12 2.1.3 避免重复组作为列 13 2.1.4 消除数据源中的空白和空单元格 13 2.1.5 应用适当的类型格式于字段 14 2.1.6 有效的数据源设计概要 14 2.2 案例学习:清除数据用于数据透视表分析 15 2.3 创建基本数据透视表 16 2.3.1 添加字段到报表中 19 2.3.2 增加数据透视表的层次 22 2.3.3 重新排列数据透视表 22 2.3.4 创建报表筛选 23 2.4 案例学习:依据市场分析行为 25 2.5 与数据源保持一致 29 2.5.1 对现有数据源已经进行修改 29 2.5.2 数据源的范围已经随着行或者列的增加而扩大 29 2.6 共享数据透视表缓存 30 2.7 利用新的数据透视表工具节约时间 31 2.7.1 推迟布局更新 31 2.7.2 利用一次单击从头开始 32 2.7.3 重新定位数据透视表 33 2.8 下一步 33 第3章 自定义数据透视表 35 3.1 改变常用修饰 36 3.1.1 应用表格样式恢复网格线 37 3.1.2 修改数字格式来添加千位分隔符 38 3.1.3 用0代替空值 39 3.1.4 修改字段名称 41 3.2 改变布局 42 3.2.1 使用新的压缩形式布局 42 3.2.2 使用大纲形式的布局 44 3.2.3 使用传统的表格形式布局 44 3.3 案例学习 46 3.4 利用样式和主题自定义数据透视表的外观 50 3.4.1 自定义样式 52 3.4.2 修改未来数据透视表的默认样式 53 3.4.3 用文档主题修改样式 54 3.5 修改汇总计算 55 3.5.1 了解空单元格会导致计数的原因 55 3.5.2 使用除计数或求和之外的其他函数 56 3.6 添加和删除分类汇总 58 3.6.1 有许多行字段时,禁止分类汇总 58 3.6.2 为一个字段添加多种分类汇总 59 3.7 使用累积总计选项 60 3.7.1 利用差异选项显示年与年之间的不同 61 3.7.2 利用差异百分比选项将当年与上一年进行对比 62 3.7.3 利用“按某一字段汇总”跟踪YTD总和 62 3.7.4 确定每一行业务对总计的贡献大小 62 3.7.5 创建季节性报表 63 3.7.6 用占总和的百分比选项度量两个字段的百分比 63 3.7.7 使用百分比选项将一行与另一行进行对比 65 3.7.8 利用指数选项跟踪相对重要性 65 3.8 案例学习:根据业务报表的行计算收入 67 3.9 下一步 71 第4章 控制查看视图数据的方法 73 4.1 组合数据透视表字段 73 4.1.1 组合日期字段 74 4.1.2 按月组合时包含年 75 4.1.3 按周组合日期字段 76 4.1.4 在一个报表中组合两个日期字段 77 4.2 案例学习:创建订单时间间隔报表 78 4.3 案例学习:组合文本字段 80 4.4 查看数据透视表字段列表 82 4.4.1 停靠和浮动数据透视表字段列表 82 4.4.2 重新排列数据透视表字段列表 83 4.4.3 使用区域节下拉菜单 83 4.4.4 使用字段下拉菜单 84 4.5 对数据透视表中的数据进行排序 86 4.5.1 使用“选项”选项卡上的排序图标排序 86 4.5.2 使用字段列表隐藏的下拉菜单排序 88 4.5.3 了解关于自动排序布局变化的影响 89 4.5.4 使用手动排序 90 4.5.5 使用自定义序列排序 91 4.6 对数据透视表中的数据进行筛选 92 4.6.1 添加字段到报表筛选区域 92 4.6.2 从报表筛选区中选择一项 94 4.6.3 从报表筛选区中选择多项 94 4.6.4 快速选择或清除所有筛选项 96 4.6.5 使用字段列表筛选 96 4.6.6 使用标签筛选 98 4.6.7 使用日期筛选 99 4.6.8 使用值筛选 101 4.7 案例学习:创建10个最大值的报表 102 4.8 下一步 104 第5章 在数据透视表内进行计算 105 5.1 计算字段与计算项简介 105 5.1.1 方法1:手工添加计算字段到数据源中 106 5.1.2 方法2:在数据透视表外使用公式创建计算字段 107 5.1.3 方法3:直接在数据透视表内插入计算字段 108 5.2 创建第1个计算字段 109 5.3 案例学习:汇总下一年的预算 112 5.4 创建第1个计算项 117 5.5 了解数据透视表计算的规则和缺陷 121 5.5.1 记住运算符的优先级次序 121 5.5.2 使用单元格引用和命名区域 122 5.5.3 使用工作表函数 122 5.5.4 使用常量 123 5.5.5 引用总计 123 5.5.6 计算字段专用规则 123 5.5.7 计算项专用规则 124 5.6 管理和维护数据透视表计算 125 5.6.1 编辑和删除数据透视表计算 125 5.6.2 改变计算项的求解次序 126 5.6.3 提供公式的说明文档 127 5.7 下一步 128 第6章 使用数据透视图和其他可视化工具 129 6.1 什么是真正的数据透视图 129 6.2 创建第一个透视图表 130 6.3 牢记数据透视图规则 133 6.3.1 修改基础数据透视表影响数据透视图 133 6.3.2 数据透视表中数据字段的放置可能不一定最适合数据透视图 133 6.3.3 Excel 2007中仍然存在的少量格式限制 135 6.4 案例学习:创建显示产品发货频率和收入分布情况的报表 136 6.5 能够替代使用数据透视图的其他办法 141 6.5.1 方法1:把数据透视表转化成实际的数值 142 6.5.2 方法2 :删除基本的数据透视图 143 6.5.3 方法3:分发数据透视图的图片 143 6.5.4 方法4:使用单元格链接回数据透视表,作为图表的数据源 143 6.6 使用条件格式处理数据透视表 146 6.7 下一步 153 第7章 借助数据透视表对不同的数据源进行分析 155 7.1 使用多重合并计算数据区域 156 7.2 多重合并计算数据区域的数据透视表的详细分析 161 7.2.1 “行”字段 162 7.2.2 “列”字段 162 7.2.3 “值”字段 162 7.2.4 页字段 163 7.2.5 重新定义数据透视表 164 7.3 案例学习:合并和分析数据集 164 7.4 使用外部数据源构建数据透视表 167 7.4.1 使用MicrosoftAccess数据构建数据透视表 167 7.4.2 使用SQL Server数据构建数据透视表 170 7.5 下一步 174 第8章 与其他人共享数据透视表 175 8.1 与其他版本的Office共享数据透视表 175 8.1.1 Excel 2003数据透视表中不可用的功能 176 8.1.2 Excel 2007的兼容模式 176 8.1.3 版本为12的数据透视表没有降级方法 176 8.1.4 共享数据透视表的策略 177 8.2 将数据透视表另存为网页 177 8.3 将数据透视表发布到Excel Services 179 8.3.1 使用Excel Services显示电子表格的要求 180 8.3.2 为Excel Services准备电子表格 180 8.3.3 将电子表格发布到Excel Services 181 8.3.4 Excel Services中最终用户可以执行的操作 183 8.3.5 使用Excel Services不能执行的操作 183 8.3.6 在浏览器中查看数据透视表 184 8.4 下一步 185 第9章 使用和分析OLAP数据 187 9.1 什么是OLAP 187 9.2 连接到OLAP多维数据集 188 9.3 理解OLAP多维数据集的结构 191 9.4 理解OLAP数据透视表的局限性 192 9.5 创建脱机多维数据集 193 9.6 摆脱具有多维数据集函数的数据透视表模板 196 9.7 下一步 198 第10章 借助宏改善数据透视表报表 199 10.1 为什么对数据透视表报表使用宏 199 10.2 录制第一个宏 200 10.3 创建带有表单控件的用户界面 202 10.4 改变已录制的宏以添加功能 204 10.5 案例学习:借助一个组合框将两个数据透视表同步 208 10.6 下一步 213 第11章 使用VBA创建数据透视表 215 11.1 VBA简介 215 11.1.1 在Excel中启用VBA 215 11.1.2 启用开发工具功能 216 11.1.3 Visual Basic编辑器 217 11.1.4 Visual Basic工具 217 11.1.5 宏录制器 218 11.1.6 理解面向对象编码 218 11.2 学习技巧 219 11.2.1 编写代码处理任意大小的数据区域 219 11.2.2 使用超变量:对象变量 220 11.3 Excel的版本 220 11.4 使用Excel VBA构建数据透视表 223 11.4.1 用“求和项”取代“计数项” 225 11.4.2 为什么不允许移动或更改透视报表的一部分 227 11.4.3 确定完成的数据透视表的大小 227 11.5 创建表示生产收入的报表 230 11.5.1 在“值区域”中消除空白单元格 231 11.5.2 确保使用了表格布局 232 11.5.3 使用AutoSort控制排序 232 11.5.4 更改默认的数字格式 232 11.5.5 禁用多个行字段的分类汇总功能 233 11.5.6 禁用行总计 233 11.6 创建最终报表要处理的一些问题 234 11.6.1 创建一个新的工作簿来保存报表 234 11.6.2 在空白报表工作表上创建摘要 235 11.6.3 填充大纲视图 235 11.6.4 处理最终格式 236 11.6.5 添加分类汇总 237 11.6.6 将所有步骤汇总 238 11.7 处理两个以上数据字段的问题 241 11.7.1 计算数据字段 243 11.7.2 计算项 245 11.8 使用分组汇总数据字段 247 11.9 使用高级数据透视表技术 251 11.9.1 使用AutoShow生成执行概要 251 11.9.2 使用ShowDetail过滤记录集 254 11.9.3 为每个区域或模型创建报表 256 11.9.4 手动筛选数据透视表中两个以上的项 260 11.10 手动控制排序方式 261 11.11 使用求和、平均值、计数、最小值、最大值等 261 11.12 创建报表百分比 262 11.12.1 占总量百分比 263 11.12.2 月增长率 263 11.12.3 特定项的百分比 263 11.12.4 汇总 264 11.13 使用Excel 2007中数据透视表的新功能 264 11.13.1 使用新筛选器 265 11.13.2 应用表格样式 269 11.13.3 更改布局 270 11.13.4 应用数据可见形式 271 11.13.5 理解Excel 97 273 11.14 下一步 274 第12章 数据透视表的常见问题 275 12.1 数据透视表常见问题诊断 275 12.1.1 我总是遇到错误“数据透视表 字段名无效” 275 12.1.2 刷新数据透视表时数据消失了 276 12.1.3 我的数据透视表总是使用“计数”而不使用“求和” 276 12.1.4 我的数据透视表总是将工作簿中的列调整为最适合标题的列宽 276 12.1.5 “推迟布局更新”选项锁住了排序、刷选、分组等功能 277 12.1.6 老版本的Excel无法正常地打开数据透视表 277 12.1.7 在试图给字段分组时得到一个错误消息 278 12.1.8 我的数据透视表将同一个数据项显示两次 278 12.1.9 删除的数据项仍然显示在筛选区域中 279 12.1.10 刷新了数据透视表,然后计算字段显示为错误值 280 12.2 数据透视表常见问题解答 281 12.2.1 怎样让数据透视表自动刷新 281 12.2.2 怎样才能同时刷新一个工作簿中的所有数据透视表 281 12.2.3 怎样使用一种独特的顺序对数据项进行排序,它既不是增序也不是降序 282 12.2.4 怎样将数据透视表转换为硬数据 283 12.2.5 有简单的方法填充行字段留下的空单元格吗 283 12.2.6 简单的方法填充许多列中行字段留下的空单元格 285 12.2.7 为什么我的数据透视表对于某些数据项不包含月 286 12.2.8 怎样将一个排名数值字段添加到数据透视表 288 12.2.9 怎样隐藏数据透视表中的计算错误 290 12.2.10 怎样使数据透视表报表更小 291 12.2.11 怎样为每个市场创建一个单独的数据透视表 292 12.2.12 怎样避免不断地重定义数据透视表的数据区域 294 附录A 查找选项卡上的数据透视表命令 297 A.1 插入数据透视表 297 A.2 从传统的数据透视表工具栏中查找命令 298
### 回答1: 要分析二手房朝向分布情况,可以利用pyecharts进行数据可视化展示。 首先,需要获取二手房的数据,包括朝向和数量信息。可以通过爬取房产网站或者从已有的数据集中提取这些信息。 然后,使用pyecharts来绘制柱状图或饼图来呈现朝向的分布情况。可以使用Bar或Pie模块进行绘图。 针对柱状图,横坐标可以是不同的朝向,纵坐标可以是数量。每个朝向的数量可以用柱子的高度来表示,从而展示各个朝向的分布情况。可以加入各种样式设置,如颜色、标题、背景等,以使图表更加直观和美观。 针对饼图,每个朝向的数量可以用扇形的大小来表示,从而形成一个圆饼图。可以通过在扇形上添加数据标签来显示每个朝向对应的数量。同样也可以进行样式设置以及添加标题等来增强图表的可读性。 该可视化分析结果将直观地显示二手房朝向的分布情况,可以快速了解各个朝向的数量占比情况。同时也可以通过与其他统计数据进行对比,进一步分析不同朝向对房价或其他因素的影响,以辅助购房决策或市场分析。 ### 回答2: 分析二手房朝向分布情况,我们可以使用pyecharts进行数据可视化。Pyecharts是一个用于生成Echarts图表的Python库,可以方便地将数据转换为各种形式的可视化图表。 首先,我们需要准备好二手房朝向的数据。可以从房产网站或相关数据集中获取到二手房的基本信息,包括房屋朝向的数据。然后,使用pandas或其他数据处理库加载数据,并利用pyecharts将数据转换为图表。 在pyecharts中,可以选择使用饼图、柱状图或热力图等不同的图表类型来展示分布情况。这里以饼图为例进行说明。 首先,需要导入相应的库和模块: ```python import pandas as pd from pyecharts import options as opts from pyecharts.charts import Pie ``` 然后,加载并处理数据: ```python data = pd.read_csv("房屋数据.csv") # 假设数据保存在“房屋数据.csv”文件中 orientation_count = data["朝向"].value_counts() # 统计朝向的数量 orientation_data = [(orientation, count) for orientation, count in orientation_count.items()] # 构造数据格式 ``` 接下来,使用pyecharts生成饼图: ```python # 创建饼图对象 pie = ( Pie() .add("", orientation_data) .set_global_opts(title_opts=opts.TitleOpts(title="二手房朝向分布情况")) .set_series_opts(label_opts=opts.LabelOpts(formatter="{b}: {c}")) ) # 渲染生成html文件 pie.render("二手房朝向分布情况.html") ``` 以上代码将生成一个包含二手房朝向分布情况的饼图,保存在名为“二手房朝向分布情况.html”的文件中。可以使用浏览器打开该文件,查看具体的分布情况。 当然,根据具体需求,你还可以选择其他图表类型和配置项,来展示二手房朝向分布情况的更多细节。 ### 回答3: 要分析二手房朝向分布情况,可以使用pyecharts进行数据可视化。首先,需要根据数据集中的朝向字段统计每个朝向的数量。然后,使用pyecharts中的柱状图或饼图来展示朝向的分布情况。 在进行数据可视化之前,需要对数据进行预处理和清洗。首先,加载数据集并筛选出需要的字段,例如包含二手房的朝向信息的列。然后,根据朝向字段进行统计,计算每个朝向的数量。 接下来,将统计结果传入pyecharts中的柱状图或饼图进行可视化展示。以柱状图为例,可以将每个朝向作为X轴,数量作为Y轴,通过柱状图的高度来展示每个朝向的数量。可以设置图表的标题、X轴和Y轴的标签等,以增加可读性和易理解性。 在柱状图中,可以按照数量从大到小排序,这样可以更清楚地看到朝向的分布情况。另外,可以使用颜色渐变的功能,通过不同的颜色来区分不同的朝向,使得图表更加直观。 通过pyecharts数据可视化,我们可以直观地了解二手房朝向的分布情况,从而更好地分析市场需求和价格走势,为房地产相关决策提供参考。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值