Gunta писал(а):
даже не представляю, как можно отобразить графики работ для 4-х сотрудников на годовом 12-месячном календаре.
В элементе MonthCalendar есть массив праздников, можно воспользоваться, код чуть изменить.

Add(MainForm,2953706,21,140)
{
Left=200
Top=100
Width=295
Height=359
Caption="График смен"
link(onCreate,5224798:doWork1,[])
}
Add(MonthCalendar,5745492,91,252)
{
@Hint=#50:Перебор дней месяца с указанием числа и дня недели|
Month=2
Holidays=[]
link(onDay,4213052:doStr,[])
link(Year,9976728:Var2,[])
link(Month,6956725:Var2,[])
}
Add(MT_String,4213052,133,252)
{
link(onResult,3248963:doSplit,[])
}
Add(InfoTip,14557373,28,21)
{
Info=#63:смена длится 12 часов с 8 до 8 ... соответственно 4 коллектива.|74:График не совсем обычный 2 в день - 2 вых-2 в день - 2 вых, потом ночные..|258:Хотелось бы сделать такого вида: обозначаю периодичность своих смен с начала года например: в январе (1-2 выходной, 3-4 ночь, 5-6 вых, 7-8 ночь, 9-10 вых, 11-12 день, 13-14вых, 15-16 день) и цикл повторяется. Вот как то разложить с подсветкой по всему году..|52:Зелёный -- выходной, Красный -- день, Синий -- ночь.|
HAlign=0
Width=596
Height=95
}
Add(ChildPanel,5224798,91,154)
{
link(onEvent1,5745492:doEnumDays,[(137,160)(137,209)(81,209)(81,258)])
link(onEvent2,5272406:doWork1,[(571,167)(571,258)])
}
BEGIN_SDK
Add(EditMulti,1986813,21,21)
{
EventCount=3
WorkCount=1
VarCount=3
Width=468
Height=291
link(doWork1,10488034:doWork1,[(214,27)])
link(Var1,14245607:Var1,[(27,131)])
link(Var2,12172136:Var1,[(34,208)])
link(Var3,15882178:Value,[(41,292)(391,292)])
}
Add(Panel,16417423,35,70)
{
Width=279
Height=75
Align=2
}
Add(Hub,3724843,231,147)
{
OutCount=3
link(onEvent1,13746720:doRead,[(256,153)(256,97)])
link(onEvent2,9940943:doWork2,[(368,160)(368,34)])
link(onEvent3,15830331:doWork2,[(375,167)(375,27)])
}
Add(Label,11447295,329,147)
{
Left=55
Top=10
Width=130
Height=20
Font=[MS Sans Serif,10,1,0,1]
AutoSize=1
Alignment=2
}
Add(FormatStr,2524744,280,147)
{
Mask="%1.%2 г"
link(onFString,11447295:doText,[])
link(Str1,13746720:Item,[])
link(Str2,14245607:Var3,[(293,131)])
}
Add(GetDataEx,12172136,168,203)
{
link(Data,7826684:Count,[])
}
Add(HubEx,413068,210,147)
{
link(onEvent,3724843:doEvent1,[])
}
Add(StrList,2613972,266,42)
{
Strings=#1:0|6:Январь|7:Февраль|4:Март|6:Апрель|3:Май|4:Июнь|4:Июль|6:Август|8:Сентябрь|7:Октябрь|6:Ноябрь|7:Декабрь|
}
Add(ArrayRW,13746720,280,91)
{
link(onRead,2524744:doString,[(319,97)(319,139)(270,139)(270,153)])
link(Array,2613972:Array,[])
link(Index,12172136:Var3,[(293,82)(223,82)(223,208)])
}
Add(Button,9598739,112,84)
{
Left=185
Top=10
Width=20
Font=[MS Sans Serif,10,1,0,1]
Caption="<"
link(onClick,11708779:doPrev,[])
}
Add(Button,12487187,112,49)
{
Left=205
Top=10
Width=20
Font=[MS Sans Serif,10,1,0,1]
Caption=">"
link(onClick,11708779:doNext,[(151,55)(151,83)])
}
Add(Button,1092712,119,168)
{
Left=15
Top=10
Width=20
Font=[MS Sans Serif,10,1,0,1]
Caption="<"
link(onClick,7826684:doPrev,[(158,174)(158,160)])
}
Add(Button,5208245,119,133)
{
Left=35
Top=10
Width=20
Font=[MS Sans Serif,10,1,0,1]
Caption=">"
link(onClick,7826684:doNext,[(158,139)(158,153)])
}
Add(Counter,11708779,161,77)
{
Min=1900
Max=3000
Default=2025
link(onNext,10488034:doWork2,[])
}
Add(Counter,7826684,168,147)
{
Min=1
Max=12
Default=1
link(onNext,413068:doWork2,[])
}
Add(GetDataEx,14245607,161,126)
{
link(Data,11708779:Count,[])
}
Add(HubEx,10488034,210,77)
{
Angle=1
link(onEvent,413068:doWork1,[])
}
Add(RadioButton,4711217,42,231)
{
Left=15
Top=35
Width=60
Selected=0
Caption="См. №1"
link(onSelect,15921090:doData,[])
}
Add(RadioButton,14290201,126,238)
{
Left=80
Top=35
Width=60
Caption="См. №2"
link(onSelect,14467779:doData,[])
}
Add(RadioButton,12450745,210,245)
{
Left=145
Top=35
Width=60
Caption="См. №3"
link(onSelect,666156:doData,[])
}
Add(RadioButton,16614969,294,252)
{
Left=210
Top=35
Width=65
Caption="См. №4"
link(onSelect,7219500:doData,[])
}
Add(Memory,15882178,385,252)
{
Default=Integer(0)
link(onData,6701315:doEvent1,[])
}
Add(DoData,15921090,84,231)
{
Data=Integer(-4)
link(onEventData,673333:doWork2,[])
}
Add(DoData,14467779,168,238)
{
Data=Integer(2)
link(onEventData,673333:doWork3,[(214,244)])
}
Add(DoData,666156,252,245)
{
Data=Integer(4)
link(onEventData,3718817:doWork3,[(291,251)])
}
Add(DoData,7219500,336,252)
{
Data=Integer(-6)
link(onEventData,6870513:doWork2,[])
}
Add(HubEx,6870513,371,252)
{
link(onEvent,15882178:doValue,[])
}
Add(HubEx,3718817,287,231)
{
link(onEvent,6870513:doWork1,[(375,237)])
}
Add(HubEx,673333,210,231)
{
link(onEvent,3718817:doWork2,[])
}
Add(Label,944331,-114,56)
{
Left=5
Top=55
Width=270
Height=20
Font=[MS Sans Serif,10,1,0,1]
Caption=" Пн Вт Ср Чт Пт Сб Вс"
AutoSize=1
}
Add(Hub,6701315,434,252)
{
link(onEvent1,9940943:doWork3,[(459,258)])
link(onEvent2,15830331:doWork3,[(466,265)])
}
Add(HubEx,9940943,455,28)
{
link(onEvent,1986813:onEvent2,[])
}
Add(HubEx,15830331,462,21)
{
link(onEvent,1986813:onEvent1,[])
}
END_SDK
Add(DateConvertor,7926310,343,259)
{
@Hint=#34:Восстановление даты в формате Real|
Mode=1
Point(DYear)
Point(DMonth)
Point(DDay)
Point(DHour)
Point(DMinute)
Point(DSecond)
link(onResult,8510419:doCalc,[])
link(DYear,9976728:Var3,[(349,229)])
link(DMonth,6956725:Var3,[(356,222)])
link(DDay,7158319:Var2,[])
link(DHour,11287352:Var1,[(370,243)])
link(DMinute,11287352:Var2,[])
link(DSecond,11287352:Var3,[(384,243)])
}
Add(GetDataEx,9976728,91,224)
{
link(Data,5224798:Var1,[])
}
Add(GetDataEx,6956725,98,217)
{
link(Data,5224798:Var2,[])
}
Add(Memory,8925049,371,175)
{
Default=Integer(0)
}
Add(MultiStrPart,3248963,182,252)
{
Count=3
link(onSplit,6744167:doCompare,[])
}
Add(MathParse,8510419,406,259)
{
MathStr="(%1-%2) mod 16"
ResultType=0
link(onResult,9282638:doRead,[])
link(X2,5224798:Var3,[(419,215)(111,215)])
}
Add(GetDataEx,11287352,371,238)
{
link(Data,8925049:Value,[])
}
Add(ArrayRW,9282638,455,259)
{
link(onRead,13213421:doString,[])
link(Array,7965454:Array,[])
}
Add(StrList,7965454,441,175)
{
@Hint=#21:График смены в цветах|
Strings=#5:51200|5:51200|8:13107200|8:13107200|5:51200|5:51200|8:13107200|8:13107200|5:51200|5:51200|3:200|3:200|5:51200|5:51200|3:200|3:200|
}
Add(FormatStr,13213421,497,259)
{
Mask="%1;%2"
link(onFString,14581138:doEvent1,[])
link(Str1,7158319:Var3,[(503,237)])
}
Add(If_else,6744167,231,252)
{
Op1=Integer(1)
link(onTrue,9571369:doOperation,[])
link(onFalse,14702832:doWork2,[])
link(Op2,12052247:Var2,[])
}
Add(GetDataEx,12052247,238,232)
{
Angle=3
link(Data,3248963:Part1,[(223,237)(223,299)(188,299)])
}
Add(GetDataEx,7158319,357,232)
{
Angle=3
link(Data,12052247:Var3,[])
}
Add(Math,9571369,280,252)
{
OpType=1
Op2=2
ResultType=0
link(onResult,4258418:doFor,[(319,258)(319,300)(263,300)(263,328)])
link(Op1,3248963:Part2,[(286,243)(272,243)(272,292)(195,292)])
}
Add(ChildPanel,5272406,581,252)
{
}
BEGIN_SDK
Add(EditMulti,4510589,21,21)
{
EventCount=1
WorkCount=3
link(doWork1,16352769:##clear,[(158,27)(158,118)])
link(doWork2,16352769:##add,[(151,34)(151,104)])
link(doWork3,11571999:doResize,[])
}
Add(Panel,12053353,35,105)
{
Top=75
Width=279
Height=245
Align=5
}
Add(ChildPanelEx,16352769,168,98)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,2469657,21,21)
{
WorkCount=#5:##add|8:##select|7:##clear|
Point(##add)
Point(##select)
Point(##clear)
link(##add,12591514:doSplit,[(67,27)(67,83)])
}
Add(Panel,5082495,140,77)
{
Left=35
Top=105
Font=[MS Sans Serif,12,1,0,1]
Layout="parent.MyLattice"
WidthScale=14
HeightScale=16
Point(doColor)
}
Add(MultiStrData,12591514,77,77)
{
link(onPart1,5082495:doCaption,[])
link(onPart2,5082495:doColor,[])
}
END_SDK
Add(GridLayout,11571999,168,35)
{
Name="MyLattice"
Space=1
Padding=1
Rows=6
Cols=7
}
END_SDK
Add(For,4258418,273,322)
{
link(onEvent,5237947:doData,[])
link(onStop,14702832:doWork3,[(333,335)])
link(End,9571369:Result,[])
}
Add(HubEx,14702832,329,259)
{
link(onEvent,7926310:doConvert,[])
}
Add(DoData,5237947,350,322)
{
link(onEventData,5425238:doWork3,[(571,328)])
}
Add(HubEx,5425238,567,259)
{
link(onEvent,5272406:doWork2,[])
}
Add(Hub,14581138,532,259)
{
link(onEvent1,5425238:doWork2,[])
link(onEvent2,5272406:doWork3,[])
}