Я работал над веб-сервером, который создает данные XML для использования в FusionCharts.После нескольких дней безуспешных попыток придумать стандартизированную объектную структуру в Delphi, чтобы обернуть производство XML для этих диаграмм, я решил посмотреть, не сделал ли это кто-то уже.
Что я пытаюсьдля этого нужно создать в Delphi объектную структуру, которая включает функциональность, необходимую для создания XML-данных для FusionCharts.Существует 42 возможных типа диаграмм, для каждой из которых требуется немного другая структура XML.Структура объекта, которую я начал строить, просто оборачивает возможность задавать общие свойства одной из таких диаграмм и генерировать данные XML на лету на основе этих свойств.Разумеется, он также состоит из обработки нескольких наборов данных, каждый из которых используется для отдельной серии в диаграмме.Есть также несколько странных диаграмм с комбинацией возможных наборов данных, в которых я заблудился, пытаясь реализовать эту структуру.
Я быстро понял, что это огромная задача, и хотел бы посмотреть,кто-то уже сделал такую вещь.Я знаю, что есть библиотека VCL для отображения FusionCharts в приложении, но это не то, что мне нужно.Мне просто нужно создать XML-данные для последующей передачи через веб-сервер HTTP-клиенту.
Это уже сделано?Если нет, то какие-либо советы или указатели о том, как этого добиться?Я собирался сделать один единственный объект с именем TFusionChart
и обернуть все внутри него (со свойством ChartType
), но есть 42 возможных графика, и это будет огромный беспорядок.Я также могу создать 42 различных объекта, по одному для каждой диаграммы, но это будет иметь избыточный код.
PS - Я готов создать Баунти за этот вопрос, это довольно важно.
ОБНОВЛЕНИЕ
Просто, чтобы немного объяснить существующую мою структуру, у меня есть один базовый компонент под названием TFusionChart
.Этот класс содержит все, что есть у всех графиков, включая названия категорий, заголовок, фон и т. Д. Ни один из реальных графиков не основан на этом.Из этого класса у меня тогда есть TFusionChart2D
и TFusionChart3D
.Тогда у меня есть еще 4, называемые TFusionChartSingle2D
, TFusionChartMulti2D
, TFusionChartSingle3D
и TFusionChartMulti3D
.Из этих 4 классов я начинаю создавать фактические компоненты диаграммы.Я планирую иметь компонент для каждой из доступных диаграмм.
Проблема, с которой я сталкиваюсь, заключается в путанице в том, как управлять данными, которые будут содержаться.Например, некоторые диаграммы могут иметь комбинацию из одной: несколько рядов в столбцах, ряд линий и данные в столбцах.Одна эта диаграмма могла бы иметь уникальный способ хранения своих данных, который трудно использовать с другими типами диаграмм, например, с простой столбчатой диаграммой из одной серии.
Я опробовал возможности привязки данных XML какописано в ответе ниже, но это было слишком массивное решение, от которого я отказался.Опять же из-за того, что существует 42 вида графиков.Каждая диаграмма будет означать несколько тысяч строк кода.