Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: ActiveX/СОМ/CORBA > Экспорт данных из DBGrid в word


Автор: Аринка 27.5.2009, 17:35
Привет всем, кто остался неравнодушным!
У меня проблема 
Я заполняю 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;

Автор: Данкинг 27.5.2009, 18:49
Из DBGrid'а данные экспортировать нельзя, говорю это уже в n-й раз. smile Экспортировать можно из набора данных, который к этому гриду подключён.

Цитата(Аринка @  27.5.2009,  18:35 Найти цитируемый пост)
а как вторую строку первого столбца вставить не знаю!

Встать на эту вторую строку в датасете. Т.е., в общем случае,
Код

DataSet.Recno:=2;

А вообще, подобное (т.е. экспорт всей таблицы) делается в цикле.

Автор: Akella 27.5.2009, 22:46
Цитата(Аринка @  27.5.2009,  17:35 Найти цитируемый пост)
Кусочек кода:


рекомендую к прочтению smile 
http://forum.vingrad.ru/forum/topic-126445.html
http://forum.vingrad.ru/forum/topic-237714.html

Добавлено через 9 минут и 4 секунды
Цитата(Аринка @  27.5.2009,  17:35 Найти цитируемый пост)
а как вторую строку первого столбца вставить не знаю!

Ты циклы изучала? Нет, нет... те циклы, которые в программировании.

Нужно сделать цикл по набору данных. 
Пример.
Код

Form1.DBGrid5.DataSource.Dataset.first;//переходим на первую запись
while not Form1.DBGrid5.DataSource.Dataset.eof do//пока не будет конец файла..... цикл будет обрабатывать поочерёдно каждую запись
  begin
//pWord.ActiveDocument.Bookmarks.Item('Закладка1').Range.Text - что нужно здесь подставлять - я не знаю.....
//поэтому копирую как есть


//присваиваем значение нужного поля.
     pWord.ActiveDocument.Bookmarks.Item('Закладка1').Range.Text := Form1.DBGrid5.DataSource.Dataset.FieldByName('Имя поля').AsString;

     Form1.DBGrid5.DataSource.Dataset.next;//следующая запись
  enf;


Настрой себя на то, что DBGrid предназначен для отображения данных, а оперировать нужно с набором данных. Под набором данных я имею ввиду компоненту: TTable, TQuery, TIBDataSet, TAdoCommand, TAdoQuery, как многие говорят - датасет.

Добавлено через 11 минут и 17 секунд
Цитата(Аринка @  27.5.2009,  17:35 Найти цитируемый пост)
Пожалуйста помогите!!!!!!!!!!!

и не нужно кричать  smile 

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)