"Премиум"
Страница 1 из 2 12 ПоследняяПоследняя
Показано с 1 по 10 из 12

Тема: Помогите с Delphi

  1. #1

    Регистрация
    21.09.2010
    Сообщений
    312
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз

    Помогите с Delphi

    Я плохо в этом понимаю... Данные полученные из запроса отображаются в DBGrid. Нужно эти данные (таблица) импортировать в word. Как это сделать? Помогите пожалуйста

  2. #2

    Регистрация
    03.09.2009
    Сообщений
    813
    Сказал(а) спасибо
    0
    Поблагодарили 4 раз
    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;

  3. #3

    Регистрация
    29.04.2010
    Адрес
    Иркутск
    Сообщений
    97
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз
    Предвижу следующий вопрос от ТС, типа
    "Спасибо, я все сделал как написано, но теперь она ругается на dbgrMain. Что это такое? Помогите!"

  4. #4

    Регистрация
    21.09.2010
    Сообщений
    312
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз
    Цитата Сообщение от xyyx
    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;
    а какие компоненты на форму надо покласть?

  5. #5
    Аватар для alamer
    Регистрация
    06.10.2007
    Сообщений
    1,930
    Сказал(а) спасибо
    0
    Поблагодарили 4 раз
    Цитата Сообщение от Top-0
    Цитата Сообщение от xyyx
    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;
    а какие компоненты на форму надо покласть?
    Компоненты на форму не кладут, их создают в коде.
    Всегда ваш К.О.
    Вот за это и не люблю делфи. Потому что народ ваще не понимает что делает
    http://i41.tinypic.com/mio8x.jpg
    [COLOR=#000000][FONT=Trebuchet MS]Остаться честным. К ро

  6. #6

    Регистрация
    21.09.2010
    Сообщений
    312
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз
    Цитата Сообщение от alamer
    Цитата Сообщение от Top-0
    Цитата Сообщение от xyyx
    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;
    а какие компоненты на форму надо покласть?
    Компоненты на форму не кладут, их создают в коде.
    Всегда ваш К.О.
    Вот за это и не люблю делфи. Потому что народ ваще не понимает что делает
    а куда весь этот код вставлять понять не могу...?

  7. #7

    Регистрация
    03.09.2009
    Сообщений
    813
    Сказал(а) спасибо
    0
    Поблагодарили 4 раз
    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;

  8. #8

    Регистрация
    03.09.2009
    Сообщений
    813
    Сказал(а) спасибо
    0
    Поблагодарили 4 раз
    Мне, видавшему Делфи лет эдак 7 назад, и то немного понятно по коду. Если ТС хочет полное решение, написав название лабы, то звиняйте

  9. #9

    Регистрация
    29.04.2010
    Адрес
    Иркутск
    Сообщений
    97
    Сказал(а) спасибо
    0
    Поблагодарили 0 раз
    бугага. Чего непонятно то?
    берем форму, называем её frmMain
    На нее бросаем грид, называем его dbgrMain
    К нему уже привязываем датасет через датасоурс. Имена произвольные.
    Метод GoToWord помещаем в обработчик Button.Click, к примеру.

    Насчет народа, непонимающего что делает, согласен. Но дельфяк тут ни причем. РАД на дельфях кайфовый, отладчик отменный, можно серьезный софт генерить.

  10. #10

    Регистрация
    03.09.2009
    Сообщений
    813
    Сказал(а) спасибо
    0
    Поблагодарили 4 раз
    Цитата Сообщение от vladk1973
    бугага. Чего непонятно то?
    берем форму, называем её frmMain
    На нее бросаем грид, называем его dbgrMain
    К нему уже привязываем датасет через датасоурс. Имена произвольные.
    Метод GoToWord помещаем в обработчик Button.Click, к примеру.

    Насчет народа, непонимающего что делает, согласен. Но дельфяк тут ни причем. РАД на дельфях кайфовый, отладчик отменный, можно серьезный софт генерить.
    Можно, но в институте приходилось на Builder делать, что имхо тоже самое, тока синтаксис иной да функции свои. Тогда было интересно, сейчас программить совсем лень. И самое, что нравилось, в билдере экзешник в разы меньше дельфовского.

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
-->