在Visual Foxpro中,如何在构建EXE文件时将日期格式{^yyyy-mm-dd}更改为{dd/mm/yyyy} ?
Vfp中有许多全局设置,Set Date
是其中之一。与许多其他设置一样,它"限定在当前数据会话范围内"。这样,当你启动Vfp IDE,或者在IDE外启动自定义myProject.EXE时,您将获得所有默认设置,即American
。
当你的Exe启动时,它会运行项目的"主目录"中的代码。成员,可以是PRG代码文件。你可以在这里加上几行,比如
Set Date YMD && yymmdd date, or:
Set Date DMY && ddmmyy
Set Century On && four digit year YYYY
Set Mark To "/" && DD/MM/YYYY
有几个进一步的设置,如Set Hours
和相关的Set SysFormats On
,这是一个"all-in-one";并且意味着或多或少地接管当前的Windows O/S区域设置。SET SYSFORMATS
的作用域是当前的数据会话,就像SET DATE
一样,所以当你创建一个新的Data Session
时,你需要再次运行该代码,比如当你运行一个具有属性DataSession
=2的Form
时,或者当你创建一个Session
对象时。
注:您可以通过F1
键在本地Vfp帮助文件中查找所有这些设置和对象属性。参见https://www.vfphelp.com/help/index.htm
为了补充Stefan的回应(这是完美的),我建议创建一个"环境";对象,您可以在其中定义所需的所有SET
选项作为参数,并在所有表单/报表以及应用程序入口点中使用函数设置它们。
我们在我们的应用程序(1000+表单/报告)中这样做:
THISFORM.AddObject("oCusEnv", "CustomEnv")
THISFORM.oCusEnv.SetEnv()
使用THISFORM.AddObject()
确保CustomEnv
对象继承表单数据会话,因此SetEnv()
中环境的更改将应用于表单私有数据会话。
注意:我们不使用DataEnvironment
对象,如果你正在使用它们,我相信这将是发出任何SET
语句的最佳位置,因为表单继承了DataEnvironment
的数据会话。