我使用这个XML文件作为我的水晶报告的数据源。
<Person>
<name></Name>
<Family></Family>
<BirthDate type="datetime"></BirthDate>
</Person>
但是当我使用它作为数据源并且crystal报表引擎根据给定的XML生成我的报表列时,我看到BirthDate字段是一个字符串。我无法更改其类型,我认为我的XML格式可能存在问题
有什么机构可以帮助我吗?! 感谢
答案 0 :(得分:1)
可能为时已晚,但我希望这有助于那些寻求答案的人。 不使用xml,而是使用xsd。按照你的例子,它就像这样:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="Person" nillable="true" type="Person" />
<xs:complexType name="Person">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="Name" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="Family" type="xs:string" />
<xs:element minOccurs="0" maxOccurs="1" name="BirthDate" type="xs:dateTime" />
</xs:sequence>
</xs:complexType>
</xs:schema>
Crystal Report将正确识别出生日期的类型。
答案 1 :(得分:0)
您可以使用Crystal公式转换“字符串”,而不是使用XML中的类型。
If IsDateTime({XML.BirthDate})
Then CDateTime({XML.BirthDate})
Else CDateTime(0)
我从未在Crystal中使用过XML源代码,因此我不完全确定这些字段在公式编辑器中的显示方式。 “{XML.BirthDate}”可能采用不同的格式。
if / else语句使得它不会在NULL值(或非DateTime字符串)上崩溃。它们将显示为DateTime 0:“12/30/1899 12:00:00 AM”