Странный глюк

  • Автор темы FEDAZzZ
  • Дата начала
F

FEDAZzZ

#1
Есть небольшая база, самая простая форма в поле которой храниться несколько аттачментов. Доступ у всех к базе как Editor.

А теперь есть пару вопросов:

1) Почему если у меня как у создателя базы (права Maneger) при нажатии Edit файл редактируется и при сохранении, видны его изменения.
если же ту же операцию проводит пользователь базы, файл не сохранятеся.... Изменения не отображаются - это только у одного пользователя? Это глюк Лотуса?


2) Как сделать так что бы по нажатию какого-нибудь баттона или например акшина вложеный файл открывался на редоктирование, а при закрытии файла, сохранялся приаттаченным в поле документа. На сколько я понимаю, такая проблема рассматривалась при работе с версиями 4 и ниже, когда не было кнопки Edit, искал на форуме этот алгоритм, но так и не нашел... Может кто подскажет, где видели, а может у кого опыта побольше и сам это делал :)
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 598
275
#2
1 - может юзверь делает сэйв-аз (глюк в голове), но причин может быть и больше :)
2 - а зачем (принципиально - можно, но имеются особенности), код есть на форуме интертраста
 
F

FEDAZzZ

#3
1. Первая проблема решилась перерустановкой клиента... Похоже программно, какая-то ошибка

2. Да говорят не удобно, бояться перепутать кнопки Edit и Open, когда не сохраняется файл в документе....

Сумел сделать только через :
Set WShell = CreateObject("WScript.Shell")
ReturnCode = WShell.Run("""" +strTempPath + "\" + vPrompt+"""", 1, True)

не удобно чуток из-за того что пользователю нельзя открывать другие Excel......
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 598
275
#4
двойной клик по файлу - откроет диалоговое окошко, там трудно спутать :)
 
F

FEDAZzZ

#5
двойной клик по файлу - откроет диалоговое окошко, там трудно спутать ;)

Мне тоже кажется перепутать Edit и Open не возможно...а умудряються :huh: .... а лотус еще как назло никаких предупреждений что файл не будет заменен не дает... а пользователи потом спрашивают почему фйл не поменялся :)

по-этому и возникла эта задачка...
 
K

kilcher

#6
Неужели никак нельзя сделать чтобы можно было открывать несколько файлов(ворда или екселя)? У меня та же проблема. Если файлы в ворде уже открыты,пользователь нажимает на кнопку редактировать(написано мною) редактирует,потом документ вобще исчезает! Т.е. объект не найден! :D Сил нет уже бороться :) Им необходимо,чтобы было открыто несколько документов
 

hosm

* so what *
18.05.2009
2 442
6
#7
Неужели никак нельзя сделать чтобы можно было открывать несколько файлов(ворда или екселя)?
Ну можно же несколько открывать! Следите, куда выкладываете вложение перед открытием (откуда документ открылся) и кто и когда документ прибивает при таинственном исчезновении.
Если с одинаковым именем вложения глюки - чем не подойдет вариант самим выкладывать файл в отдельный каталог или с уникальным именем (использовать время создания файла, например)?
Ну, а потом, естественно, самим оттуда затягивать его обратно в лотус ;)
 
K

kilcher

#8
Ну можно же несколько открывать! Следите, куда выкладываете вложение перед открытием (откуда документ открылся) и кто и когда документ прибивает при таинственном исчезновении.
Если с одинаковым именем вложения глюки - чем не подойдет вариант самим выкладывать файл в отдельный каталог или с уникальным именем (использовать время создания файла, например)?
Ну, а потом, естественно, самим оттуда затягивать его обратно в лотус ;)
файл выкладываю на диск С пользователя,имена у каждого файла уникальны. Файл из поля удаляем,запускаем в редактирование тот что на локале. Затем его вкладываем обратно в поле. И когда открываю на редактирование(при этом открыт другой файл форд) ошибка выскакивает

Set WShell = CreateObject("WScript.Shell") 'открываем на редактирование
ReturnCode = WShell.Run("""" +strTempPath + "\" + vPrompt+"""", 1, True)

на этих строках.

Получается проблем а в том,что ворд уже запущен!

Можно как то проверять открыт ли уже ворд,если открыт то открывать только файл без запуска приложения?
 

hosm

* so what *
18.05.2009
2 442
6
#9
Можно как то проверять открыт ли уже ворд,если открыт то открывать только файл без запуска приложения?
Можно проверять, открыт ли уже ворд, так:
Код:
Err = 0 
On Error Resume Next
Set wordAppl = GetObject ("", "Word.Application") ' ворд уже запущен, пытаемся до него достучаться
If Err<>0 Then ' не получилось :(
ну, и давным-давно через winapi можно было получить список процессов, запустить нужную прогу.
Вроде даже на этом форуме подобное пробегало.
за открытие на редактирование с WScript.Shell обращайтесь к экспертам по этому решению ;)

Мне попадались решения без WScript.Shell: заставить пользователя после редактирования нажать кнопочку - "загрузить измененный" (это используется нечасто и может быть неудобно пользователям), либо автоматическое сохранение аттача в документе при изменении даты выгруженного на диск аттача (при определенных действиях с лотус-документом - ui-сохранение, закрытие документа и т.п.).
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 598
275
#10
ну вот и приплыли ;) - "картина репина"
терь нагородим гору из костылей и вызовов винапи (получ. списка процессов), потом начнем ловить окна процесса и пытаться нажать его кнопку (угадывая какую, потому как ворд може спросить при закрытии)
типично ;)
а в эхеле это ведёт себя по-другому
весело

а ещё - скока не грю юзверям - не открывайте в аутглюке доки в пришедшем письме, изменения не сохранятся в нем же! И ведь открывают - а потом орут - где мой документ, я его долго исправлял... :)
найти можно (с секретном темпорари от МС), но проблема остаётся

резъюм: двойной клик и открытие на редактирование - зло
 

hosm

* so what *
18.05.2009
2 442
6
#11
lmike
от души поржала ;)
не, я до такого не додумывалась, ты был слишком высокого обо мне мнения, SendKeys - это не моё ;)
просто вспомнила из детства, сколькими способами можно узнать, запущен ли ворд и как вообще можно запустить его с нужным файлом.
С резьюмом согласна - мы вот вообще аттачи "надежно" скрываем от юзверей.
 
K

kilcher

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


Не поделитесь этими "способами из детства"? :) А то все время с ошибками вылетает.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 598
275
#13
решения задач, по типу: здесь и сейчас, а позже подумаем и перепишим..., приводит к куче мусорного кода (на выброс)
в таком разрезе - уж лучше "руками не трогать"
а вот уменя линух и вайн и аттачи открываются в ОО (нативном, не вайновском) - и хде мы ворд искать бум?
а есть и натиный клиент под линух и МакОСХ (дома у меня) - и что там, сподобной "автоматизадницей" делать...
покрывать матюками разраба?
В продукте заложена кроссплатформенность - не надо её нарушать (хотя индусы сильно постарались)
и не надо оперировать логикой - 90% рабочих станций... - порочная практика (как показывает жизнь)
недавно ещё никто не знал про айфон (яблозвон), а терь даже ИБМ (очень "глухая" машина) и то выпускает под него бриджи
УЁ держал 90% рынка - и где они (за 2-а года)?
появились удобные фреймворки ExtJS, jQuery...
для java: спринг, хибернэйт... (появились давно - развиваются активно и интегрятся с ИДЕ)
легкая БД скулайт (живет везде)
про андроид - ещё услышим
гугл воще прёт...
мир меняется и очень быстро
 
K

kilcher

#14
Я конечно извиняюсь,но к чему все эти высказывания? Проблема то есть. И решать ее нужно сейчас и с помощью того что уже имеется.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 598
275
#15
устойчивых методов решения задачи, кот. ВЫДУМАЛИ ваши пользователи нет - точка
всякие нестандардные хаки МСО + виндовз Вам нужно искать на форумах по этим продуктам
это тема не имеет отношения (никаким боком) к LDN

вот короткий ответ :)