ПредишенСледващото

Тъй като работата с DerevomZnacheny TablitseyZnacheny и в този контекст е практически едни и същи, в примера DerevoZnacheny ще се използват едни и същи с изключение на йерархията се отнася за TablitseZnacheny. Както знаете ,. В успя прилагането 1C 8.2 направите това не е толкова лесно, колкото изглежда на пръв поглед.
Считам, че DerevoZnacheny достъпно само на сървъра, в дебел клиент и външна връзка. В тези най-управляема форма да се симулира вида на дървесината, използвана DannyeFormyDerevo. За да се превърне DerevoZnacheny <-> DannyeFormyDerevo контролирани форма, използвайки техники ZnachenieVRekvizitFormy () и RekvizitFormyVZnachenie (). За директно нанасяне на дървен материал, използван форма тип елемент TablitsaFormy свързан чрез подпори PutKDannym подпори DannyeFormyDerevo тип форма. Ако не сте много ясно на по-горе описаната връзката на обекти, не се притеснявайте, следващия поглед към един практически пример и всичко ще си дойде на мястото.

Проблем: Има едно дърво на ценности, трябва да го покаже по контролиран начин.
Създаване на нова външна обработка (), да добавите определена форма и да се създаде манипулатор PriSozdaniiNaServere (). Няма подробности и елементи "ръчно" не се добавят, ние ще го направим по програмен път.
Код 1С обем 8.2 НАГОРЕ

Механизъм Плъзнете и D_rop (или по-просто "влачене и пускане") за DerevaZnacheny разположен на успя форма на управлявано
Основната трудност на въвеждане на механизма за плъзгане е, че платформата за онлайн DerevaZnacheny не позволява промяна на родителя, т.е. преназначаване линия. Единственият начин да се направи това - да се създаде нова линия заедно с всички подчинени струни, т.е. напълно копирате целия клон на дърво с йерархията и да го подчини на желаната линия родител, и след това да изтриете оригиналния бранша. Тази задача е разделен на две подзадачи:
1). Преди плъзгане е необходимо да се провери редовността на операцията, не могат да бъдат прехвърлени към възел на възлите на дърветата се подчини, т.е. майка възел не може да се прехвърля на детето, тъй като това ще доведе до "безкрайна рекурсия" и "падане" платформа. Това се постига чрез използване на манипулатор събитие ElementDerevoProverkaPeretaskivaniya (...)
2). Ако влачене е възможно, като се използват ElementDerevoPeretaskivanie манипулатор (...) започва рекурсивно функция, която създава нов клон на дърво, подчинени на необходимата майка и изтрива оригинала.
Аз се обърне специално внимание на факта, че платформата 8.2 има механизъм с избор от няколко позиции, така че по-горе операция е необходимо да се направят всички потребителски избраните елементи. ()
Код 1С обем 8.2 НАГОРЕ

Прилагане трипътен кутия в контролирана форма в DereveZnacheny
който работи по следния алгоритъм:
* Ако елементът DerevaZnacheny не подчинените елементи, флагът може да бъде или "на" или "изключено".
* Ако елементът има подчинени, а след това чек "Enable", ако включите отметки от всички подчинени елементи "OFF", ако изключите кутиите на всички подчинени елементи.
Ако някои от подчинените елементи на отметки са включени и някои от тях са изключени, знамето на майка елемент е "несигурен".
* Когато флага на майка елемент, включва флагове на всички роб, когато изключите флага на майка елемент, изключете всички подчинени кутии.
Извадете първата статия се изгради едно дърво на процедура ценности и да го променяте, като към по-дърво една колона, която съдържа контрол квадратче, и прилагане на манипулатор събитие за него "PriIzmenenii". Цялата алгоритъм се свежда до работа с флаг на климата: всички под-елементи трябва да се включва / изключва знамена в зависимост от текущия елемент на държавата на знамето, както и всички родители на този елемент (които са разположени на горните етажи на йерархията), за да потушат отметки в положение "включено" / "изключено" / "безкрайно" в съответствие с по-горе алгоритъм. ()
Код 1С обем 8.2 НАГОРЕ

Отговори на въпроса

Свързани статии

Подкрепете проекта - споделете линка, благодаря!