1
0
mirror of https://github.com/BlizD/Tasks.git synced 2025-01-14 03:20:16 +02:00

#142 Буфер для задач до срока. Делим его по процентам. Оформление цветом

This commit is contained in:
Anton Ivanov 2017-02-18 15:14:41 +03:00
parent c888bfc215
commit 2e301f7fb4
4 changed files with 224 additions and 91 deletions

View File

@ -380,52 +380,6 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="fec6b25e-78e6-4c97-9be5-e722c9d4b14a">
<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>10</v8:Digits>
<v8:FractionDigits>0</v8:FractionDigits>
<v8:AllowedSign>Any</v8:AllowedSign>
</v8:NumberQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Важность задачи</v8:content>
</v8:item>
</ToolTip>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>true</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>DontUse</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="b51337db-54a2-49b8-be87-506a80b6b186">
<Properties>
<Name>ОсновнаяЗадачаПредставление</Name>
@ -502,6 +456,52 @@
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
<Attribute uuid="1c7a63b1-9999-4cc1-bb82-ce3e587fd8d3">
<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>10</v8:Digits>
<v8:FractionDigits>0</v8:FractionDigits>
<v8:AllowedSign>Any</v8:AllowedSign>
</v8:NumberQualifiers>
</Type>
<PasswordMode>false</PasswordMode>
<Format/>
<EditFormat/>
<ToolTip>
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Важность задачи</v8:content>
</v8:item>
</ToolTip>
<MarkNegatives>false</MarkNegatives>
<Mask/>
<MultiLine>false</MultiLine>
<ExtendedEdit>false</ExtendedEdit>
<MinValue xsi:nil="true"/>
<MaxValue xsi:nil="true"/>
<FillFromFillingValue>true</FillFromFillingValue>
<FillValue xsi:nil="true"/>
<FillChecking>DontCheck</FillChecking>
<ChoiceFoldersAndItems>Items</ChoiceFoldersAndItems>
<ChoiceParameterLinks/>
<ChoiceParameters/>
<QuickChoice>Auto</QuickChoice>
<CreateOnInput>DontUse</CreateOnInput>
<ChoiceForm/>
<LinkByType/>
<ChoiceHistoryOnInput>Auto</ChoiceHistoryOnInput>
</Properties>
</Attribute>
</ChildObjects>
</TabularSection>
<TabularSection uuid="fc9c0693-c970-4285-be29-6fac7fdd05e6">

View File

@ -36,6 +36,13 @@
ЗначениеПараметра.Использование=Истина;
Конецесли;
ЗначениеПараметра = ИсполняемыеНастройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ТекущаяДата"));
Если ЗначениеПараметра <> Неопределено Тогда
ЗначениеПараметра.Значение = ТекущаяДата();
ЗначениеПараметра.Использование=Истина;
Конецесли;
МассивВыбранныхСтатусовКолонок = Новый Массив();
Для каждого СтрокаТЧНастройкиКолонок из ТЧНастройкиКолонок цикл
Если НЕ СтрокаТЧНастройкиКолонок.Видимость Тогда

View File

@ -392,6 +392,7 @@
&НаСервере
Процедура УстановитьСтандартныеНастройкиНаСервере()
СгенирироватьФормуЗаново = Истина;
КлючНастроек = ПолучитьКлючНастроек();
ХранилищеОбщихНастроек.Сохранить(КлючНастроек,КлючНастроек,Неопределено);
пНастройкиКомпоновщика = Неопределено;
@ -882,45 +883,101 @@
ШрифтЖирный = Новый Шрифт(,,Истина);
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("Шрифт", ШрифтЖирный);
//{ ***** Установка цвета от Важности задачи *****
//ВажностьЧисло
//ЦветДляЗадачиЧисло
//Цвет указывается от ЦветДляЗадачиЧисло:
// 1 - черный цвет;
// 2 - красный цвет;
// 3 - желтый цвет;
// 4 - зеленый цвет;
// 10 - салатовый цвет;
//{ ***** Установка цвета от Важности и буфера задачи *****
// 1 - черный цвет;
ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.Использование = ИСТИНА;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ЦветДляЗадачиЧисло");
Отбор.ПравоеЗначение = 1;
ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи);
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(0,0,0));
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветТекста", Новый Цвет(255,255,255));
// 2 - красный цвет;
ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.Использование = ИСТИНА;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ЦветДляЗадачиЧисло");
Отбор.ПравоеЗначение = 2;
ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи);
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255,102,102));
ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
ОтборГруппа = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ОтборГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
ОтборЭлементы = ОтборГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлементы.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ОтборЭлементы.Использование = ИСТИНА;
ОтборЭлементы.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
ОтборЭлементы.ПравоеЗначение = 2;
// 3 - желтый цвет;
ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.Использование = ИСТИНА;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ЦветДляЗадачиЧисло");
Отбор.ПравоеЗначение = 3;
ОтборЭлементы = ОтборГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ОтборЭлементы.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
ОтборЭлементы.Использование = ИСТИНА;
ОтборЭлементы.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи);
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(255,255,0));
// 4 - зеленый цвет;
ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.Использование = ИСТИНА;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ЦветДляЗадачиЧисло");
Отбор.ПравоеЗначение = 4;
ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи);
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(153,204,0));
// 10 - салатовый цвет;
ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
Отбор.Использование = ИСТИНА;
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
Отбор.ПравоеЗначение = 3;
Отбор.ПравоеЗначение = 10;
ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи);
ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(207,238,0));
//ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
//ОтборГруппа = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
//ОтборГруппа.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИли;
//
//ОтборЭлементы = ОтборГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//ОтборЭлементы.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//ОтборЭлементы.Использование = ИСТИНА;
//ОтборЭлементы.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
//ОтборЭлементы.ПравоеЗначение = 2;
//
//ОтборЭлементы = ОтборГруппа.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//ОтборЭлементы.ВидСравнения = ВидСравненияКомпоновкиДанных.НеЗаполнено;
//ОтборЭлементы.Использование = ИСТИНА;
//ОтборЭлементы.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
//
//ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи);
//ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(153,204,0));
//
//ОформлениеЗадачи = УсловноеОформление.Элементы.Добавить();
//Отбор = ОформлениеЗадачи.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
//Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
//Отбор.Использование = ИСТИНА;
//Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Объект.ТЧЗадачи.ВажностьЧисло");
//Отбор.ПравоеЗначение = 3;
//
//ЗаполнитьПоляОформленияЗадачНаСервере(ОформлениеЗадачи);
//ОформлениеЗадачи.Оформление.УстановитьЗначениеПараметра("ЦветФона", Новый Цвет(207,238,0));
//} ***** Установка цвета от Важности задачи *****
КонецПроцедуры

View File

@ -115,22 +115,32 @@
<field>ДатаПоследнегоИзменения</field>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>ВажностьЧисло</dataPath>
<field>ВажностьЧисло</field>
<dataPath>ИзмененЦветПоУмолчанию</dataPath>
<field>ИзмененЦветПоУмолчанию</field>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>БуферПроцент</dataPath>
<field>БуферПроцент</field>
<title xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Важность число</v8:content>
<v8:content>Буфер процент</v8:content>
</v8:item>
</title>
</field>
<field xsi:type="DataSetFieldField">
<dataPath>ИзмененЦветПоУмолчанию</dataPath>
<field>ИзмененЦветПоУмолчанию</field>
<dataPath>ЦветДляЗадачиЧисло</dataPath>
<field>ЦветДляЗадачиЧисло</field>
<title xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Цвет для задачи число</v8:content>
</v8:item>
</title>
</field>
<dataSource>ИсточникДанных1</dataSource>
<query>ВЫБРАТЬ
узНаблюдателиЗаЗадачами.Задача
узНаблюдателиЗаЗадачами.Задача КАК Задача
ПОМЕСТИТЬ ВТОтборЗадачПоНаблюдателю
ИЗ
РегистрСведений.узНаблюдателиЗаЗадачами КАК узНаблюдателиЗаЗадачами
@ -147,31 +157,28 @@
узЗадачи.Ссылка КАК Задача,
узЗадачи.Ссылка.Наименование КАК ЗадачаПредставление,
узЗадачи.Ссылка.Код КАК НомерЗадачи,
узЗадачи.Статус,
узЗадачи.Статус КАК Статус,
узЗадачи.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания,
узЗадачи.Исполнитель,
узЗадачи.Исполнитель КАК Исполнитель,
узЗадачи.Исполнитель.узКороткоеИмя КАК КороткоеИмя,
ПОДСТРОКА(узЗадачи.ОсновнаяЗадача.Наименование, 1, 25) КАК ОсновнаяЗадачаПредставление,
узЗадачи.СрокИсполнения,
узЗадачи.Конфигурация,
узЗадачи.Спринт,
узЗадачи.Важность,
узЗадачи.НомерВнешнейЗаявки,
узЗадачи.СрокИсполнения КАК СрокИсполнения,
узЗадачи.Конфигурация КАК Конфигурация,
узЗадачи.Спринт КАК Спринт,
узЗадачи.Важность КАК Важность,
узЗадачи.НомерВнешнейЗаявки КАК НомерВнешнейЗаявки,
узЗадачи.ОсновнаяЗадача КАК ОсновнаяЗадача,
узЗадачи.ДатаСоздания,
узЗадачи.ДатаПередачиИсполнителю,
узЗадачи.ДатаПоследнегоИзменения,
узЗадачи.ДатаВыполнения,
узЗадачи.ДатаСоздания КАК ДатаСоздания,
узЗадачи.ДатаПередачиИсполнителю КАК ДатаПередачиИсполнителю,
узЗадачи.ДатаПоследнегоИзменения КАК ДатаПоследнегоИзменения,
узЗадачи.ДатаВыполнения КАК ДатаВыполнения,
ВЫБОР
КОГДА узЗадачи.Важность = ЗНАЧЕНИЕ(Справочник.узВариантыВажностиЗадачи.Высокая)
ТОГДА 1
КОГДА узЗадачи.Важность = ЗНАЧЕНИЕ(Справочник.узВариантыВажностиЗадачи.Обычная)
ТОГДА 2
КОГДА узЗадачи.Важность = ЗНАЧЕНИЕ(Справочник.узВариантыВажностиЗадачи.Низкая)
ТОГДА 3
ИНАЧЕ 2
КОНЕЦ КАК ВажностьЧисло,
узЗадачи.ИзмененЦветПоУмолчанию
КОГДА узЗадачи.СрокИсполнения = ДАТАВРЕМЯ(1, 1, 1)
ТОГДА 0
ИНАЧЕ ВЫРАЗИТЬ(РАЗНОСТЬДАТ(узЗадачи.ДатаСоздания, &amp;ТекущаяДата, СЕКУНДА) / РАЗНОСТЬДАТ(узЗадачи.ДатаСоздания, узЗадачи.СрокИсполнения, СЕКУНДА) * 100 КАК ЧИСЛО(15, 2))
КОНЕЦ КАК БуферПроцент,
узЗадачи.ИзмененЦветПоУмолчанию КАК ИзмененЦветПоУмолчанию
ПОМЕСТИТЬ ВТРезультат
ИЗ
Справочник.узЗадачи КАК узЗадачи
ГДЕ
@ -185,7 +192,52 @@
ВТОтборЗадачПоНаблюдателю)
ИНАЧЕ ИСТИНА
КОНЕЦ
И узЗадачи.Статус В(&amp;МассивВыбранныхСтатусовКолонок)</query>
И узЗадачи.Статус В (&amp;МассивВыбранныхСтатусовКолонок)
;
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТРезультат.Задача КАК Задача,
ВТРезультат.ЗадачаПредставление КАК ЗадачаПредставление,
ВТРезультат.НомерЗадачи КАК НомерЗадачи,
ВТРезультат.Статус КАК Статус,
ВТРезультат.РеквизитДопУпорядочивания КАК РеквизитДопУпорядочивания,
ВТРезультат.Исполнитель КАК Исполнитель,
ВТРезультат.КороткоеИмя КАК КороткоеИмя,
ВТРезультат.ОсновнаяЗадачаПредставление КАК ОсновнаяЗадачаПредставление,
ВТРезультат.СрокИсполнения КАК СрокИсполнения,
ВТРезультат.Конфигурация КАК Конфигурация,
ВТРезультат.Спринт КАК Спринт,
ВТРезультат.Важность КАК Важность,
ВТРезультат.НомерВнешнейЗаявки КАК НомерВнешнейЗаявки,
ВТРезультат.ОсновнаяЗадача КАК ОсновнаяЗадача,
ВТРезультат.ДатаСоздания КАК ДатаСоздания,
ВТРезультат.ДатаПередачиИсполнителю КАК ДатаПередачиИсполнителю,
ВТРезультат.ДатаПоследнегоИзменения КАК ДатаПоследнегоИзменения,
ВТРезультат.ДатаВыполнения КАК ДатаВыполнения,
ВЫБОР
КОГДА ВТРезультат.Важность = ЗНАЧЕНИЕ(Справочник.узВариантыВажностиЗадачи.Высокая)
ТОГДА 2
КОГДА ВТРезультат.Важность = ЗНАЧЕНИЕ(Справочник.узВариантыВажностиЗадачи.Обычная)
ТОГДА
ВЫБОР КОГДА ВТРезультат.БуферПроцент &lt; 30 Тогда
4
КОГДА 30 &lt;=ВТРезультат.БуферПроцент И ВТРезультат.БуферПроцент &lt; 60 Тогда
3
КОГДА 60 &lt;=ВТРезультат.БуферПроцент И ВТРезультат.БуферПроцент &lt; 100 Тогда
2
КОГДА 100 &lt;=ВТРезультат.БуферПроцент Тогда
1
КОНЕЦ
КОГДА ВТРезультат.Важность = ЗНАЧЕНИЕ(Справочник.узВариантыВажностиЗадачи.Низкая)
ТОГДА 10
ИНАЧЕ 4
КОНЕЦ КАК ЦветДляЗадачиЧисло,
ВТРезультат.БуферПроцент КАК БуферПроцент,
ВТРезультат.ИзмененЦветПоУмолчанию КАК ИзмененЦветПоУмолчанию
ИЗ
ВТРезультат КАК ВТРезультат</query>
</dataSet>
<calculatedField>
<dataPath>НомерЗадачиПредставление</dataPath>
@ -240,6 +292,23 @@
<value xsi:nil="true"/>
<useRestriction>true</useRestriction>
</parameter>
<parameter>
<name>ТекущаяДата</name>
<title xsi:type="v8:LocalStringType">
<v8:item>
<v8:lang>ru</v8:lang>
<v8:content>Текущая дата</v8:content>
</v8:item>
</title>
<valueType>
<v8:Type>xs:dateTime</v8:Type>
<v8:DateQualifiers>
<v8:DateFractions>DateTime</v8:DateFractions>
</v8:DateQualifiers>
</valueType>
<value xsi:type="xs:dateTime">0001-01-01T00:00:00</value>
<useRestriction>true</useRestriction>
</parameter>
<settingsVariant>
<dcsset:name>Основной</dcsset:name>
<dcsset:presentation xsi:type="xs:string">Основной</dcsset:presentation>
@ -267,7 +336,7 @@
<dcsset:field>ОсновнаяЗадача</dcsset:field>
</dcsset:item>
<dcsset:item xsi:type="dcsset:SelectedItemField">
<dcsset:field>ВажностьЧисло</dcsset:field>
<dcsset:field>ЦветДляЗадачиЧисло</dcsset:field>
</dcsset:item>
<dcsset:item xsi:type="dcsset:SelectedItemField">
<dcsset:field>ИзмененЦветПоУмолчанию</dcsset:field>
@ -313,7 +382,7 @@
</dcsset:dataParameters>
<dcsset:order>
<dcsset:item xsi:type="dcsset:OrderItemField">
<dcsset:field>ВажностьЧисло</dcsset:field>
<dcsset:field>ЦветДляЗадачиЧисло</dcsset:field>
<dcsset:orderType>Asc</dcsset:orderType>
</dcsset:item>
<dcsset:item xsi:type="dcsset:OrderItemField">