Вы меня не слышите! Когда Ворд закрыли, проблем нет.
Ворд ЗАБЫЛИ закрыть и файл создают второй раз. Ворд открывается второй раз, а файл с тем же именем. Файл с тем же именем весит открытый в первом ворде. Надо в этом случае прервать Клашку.
Модератор: Дед Пахом
Вы меня не слышите! Когда Ворд закрыли, проблем нет.
Да вы правы, что можно поменять имя, но как его менять? На любом открытии давать новое имя или давать новое имя когда "файл уже занят другим Вордом". Я думаю что второй вариант более правильный.
Данное сообщение формируется при попытке выполнения вот этой команды и только тогда когда файл уже занят другим Вордом:
Код: Выделить всё
MSWord1.Control{'Application.Selection.Find.Execute("'&clip(Loc:F_Str)&'", , , , , , 1, 1, , "'&clip(Loc:R_Str)&'", 2)'}
"Клашка" ничего не знает ни о Ворде, ни о файлах в нём открытых, и сообщение это посылает не она.
Мы не знаем, что у Вас используется в качестве шаблона ...
Спасибо! как нибудь обязательно ваш пример посмотрю, а пока у меня *.app без *.dct не открывается.
Код: Выделить всё
MSWord1.Control{'Application.Selection.Find.Execute("'&clip(Loc:F_Str)&'", , , , , , 1, 1, , "'&clip(Loc:R_Str)&'", 2)'}
Message(ErrorCode())
Код: Выделить всё
Replac_String ROUTINE
MSWord1.Control{'Selection.Find.ClearFormatting'}
MSWord1.Control{'Selection.Find.Replacement.ClearFormatting'}
MSWord1.Control{'Application.Selection.Find.Execute("'&clip(Loc:F_Str)&'", , , , , , 1, 1, , "'&clip(Loc:R_Str)&'", 2)'}
if ErrorCode() = 5 then ! Если файл уже открыт
Message('Данный файл уже открыт! Процедура будет прервана!!!') ! Ругаемся
Destroy(MSWord1.Control) ! Уничтожили OLE-контрол
do ProcedureReturn ! Прерываем процедуру
.
Exit
Требование словаря в проекте можно отключить в настройке (см. рисунок).
Ага, спасибо!Игорь Столяров писал(а): ↑03 Апрель 2022, 19:24 Требование словаря в проекте можно отключить в настройке (см. рисунок).
А в остальном - я с Вами полностью согласен ...
Код: Выделить всё
#!Создаем контрольные поля на кнопке -----------------------------
#PROMPT('Имя файла:', FILE), %PosFile, REQ
#PROMPT('Ключ чтения записи', KEY), %PosKey, REQ
#PROMPT('Процедура Insert:', @s9), %INS, default('?Insert')
#!----------------------------------------------------------------
#!------------------- Фиксируем поля -----------------------------
#AT(%AfterFileDeclarations)
#FIX(%File, %Primary)
????????????????????????? Что еще надо зафиксировать?
#ENDAT
#!----------------------------------------------------------------
#!------ Точка вставки на созданной кнопке -----------------------
#AT(%ControlEventHandling,%ButonControl,'Accepted')
!Код процедуры: Копирование записи (Начало-F5) ==================
GET(%PosFile,%PosKey) !Зачитаем зпись
Copy%FilePrefix = %FilePrefix:Record !Запомним запись ?????????????????????
POST(EVENT:Accepted,%INS) !Вызываем процедуру -=Insert=-
!=====================================================================
#ENDAT
Не ко мне. Игорь, темплатки клаши для веников не обучен делать. Совсем.
Помнится мне что достаточно:
Код: Выделить всё
#FIX(%File, %Primary)
! use %FilePrefix
Стоит начать пользоваться бекапами а лучше github
Не понимаю я вашу подсказку
Код: Выделить всё
Copy%FilePrefix = %FilePrefix:Record !Запомним запись
Код: Выделить всё
Copy = :Record !Запомним запись
Код: Выделить всё
CopySTR = STR:Record !Запомним запись