Gunta писал(а):
Я себе это как-то так представляю Походу ТС сам еще не знает как он это представляет

Скопипастил(нагло стырил) у Вас кусок схемы, понравилась идея с таблицей

Схему не стал упорядочивать, всеравно статью о циркуляции данных не читают, может хоть так поймут как оно там бегает (да и лень мне сегодня)

Add(MainForm,6614047,35,140)
{
Width=849
Height=313
Point(onClose)
link(onCreate,5765194:doEnum,[])
link(onClose,10088875:doEvent1,[(83,167)(83,118)])
}
Add(ChildPanelEx,5765194,98,154)
{
link(onEvent2,696306:doEvent1,[(145,160)(145,125)])
link(onPart1,10904693:doValue,[])
link(onPart2,168900:doWork1,[(365,174)])
link(onPart3,9301816:doValue,[(353,181)(353,244)])
link(onSplit,8860255:doEvent1,[])
}
BEGIN_SDK
Add(EditMultiEx,15651246,21,21)
{
WorkCount=#6:doEnum|
EventCount=#8:onEvent2|7:onPart1|7:onPart2|7:onPart3|7:onSplit|
Width=433
Height=403
link(doEnum,3675150:doEnum,[(85,27)(85,321)])
}
Add(Panel,11288418,35,105)
{
Width=833
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,[(204,62)(204,94)(107,94)(107,104)])
}
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,98)
{
InCount=2
OutCount=3
link(onEvent1,10391167:doData,[(153,104)(153,192)(121,192)(121,279)])
link(onEvent2,411267:doConvert,[])
link(onEvent3,15651246:onEvent2,[(146,118)(146,27)])
}
Add(MultiStrData,9717560,231,105)
{
Count=3
link(onPart1,15651246:onPart1,[(292,111)(292,34)])
link(onPart2,15651246:onPart2,[(302,118)(302,41)])
link(onPart3,15651246:onPart3,[(310,125)(310,48)])
}
Add(ComboBox,8581999,308,322)
{
Left=280
Top=5
Width=175
Height=21
ReadOnly=0
Point(Index)
link(onClick,1467083:doEvent2,[(353,335)(353,304)(107,304)(107,111)])
}
Add(StrList,562841,189,245)
{
Strings=#38:Иванов=х,х,н,н,х,х,н,н,х,х,д,д,х,х,д,д|38:Петров=н,н,х,х,н,н,х,х,д,д,х,х,д,д,х,х|39:Сидоров=х,х,д,д,х,х,д,д,х,х,н,н,х,х,н,н|40:Кузнецов=д,д,х,х,д,д,х,х,н,н,х,х,н,н,х,х|46:Равшан=д,х,х,х,х,д,х,х,х,х,н,х,х,х,х,н,х,х,х,х|47:Джамшут=н,х,х,х,х,н,х,х,х,х,д,х,х,х,х,д,х,х,х,х|15:охрана1=д,н,х,х|15:охрана2=х,д,н,х|15:охрана3=х,х,д,н|15:охрана4=н,х,х,д|0:|
Point(doGetString)
Point(onGetString)
link(onGetString,7323567:doSplit,[])
}
Add(ArrayEnum,3675150,203,315)
{
link(onItem,8891442:doSplit,[])
link(Array,562841:Array,[])
}
Add(StrPart,8891442,252,315)
{
Char="="
link(onPart,8581999:doAdd,[])
}
Add(DoData,10391167,133,273)
{
link(onEventData,562841:doGetString,[])
link(Data,8581999:Index,[(139,261)(173,261)(173,364)(328,364)])
}
Add(StrPart,7323567,252,252)
{
Char="="
link(onSplit,15651246:onSplit,[(322,258)(322,55)])
}
END_SDK
Add(StrList,7965454,728,189)
{
@Hint=#21:График смены в цветах|
Strings=#1:д|1:д|1:х|1:х|1:д|1:д|1:х|1:х|1:н|1:н|1:х|1:х|1:н|1:н|1:х|1:х|
Point(doGetString)
Point(String)
Point(IdxToSelect)
}
Add(FormatStr,6701151,749,378)
{
DataCount=1
Mask="%1;"
link(onFString,7214563:doWork2,[])
link(Str1,7965454:String,[])
}
Add(InlineCode,15930644,434,378)
{
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,10904693:Value,[])
link(Month,13076261:Var2,[])
}
Add(For,2221956,504,378)
{
InData=0
link(onEvent,11351548:doEvent1,[(552,384)(552,377)])
link(onStop,7642751:doEvent1,[(548,391)(548,398)])
link(Start,4990123:Var2,[])
}
Add(Memory,9301816,504,238)
{
Default=Integer(1)
}
Add(MultiElementEx,15350782,665,217)
{
link(onTrue,7965454:doGetString,[])
link(Op2,7965454:Count,[(671,205)(709,205)(709,238)(741,238)])
}
BEGIN_SDK
Add(EditMultiEx,5572494,14,7)
{
WorkCount=#7:doWork2|8:doEvent1|
EventCount=#6:onTrue|
DataCount=#3:Op2|
link(doWork2,7110887:doEvent1,[(49,13)(49,76)])
link(doEvent1,5969604:doWork2,[(39,20)(39,69)])
}
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,77,70)
{
InCount=2
OutCount=1
link(onEvent1,2334012:doClear,[])
}
END_SDK
Add(Hub,11351548,567,371)
{
link(onEvent1,15350782:doEvent1,[(586,377)(586,230)])
link(onEvent2,6701151:doString,[])
}
Add(Memory,10904693,434,161)
{
}
Add(Memory,880184,441,203)
{
}
Add(Math,12749478,252,399)
{
Op2=1
ResultType=0
Point(doClear)
link(onResult,12054949:doCompare,[])
link(Op1,13076261:Var1,[(258,355)])
}
Add(HubEx,168900,361,203)
{
link(onEvent,880184:doValue,[])
}
Add(If_else,12054949,294,399)
{
Type=3
Op2=Integer(12)
link(onTrue,11908777:doEvent1,[])
AddHint(-5,-26,27,13,Op2)
}
Add(Hub,11908777,343,399)
{
OutCount=3
link(onEvent1,168900:doWork3,[(365,405)])
link(onEvent2,4273397:doEvent2,[(375,412)(375,517)])
link(onEvent3,13441865:doWork3,[(410,419)])
}
Add(GetDataEx,13076261,441,350)
{
link(Data,880184:Value,[])
}
Add(Hub,7642751,567,392)
{
OutCount=4
link(onEvent1,7211250:doData,[(611,398)(611,440)])
link(onEvent2,16074127:doClear,[(624,405)(624,391)])
link(onEvent3,9301816:doClear,[(603,412)(603,453)(490,453)(490,251)])
link(onEvent4,12749478:doOperation,[(593,419)(593,443)(231,443)(231,405)])
}
Add(Hub,10867731,371,364)
{
OutCount=3
link(onEvent1,4273397:doEvent1,[(423,370)(423,510)])
link(onEvent2,4732895:doCompare,[(410,377)(410,328)])
link(onEvent3,13441865:doWork2,[])
}
Add(Hub,10088875,196,112)
{
InCount=2
OutCount=3
link(onEvent1,8569429:doClear,[])
link(onEvent2,15350782:doWork2,[(587,125)(587,223)])
link(onEvent3,12749478:doClear,[(224,132)(224,412)])
}
Add(MTStrTbl,12733493,833,266)
{
Top=35
Width=833
Height=240
Align=5
Name="tbl"
Columns=#1:\|1:1|1:2|1:3|1:4|1:5|1:6|1:7|1:8|1:9|2:10|2:11|2:12|2:13|2:14|2:15|2:16|2:17|2:18|2:19|2:20|2:21|2:22|2:23|2:24|2:25|2:26|2:27|2:28|2:29|2:30|2:31|
ColumnWidth=25
ColorItems=0
Grid=0
link(FormatCell,13332854:GetData,[])
}
Add(MT_String,10507392,917,420)
{
link(onResult,12654704:doRowAction,[])
}
Add(DoData,7211250,847,434)
{
link(onEventData,10507392:doMTString,[])
link(Data,7002244:Var2,[])
}
Add(MST_RowAction,12654704,973,420)
{
MSTControl="tbl"
}
Add(StrCat,16074127,847,378)
{
Point(doClear)
link(Str1,7002244:Var3,[(853,365)(890,365)(890,418)])
}
Add(If_else,4732895,616,322)
{
Type=2
Op2=Integer(1)
link(onTrue,4145754:doFor,[])
link(Op1,900744:Var2,[])
}
Add(GetDataEx,4990123,504,294)
{
link(Data,9301816:Value,[])
}
Add(For,4145754,665,322)
{
Start=2
link(onEvent,11069881:doData,[])
link(End,900744:Var3,[(678,299)])
}
Add(HubEx,13441865,406,378)
{
link(onEvent,15930644:GetMonthDays,[])
}
Add(GetDataEx,900744,616,294)
{
Angle=3
link(Data,4990123:Var3,[])
}
Add(DoData,11069881,707,322)
{
Data=String(;)
link(onEventData,7214563:doWork1,[(800,328)])
}
Add(MST_Clear,8569429,826,112)
{
MSTControl="tbl"
}
Add(EventFromData,13332854,847,203)
{
link(onEvent,8769614:doSeparateMT,[])
}
Add(MT_MultiData,8769614,896,203)
{
Count=1
link(onData1,4526268:doGetIndex,[])
}
Add(IndexToChanel,15516131,1050,182)
{
Count=3
link(onEvent1,3407137:doColor,[(1112,188)(1112,223)])
link(onEvent2,6024469:doColor,[(1102,195)(1102,265)])
link(onEvent3,8563778:doColor,[(1092,202)(1092,307)])
}
Add(HubEx,13423211,1183,217)
{
Angle=3
link(onEvent,16511362:doWork3,[])
}
Add(StrList,4526268,945,175)
{
Strings=#1:х|1:н|1:д|
Point(doGetIndex)
Point(onGetIndex)
link(onGetIndex,10840516:doCase,[])
}
Add(SelectColor,8563778,1141,301)
{
Color=15780518
link(onColor,12615861:doWork3,[(1187,307)])
}
Add(HubEx,12615861,1183,259)
{
Angle=3
link(onEvent,13423211:doWork3,[])
}
Add(SelectColor,6024469,1141,259)
{
Color=10789024
link(onColor,12615861:doWork2,[])
}
Add(Case,10840516,994,182)
{
Value=Integer(-1)
link(onNextCase,15516131:doEvent,[])
link(onTrue,13553286:doData,[(1037,195)(1037,181)])
}
Add(SelectColor,3407137,1141,217)
{
Color=12639424
link(onColor,13423211:doWork2,[])
}
Add(DoData,13553286,1141,175)
{
link(onEventData,16511362:doWork2,[])
}
Add(HubEx,16511362,1183,175)
{
Angle=3
link(onEvent,13332854:doData,[(1187,167)(837,167)(837,209)])
}
Add(Hub,696306,154,119)
{
link(onEvent1,10088875:doEvent2,[])
link(onEvent2,10867731:doEvent1,[(184,132)(184,370)])
}
Add(Str_Enum,15454821,518,189)
{
Delimiter=","
link(onEnum,7965454:doAdd,[])
}
Add(Hub,8860255,483,182)
{
link(onEvent1,7965454:doClear,[(712,188)(712,202)])
link(onEvent2,15454821:doEnum,[])
}
Add(GetDataEx,7002244,847,413)
{
link(Data,16074127:Result,[])
}
Add(StrCat,5166377,476,504)
{
Str2=";"
link(onStrCat,7214563:doWork3,[(800,510)])
link(Str1,13076261:Var3,[(482,355)])
}
Add(Hub,4273397,448,504)
{
InCount=2
OutCount=1
link(onEvent1,5166377:doStrCat,[])
}
Add(HubEx,7214563,796,378)
{
link(onEvent,16074127:doStrCat,[])
}