Вверх ↑
Ответов: 8944
Рейтинг: 824
#1: 2025-02-09 22:12:42 ЛС | профиль | цитата
Gunta писал(а):
даже не представляю, как можно отобразить графики работ для 4-х сотрудников на годовом 12-месячном календаре.
Так на месяц, а не на год. Через ежемесячный от 1900 до 3000 года, а там календарь надо будет уточнять, ещё день наберётся
В элементе 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,[])
}

карма: 19

1
Голосовали:Gitarist