在xml文件中定义列类型以用作Crystal报表数据源
我使用这个XML文件作为crystal报表的数据源在xml文件中定义列类型以用作Crystal报表数据源,xml,crystal-reports,Xml,Crystal Reports,我使用这个XML文件作为crystal报表的数据源 <Person> <name></Name> <Family></Family> <BirthDate type="datetime"></BirthDate> </Person> 但当我使用它作为数据源,crystal report engine根据给定的XML生成报告列时,我看到BirthDate字段是一个字符串。我
<Person>
<name></Name>
<Family></Family>
<BirthDate type="datetime"></BirthDate>
</Person>
但当我使用它作为数据源,crystal report engine根据给定的XML生成报告列时,我看到BirthDate字段是一个字符串。我不能改变它的类型,我想我的XML格式可能有问题
有人帮我吗?!
谢谢您可以使用水晶公式来转换“字符串”,而不是使用XML中的类型 我从未在Crystal中使用过XML源代码,因此我不完全确定字段在公式编辑器中是如何显示的。“{XML.BirthDate}”可以采用不同的格式
if/else语句使其不会在空值(或非日期时间字符串)上崩溃。它们将显示为DateTime 0:“12/30/1899 12:00:00AM”可能太晚了,但我希望这有助于现在寻找答案的人。 使用xsd代替xml。按照您的示例,情况如下:
<?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将正确识别生日的类型
<?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>