Во-первых, этот вопрос требует немного введения, поэтому, пожалуйста, несите меня.Salesforce, потребляющее XML и отображаемые данные в отчете Visualforce
Высокий уровень - это то, что я подключаюсь к внешней веб-службе, которая вернет некоторый XML в мой контроллер вершины. Идея состоит в том, что я хочу отобразить 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, так как тогда мне также приходится иметь дело с стилями и выравниванием и т. Д. Спасибо.
Вы поднимаете очень хороший вопрос. У моей коллеги есть аналогичная проблема, и я полностью в тупике. Надеюсь, кто-то придумает решение. – luckytaxi