Я плохо в этом понимаю... Данные полученные из запроса отображаются в DBGrid. Нужно эти данные (таблица) импортировать в word. Как это сделать? Помогите пожалуйста![]()
Я плохо в этом понимаю... Данные полученные из запроса отображаются в DBGrid. Нужно эти данные (таблица) импортировать в word. Как это сделать? Помогите пожалуйста![]()
procedure TfrmMain.GoToWord(Sender: TObject);
var
W, Table: Variant;
i, j: Integer;
begin
W := CreateOleObject('Word.Application');
W.Documents.Add;
W.ActiveDocument.Tables.Add(W.ActiveDocument.Range ,
dbgrMain.DataSource.DataSet.RecordCount, dbgrMain.DataSource.DataSet.FieldCount);
Table := W.ActiveDocument.Tables.Item(1);
Table.Style := 'Сетка таблицы';
dbgrMain.DataSource.DataSet.First;
for i := 0 to dbgrMain.DataSource.DataSet.RecordCount-1 do
begin
for j := 0 to dbgrMain.DataSource.DataSet.FieldCount - 1 do
Table.Cell(i+1,j+1).Range.InsertBefore(dbgrMain.Da taSource.DataSet.Fields[j].AsString);
dbgrMain.DataSource.DataSet.Next;
end;
Предвижу следующий вопрос от ТС, типа
"Спасибо, я все сделал как написано, но теперь она ругается на dbgrMain. Что это такое? Помогите!"![]()
а какие компоненты на форму надо покласть?Сообщение от xyyx
Компоненты на форму не кладут, их создают в коде.Сообщение от Top-0
Всегда ваш К.О.
Вот за это и не люблю делфи. Потому что народ ваще не понимает что делает
http://i41.tinypic.com/mio8x.jpg
[COLOR=#000000][FONT=Trebuchet MS]Остаться честным. К ро
а куда весь этот код вставлять понять не могу...?Сообщение от alamer
procedure TfrmMain.GoToWord(Sender: TObject);
var
W, Table: Variant;
i, j: Integer;
begin
W := CreateOleObject('Word.Application');
W.Documents.Add;
W.ActiveDocument.Tables.Add(W.ActiveDocument.Range ,
dbgrMain.DataSource.DataSet.RecordCount, dbgrMain.DataSource.DataSet.FieldCount);
Table := W.ActiveDocument.Tables.Item(1);
Table.Style := 'Сетка таблицы';
dbgrMain.DataSource.DataSet.First;
for i := 0 to dbgrMain.DataSource.DataSet.RecordCount-1 do
begin
for j := 0 to dbgrMain.Columns.Count - 1 do //перебирать колонки грида а не дата сета
Table.Cell(i+1,j+1).Range.InsertBefore(dbgrMain.Co lumns[j].Field.AsString);
dbgrMain.DataSource.DataSet.Next;
end;
W.Visible := True;
end;
Мне, видавшему Делфи лет эдак 7 назад, и то немного понятно по коду. Если ТС хочет полное решение, написав название лабы, то звиняйте
бугага. Чего непонятно то?
берем форму, называем её frmMain
На нее бросаем грид, называем его dbgrMain
К нему уже привязываем датасет через датасоурс. Имена произвольные.
Метод GoToWord помещаем в обработчик Button.Click, к примеру.
Насчет народа, непонимающего что делает, согласен. Но дельфяк тут ни причем. РАД на дельфях кайфовый, отладчик отменный, можно серьезный софт генерить.
Можно, но в институте приходилось на Builder делать, что имхо тоже самое, тока синтаксис иной да функции свои. Тогда было интересно, сейчас программить совсем лень. И самое, что нравилось, в билдере экзешник в разы меньше дельфовского.Сообщение от vladk1973
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)