1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-03-19 21:07:53 +02:00

#228 @GenVP Канбан доска: группировка статусов в колонке

This commit is contained in:
Anton Ivanov 2020-07-05 15:13:28 +03:00
parent d6f5e8e6c0
commit 021f7f6571
3 changed files with 104 additions and 4 deletions

View File

@ -1281,6 +1281,47 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="d9d70bdf-4d2b-4117-8130-6e7460db309f">
<Properties>
<Name>Группа</Name>
<Synonym>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Группа</v8:content>
</v8:item>
</Synonym>
<Comment/>
<Type>
<v8:Type>xs:decimal</v8:Type>
<v8:NumberQualifiers>
<v8:Digits>2</v8:Digits>
<v8:FractionDigits>0</v8:FractionDigits>
<v8:AllowedSign>Nonnegative</v8:AllowedSign>
</v8:NumberQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip/>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>false</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>Auto</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
</ChildObjects>
</TabularSection>
<Form>Удалить_Форма</Form>

View File

@ -290,6 +290,12 @@
<ContextMenu name="ТЧНастройкиКолонокСтатусКонтекстноеМеню" id="502"/>
<ExtendedTooltip name="ТЧНастройкиКолонокСтатусРасширеннаяПодсказка" id="503"/>
</InputField>
<InputField name="ТЧНастройкиКолонокГруппа" id="553">
<DataPath>Объект.ТЧНастройкиКолонок.Группа</DataPath>
<EditMode>EnterOnInput</EditMode>
<ContextMenu name="ТЧНастройкиКолонокГруппаКонтекстноеМеню" id="554"/>
<ExtendedTooltip name="ТЧНастройкиКолонокГруппаРасширеннаяПодсказка" id="555"/>
</InputField>
<CheckBoxField name="ТЧНастройкиКолонокВидимость" id="504">
<DataPath>Объект.ТЧНастройкиКолонок.Видимость</DataPath>
<EditMode>EnterOnInput</EditMode>

View File

@ -112,13 +112,41 @@
ЭтаФорма.ИзменитьРеквизиты(МассивДобавляемыхРеквизитов);
///// КОМАНДЫ //////////
// + #228 Пиганов Г.В. 2020.07.02
///// ГРУППЫ //////////
ЭлементыГрупп = Новый Соответствие;
ПрефиксДляИмениЭлементовГрупп = ПолучитьПрефиксДляИмениЭлементовГрупп();
ОтборВидимыхСтрок = Новый Структура();
ТаблицаГрупп = Объект.ТЧНастройкиКолонок.Выгрузить(ОтборВидимыхСтрок, "Группа");
ТаблицаГрупп.Свернуть("Группа", "");
ТаблицаГрупп.Сортировать("Группа");
Для Каждого СтрокаГруппы Из ТаблицаГрупп Цикл
НомерГруппы = СтрокаГруппы.Группа;
ИмяГруппы = ПрефиксДляИмениЭлементовГрупп + СтрокаГруппы.Группа;
ЭлементГруппаГруппа = Элементы.Вставить(ИмяГруппы, Тип("ГруппаФормы"), Элементы.ГруппаКанбанДоска);
ЭлементГруппаГруппа.Вид = ВидГруппыФормы.ОбычнаяГруппа;
ЭлементГруппаГруппа.Отображение = ОтображениеОбычнойГруппы.Нет;
Если НомерГруппы = 0 Тогда
ЭлементГруппаГруппа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.ГоризонтальнаяВсегда;
Иначе
ЭлементГруппаГруппа.Группировка = ГруппировкаПодчиненныхЭлементовФормы.Вертикальная;
КонецЕсли;
ЭлементыГрупп.Вставить(НомерГруппы, ЭлементГруппаГруппа);
КонецЦикла;
// - #228 Пиганов Г.В. 2020.07.02
///// ЭЛЕМЕНТЫ //////////
Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл
Если НЕ СтрокаТЧНастройкиКолонок.Видимость Тогда
Продолжить;
Конецесли;
пСтатус = СтрокаТЧНастройкиКолонок.Статус;
ДобавитьНаКанбанДоскуКолонку(пСтатус);
// + #228 Пиганов Г.В. 2020.07.02
//ДобавитьНаКанбанДоскуКолонку(пСтатус);
пГруппаЭлемент = ЭлементыГрупп[СтрокаТЧНастройкиКолонок.Группа];
ДобавитьНаКанбанДоскуКолонку(пСтатус, пГруппаЭлемент);
// - #228 Пиганов Г.В. 2020.07.02
Конеццикла;
КонецПроцедуры
@ -126,7 +154,10 @@
&НаСервере
Процедура УдалитьДинамическиеЭлементы()
пЭлементыФормы = Этаформа.Элементы;
ПрефиксДляИмениЭлементовКолонок = ПолучитьПрефиксДляИмениЭлементовКолонок();
// + #228 Пиганов Г.В. 2020.07.02
//ПрефиксДляИмениЭлементовКолонок = ПолучитьПрефиксДляИмениЭлементовКолонок();
ПрефиксДляИмениЭлементовКолонок = ПолучитьПрефиксДляИмениЭлементовГрупп();
// - #228 Пиганов Г.В. 2020.07.02
ЭлементыКУдалению = Новый Массив();
Для каждого пЭлементФормы из пЭлементыФормы цикл
Если СтрНайти(пЭлементФормы.Имя,ПрефиксДляИмениЭлементовКолонок) = 0 Тогда
@ -142,6 +173,13 @@
Конеццикла;
КонецПроцедуры
// + #228 Пиганов Г.В. 2020.07.02
&НаСервере
Функция ПолучитьПрефиксДляИмениЭлементовГрупп()
Возврат "_Группа_";
КонецФункции
// - #228 Пиганов Г.В. 2020.07.02
&НаСервере
Функция ПолучитьПрефиксДляИмениЭлементовКолонок()
Возврат "_Колонка_";
@ -191,7 +229,10 @@
КонецФункции
&НаСервере
Процедура ДобавитьНаКанбанДоскуКолонку(пСтатус)
// + #228 Пиганов Г.В. 2020.07.02
//Процедура ДобавитьНаКанбанДоскуКолонку(пСтатус)
Процедура ДобавитьНаКанбанДоскуКолонку(пСтатус, пЭлементГруппаГруппа)
// - #228 Пиганов Г.В. 2020.07.02
//ПредставлениеКолонки = пСтатус.Наименование;
ПредставлениеКолонки = ПолучитьПредставлениеКолонки(пСтатус);
@ -201,7 +242,11 @@
ИменаЭлементов = ПолучитьИменаЭлементовДляКолонки(пСтатус);
пЭлементГруппаКолонка = пЭлементыФормы.Вставить(ИменаЭлементов.ИмяГруппыКолонки,Тип("ГруппаФормы"),пЭлементыФормы.ГруппаКанбанДоска);
// + #228 Пиганов Г.В. 2020.07.02
//пЭлементГруппаКолонка = пЭлементыФормы.Вставить(ИменаЭлементов.ИмяГруппыКолонки,Тип("ГруппаФормы"),пЭлементыФормы.ГруппаКанбанДоска);
пЭлементГруппаКолонка = пЭлементыФормы.Вставить(ИменаЭлементов.ИмяГруппыКолонки,
Тип("ГруппаФормы"), пЭлементГруппаГруппа);
// - #228 Пиганов Г.В. 2020.07.02
пЭлементГруппаКолонка.Вид = ВидГруппыФормы.ОбычнаяГруппа;
пЭлементГруппаКолонка.Заголовок = ПредставлениеКолонки;
пЭлементГруппаКолонка.Подсказка = ПредставлениеКолонки;
@ -691,12 +736,20 @@
Если СохраненныеНастройки.Свойство("ТЧНастройкиКолонок") Тогда
ЗаполнитьТЧНастройкиКолонокНаСервере();
ТЧНастройкиКолонок = СохраненныеНастройки.ТЧНастройкиКолонок;
// + #228 Пиганов Г.В. 2020.07.02
Если ТЧНастройкиКолонок.Колонки.Найти("Группа") = Неопределено Тогда
ТЧНастройкиКолонок.Колонки.Добавить("Группа");
КонецЕсли;
// - #228 Пиганов Г.В. 2020.07.02
Для каждого СтрокаТЧНастройкиКолонок из Объект.ТЧНастройкиКолонок цикл
ПараметрыОтбора=Новый Структура();
ПараметрыОтбора.Вставить("Статус",СтрокаТЧНастройкиКолонок.Статус);
НайденныеСтрокиСохраненныеНастройки = ТЧНастройкиКолонок.НайтиСтроки(ПараметрыОтбора);
Для каждого СтрокаНайденныеСтроки из НайденныеСтрокиСохраненныеНастройки цикл
СтрокаТЧНастройкиКолонок.Видимость = СтрокаНайденныеСтроки.Видимость;
// + #228 Пиганов Г.В. 2020.07.02
СтрокаТЧНастройкиКолонок.Группа = СтрокаНайденныеСтроки.Группа;
// - #228 Пиганов Г.В. 2020.07.02
Конеццикла;
Конеццикла;
Иначе