昨天狐友会社群在讨论,究竟客户所提的需求都要去实现吗?
客户的想法是千奇百怪的,我以前开发电动车充电桩平台系统时,就是遇到一个奇芭的需求,客户想让插头插进去就能识别出充电器的型号
这个需求能不能实现呢?可以实现,又不能实现。
按照常规的想法,客户提出来了,那就去调研,去了解。
正常是充电器里面植入芯片,充电桩跟充电器通讯就能知道是什么型号,什么厂家了。客户的充电器是五花八门,小厂的充电器客户也用。
客户给的方案是,根据功率来测出这个充电器是1A,2A的就算了。。表面上做是能做,但对于充电桩平台来说,功能识别就有偏差,一下子充电器是1A的,一下子是2A的,费用忽高忽低的,客户也受不了。
那对于系统的真正的核心诉求是充电,这个识别充电器型号的功能可有可无,可有可无的功能,那就砍掉吧。
还有来自内蒙的梁总说客户的需求合理,我们可以实现,如果不合理,而我们的软件更合理,那么就说服对方,如果你的专业被客户非常认可,那得说得力大大提升。
还有广东的杨老师说,不怕客户提要求,给钱,咱们啥姿势都可以。
好啦,继续来VFP9的增强报表系统开发
保护
如果你允许用户在你的应用程序运行过程中从报表设计器里修改报表,你也许会希望有一种途径能够保护其中一部分对象。报表设计器的部分功能可能会让一个可信任的用户陷入麻烦,比如数据环境。如果你只想让用户做一些很小的改动:比如移动字段的位置、或者添加一个公司的图标,那么把报表设计器的所有功能都暴露出来就过分了。
VFP 9 给 MODIFY/CREATE REPORT/LABLE 命令增加了一个新的关键字:PROTECTED。当使用了这个关键字的时候,你可以阻止特定的操作。使用属性对话框的 Protection 页,你可以控制用户在对象、带区、以及报表级别上执行何种操作。基于明显的理由,这个页在保护模式下是不可用的。
你可以控制一个对象是否能被移动、缩放、编辑(就是属性对话框能否被打开的意思)、或者删除。你甚至可以控制对象是否能被选中、或者它是否要显示出来。图4演示了可用于字段的设置:
如你在图5中所见,你可以控制带区是否能被编辑或者缩放。
在报表的级别上,你可以控制报表属性对话框的哪一页以及哪个菜单项是可用的(见图6)。
图7展示了当 MODIFY REPORT…PROTECTED 被用于一个报表,并且可选带区、数据分组、以及数据环境页被关闭时,报表属性对话框的表现
设计时标题
你也许已经注意到了字段对话体的 Protection 页上有一个额外的设置:design-time caption(设计时标题)。它让你可以指定在保护模式下编辑一个报表的时候出现在被保护字段表达式位置上的东西。
例如,比较一下图8和图9中的两个报表设计工作期。图8是使用不带 PROTECTED 关键字的 MODIFY REPORT 打开的。
图9使用了 PROTECTED 关键字。注意那些字段显示的是说明性的名称,比如 Employee Name,而不是象 ALLT(Employee.firstname) + " " + Employee.lastname 这样真正的表达式。这让你可以防止你的用户看到字段真正的表达式,同时用有意义的说明名字来代替。注意如果他们打开了属性对话框,他们将见到真正的表达式,因为他们将要编辑的是这个值而不是说明性的名字。
设计时 tooltips
除了设计时标题以外,你还可以为报表对象(所有类型的对象,不仅仅是字段而已)指定设计时的 tooltips。在一个对象的属性对话框之 other 页上的 Tooltip 设置中设置好你希望的提示文本。图10展示了给 COMPANYNAME 字段的 tooltip。
绝对定位
VFP 程序员们期待了很久的事情之一,就是能够通过输入 top、left、height、和 width 来指定一个对象精确的大小和位置,而不是小心的一次移动或者缩放一个 pixel 来使得对象达到正确的位置和外形。从图2中可以看到,对象属性对话框的 General 页现在允许你这么做了。不过,要注意的是,大小和位置的值的单位是1/1000英寸,而报表设计器的计量单位是1/960英寸,所以如果你输入一个象0.575这样的值,你会发现真正的值其实是0.572,也就是与你输入的值最接近的有效值。
字符表达式的 Trim 模式
在以前版本的 VFP 中,除非你打开 Stretch with overflow (在溢出时放宽)设置,如果字符表达式的值对该字段来说太长,那么它就会被剪短。在 VFP 9 中,你可以指定这些值应该如何显示。在字段属性对话框Format(格式)页中的 Trim mode for character expressions (字符表达式的 Trim 模式)设置就是控制这个的。可用的选择是:
-
Default trimming(默认修整):一个省略号被添加到文本的末尾以指示还有更多没有被看到的数据。注意在图11中有几个公司名称的末尾有着省略号。
-
Trim to nearest character(修整到最近的字符):在最接近字段长度的那个字符的位置上剪断;
-
Trim to nearest word(修整到最近的词):在最接近字段长度的那个词的位置上剪断,类似于以前版本 VFP 中的剪短方式;
-
Trim to nearest character,append ellipsis(修整到最近的字符,加上省略号):近似修整到最近的字符,但在末尾加上一个省略号;
-
Trim to nearest word, append ellipsis(修整到最近的词,加上省略号):跟默认修整的方式一样;
-
Filespec, show inner path as ellipsis(文件规范,将内部路径显示为省略号):这跟 DISPLAYPATH()函数有着同样的效果;在一个表达式的开头和末尾的字符正常显示,但中间部分就被用一个省略号代替;
要注意的是,除非你在支持对象(object-assisted)模式中运行报表,否则这些设置将被忽略;关于这个模式的内容参见本章后面的“新报表语法”部分内容。
更多资料www.sn58.cn