以文本方式查看主题

-  中文XML论坛 - 专业的XML技术讨论区  (http://bbs.xml.org.cn/index.asp)
--  『 WORD to XML, HTML to XML 』  (http://bbs.xml.org.cn/list.asp?boardid=13)
----  如何在xml文档中读取数据并且在word中显示?  (http://bbs.xml.org.cn/dispbbs.asp?boardid=13&rootid=&id=22288)


--  作者:daman999
--  发布时间:9/17/2005 11:04:00 AM

--  如何在xml文档中读取数据并且在word中显示?
我现在在做opencrx的crm系统开发,其中有一个功能就是要输出word文档。在opencrx1.5.0版本中,可以将“联系人“的自身属性”称谓,名称“与其相关属性”地址,号码“等输出到一个xml文档中,然后在转换成word文档。word文档模板中已经有了函数来调用xml文档中的数据。但是只能输出其自身属性。
  xml文档如下:
   ”
     <?xml version="1.0" encoding="UTF-8" ?>
  <?StartPath org::opencrx::kernel::account1/provider/CRX/segment/Standard/account/33a18130-2681-11da-a265-4340e42a74c3?>
- <org.openmdx.base.Authority name="org:opencrx:kernel:account1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xri:+resource/org/opencrx/kernel/account1/xmi/account1.xsd">
  <_object />
- <_content>
- <provider>
- <org.openmdx.base.Provider qualifiedName="CRX" _operation="null">
  <_object />
- <_content>
- <segment>
- <org.opencrx.kernel.account1.Segment qualifiedName="Standard" _operation="null">
  <_object />
- <_content>
- <account>
- <org.opencrx.kernel.account1.Contact id="33a18130-2681-11da-a265-4340e42a74c3">
- <_object>
  <education>0</education>
- <!--  @see CodeValueContainer name="education"
  -->
  <firstName>999</firstName>
  <middleName>999</middleName>
  <accessLevelUpdate>2</accessLevelUpdate>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
  <gender>0</gender>
- <!--  @see CodeValueContainer name="gender"
  -->
  <owningUser>xri:@openmdx:org.opencrx.security.identity1/provider/CRX/segment/Standard/subject/admin</owningUser>
  <annualIncomeCurrency>0</annualIncomeCurrency>
- <!--  @see CodeValueContainer name="currency"
  -->
- <owner>
  <_item>Standard:admin</_item>
  <_item>Standard:Administrators</_item>
  </owner>
  <disabled>false</disabled>
  <salutationCode>8</salutationCode>
- <!--  @see CodeValueContainer name="salutationCode"
  -->
  <accountRating>0</accountRating>
- <!--  @see CodeValueContainer name="accountRating"
  -->
  <preferredSpokenLanguage>75</preferredSpokenLanguage>
- <!--  @see CodeValueContainer name="language"
  -->
  <annualIncomeAmount>0.000000000</annualIncomeAmount>
  <numberOfChildren>0</numberOfChildren>
  <accessLevelBrowse>3</accessLevelBrowse>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
  <fullName>999, 999 999</fullName>
  <accessLevelDelete>2</accessLevelDelete>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
- <modifiedBy>
  <_item>admin-Standard</_item>
  </modifiedBy>
  <identity>xri:@openmdx:org.opencrx.kernel.account1/provider/CRX/segment/Standard/account/33a18130-2681-11da-a265-4340e42a74c3</identity>
  <accountType>0</accountType>
- <!--  @see CodeValueContainer name="accountType"
  -->
  <createdAt>2005-09-16T07:12:37.969Z</createdAt>
  <doNotPhone>false</doNotPhone>
  <doNotBulkPostalMail>false</doNotBulkPostalMail>
  <doNotEMail>false</doNotEMail>
- <owningGroup>
  <_item>xri:@openmdx:org.opencrx.security.identity1/provider/CRX/segment/Standard/subject/Administrators</_item>
  </owningGroup>
  <preferredWrittenLanguage>75</preferredWrittenLanguage>
- <!--  @see CodeValueContainer name="language"
  -->
- <createdBy>
  <_item>admin-Standard</_item>
  </createdBy>
  <accountState>0</accountState>
- <!--  @see CodeValueContainer name="accountState"
  -->
  <familyStatus>0</familyStatus>
- <!--  @see CodeValueContainer name="familyStatus"
  -->
  <lastName>999</lastName>
  <preferredContactMethod>0</preferredContactMethod>
- <!--  @see CodeValueContainer name="contactMethod"
  -->
  <doNotPostalMail>false</doNotPostalMail>
  <doNotFax>false</doNotFax>
  <modifiedAt>2005-09-16T07:33:56.467Z</modifiedAt>
  </_object>
- <_content>
- <address>
- <org.opencrx.kernel.account1.PhoneNumber id="31347170-2684-11da-8586-87c3e1604b49">
- <_object>
  <phoneCountryPrefix>0</phoneCountryPrefix>
- <!--  @see CodeValueContainer name="phoneCountryPrefix"
  -->
  <automaticParsing>false</automaticParsing>
  <accessLevelUpdate>2</accessLevelUpdate>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
  <owningUser>xri:@openmdx:org.opencrx.security.identity1/provider/CRX/segment/Standard/subject/admin</owningUser>
- <owner>
  <_item>Standard:admin</_item>
  <_item>Standard:Administrators</_item>
  </owner>
  <disabled>false</disabled>
  <accessLevelBrowse>3</accessLevelBrowse>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
  <accessLevelDelete>2</accessLevelDelete>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
- <modifiedBy>
  <_item>admin-Standard</_item>
  </modifiedBy>
  <identity>xri:@openmdx:org.opencrx.kernel.account1/provider/CRX/segment/Standard/account/33a18130-2681-11da-a265-4340e42a74c3/address/31347170-2684-11da-8586-87c3e1604b49</identity>
  <createdAt>2005-09-16T07:33:56.467Z</createdAt>
  <phoneNumberFull>010-62779079</phoneNumberFull>
  <isMain>false</isMain>
- <owningGroup>
  <_item>xri:@openmdx:org.opencrx.security.identity1/provider/CRX/segment/Standard/subject/Administrators</_item>
  </owningGroup>
- <createdBy>
  <_item>admin-Standard</_item>
  </createdBy>
  <modifiedAt>2005-09-16T07:33:56.467Z</modifiedAt>
  </_object>
- <_content>
- <audit>
- <org.opencrx.kernel.base.ObjectCreationAuditEntry id="3d3c6e00-2684-11da-8586-87c3e1604b49">
- <_object>
  <owningUser>xri:@openmdx:org.opencrx.security.identity1/provider/CRX/segment/Standard/subject/admin</owningUser>
- <modifiedBy>
  <_item>admin-Standard</_item>
  </modifiedBy>
  <identity>xri:@openmdx:org.opencrx.kernel.account1/provider/CRX/segment/Standard/account/33a18130-2681-11da-a265-4340e42a74c3/address/31347170-2684-11da-8586-87c3e1604b49/audit/3d3c6e00-2684-11da-8586-87c3e1604b49</identity>
- <owner>
  <_item>Standard:admin</_item>
  <_item>Standard:Administrators</_item>
  </owner>
- <owningGroup>
  <_item>xri:@openmdx:org.opencrx.security.identity1/provider/CRX/segment/Standard/subject/Administrators</_item>
  </owningGroup>
- <createdBy>
  <_item>admin-Standard</_item>
  </createdBy>
  <createdAt>2005-09-16T07:33:56.467Z</createdAt>
  <auditee>xri:@openmdx:org.opencrx.kernel.account1/provider/CRX/segment/Standard/account/33a18130-2681-11da-a265-4340e42a74c3/address/31347170-2684-11da-8586-87c3e1604b49</auditee>
  <accessLevelBrowse>3</accessLevelBrowse>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
  <unitOfWork>eeb5e477-2683-11da-8586-87c3e1604b49</unitOfWork>
  <accessLevelUpdate>0</accessLevelUpdate>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
  <accessLevelDelete>0</accessLevelDelete>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
  <modifiedAt>2005-09-16T07:33:56.467Z</modifiedAt>
  </_object>
  <_content />
  </org.opencrx.kernel.base.ObjectCreationAuditEntry>
  </audit>
  </_content>
  </org.opencrx.kernel.account1.PhoneNumber>
  </address>
- <audit>
- <org.opencrx.kernel.base.ObjectCreationAuditEntry id="fd6b7bd7-2680-11da-a265-4340e42a74c3">
- <_object>
  <owningUser>xri:@openmdx:org.opencrx.security.identity1/provider/CRX/segment/Standard/subject/admin</owningUser>
- <modifiedBy>
  <_item>admin-Standard</_item>
  </modifiedBy>
  <identity>xri:@openmdx:org.opencrx.kernel.account1/provider/CRX/segment/Standard/account/33a18130-2681-11da-a265-4340e42a74c3/audit/fd6b7bd7-2680-11da-a265-4340e42a74c3</identity>
- <owner>
  <_item>Standard:admin</_item>
  <_item>Standard:Administrators</_item>
  </owner>
- <owningGroup>
  <_item>xri:@openmdx:org.opencrx.security.identity1/provider/CRX/segment/Standard/subject/Administrators</_item>
  </owningGroup>
- <createdBy>
  <_item>admin-Standard</_item>
  </createdBy>
  <createdAt>2005-09-16T07:12:37.969Z</createdAt>
  <auditee>xri:@openmdx:org.opencrx.kernel.account1/provider/CRX/segment/Standard/account/33a18130-2681-11da-a265-4340e42a74c3</auditee>
  <accessLevelBrowse>3</accessLevelBrowse>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
  <unitOfWork>7cfa0da6-2680-11da-a265-4340e42a74c3</unitOfWork>
  <accessLevelUpdate>0</accessLevelUpdate>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
  <accessLevelDelete>0</accessLevelDelete>
- <!--  @see CodeValueContainer name="accessLevel"
  -->
  <modifiedAt>2005-09-16T07:12:37.969Z</modifiedAt>
  </_object>
  <_content />
  </org.opencrx.kernel.base.ObjectCreationAuditEntry>
  </audit>
  </_content>
  </org.opencrx.kernel.account1.Contact>
  </account>
  </_content>
  </org.opencrx.kernel.account1.Segment>
  </segment>
  </_content>
  </org.openmdx.base.Provider>
  </provider>
  </_content>
  </org.openmdx.base.Authority>
    “
在word中的VBA代码函数为
”  
Call ReplaceField("salutationCode$ShortText", getCodeValueText(xmlclean, "salutationCode", Val(getTagValue(contact, "salutationCode")), localeIdx, False), False)
  Call ReplaceField("lastName", getTagValue(contact, "lastName"), False)
  'primary mailing address
  ReDim usagefilter(0, 1)
  usagefilter(0, 0) = "usage"
  usagefilter(0, 1) = "300" 'primary
  mailingAddress = getObjList(getContent(xmlclean, "org.opencrx.kernel.account1.Contact"), "address", usagefilter, "postalStreet")
  Call ReplaceField("postalAddressLine", getTagMultiValueAsString(getTagValue(mailingAddress(0), "postalAddressLine"), itemTag), False)
  Call ReplaceField("postalStreet", getTagMultiValueAsString(getTagValue(mailingAddress(0), "postalStreet"), itemTag), False)
  Call ReplaceField("postalCity", getTagValue(mailingAddress(0), "postalCity"), False)
  Call ReplaceField("postalState", getTagValue(mailingAddress(0), "postalState"), False)
  Call ReplaceField("postalCode", getTagValue(mailingAddress(0), "postalCode"), False)
  Call ReplaceField("postalCountry$ShortText", getCodeValueText(xmlclean, "country", Val(getTagValue(mailingAddress(0), "postalCountry")), localeIdx, False), False)
  
  ReDim usagefilter(0, 1)
  usagefilter(0, 0) = "usage"
  usagefilter(0, 1) = "300" 'primary
  phoneNumber = getObjList(getContent(xmlclean, "org.opencrx.kernel.account1.Contact"), "address", usagefilter, "phoneNumberFull")
  Call ReplaceField("primaryPhone", getTagValue(phoneNumber(0), "phoneNumberFull"), False)

我想请大家看看该怎么调试?
W 3 C h i n a ( since 2003 ) 旗 下 站 点
苏ICP备05006046号《全国人大常委会关于维护互联网安全的决定》《计算机信息网络国际联网安全保护管理办法》
61.523ms