Модераторы: MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Редактирование документа Word 
V
    Опции темы
former
Дата 1.9.2010, 15:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

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



Есть база данных договоров. Информация о договорах сохраняется в БД, а сами файлы договоров (.doc, .rtf) генерируются на машинах пользователей и загружаются по FTP.
Иногда договоры требуют редактирования. В этом случае файл загружается на машину пользователя с FTP. И тут возникает вопрос.
Каким образом лучше всего выполнять редактирование?
Думал о следующих вариантах:
- использовать RichEdit или более продвинутый аналог (не совсем удобен в плане редактирования таблиц)
- OleContainer (тормозит и глючит) 
- открывать в Word (но тут проблемы с загрузкой нового файла на сервер после редактирования)

Какие будут рекомендации, замечания, варианты реализации? Может у кого-нибудь есть опыт?


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Albinos_x
Дата 1.9.2010, 15:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



Вам скорее вот в этот раздел:
Delphi: ActiveX/СОМ/CORBA

Цитата(former @  1.9.2010,  15:15 Найти цитируемый пост)
- открывать в Word (но тут проблемы с загрузкой нового файла на сервер после редактирования)

почему так решили?


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
former
Дата 1.9.2010, 16:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

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



Цитата(Albinos_x @  1.9.2010,  15:59 Найти цитируемый пост)
почему так решили? 

Albinos_x, я тоже склонен к этому варианту. Но...
Предположим, что открыто несколько документов в Word. Загружаем файл с сервера, открываем для редактирования. Выполнили редактирование, сохраняем и закрываем документ. Теперь файл необходимо отправить на сервер. Возникает вопрос: Как определить, что отредактированный файл закрыт после сохранения и может быть отправлен на сервер?


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Albinos_x
Дата 1.9.2010, 16:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



Цитата(former @  1.9.2010,  16:35 Найти цитируемый пост)
Возникает вопрос: Как определить, что отредактированный файл закрыт после сохранения и может быть отправлен на сервер? 

один из примеров как определить закончена работа с документом или нет


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
former
Дата 1.9.2010, 16:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

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



О! А я только что изучал его! Буду смотреть.

Добавлено @ 17:09
К сожалению, не смог найти в Delphi 2009 WordApplication. Может плохо искал?

Понял. Болван.smile)

Это сообщение отредактировал(а) former - 1.9.2010, 17:17


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
former
Дата 1.9.2010, 19:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

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



Спасибо. Разобрался. Одно не пойму. Почему Word открывается на заднем плане?


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Albinos_x
Дата 3.9.2010, 11:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



Цитата(former @  1.9.2010,  19:03 Найти цитируемый пост)
Почему Word открывается на заднем плане? 
а тебе нужно именно на переднем? перемести окно в нужную позицию...


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
former
Дата 3.9.2010, 19:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

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



Цитата(Albinos_x @  3.9.2010,  11:33 Найти цитируемый пост)
а тебе нужно именно на переднем?

Именно.
Цитата(Albinos_x @  3.9.2010,  11:33 Найти цитируемый пост)
перемести окно в нужную позицию... 

???


--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Albinos_x
Дата 6.9.2010, 15:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



можно попробовать что вроде:
Код

WordDoc.ActiveWindow.SetFocus;

или с помощью команды SetWindowPos(...)



--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
former
Дата 8.9.2010, 20:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


MEMS Expert
***


Профиль
Группа: Завсегдатай
Сообщений: 1166
Регистрация: 1.3.2006
Где: Россия

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



Вопрос решил так:
Код

uses Shellapi
...
function TForm1.StartAssociatedExe(FileName: string; var ErrorCode: Cardinal): Boolean;
var Prg: string;
    ProcessInfo: TProcessInformation;
    StartupInfo: TStartupInfo;
begin
  SetLength(Prg, MAX_PATH);
  Result := False;
  ErrorCode := FindExecutable(PChar(FileName), nil, PChar(Prg));
  if ErrorCode >= 32 then
  begin
    SetLength(Prg, StrLen(PChar(Prg)));
    FillChar(StartupInfo, SizeOf(TStartupInfo), 0);
    with StartupInfo do
    begin
      cb := SizeOf(TStartupInfo);
      wShowWindow := SW_SHOW;
    end;
    if CreateProcess(nil, PChar(Format('%s %s', [Prg, FileName])),
      nil, nil, False, NORMAL_PRIORITY_CLASS, nil, nil, StartupInfo, ProcessInfo) then
    begin
      WaitForSingleObject(ProcessInfo.hProcess, INFINITE);
      GetExitCodeProcess(ProcessInfo.hProcess, ErrorCode);
      CloseHandle(ProcessInfo.hProcess);
      CloseHandle(ProcessInfo.hThread);
      Result := True;
    end
    else
      ErrorCode := GetLastError;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var ErrorCode: Cardinal;
begin
  if StartAssociatedExe(ExtractFilePath(ParamStr(0))+'01.doc', ErrorCode) then
   ShowMessage('Отредактирован!');
end;



--------------------
Достаточно снизить уровень мышления, чтобы иные почувствовали почву под ногами.
PM MAIL   Вверх
Albinos_x
Дата 9.9.2010, 13:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Evil Skynet
****


Профиль
Группа: Комодератор
Сообщений: 3288
Регистрация: 28.5.2004
Где: X-6120400 Y-1 4624650

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



вообще странно... проверял... у меня и так он поверх открывается...

Это сообщение отредактировал(а) Albinos_x - 9.9.2010, 13:41


--------------------
"Кто владеет информацией, тот владеет миром"    
Уинстон Черчилль
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: ActiveX/СОМ/CORBA"

Rrader
Girder

Запрещено:

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

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


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

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

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: ActiveX/СОМ/CORBA | Следующая тема »


 




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


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

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