我正在创建一些不相关的XML文件,每个文件都会在查看器中显示。查看器包含一个TClientDataSet,一个TDataSource和一个TDBGrid,我希望在代码中没有字段定义或声明,但是在使用XML数据时要读取它们。我首先使用在运行时在测试应用程序中创建的字段创建我的XML文件:
ClientDataSet1.FieldDefs.Add('Date', ftDate);
ClientDataSet1.FieldDefs.Add('Machine', ftString, 50);
等,然后使用:
写出数据 ClientDataSet1.SaveToFile( 'test.xml', dfXML );
从现在开始,XML应该是唯一的字段信息。 XML的结构非常清晰,我已经能够根据自己的需要进行编辑。我现在将它加载到我的查看器中并使用XML中的模式来创建字段。我的问题涉及ftDate字段的显示,在英国显示为01/12/2008。检查XML输出我看到元数据是:
<?xml version="1.0" standalone="true"?>
-<DATAPACKET Version="2.0">
-<METADATA>
-<FIELDS>
<FIELD fieldtype="date" attrname="Date"/>
<FIELD fieldtype="string" attrname="Machine" WIDTH="50"/>
,典型的日期记录是:
-<ROWDATA>
<ROW Machine="Acer Iconia W510" Date="20130501"/>
理想情况下,我希望在DBGrid中显示“May 2013”或至少“2013年5月1日”。看来这是因为TClientDataSet在XML加载时获得了太多信息,所以可能包含一些其他数据来控制显示的格式。这可能吗?为了研究这个,我查看了许多TClientDataSet XML文件,特别是分组在:
下的演示XML文件C:\Users\Public\Documents\RAD Studio\12.0\Samples\Data
虽然这些对于显示数据类型非常有用,但它们似乎都使用默认日期和时间。 谢谢你的任何指示。