Salesforce использует XML и отображает данные в отчете Visualforce - PullRequest
1 голос
/ 05 ноября 2010

Во-первых, этот вопрос требует небольшого введения, поэтому, пожалуйста, потерпите меня.

Высоким уровнем является то, что я подключаюсь к внешнему веб-сервису, который вернет некоторый XML на мой контроллер apex.Идея состоит в том, что я хочу отобразить возвращенный XML-файл в хорошем табличном формате на странице VisualForce.Формат возвращающегося XML будет выглядеть примерно так:

<Wrapper><reportTable name='table_id' title='Report Title'>
  <row>
    <Element1><![CDATA[campaign_id]]></Element1>
    <Element2><![CDATA[577373]]></Element2>
    <Element3><![CDATA[4129]]></Element3>
    <Element4 dataFormat='2' dataSuffix='%'><![CDATA[0.7151]]></Element4>
    <Element5><![CDATA[2010-04-04]]></Element5>
    <Element6><![CDATA[2010-05-03]]></Element6>
  </row>
</reportTable>

...

В настоящее время я использую служебный класс XMLdom (разработанный SF для функций XML) для отображенияэти данные в пользовательский объект «reportTable», который содержит список «строк» ​​пользовательских объектов.Причина, по которой я строю это таким образом, заключается в том, что я не знаю, сколько элементов будет в каждой строке, ни количество строк.

Страница Visualforce выглядит примерно так:

<table><apex:repeat value="{!reportTables}" var="table">
  <apex:repeat value="{!table.rows}" var="row">
  <tr>
   <apex:repeat value="{!row.ColumnValue}" var="column">
    <apex:repeat value="{!column}" var="value">
     <td>
     <apex:outputText value="{!value}" />
     </td>
    </apex:repeat>
   </apex:repeat>
   </tr>
  </apex:repeat>

Вопросы:

1) Похоже ли это на хороший подход к проблеме?

2) Существует ли более простой / лучший способ потребленияXML помимо написания моих собственных пользовательских объектов для сопоставления VF с?

Открыт для любых предложений.Я действительно надеюсь, что есть более эффективный способ, чем создание самой таблицы HTML, так как тогда мне также придется иметь дело со стилем, выравниванием и т. Д. Спасибо.

1 Ответ

1 голос
/ 06 ноября 2010

Поскольку вы возвращаете XML непосредственно в контроллер, определите и используйте класс-оболочку со свойствами (даже дополнительными коллекциями для неопределенной длины строк) для каждого необходимого узла XML.Часто это необходимо для отображения табличных данных по нескольким объектам.Коллекция ваших объектов-оболочек позволит вам перебирать их и использовать точечные обозначения для доступа к полям в классе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...