Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在xml文件中定义列类型以用作Crystal报表数据源_Xml_Crystal Reports - Fatal编程技术网

在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字段是一个字符串。我

我使用这个XML文件作为crystal报表的数据源

<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>