Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Прочее";
Текущий архив: 2011.05.29;
Скачать: [xml.tar.bz2];

Вниз

Управление и слежением за Word / Excel и другими редакторами   Найти похожие ветки 

 
bss   (2011-02-10 19:30) [0]

Такая задача - генератор отчетов делает и записывает .doc или .xls файл на диск. Далее он фактически делает что-то аля ShellExecute над этим файлом - соответственно, файл открывается в редакторе.

Не показывать отчет пользователю - нельзя.

Дело в том, что пользователь иногда что-то изменяет в документе, жмет сохранить, выходит из редактора... А в базе остается, естественно, старый отчет. Таким образом нужно как-то  отслеживать данный процесс..

Каким образом можно организовать данный процесс?

1) каким-то образом следить за файлом, при его изменении - сдергивать в базу. Но как узнать когда уже можно перестать следить?

Word, например, при запуске может отыскать свой предыдущий процесс и передать туда команду открыть файл.

А в общем случае и вообще откроется не Word, а другой ассоциированный редактор. Хорошо бы сделать универсально...

2) встроить OLE контейнер в форму дельфи и там отобразить MS Word / MS Excel. Тут просто - как закроется форма - так и актуализировать значение в базу.

Но тут хорошо бы отлавливать флаги, что документ был изменен, и отлавливать момент нажатия кнопки "Сохранить" (и точно также хорошо бы отключить пункт меню "Сохранить как...").

P.S. Если doc файл открывается MS Word"ом (как вариант - xls файл открывается MS Excel"ом), можно ли им отключить пункт меню "Сохранить как..." ?


 
Игорь Шевченко ©   (2011-02-10 19:32) [1]


> Такая задача - генератор отчетов делает и записывает .doc
> или .xls файл на диск



> А в базе остается, естественно, старый отчет


А как база с диском связана ?


> Но как узнать когда уже можно перестать следить?


ShellExecuteEx + WaitForSingleObject + GetProcessExitCode


 
oldman ©   (2011-02-10 21:20) [2]


> Не показывать отчет пользователю - нельзя.


показывать можно. разрешать менять - шиш!


 
XXL   (2011-02-10 22:11) [3]

Workbooks.Open "Filename", 0, True


 
TUser ©   (2011-02-11 08:10) [4]

СОМ


> ShellExecuteEx + WaitForSingleObject + GetProcessExitCode

А если у меня до того был открыт ворд/эксель? :-(


 
Dennis I. Komarov ©   (2011-02-11 09:23) [5]

Отчет, который пользователь изменил - подделка!
[2] +1


 
bss   (2011-02-11 11:45) [6]


> А как база с диском связана ?

отчет пишется в базу и пишется на диск, чтобы дать возможность Word/Excel его открыть. Дальше дело в том, что отчет могут изменить, а в базу это изменение уже не уйдет. Об этом топик - как бы такое побороть.


> ShellExecuteEx + WaitForSingleObject + GetProcessExitCode

я об этом писал:


> Word, например, при запуске может отыскать свой предыдущий
> процесс и передать туда команду открыть файл.

вот такой он гад ((


> показывать можно. разрешать менять - шиш!

это, к сожалению, не всегда так. Генератор отчетов, например, иногда генерирует типовые письма, которые человек вполне может поправить.


> Workbooks.Open "Filename", 0, True

это ты имеешь в виду, если открыть Word/Excel документ внутри формы дельфи как OLE? Для ReadOnly отчетов это верно, но дело в том, что некоторые отчеты реально можно править.


 
clickmaker ©   (2011-02-11 11:51) [7]

> Дальше дело в том, что отчет могут изменить, а в базу это
> изменение уже не уйдет. Об этом топик - как бы такое побороть.

FindFirstChangeNotification на файл отчета, при изменении сливать в базу


 
bss   (2011-02-11 12:24) [8]

хорошая функция - спасибо!

Но остается вопрос как понять когда заканчивать слежение ((


 
Anatoly Podgoretsky ©   (2011-02-11 13:22) [9]

> bss  (11.02.2011 11:45:06)  [6]

Зачем отчеты хранить, их надо просто выводить.


 
bss   (2011-02-11 13:44) [10]

>Anatoly Podgoretsky ©   (11.02.11 13:22) [9]

ваш пост очень важен для нас. Оставайтесь на связи.



Страницы: 1 вся ветка

Форум: "Прочее";
Текущий архив: 2011.05.29;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.004 c
4-1247595131
Muxa/Ibl4
2009-07-14 22:12
2011.05.29
Последовательный доступ к MMF


10-1173955127
ANikolay
2007-03-15 13:38
2011.05.29
Использование TidHTTP в OLE-объекте


15-1297411292
dmk
2011-02-11 11:01
2011.05.29
Backup файлов


1-1255352771
aeore
2009-10-12 17:06
2011.05.29
Распределение памяти ( Зависает send() )


2-1298018206
Scott Storch
2011-02-18 11:36
2011.05.29
процедурные ссылки





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский