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

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

Привет всем, кто остался неравнодушным!
У меня проблема
Я заполняю dbgrid и мне нужно чтобы данные из него экспортировались в шаблон wordа,в соответствующие закладки, первую строку первого столбца вставить получилось(она выделена жирным цветом) а как вторую строку первого столбца вставить не знаю!
Пожалуйста помогите!!!!!!!!!!!
Кусочек кода:
pWord.Documents.Add('',False,0);
pWord.Documents.Add(xFileName, False, 0);

pWord.ActiveDocument.Bookmarks.Item('Закладка1').Range.Text :=Form1.DBGrid5.Fields[1].AsString;

pWord.Selection.WholeStory;
pWord.Selection.Copy;
pWord.ActiveDocument.Close(SaveChanges:=wdDoNotSaveChanges);
pWord.Selection.EndKey(Unit:=wdStory);
pWord.Selection.Paste;

pWord.Visible:=True;
Записан
zubr
Гость
« Ответ #1 : 27-05-2009 14:48 » new

Смотри в сторону объекта Tables объектной модели Word. Что то типа:
pWord.ActiveDocument.Tables.Item(1).Cell(k, 1).Range.InsertBefore(Form1.DBGrid5.Fields[1].AsString);
Записан
Аринка
Гость
« Ответ #2 : 27-05-2009 15:12 » 

так получается мы опять указываем только fields(1 строка 1 столбца), а как же 2-ая строка первого столбца? 
Записан
zubr
Гость
« Ответ #3 : 28-05-2009 06:06 » 

Хмм.. а на фига данные таблицы вытягивать из DBGrid (это же не StringGrid). Данные надо вытягивать из БД, а не из компонента отображающего таблицу БД. Что то типа такого:
Код:
Table1.First;
  for i := 1 to Table1.RecordCount do
  begin
    for j := 0 to Table1.FieldCount - 1 do
    pWord.ActiveDocument.Tables.Item(1).Cell(j + 1, i).Range.InsertBefore(Table1.Fields[j].AsString);
    Table1.Next;
  end;
Записан
Аринка
Гость
« Ответ #4 : 28-05-2009 10:33 » 

Всем СПАСИБО! Разобралась!!!!!!!!!!!!!!!!!!!!!!!!!!!! Внимание! Говорит и показывает...
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines