Вверх ↑
Этот топик читают: Гость
Ответов: 125
Рейтинг: 0
#1: 2025-02-05 23:55:54 ЛС | профиль | цитата
Здравствуйте!
Подскажите пожалуйста в решении немного необычного вопроса:
Как сделать так чтобы если вводишь в поле ввода произвольный текст, а в стороне формировалась строка с добавлением даты написанного. Но должно соблюдаться условие: если текст написан в период с 12 ночи до 7 утра, то должно подставляться число вчерашнего дня.
Например:
Ввожу текст в 6 часов утра 1го февраля: "проверка".
Получаю ответ рядом: "проверка 31 января 2025г".

Пишу текст в 7 часов вечера 1го февраля: "проверка"
Получаю ответ: "проверка 1 февраля 2025г."

Чот туплю, не могу сообразить как сделать)))
карма: 0

0
Ответов: 832
Рейтинг: 181
#2: 2025-02-06 05:32:30 ЛС | профиль | цитата
Gitarist писал(а):
Ввожу текст в 6 часов утра 1го февраля: "проверка".
Получаю ответ рядом: "проверка 31 января 2025г".

Пишу текст в 7 часов вечера 1го февраля: "проверка"
Получаю ответ: "проверка 1 февраля 2025г."

Add(MainForm,2953706,28,231)
{
Width=493
Height=120
}
Add(Edit,12506378,105,231)
{
Left=25
Top=25
Width=120
Text=""
link(onChange,13848474:doString,[])
}
Add(Label,13508330,238,231)
{
Left=200
Top=30
Height=20
Caption=""
}
Add(FormatStr,13848474,168,231)
{
Mask="%1 - %2"
link(onFString,13508330:doText,[])
link(Str2,5502813:GetData,[])
}
Add(DateConvertor,13651886,329,154)
{
Mode=16
Format="dd-MMMM-yyyy"
link(onResult,5502813:doData,[(368,160)(368,146)(165,146)(165,160)])
}
Add(Time,13044039,217,77)
{
Time_Date=1
Point(DateTime)
Point(DateInt)
}
Add(EventFromData,5502813,175,154)
{
link(onEvent,3420535:doConvert,[])
}
Add(Math,2467388,273,154)
{
OpType=1
Op2=25200
link(onResult,13651886:doConvert,[])
}
Add(DateConvertor,3420535,224,154)
{
Mode=19
Point(Data)
link(onResult,2467388:doOperation,[])
link(Data,13044039:DateTime,[])
}

Схему поправил

Редактировалось 5 раз(а), последний 2025-02-06 06:26:45
карма: 16

1
Голосовали:Gitarist
Ответов: 125
Рейтинг: 0
#3: 2025-02-06 08:37:10 ЛС | профиль | цитата
Спасибо большое за схемку. А не подскажете что означает цифра 25200 в арифметической операции?
Просто я ошибся, интервал нужно увеличить до 8ми утра...

----
аа.. понял, это 7 часов в секундах как раз, - то что и надо отредактировать...

-----
еще вопрос немного не по теме,
а как скачивать компоненты теперь? Нашел вроде красивый календарь тут https://forum.hiasm.com/topic/66434 но жму ссылку - не качается...

Редактировалось 2 раз(а), последний 2025-02-06 09:18:04
карма: 0

0
Ответов: 338
Рейтинг: 28
#4: 2025-02-06 09:40:17 ЛС | профиль | цитата
Gitarist писал(а):
жму ссылку - не качается...


Сделанный в HiAsm https://forum.hiasm.com/getfile/39710
Компонент для HiAsm https://forum.hiasm.com/getfile/39709
карма: 2
1
Голосовали:Gitarist
Ответов: 125
Рейтинг: 0
#5: 2025-02-08 05:52:38 ЛС | профиль | цитата
Раз уж понеслась такая пьянка, то может кто то делал календарь на график смен 2/2? Может есть схемка? График не совсем обычный 2 в день - 2 вых-2 в день - 2 вых, потом ночные..
Хотелось бы сделать такого вида: обозначаю периодичность своих смен с начала года например: в январе (1-2 выходной, 3-4 ночь, 5-6 вых, 7-8 ночь, 9-10 вых, 11-12 день, 13-14вых, 15-16 день) и цикл повторяется. Вот как то разложить с подсветкой по всему году...
Но это уже задача не из лёгких, схемка немаленькая будет, наверное займет у вас много времени, поэтому на готовое решение особо не надеюсь)) однако, вы меня никогда не оставляли с проблемой наедине, за это ценю и уважаю, буду рад любым подсказкам.
карма: 0

0
Ответов: 832
Рейтинг: 181
#6: 2025-02-08 07:40:37 ЛС | профиль | цитата
Gitarist писал(а):
Раз уж понеслась такая пьянка, то может кто то делал календарь на график смен 2/2? Может есть схемка? График не совсем обычный 2 в день - 2 вых-2 в день - 2 вых, потом ночные..
Хотелось бы сделать такого вида: обозначаю периодичность своих смен с начала года например: в январе (1-2 выходной, 3-4 ночь, 5-6 вых, 7-8 ночь, 9-10 вых, 11-12 день, 13-14вых, 15-16 день) и цикл повторяется. Вот как то разложить с подсветкой по всему году...
Но это уже задача не из лёгких, схемка немаленькая будет, наверное займет у вас много времени, поэтому на готовое решение особо не надеюсь)) однако, вы меня никогда не оставляли с проблемой наедине, за это ценю и уважаю, буду рад любым подсказкам.

Это проще сделать в excel
https://forum.hiasm.com/getfile/39711
карма: 16

1
файлы: 1календарь для Gitarist.zip [31.4KB] [28]
Голосовали:Gitarist
Ответов: 125
Рейтинг: 0
#7: 2025-02-08 08:15:18 ЛС | профиль | цитата
Прикольно, красиво, спасибо. Но как туда вносить изменения для других сотрудников, где функцию такую вписать...
Честно говоря не хотелось бы обращаться к сторонним программам.
карма: 0

0
Ответов: 8935
Рейтинг: 824
#8: 2025-02-08 11:10:48 ЛС | профиль | цитата
Gitarist писал(а):
периодичность своих смен
Вы не указали длительность смены (6, 8, 12 часов) и соответственно количество коллективов сменяющих друг друга
карма: 19

0
Ответов: 125
Рейтинг: 0
#9: 2025-02-08 20:26:56 ЛС | профиль | цитата
Леонид писал(а):
Gitarist писал(а):
периодичность своих смен
Вы не указали длительность смены (6, 8, 12 часов) и соответственно количество коллективов сменяющих друг друга

смена длится 12 часов с 8 до 8 ... соответственно 4 коллектива.
карма: 0

0
Ответов: 832
Рейтинг: 181
#10: 2025-02-09 16:08:40 ЛС | профиль | цитата
Gitarist писал(а):
смена длится 12 часов с 8 до 8 ... соответственно 4 коллектива.

Честно сказать я даже не представляю, как можно отобразить графики работ для 4-х сотрудников на годовом 12-месячном календаре.
карма: 16

1
Голосовали:Gitarist
Ответов: 8935
Рейтинг: 824
#11: 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
Ответов: 832
Рейтинг: 181
#12: 2025-02-10 13:38:38 ЛС | профиль | цитата
Леонид писал(а):
В элементе MonthCalendar есть массив праздников, можно воспользоваться,

Что-то с наглядностью не очень. Мне кажется, что этот график смен надо делать в виде таблицы, похожей на табель рабочего времени.
карма: 16

1
Голосовали:Gitarist
Ответов: 125
Рейтинг: 0
#13: 2025-02-10 23:35:02 ЛС | профиль | цитата
Спасибо большое за ваше участие. Сейчас с мобильника сижу, к сожалению не могу проверить схему, но вижу по количеству строк кода, работа проделана немаленькая.
Кстати, еще не придумали что нибудь типа мобильной версии ХайАсма?)

Редактировалось 1 раз(а), последний 2025-02-10 23:35:53
карма: 0

0
Ответов: 1079
Рейтинг: 77
#14: 2025-02-11 09:16:20 ЛС | профиль | цитата
Gunta писал(а):
Что-то с наглядностью не очень.

А так?
Чет с утра еще не проснулся, наворотил с бодуна Если в схеме чуток порядок навести, вполне жизнеспособно.

Add(MainForm,10634884,42,42)
{
Width=674
Height=367
Point(onClose)
link(onClose,15144682:doEvent1,[])
}
Add(ChildPanelEx,5765194,42,98)
{
link(onEvent2,10088875:doEvent1,[(83,104)(83,97)])
link(onPart1,10904693:doValue,[])
link(onPart2,168900:doWork1,[(323,118)])
link(onPart3,9301816:doValue,[(363,125)(363,188)])
link(onPosition,16551392:doWork2,[(636,132)(636,321)])
}
BEGIN_SDK
Add(EditMultiEx,15651246,21,21)
{
WorkCount=#5:doMax|
EventCount=#8:onEvent2|7:onPart1|7:onPart2|7:onPart3|10:onPosition|
link(doMax,4262571:doEvent1,[(73,27)(73,174)])
}
Add(Panel,11288418,35,105)
{
Width=658
Height=35
Align=2
}
Add(Label,1683065,35,49)
{
Left=10
Top=10
Width=82
Height=17
Caption="Начало смен с:"
}
Add(DatePicker,438136,161,49)
{
Left=105
Top=5
Width=155
Height=21
Point(DateInt)
Point(onCloseUp)
link(onCloseUp,1467083:doEvent1,[(205,62)(205,86)(107,86)(107,111)])
}
Add(DateConvertor,411267,161,105)
{
Mode=9
Format="yyyy;M;d"
Point(Data)
link(onResult,9717560:doSplit,[])
link(Data,438136:DateInt,[])
}
Add(Hub,1467083,119,105)
{
link(onEvent1,411267:doConvert,[])
link(onEvent2,15651246:onEvent2,[(216,118)(216,27)])
}
Add(MultiStrData,9717560,231,105)
{
Count=3
link(onPart1,15651246:onPart1,[(282,111)(282,34)])
link(onPart2,15651246:onPart2,[(282,118)(282,41)])
link(onPart3,15651246:onPart3,[(282,125)(282,48)])
}
Add(UpDown,8060565,161,161)
{
Left=275
Top=5
Width=65
Max=0
Kind=0
Point(doMax)
link(onPosition,15651246:onPosition,[(304,167)(304,55)])
}
Add(Hub,4262571,126,168)
{
link(onEvent1,8060565:doMax,[])
link(onEvent2,8060565:doPosition,[(150,181)(150,167)])
}
END_SDK
Add(StrList,7965454,721,105)
{
@Hint=#21:График смены в цветах|
Strings=#10:день;65535|10:день;65535|9:вых;51200|9:вых;51200|10:день;65535|10:день;65535|9:вых;51200|9:вых;51200|10:ночь;33023|10:ночь;33023|9:вых;51200|9:вых;51200|10:ночь;33023|10:ночь;33023|9:вых;51200|9:вых;51200|
Point(doGetString)
Point(String)
Point(IdxToSelect)
AddHint(55,-23,72,208,Strings)
}
Add(FormatStr,6701151,721,322)
{
DataCount=4
Mask="%1:%2:%3-%4"
link(onFString,16551392:doWork3,[])
link(Str2,13076261:Var3,[(734,292)])
link(Str3,110553:Var3,[(741,278)])
link(Str4,7965454:String,[])
}
Add(InlineCode,15930644,378,315)
{
WorkPoints=#12:GetMonthDays|
EventPoints=#6:onDays|
DataPoints=#4:Year|5:Month|
Code=#15:unit HiAsmUnit;|0:|9:interface|0:|29:uses Kol,Share,Debug,Windows;|0:|4:type|28: THiAsmClass = class(TDebug)|8: private|3: |7: public|20: onDays:THI_Event;|19: Year: THI_Event;|22: Month:THI_Event; |4: |55: procedure GetMonthDays(var _Data:TData; Index:word);|5: end;|0:|14:implementation|0:|35:procedure THiAsmClass.GetMonthDays;|5:begin|108: _hi_OnEvent(onDays, Int2Str(MonthDays[IsLeapYear(ReadInteger(_Data, Year))][ReadInteger(_Data, Month)]));|6:end; |0:|4:end.|0:|0:|
link(onDays,2221956:doFor,[])
link(Year,110553:Var2,[])
link(Month,13076261:Var2,[])
}
Add(For,2221956,434,315)
{
InData=0
link(onEvent,11351548:doEvent1,[])
link(onStop,7642751:doEvent1,[(485,328)(485,342)])
link(Start,9301816:Value,[])
}
Add(Memory,9301816,434,182)
{
Default=Integer(1)
}
Add(MultiElementEx,15350782,651,133)
{
link(onTrue,7965454:doGetString,[])
link(Op2,7965454:Count,[(657,120)(702,120)(702,155)(734,155)])
}
BEGIN_SDK
Add(EditMultiEx,5572494,14,7)
{
WorkCount=#7:doWork2|8:doEvent1|
EventCount=#6:onTrue|
DataCount=#3:Op2|
link(doWork2,5969604:doWork2,[(39,13)(39,69)])
link(doEvent1,7110887:doEvent1,[(29,20)(29,76)])
}
Add(If_else,6423386,161,63)
{
Type=1
link(onTrue,230273:doData,[])
link(onFalse,8458660:doEvent1,[(202,76)(202,117)(37,117)(37,83)])
link(Op2,5572494:Op2,[(174,16)(20,16)])
}
Add(Math,2334012,112,63)
{
Op2=1
ResultType=0
Default=-1
Point(doClear)
link(onResult,6423386:doCompare,[])
link(Op1,12418993:Var2,[])
}
Add(Hub,8458660,42,77)
{
link(onEvent1,7110887:doEvent2,[])
link(onEvent2,5969604:doWork3,[(67,90)])
}
Add(HubEx,5969604,63,63)
{
link(onEvent,2334012:doOperation,[])
}
Add(DoData,230273,231,63)
{
link(onEventData,5572494:onTrue,[(285,69)(285,13)])
link(Data,12418993:Var3,[(237,54)])
}
Add(GetDataEx,12418993,112,49)
{
Angle=3
link(Data,2334012:Result,[(106,54)(106,110)(118,110)])
}
Add(Hub,7110887,84,70)
{
InCount=2
OutCount=1
link(onEvent1,2334012:doClear,[])
}
END_SDK
Add(Hub,11351548,504,315)
{
link(onEvent1,15350782:doWork2,[(534,321)(534,139)])
link(onEvent2,6701151:doString,[])
}
Add(Memory,10904693,378,105)
{
}
Add(Memory,880184,385,147)
{
}
Add(Math,12749478,203,343)
{
Op2=1
ResultType=0
Point(doClear)
link(onResult,12054949:doCompare,[])
link(Op1,13076261:Var1,[(209,292)])
}
Add(HubEx,168900,319,147)
{
link(onEvent,880184:doValue,[])
}
Add(If_else,12054949,245,343)
{
Type=3
Op2=Integer(12)
link(onTrue,11908777:doEvent1,[])
link(onFalse,15922251:doOperation,[(293,356)(293,370)])
AddHint(-5,-26,27,13,Op2)
}
Add(Hub,11908777,301,343)
{
link(onEvent1,168900:doWork3,[(323,349)])
link(onEvent2,15491587:doWork1,[(333,356)])
}
Add(HubEx,15491587,329,308)
{
link(onEvent,10867731:doEvent1,[])
}
Add(GetDataEx,110553,378,273)
{
link(Data,10904693:Value,[])
}
Add(GetDataEx,13076261,385,287)
{
link(Data,880184:Value,[])
}
Add(ChildPanel,16551392,826,308)
{
}
BEGIN_SDK
Add(EditMulti,3576348,21,21)
{
WorkCount=5
VarCount=1
link(doWork1,3553576:##add,[(67,27)(67,62)])
link(doWork2,3553576:##select,[(67,34)(67,69)])
link(doWork3,3553576:add,[(67,41)(67,76)])
link(doWork4,3553576:doResize,[(67,48)(67,83)])
link(doWork5,12505578:doEvent1,[(67,55)(67,90)])
link(Var1,3553576:##count,[(27,155)(118,155)])
}
Add(Panel,11776260,35,105)
{
Left=5
Top=40
Width=560
Height=270
Align=5
}
Add(ChildPanelEx,3553576,112,56)
{
Mode=1
}
BEGIN_SDK
Add(EditMultiEx,4530417,21,21)
{
WorkCount=#5:##add|8:##select|3:add|8:doResize|5:clear|7:##clear|
VarCount=#7:##count|
Width=615
Height=361
Point(##add)
Point(##select)
Point(##clear)
Point(##count)
link(##select,9646289:doBringToFront,[(73,34)(73,167)])
link(add,16352769:##add,[(119,41)(119,111)])
link(doResize,11571999:doResize,[])
link(clear,16352769:##clear,[(119,55)(119,125)])
}
Add(Panel,9646289,126,154)
{
Left=35
Top=105
Width=502
Height=286
Align=5
Point(doBringToFront)
}
Add(ChildPanelEx,16352769,217,105)
{
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=20
Point(doColor)
}
Add(MultiStrData,12591514,77,77)
{
link(onPart1,5082495:doCaption,[])
link(onPart2,5082495:doColor,[])
}
END_SDK
Add(GridLayout,11571999,217,42)
{
Name="MyLattice"
Rows=6
Cols=7
}
END_SDK
Add(Hub,12505578,77,84)
{
link(onEvent1,3553576:clear,[])
link(onEvent2,3553576:##clear,[])
}
END_SDK
Add(Hub,7642751,504,336)
{
OutCount=3
link(onEvent1,16551392:doWork4,[(607,342)(607,335)])
link(onEvent2,9301816:doClear,[(530,349)(530,272)(422,272)(422,195)])
link(onEvent3,12749478:doOperation,[(534,356)(534,394)(191,394)(191,349)])
}
Add(Hub,10867731,343,308)
{
link(onEvent1,16551392:doWork1,[])
link(onEvent2,15930644:GetMonthDays,[])
}
Add(Hub,10088875,91,91)
{
link(onEvent1,15144682:doEvent2,[(119,97)(119,76)])
link(onEvent2,15491587:doWork2,[(239,104)(239,314)])
}
Add(Hub,758436,595,140)
{
link(onEvent1,15350782:doEvent1,[])
link(onEvent2,16551392:doWork5,[(624,153)(624,342)])
}
Add(Math,15922251,826,364)
{
OpType=1
Op2=1
ResultType=0
link(onResult,5765194:doMax,[(873,370)(873,410)(21,410)(21,104)])
link(Op1,16551392:Var1,[])
}
Add(Hub,15144682,147,63)
{
InCount=2
link(onEvent1,758436:doEvent1,[(371,69)(371,146)])
link(onEvent2,12749478:doClear,[(175,76)(175,356)])
}



Хех...
И никто даже не заметил. Что забыл день обнулить и сброс сделать при закрытии формы.

Редактировалось 2 раз(а), последний 2025-02-11 15:53:25
карма: 0

1
Голосовали:Gitarist
Ответов: 832
Рейтинг: 181
#15: 2025-02-11 14:17:07 ЛС | профиль | цитата
Я себе это как-то так представляю

Add(MainForm,2953706,35,70)
{
Width=865
Caption="Месячный график смен"
link(onCreate,3926578:doData,[])
}
Add(MonthCalendar,157068,273,147)
{
Holidays=[]
link(onDay,290195:doSeparateMT,[])
link(Year,5791612:Year,[(279,138)(265,138)(265,194)(216,194)])
link(Month,5791612:Month,[(286,131)(258,131)(258,187)(223,187)])
}
Add(Hub,7521401,133,84)
{
OutCount=5
link(onEvent1,16696308:doConvert,[])
link(onEvent2,5791612:doConvert,[(193,97)(193,153)])
link(onEvent3,7211250:doData,[(186,104)(186,223)])
link(onEvent4,3064298:doData,[(179,111)(179,342)])
link(onEvent5,15664667:doEnum,[(172,118)(172,433)])
}
Add(DateConvertor,16696308,210,84)
{
Mode=9
Format=" MMMM yyyy"
Point(Data)
link(onResult,9031346:doString,[])
}
Add(Time,16179248,77,35)
{
Time_Date=1
Format=" MMMM yyyy"
Point(DateTime)
}
Add(FormatStr,9031346,273,84)
{
DataCount=1
Mask="%1"
link(onFString,6939501:doText,[])
}
Add(DateConvertor,5791612,210,147)
{
Format="yyyy;MM"
Point(Data)
Point(Year)
Point(Month)
link(onResult,157068:doEnumDays,[])
}
Add(DoData,3926578,84,84)
{
link(onEventData,7521401:doEvent1,[])
link(Data,16179248:DateTime,[])
}
Add(MST_ColAction,3222149,504,105)
{
AutoWidthByHeader=0
MinColWidth=10
MaxColWidth=50
MSTControl="tabl"
}
Add(MTStrTbl,12771895,672,392)
{
Top=15
Width=849
Height=246
Align=5
Name="tabl"
Columns=#9:Сотрудник|
ColorItems=0
Redaction=0
Style=4
Grid=0
link(FormatCell,13332854:GetData,[])
}
Add(StrList,13383590,399,266)
{
Strings=#0:|2:Пн|2:Вт|2:Ср|2:Чт|2:Пт|2:Сб|2:Вс|
Point(doGetString)
Point(onGetString)
link(onGetString,4587441:doStrCatDlm,[])
}
Add(MT_MultiData,290195,322,147)
{
Count=3
link(onData1,1745931:doEvent1,[])
link(onData2,13383590:doGetString,[(382,160)(382,300)])
}
Add(FormatStr,16400647,455,105)
{
Mask="%1=25==2"
Point(FString)
link(onFString,3222149:doColAction,[])
}
Add(Label,6939501,343,84)
{
Width=849
Align=2
Font=[Lucida Console,20,0,0,204]
Alignment=2
}
Add(Hub,1745931,399,147)
{
link(onEvent1,16400647:doString,[(424,153)(424,111)])
link(onEvent2,10493455:doStrCatDlm,[])
}
Add(MST_RowAction,4893562,637,203)
{
MSTControl="tabl"
}
Add(StrCatDelim,10493455,448,154)
{
Delimiter=";"
link(Str1,11910330:Var1,[(454,145)(440,145)(440,194)])
}
Add(GetDataEx,11910330,448,189)
{
link(Data,10493455:Result,[])
}
Add(StrCatDelim,4587441,448,273)
{
Delimiter=";"
link(Str1,5343313:Var1,[(454,264)(440,264)(440,313)])
}
Add(GetDataEx,5343313,448,308)
{
link(Data,4587441:Result,[])
}
Add(HubEx,1561326,553,217)
{
link(onEvent,10507392:doMTString,[])
}
Add(StrList,3421976,196,378)
{
Strings=#23:Иванов;xxННxxННxxДДxxДД|23:Петров;ННxxННxxДДxxДДxx|24:Сидоров;xxДДxxДДxxННxxНН|25:Кузнецов;ДДxxДДxxННxxННxx|0:|
}
Add(ArrayEnum,15664667,210,427)
{
link(onItem,7304236:doSplit,[])
link(Array,3421976:Array,[])
}
Add(MultiStrPart,7304236,266,427)
{
Count=1
link(onSplit,2279749:doEvent1,[])
}
Add(Hub,2279749,322,427)
{
OutCount=4
link(onEvent1,11111069:doWork2,[])
link(onEvent2,13347297:doWork2,[])
link(onEvent3,13347297:doWork3,[(354,447)])
link(onEvent4,12793079:doStrCatDlm,[(347,454)(347,468)(256,468)(256,496)])
}
Add(Str_Enum,13145137,378,427)
{
Delimiter=""
link(onEnum,1532389:doStrCatDlm,[])
}
Add(HubEx,11111069,350,427)
{
link(onEvent,13145137:doEnum,[])
}
Add(HubEx,13347297,350,434)
{
Angle=3
link(onEvent,11111069:doWork3,[])
}
Add(StrCatDelim,1532389,441,427)
{
Delimiter=";"
Point(doClear)
link(Str1,6350360:Var1,[(447,418)(433,418)(433,467)])
}
Add(MT_String,10507392,588,203)
{
link(onResult,4893562:doRowAction,[])
}
Add(GetDataEx,6350360,441,462)
{
link(Data,1532389:Result,[])
}
Add(StrCatDelim,12793079,266,490)
{
Delimiter=";"
link(onStrCatDlm,7830516:doReplace,[])
link(Str1,7304236:Part1,[])
link(Str2,6350360:Var2,[(279,474)(447,474)])
}
Add(HubEx,3776966,553,336)
{
Angle=3
link(onEvent,1561326:doWork3,[])
}
Add(Hub,10747413,385,490)
{
link(onEvent1,3776966:doWork3,[(557,496)])
link(onEvent2,1532389:doClear,[(417,503)(417,440)])
}
Add(DoData,7211250,448,217)
{
link(onEventData,1561326:doWork2,[])
link(Data,11910330:Var2,[])
}
Add(DoData,3064298,448,336)
{
link(onEventData,3776966:doWork2,[])
link(Data,5343313:Var2,[])
}
Add(Replace,7830516,322,490)
{
SubStr=";;"
DestStr=";"
link(onReplace,10747413:doEvent1,[])
}
Add(EventFromData,13332854,686,329)
{
link(onEvent,8769614:doSeparateMT,[])
}
Add(MT_MultiData,8769614,735,329)
{
Count=1
link(onData1,4526268:doGetIndex,[])
}
Add(IndexToChanel,15516131,889,308)
{
Count=3
link(onEvent1,12965255:doWork2,[])
link(onEvent2,6024469:doColor,[(949,321)(949,363)])
link(onEvent3,8563778:doColor,[(942,328)(942,405)])
}
Add(DoData,14132548,959,308)
{
link(onEventData,13423211:doWork2,[])
}
Add(HubEx,13423211,1001,308)
{
Angle=3
link(onEvent,13332854:doData,[(1005,293)(676,293)(676,335)])
}
Add(StrList,4526268,784,301)
{
Strings=#1:x|1:Н|1:Д|
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,10840516:doCase,[])
}
Add(SelectColor,8563778,959,399)
{
Color=15780518
link(onColor,12615861:doWork3,[(1005,405)])
}
Add(HubEx,12615861,1001,357)
{
Angle=3
link(onEvent,13423211:doWork3,[])
}
Add(SelectColor,6024469,959,357)
{
Color=10789024
link(onColor,12615861:doWork2,[])
}
Add(Case,10840516,833,308)
{
Value=Integer(-1)
link(onNextCase,15516131:doEvent,[])
link(onTrue,12965255:doWork1,[(872,321)(872,300)(935,300)])
}
Add(HubEx,12965255,931,308)
{
link(onEvent,14132548:doData,[])
}

карма: 16

1
Голосовали:Gitarist
Сообщение
...
Прикрепленные файлы
(файлы не залиты)