Mac OS X: объединение из базы данных - PullRequest
0 голосов
/ 17 февраля 2010

Я бы хотел, чтобы несколько пользовательских полей из (серверной) базы данных были объединены в документы Word Processing, помимо обычных полей "mail merge". Я не нахожу ничего подобного API из коробки, который позволяет вам делать это для пользовательских полей. Похоже, что это будет довольно распространенным явлением в бизнес-программах, но я предполагаю, что это еще одна причина, по которой Mac не преуспевает там.

Если бы я написал для этого приложение для Mac OS X / Objective-C / Cocoa, лучшим ли способом было бы найти и заменить строки в файле RTF? Может быть, в сыром RTF? Есть ли лучший способ или формат для работы с этим?

Ответы [ 2 ]

0 голосов
/ 18 февраля 2010

Возможно, вы захотите проверить MGTemplateEngine Мэтта Джеммелла, так как это может звучать так, как вы ищете.

0 голосов
/ 17 февраля 2010

если нет специального "API слияния почты", это не недоброжелатель - он должен быть слишком конкретным, чтобы быть достаточно полезным, чтобы быть API. Если подумать об этом более подробно, то нет достаточно абстрактного случая, чтобы оправдать выделенный встроенный API. Большинство людей хотят «объединить записи из базы данных MySQL в документ Word» или «объединить записи из базы данных Oracle в документ PDF».

Все строительные блоки существуют для его построения, и все относительно просто (псевдокод):

retrieve interesting records

for each record

  load a new copy of template

  replace strings

  save modified template to a file or do whatever

  next record

Некоторые баллы:

  1. Какао изначально читает и записывает RTF / RTFD и Word Doc. Вы найдете эту информацию в текстовой системной документации.
  2. «Чтение полей из базы данных» является очень общим. Если у вас еще нет возможности подключения к базе данных (т. Е. У вас уже есть данные слияния), вам нужно быть более точным в отношении базы данных (то есть того, что вы пытались, если что-нибудь).
  3. Если у вас есть данные и шаблон документа, «слияние по почте» - это просто замена строки токена (например, $$! FIRSTNAME! $$ или другая смешная уникальная комбинация). Это легко сделать с помощью встроенных функций NSMutableString и цикла for.
  4. Существуют платформы RegEx, если вам нужно что-то более сложное в отношении # 3.
...