〔连载〕VFP9增强报表系统AND社群的各种姿势

这篇博客探讨了在Visual FoxPro 9(VFP9)中如何管理和保护报表设计,包括使用PROTECTED关键字限制用户编辑权限,控制对象的移动、缩放和编辑。此外,还介绍了新增的设计时标题和提示,以及字符表达式的Trim模式,允许更精细的数据显示控制。这些功能提升了报表设计的安全性和用户体验。
摘要由CSDN通过智能技术生成

昨天狐友会社群在讨论,究竟客户所提的需求都要去实现吗?
客户的想法是千奇百怪的,我以前开发电动车充电桩平台系统时,就是遇到一个奇芭的需求,客户想让插头插进去就能识别出充电器的型号
这个需求能不能实现呢?可以实现,又不能实现。
按照常规的想法,客户提出来了,那就去调研,去了解。
正常是充电器里面植入芯片,充电桩跟充电器通讯就能知道是什么型号,什么厂家了。客户的充电器是五花八门,小厂的充电器客户也用。

客户给的方案是,根据功率来测出这个充电器是1A,2A的就算了。。表面上做是能做,但对于充电桩平台来说,功能识别就有偏差,一下子充电器是1A的,一下子是2A的,费用忽高忽低的,客户也受不了。

那对于系统的真正的核心诉求是充电,这个识别充电器型号的功能可有可无,可有可无的功能,那就砍掉吧。

还有来自内蒙的梁总说客户的需求合理,我们可以实现,如果不合理,而我们的软件更合理,那么就说服对方,如果你的专业被客户非常认可,那得说得力大大提升。

还有广东的杨老师说,不怕客户提要求,给钱,咱们啥姿势都可以。

好啦,继续来VFP9的增强报表系统开发

保护

如果你允许用户在你的应用程序运行过程中从报表设计器里修改报表,你也许会希望有一种途径能够保护其中一部分对象。报表设计器的部分功能可能会让一个可信任的用户陷入麻烦,比如数据环境。如果你只想让用户做一些很小的改动:比如移动字段的位置、或者添加一个公司的图标,那么把报表设计器的所有功能都暴露出来就过分了。
VFP 9 给 MODIFY/CREATE REPORT/LABLE 命令增加了一个新的关键字:PROTECTED。当使用了这个关键字的时候,你可以阻止特定的操作。使用属性对话框的 Protection 页,你可以控制用户在对象、带区、以及报表级别上执行何种操作。基于明显的理由,这个页在保护模式下是不可用的。
你可以控制一个对象是否能被移动、缩放、编辑(就是属性对话框能否被打开的意思)、或者删除。你甚至可以控制对象是否能被选中、或者它是否要显示出来。图4演示了可用于字段的设置:
图4、属性对话框的 Protection 页允许你控制当使用 PROTECTED 关键字的时候,用户在报表设计器中拥有什么能力

如你在图5中所见,你可以控制带区是否能被编辑或者缩放。
图5、当使用了保护的时候,你可以控制带区的编辑或者缩放

在报表的级别上,你可以控制报表属性对话框的哪一页以及哪个菜单项是可用的(见图6)。
图6、报表属性对话框的 Protection 页允许你指定哪些页和菜单项对用户是可用的

图7展示了当 MODIFY REPORT…PROTECTED 被用于一个报表,并且可选带区、数据分组、以及数据环境页被关闭时,报表属性对话框的表现
图7、在可选带区、数据分组、数据环境页关闭情况下的报表属性对话框

设计时标题

你也许已经注意到了字段对话体的 Protection 页上有一个额外的设置:design-time caption(设计时标题)。它让你可以指定在保护模式下编辑一个报表的时候出现在被保护字段表达式位置上的东西。
例如,比较一下图8和图9中的两个报表设计工作期。图8是使用不带 PROTECTED 关键字的 MODIFY REPORT 打开的。
图8、当没有使用 PROTECTED 关键字的时候,用于输出页码的表达式显示为一个表达式

图9使用了 PROTECTED 关键字。注意那些字段显示的是说明性的名称,比如 Employee Name,而不是象 ALLT(Employee.firstname) + " " + Employee.lastname 这样真正的表达式。这让你可以防止你的用户看到字段真正的表达式,同时用有意义的说明名字来代替。注意如果他们打开了属性对话框,他们将见到真正的表达式,因为他们将要编辑的是这个值而不是说明性的名字。
图9、在保护模式下代替表达式的设计时标题

设计时 tooltips

除了设计时标题以外,你还可以为报表对象(所有类型的对象,不仅仅是字段而已)指定设计时的 tooltips。在一个对象的属性对话框之 other 页上的 Tooltip 设置中设置好你希望的提示文本。图10展示了给 COMPANYNAME 字段的 tooltip。
图10、在一个对象的属性对话框之 other 页上的 Tooltip 设置让你可以为对象指定 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 模式)设置就是控制这个的。可用的选择是:

  1. Default trimming(默认修整):一个省略号被添加到文本的末尾以指示还有更多没有被看到的数据。注意在图11中有几个公司名称的末尾有着省略号。
    图11、字符表达式设置之一是显示一个省略号以指示值是被剪短过的

  2. Trim to nearest character(修整到最近的字符):在最接近字段长度的那个字符的位置上剪断;

  3. Trim to nearest word(修整到最近的词):在最接近字段长度的那个词的位置上剪断,类似于以前版本 VFP 中的剪短方式;

  4. Trim to nearest character,append ellipsis(修整到最近的字符,加上省略号):近似修整到最近的字符,但在末尾加上一个省略号;

  5. Trim to nearest word, append ellipsis(修整到最近的词,加上省略号):跟默认修整的方式一样;

  6. Filespec, show inner path as ellipsis(文件规范,将内部路径显示为省略号):这跟 DISPLAYPATH()函数有着同样的效果;在一个表达式的开头和末尾的字符正常显示,但中间部分就被用一个省略号代替;
    要注意的是,除非你在支持对象(object-assisted)模式中运行报表,否则这些设置将被忽略;关于这个模式的内容参见本章后面的“新报表语法”部分内容。

更多资料www.sn58.cn

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
VFP9_SP2-汉化补丁(4.1)说明 一、安装说明: 1.本补丁适用于WinXP、Win7、Win8操作系统。 2.仅在安装了英文VFP9_SP2程序后,方可安装本汉化补丁(推荐)。 3.若已经是VFP9_SP2的中文或英文版本,也可直接覆盖安装本汉化补丁。 4.安装了本补丁后无法卸载。若要恢复英文原版,只能卸载程序后再重新安装。 二、修订历史: (一)VFP9_SP2-汉化补丁(4.1):2017.03.30 1.对中文帮助文件的页面字体及布局进行了改进。 2.修订了文件汉化中其他一些新发现的错误。 3.在程序“帮助”菜单添加了“梅子论坛”链接。 (二)VFP9_SP2-汉化补丁(4.0):2016.01.27 1.对中文帮助文件,添加了SP2英文帮助文件新增的全部主题。 2.修正了在64位操作系统中安装汉化补丁后,不能使用中文帮助的问题。 3.修正了在64位操作系统中安装汉化补丁后,某些窗口仍显示英文的问题。 4.为加快VFP的“任务面板管理器”启动速度,修改了它的默认设置,停用了对一些过时无效网站的访问。 5.修订了其他一些新发现的错误。 (三)VFP9_sp2-汉化补丁(3.0):2010.05.07 对VFP9.0进行了全面的汉化。包含了最新VFP9-SP2-7423补丁(更新了vfp9.exe、vfp9r.dll、vfp9t.dll、vfp9runtime.msm等四个文件)。并对SP2更新的三个有关报表的文件(reportbuilder.app、reportoutput.app、reportpreview.app),及“任务面板管理器”中对编程极具参考价值的“解决方案示例”全部进行了汉化;还包含了最新修订的VFP9中文帮助文件,及原Foxtools的中文帮助。 其他重要修订: 1.本补丁(3.0)对以前汉化版本的漏译及新发现的错误进行了补译和修订。 2.对更新了英文VFP_SP2补丁后,仍存在的四个Bug进行了修订。安装了该补丁后,以下四个错误均将得到修正: ①在命令窗口输入:DO (HOME()+"tools\test\aatest") 命令,出现“VFP Active Accessibility Test Harness”窗口后,点击菜单的“Help”或“?”按钮会出错。 ②在“生成器”或“向导”中要选择表时,若该表所在的文件夹是用中文命名的,在选取表时,表名会出现乱码或提示“语法错误”。 ③在“任务面板管理器”的“环境管理器”中,对使用中文环境文件名不支持的缺陷。 ④在“代码引用”(Code References)窗口的左面窗格,若用鼠标右键点击“All Results”节点,在快捷菜单选择“Clear All Results”清除全部结果后,再用鼠标右键点击“All Results”节点时会出错。 (王苏 2017.03.30)
汉化补丁3 0说明: 本汉化补丁 3 0 对VFP9 0进行了全面的汉化 包含了最新VFP90 SP2 7423补丁 更新了vfp9 exe vfp9r dll vfp9t dll vfp9runtime msm等四个文件 并对SP2更新的三个有关报表的文件 reportbuilder app reportoutput app reportpreview app 及“任务面板管理器”中对编程极具参考价值的“解决方案示例”全部进行了汉化;还包含了最新修订的VFP9中文帮助文件 及原Foxtools的中文帮助 其他重要修订: 1 本补丁 3 0 对以前汉化版本的漏译及新发现的错误进行了补译和修订 2 对更新了英文VFP SP2补丁后 仍存在的四个Bug进行了修订 安装了该补丁后 以下四个错误均将得到修正: ①在命令窗口输入:DO HOME +"tools test aatest" 命令 出现“VFP Active Accessibility Test Harness”窗口后 点击菜单的“Help”或“ ”按钮会出错 ②在“生成器”或“向导”中要选择表时 若该表所在的文件夹是用中文命名的 在选取表时 表名会出现乱码或提示“语法错误” ③在“任务面板管理器”的“环境管理器”中 对使用中文环境文件名不支持的缺陷 ④在“代码引用” Code References 窗口的左面窗格 若用鼠标右键点击“All Results”节点 在快捷菜单选择“Clear All Results”清除全部结果后 再用鼠标右键点击“All Results”节点时会出错 注意事项: 仅在安装了英文VFP9 SP2英文补丁后 方可安装本汉化补丁 若已经安装了SP2早些版本的汉化补丁 可直接进行覆盖安装 其他版本不能使用 对译文错误和安装使用中发现的问题 欢迎指出 王 苏 Email:wangsu01@163 com 2010 05 07">汉化补丁3 0说明: 本汉化补丁 3 0 对VFP9 0进行了全面的汉化 包含了最新VFP90 SP2 7423补丁 更新了vfp9 exe vfp9r dll vfp9t dll vfp9runtime msm等四个文件 并对SP2更新的三个有关报表的文件 reportbuilder app reportoutput app reportpreview app [更多]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

加菲猫的VFP

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值