Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: перенос данных из БД в word  (Прочитано 7134 раз)
0 Пользователей и 1 Гость смотрят эту тему.
grigo
Гость
« : 13-07-2010 04:47 » 

Как заносить в Word текст это понятно:
Код:
const wdReplaceAll=2;
var   W :variant;
      dir_: string;
begin
     //  Перевод данных в Word
 W:=CreateOleObject ('Word.Application');

   GetDir(0,dir_);
   if not OpenDialog1.Execute then begin chdir(dir_);
     exit;
     end;
        chdir(dir_);
          W.Documents.Add(OpenDialog1.FileName);
             W.Visible:=CheckBox1.Checked;
              // W.documents.Add(ExtractFileDir(Application.ExeName)+'\Шаблон заключения.dot\');
      W.Selection.Find.Text:='###дата&';
      W.Selection.Find.Replacement.Text:=DM_ORND.dset_REC_Find.FieldByName('REC_OLD_DATE').AsString;
      W.Selection.Find.Execute(Replace:=wdReplaceAll);

      W.Selection.Find.Text:='###описание&';
      W.Selection.Find.Replacement.Text:=DM_ORND.dset_REC_Find.FieldByName('REC_OLD_DES').AsString;
      W.Selection.Find.Execute(Replace:=wdReplaceAll);
Проблема вот в чем! При занесении данных из DM_ORND.dset_REC_Find.FieldByName('REC_OLD_DES').AsString на место ###описание& выдает ошибку, что слишком длинная строка. С короткими строками работает запросто, а вот с длинной не хочет(ок.2000 символов).Как можно исправить эту ошибку?
Работаю с Delphi7, firebird.
  Я зол!
Записан
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #1 : 13-07-2010 07:05 » 

Это проблема ворда - не может у него текст замены превышать 256 символов.

В инете есть хорошая идея:
Цитата
Trick is you need to split the big string and put new search string at the end so that next part will replace that and so on.......
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
HandKot
Молодой специалист

ru
Offline Offline

« Ответ #2 : 14-07-2010 08:32 » 

в ворде есть такое средство как "Слияние"
может его прикрутить?
так же есть понятия как "поля"

ИМХО использование REPLACE самый худший вариант
Записан

I Have Nine Lives You Have One Only
THINK!
x77
Модератор

ro
Offline Offline
Пол: Мужской
меняю стакан шмали на обратный билет с Марса.


« Ответ #3 : 16-07-2010 13:32 » 

а зачем заменять? находите нужный текст, убиваете, и пишите его заново.
Записан

Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines