Страница 4 из 4
Как получить префикс от Browse
Добавлено: 04 Май 2021, 10:34
mpn2
Admin писал(а): ↑04 Май 2021, 3:21
Вместо %CustomGlobalDeclarations напишите %AfterFileDeclarations
РЕЗУЛЬТАТ ПОЛУЧИЛСЯ ИНТЕРЕСНЫЙ!
1. Глобальная переменная создалась и как бы появилась в том месте где и надо, т.е. прописалась в файле объявления глобальных переменных: ###_GD.CLW НО!
Но создалась она не с префиксом BLO (от файла BLOCK.tps), а создалась она с префиксом TYP (наверно от файла TYPE.tps) и в разделе ПОСЛЕ описания переменных для файла Histopy2.tps (История вторая.).... и при этом образовалось 45 ошибок.
А мне как то надо получить то, что я пишу пока ручками и то что пока закоментарил на предпоследней строчке кода.
Код: Выделить всё
History2::Used LONG,THREAD
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
CopyTYP LIKE(TYP:Record),PRE(CTYP)
Sort:Name STRING(ScrollSort:Name)
Sort:Name:Array STRING(3),DIM(100),OVER(Sort:Name)
Sort:Alpha STRING(ScrollSort:Alpha)
Sort:Alpha:Array STRING(2),DIM(100),OVER(Sort:Alpha)
Sort:Family STRING(ScrollSort:Family)
Sort:Family:Array STRING(3),DIM(100),OVER(Sort:Family)
Sort:Cyrilic STRING(ScrollSort:Cyrilic)
Sort:Cyrilic:Array STRING(2),DIM(100),OVER(Sort:Cyrilic)
Glo:stNameINIFile STRING(FILE:MaxFileName)
CopyMat Like(Mat:Record),PRE(CMat) !Для копирования записи
CopyTyp Like(Typ:Record),PRE(CTyp) !Для копирования записи
CopyPla Like(Pla:Record),PRE(CPla) !Для копирования записи
!CopyBlo Like(Blo:Record),PRE(CBlo) !Для копирования записи
!----------------------------------------------------------------------
Как получить префикс от Browse
Добавлено: 04 Май 2021, 11:05
finsoftrz
Прежде чем использовать %File и %FilePrefix, %File надо зафиксировать.
Например, #FIX(%File, %FsUserTable), где %FsUserTable значение из промпта шаблона.
Промпт в шаблоне, например, такой:
Код: Выделить всё
#BUTTON('Таблицы пользователя'),MULTI(%FsUserTables,%FsUserTable), AT(10,, 180)
#PROMPT('Таблица',FILE),%FsUserTable
#ENDBUTTON
....
#FOR(%FsUserTables)
#FIX(%File,%FsUserTable)
...
#ENDFOR
Если проект multi dll, то надо еще это учесть в декларации.
Как получить префикс от Browse
Добавлено: 04 Май 2021, 12:16
Admin
mpn2 писал(а): ↑04 Май 2021, 10:34
РЕЗУЛЬТАТ ПОЛУЧИЛСЯ ИНТЕРЕСНЫЙ!
Если просто так вставлять, может что угодно получиться... вплоть до детей
Как получить префикс от Browse
Добавлено: 04 Май 2021, 17:19
finsoftrz
Это было романтично.
Как получить префикс от Browse
Добавлено: 04 Май 2021, 19:37
mpn2
Admin писал(а): ↑04 Май 2021, 12:16
Если просто так вставлять, может что угодно получиться... вплоть до детей
Где ж вы раньше были, у меня уже трое!
Как получить префикс от Browse
Добавлено: 05 Май 2021, 0:59
mpn2
Все написал!
Код: Выделить всё
#!============================================ mpn =========================================
#!==========================================================================================
#AT(%AfterFileDeclarations)
#FIX(%File,%Primary)
#IF(%CopyReAllowed) #!Если стоит "галочка" о копировании записи
Copy%FilePrefix Like(%FilePrefix:Record),PRE(C%FilePrefix) !Для копирования записи
#ENDIF
#ENDAT
#!==========================================================================================
#!после того как окно открыто---------------------------------------------------------------
#AT(%AfterWindowOpening)
!========== Данная процедура копирует запись (Продолжение - F5) ========================
!==== mpn: код шаблона прописан в файле: Control.tpw ===================================
!=======================================================================================
#IF(%CopyReAllowed) #!Если стоит "галочка" о копировании записи
IF C%FilePrefix:id <> 0 then !Если Глобальная переменная для копирования не пуста,
id# = %FilePrefix:id !тогда запомним код вновь созданной записи
%FilePrefix:Record = Copy%FilePrefix !Присвоим новой записи значение старой
%FilePrefix:id = id# !Вернем новой записи ее новый Код
#EMBED(%CopyMPN,'после того как запись скопирована (моя точка вставки)')
!очистим необходимые поля: --------------------------------------------------------
CLEAR(Copy%FilePrefix) !Чистим Глобальную переменную
!Чистим поля после копирования (если это надо)
#FOR(%ClearFields)
CLEAR(%ClearField)
#ENDFOR
END
#ELSE
!===== mpn: Процедура продолжения копирования записи НЕ АКТИВИЗИРОВАНА!!! ==============
#ENDIF
#ENDAT
#!после того как окно открыто---------------------------------------------------------------
РЕЗУЛЬТАТ:
Код: Выделить всё
! Start of "После того, как окно открыто"
! [Priority 4000]
!========== Данная процедура копирует запись (Продолжение - F5) ========================
!==== mpn: код шаблона прописан в файле: Control.tpw ===================================
!=======================================================================================
IF CMAT:id <> 0 then !Если Глобальная переменная для копирования не пуста,
id# = MAT:id !тогда запомним код вновь созданной записи
MAT:Record = CopyMAT !Присвоим новой записи значение старой
MAT:id = id# !Вернем новой записи ее новый Код
! Start of "после того как запись скопирована (моя точка вставки)"
! [Priority 5000]
! End of "после того как запись скопирована (моя точка вставки)"
!очистим необходимые поля: --------------------------------------------------------
CLEAR(CopyMAT) !Чистим Глобальную переменную
!Чистим поля после копирования (если это надо)
CLEAR(MAT:Cena0)
CLEAR(MAT:Prim_Sch)
CLEAR(MAT:Prim_Skl)
CLEAR(MAT:Prim)
END
! [Priority 8500]
! End of "После того, как окно открыто"
Всем спасибо за помощь!!!