Может, сделать немного иначе:
- при экспорте AC вставляет во все XML файлы ссылку на "default.xsl"
- если такого файла в папке экспорта нет, то AC сохраняет под этим именем какой-то более-менее нормальный стандартный шаблон
Тогда пользователь может:
а) модифицировать эту "заготовку" под свои предпочтения
(причём, это автоматически применится ко всем экспортированным файлам в этой папке)
или б) легко изменить в конкретном файле ссылку на свой собственный "специальный" (для этого файла) шаблон
и в) сразу смотреть нормально оформленный результат экспорта, даже если ничего не понимает в XSL
===
Так же пришли в голову такие мысли:
- загрузка курсов валют из интернета - это ведь, по сути, тот же импорт - может, и сделать универсальные плагины импорта, а не отдельно "импорт", отдельно "курсы"?
- бэкапы тоже можно сохранять в XML формате
- да и для самой базы можно использовать "зазипованный" XML
хотя, наверное, это негативно скажется на скорости загрузки, надёжности и пр.
Экспорту - экспортово, отчетам - отчетово! :)
Dervish
07/07/2010 16:06
#
И все-таки, я убрал из кода экспорта генерацию ссылок на шаблон. В перспективе переработка отчетов, их можно будет сделать выгружаемыми в xml и там уже шаблоны будут прописаны. Кстати, была мысль еще выгружать отчеты в MS Word, но пока она только на уровне идеи.
===
Собственно, никто не запретит сделать плагин импорта, качающий информацию из интернета. Вот только, в мастере импорта настроек будет минимум касательно валют, а перегружать мастер импорта настройками по курсам не хотелось бы: будет очень напряжно проходить в мастере 10 шагов, чтоб добраться до самого импорта.
Сейчас я сделал уже экспорт данных в формат OpenOffice Calc, там документ как раз является xml-файликами в zip-архиве, так что мне довелось "пощупать руками" эту технологию. И вот что могу сказать по итогам:
1. Огромная экономия места. ZIP сжимает файлы очень эффективно, в итоге выгруженные данные в разы меньше самого файла данных. Производит впечатление.
2. Запись xml в zip-архив работает намного медленнее, чем нынешнее сохранение файла данных. И это очень грустно, потому что мысли перейти на новый формат файла (xml+zip) уже появились, но пока неясно что делать со скоростью.
3. Насчет надежности сказать ничего не могу, по ощущениям, не должно быть менее надежно чем сейчас. К тому же, с учетом количества программ, хранящих данные в xml+zip, не думаю что будут какие-то проблемы. Если уж даже MS Office переходит на этот формат...
В общем, меня смущает только скорость обработки.
Про новый формат
Дим(м)
08/07/2010 19:19
#
Честно говоря, если говорить о выборе нового формата, то я бы, наверное, смотрел в сторону SQLite, а не "XML внутри ZIP".
Хотя, вообще странно, что так падает скорость. Я подозреваю, это, по большей части, из-за XML, а не ZIP. Если уж так хочется экономии места, можно попробовать сжимать/разжимать ZIP-ом теперешний формат.
Вообще, если говорить о контейнерах, то и шифрование стоило бы пересмотреть.
А насчёт надёжности я имел в виду, что теперешний файл ведь сохраняется по частям? Потому, например, и фрагментация возникает при удалении записей, как я понимаю.
А "XML внутри ZIP" каждый раз будет перезаписываться полностью. Соответственно, если что-то пошло не так, потеряются все данные, а не отдельные записи.
Ну, может быть насчет...
Dervish
09/07/2010 15:02
#
...скорости я погорячился. Сейчас трудновато сравнивать потому что DOM-дерево мне приходится строить заново перед экспортом. В реализации файла данных на DOM все объекты будут создаваться во время работы программы и, возможно, это несколько ускорит процесс. Кроме того, можно будет попробовать изменить степень сжатия zip, это тоже может оказать положительное влияние. В общем, пока не будем загадывать.
Если выбирать между SQLite и zip+xml, то мне больше нравится zip и вот почему:
1. Я пока не представляю как можно реализовать многоуровневый undo/redo на SQLite.
2. Сейчас весь код работает на контейнерах STL и если переводить на SQL, то переделки коснутся практически всего кода программы, переделывать придется все. Если же переключиться на ZIP+XML, то изменятся лишь алгоритмы чтения/записи данных.
В любом случае, я не думаю что смена формата, это задача, которой нужно заниматься сейчас.
А что делать человеку, который...
M
12/07/2010 13:33
#
А что делать человеку, который по полным сырым данным формирует себе тот отчёт который не предусмотрен и ни когда не будет предусмотрен? Всё время должен подставлять шаблон руками? Например суммарную калорийность купленных продуктов...