Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Экспорт в MSWord 
:(
    Опции темы
Duster
Дата 27.2.2005, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 2.12.2004

Репутация: нет
Всего: нет



Из базы данных надо скинуть в Word записи, только таблицей, как они есть. Записи отфильтрованы. Все дело в том что я не знаю как создать таблицу.
И еще если можно, несколько примеров типа... с выравниванием по середине, и т.д.
PM MAIL WWW ICQ   Вверх
Borisff2003
Дата 28.2.2005, 06:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 26.2.2004
Где: г. Уфа

Репутация: нет
Всего: 1



В Ворде включи запись макроса, сделай, все что тебе необходимо руками, потом останови замись и посмотри код макроса (Alt + F11).
Потом в своей проге переделай это все в вызовы COM
--------------------
Лень, двигатель прогресса
PM MAIL WWW ICQ   Вверх
Duster
Дата 1.3.2005, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 2.12.2004

Репутация: нет
Всего: нет



Сложновато... может еще предложения есть smile
PM MAIL WWW ICQ   Вверх
Hroft
Дата 2.3.2005, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 310
Регистрация: 20.10.2003
Где: Москва

Репутация: 1
Всего: 3



СЛОЖНОВАТО????
Да я просто не знаюлучшего способа узнать, как сделать что-либо в VBA, а объектная модель ВБА - тот же COM. Вот на ВБА создается таблица и заполняется, и выравнивается, я даже не думал, поэтому не по координатам доступ, а относительно текущей позиции...
Код
   ActiveDocument.Tables.Add Range:=Selection.Range, NumRows:=2, NumColumns:= _
       5, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:= _
       wdAutoFitFixed
   Selection.MoveRight Unit:=wdCharacter, Count:=1
   Selection.TypeText Text:="d"
   Selection.MoveDown Unit:=wdLine, Count:=1
   Selection.TypeText Text:="w"
   Selection.MoveRight Unit:=wdCharacter, Count:=1
   Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
   Selection.TypeText Text:="rr"
   Selection.MoveDown Unit:=wdLine, Count:=1
   Selection.TypeText Text:="t"
   Selection.MoveRight Unit:=wdCharacter, Count:=2
   Selection.TypeText Text:="erfs"
   Selection.MoveLeft Unit:=wdCharacter, Count:=8, Extend:=wdExtend
   Selection.MoveUp Unit:=wdLine, Count:=1, Extend:=wdExtend
   Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
   Selection.Tables(1).Rows.Alignment = wdAlignRowCenter

PM MAIL ICQ   Вверх
Гость_Влад
Дата 2.3.2005, 11:19 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











>Потом в своей проге переделай это все в вызовы COM

Кусочек кода, если не трудно.
  Вверх
Borisff2003
Дата 2.3.2005, 11:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 198
Регистрация: 26.2.2004
Где: г. Уфа

Репутация: нет
Всего: 1



Пример взят из рабочей проги.
Сделано через Variant, хотя есть классы оболочки для Worda.
Тут подразумевается что в открываемом файле уже есть таблица

Код

Variant Word;
  Variant Document;
  Variant Doc;
  Variant Cell;
  TCHAR temp[MAX_PATH];
  int i;
  Word=Variant::CreateObject("Word.Application");
  Word.OlePropertySet("Visible",true);
  Doc=Word.OlePropertyGet("Documents");
  sprintf(temp,"%s\\База 3.7.doc",BasePath);
  Doc.OleProcedure("Open",temp,false,false,false,"","",false,"","",(int)wdOpenFormatAuto);
  Doc=Word.OlePropertyGet("ActiveDocument");
  //
  Variant Table=Doc.OlePropertyGet("Tables").OleFunction("Item",1);

  //Заполнение минут
  for(i=0;i<6;i++){
     Table.OleFunction("Cell",i,3).OleProcedure("Select");
     Cell=Word.OlePropertyGet("Selection");
     d=(float)Summ[i]/1000;
     sprintf(temp,"%10.3f",d);
     Cell.OleProcedure("TypeText",temp);
  }


  sprintf(temp,"%s\\Табл.3.7_test.doc",TablePath);
  Doc.OleProcedure("SaveAs",temp,(int) wdOpenFormatDocument,false,"",false,"",false,false,false,false,false);


  Word.OleProcedure("Quit");




Это сообщение отредактировал(а) Borisff2003 - 2.3.2005, 11:28
--------------------
Лень, двигатель прогресса
PM MAIL WWW ICQ   Вверх
Duster
Дата 7.3.2005, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 53
Регистрация: 2.12.2004

Репутация: нет
Всего: нет



Сам разобрался! Если кому интересно вот линк



Это сообщение отредактировал(а) Duster - 28.6.2005, 17:48
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.3331 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.