Closed gsbelarus closed 9 years ago
Я не помню что именно, но этому варианту что то мешало, поэтому решили сделать, что
конструктор формирует у наследника новую СФ из родительской.
Reported by PZholnerovich
on 2015-05-11 13:01:58
не знаю, мне кажется, две одинаковые ф-и - это не оч. хорошо. Может, найдете как обойти
то, что мешало?
Reported by alexandra.gsoftware
on 2015-05-11 13:03:44
будем делать как сказал директор, потом когда он передумает - переделаем
Reported by PZholnerovich
on 2015-05-11 17:45:18
У наследника не указана ф-я - вызываем родительскую. Но, если вдруг из наследника пытаемся
ее отредактировать - тогда создается новая ф-я, копия. Если мы хотим, чтоб у наследника
вообще ничего не вызывалось, создаем ему новую ф-ю с пустым телом. Правильно?
Reported by alexandra.gsoftware
on 2015-05-11 18:37:21
вроде как правильно, но один момент смущает, если создаем функцию то происходит создание
копии родительской, и чтобы создать пустую придется вручную редактировать или сделать
две кнопки создать от родителя или создать пустую? опять же добавив новый элемент на
форму можно погареть на перекрытом dfm. как вариант вызов диалогового окна
Reported by PZholnerovich
on 2015-05-11 18:45:08
1) создаем тип документа, наследник от типа, у которого есть СФ
2) у созданного типа поле СФ пустое на экране, в базе данных -- НУЛЛ
3) если создается экземпляр такого типа, то система смотрит в gdClassList и видит,
что функшнкей там <=0. Тогда система смотрит, а не наследован ли этот тип документа
(через gdClassList, через TgdDocumentEntry, смотрит! ) если наследован, то смотрит
у родителя, есть ли функция? если есть, то вызывает ее. если нет, то смотрит на родителя
родителя и т.п.
4) если в диалоговом окне типа документа мы нажимаем кнопку Скрипт-функция, а этот
тип документа наследован и у родителя она (скрипт-функция) есть, то в этот момент,
без всяких дополнительных вопросов, она (скрипт-функция) копируется и открывается пользователю,
как скрипт функция текущего документа. Если ему надо пустая -- ничего страшного --
в окне редактора скрипт-функций он элементарно удалит все блоки и получит пустую СФ.
Никаких отдельных кнопок для этого делать не надо.
5) разумеется, с этого момента, это две разные сф, которые будут жить своей жизнью.
и это нормально.
Reported by gs1994
on 2015-05-12 07:26:57
по четвертому пункту вопрос:
если у родителя СФ нет, а есть у прародителя, что в этом случае? брать прародительскую?
Reported by PZholnerovich
on 2015-05-12 14:33:01
да
Reported by gs1994
on 2015-05-12 14:33:39
Сделано
Originally reported on Google Code with ID 3581
Reported by
gs1994
on 2015-05-11 11:50:41