Вверх ↑
Этот топик читают: Гость
Разработчик
Ответов: 26223
Рейтинг: 2139
#16: 2025-02-27 12:59:17 ЛС | профиль | цитата
Вот, как и обещал -- динамические таблицы
Схема


Add(MainForm,2953706,182,308)
{
Width=860
Height=506
MarginLeft=3
MarginTop=3
MarginRight=3
MarginBottom=3
Border=3
BorderStyle=1
Position=1
link(onCreate,12035853:doTimer,[])
}
Add(ChildScrollBox,8844261,567,420)
{
}
BEGIN_SDK
Add(EditMulti,4271376,21,21)
{
WorkCount=1
Width=727
Height=550
link(doWork1,879511:doEvent1,[(53,27)(53,76)])
}
Add(ScrollBox,964248,511,112)
{
Left=264
Width=605
Height=467
Align=5
WinStyle=2
Name="scrl_001"
BorderStyle=1
Point(Width)
}
Add(ChildPanelEx,2261261,560,217)
{
@Hint=#19:Динамические группы|
Mode=1
link(onVShift,8595977:doOperation,[(606,223)(606,139)(550,139)(550,160)])
link(pWidth,964248:Width,[(566,208)(531,208)])
link(vOffset,15893030:Var2,[])
link(onResult,4141012:doMessage,[])
AddHint(39,57,130,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,3885935,21,21)
{
WorkCount=#5:##add|8:##select|
EventCount=#8:onVShift|8:onResult|0:|
VarCount=#7:##count|0:|
DataCount=#6:pWidth|7:vOffset|
Width=496
Height=403
Point(##add)
Point(##select)
Point(##count)
link(##add,4250363:doEvent1,[(39,27)(39,146)])
link(##select,1177020:doSplit,[(32,34)(32,265)])
}
Add(Panel,15904931,441,49)
{
Width=369
Height=86
Font=[MS Sans Serif,12,0,0,1]
Visible=1
Point(doWidth)
Point(Height)
Point(doTop)
Point(doHeight)
Point(doVisible)
}
Add(Button,11087212,91,147)
{
Width=85
Height=85
Align=1
Font=[MS Sans Serif,12,0,0,1]
TabOrder=-1
Caption=""
Point(doCaption)
link(onClick,16401184:doEvent1,[])
}
Add(MTStrTbl,11520425,210,294)
{
Left=87
Top=2
Width=280
Height=82
Align=5
Font=[MS Sans Serif,12,0,0,1]
WinStyle=3
Name="mtbl_001"
Columns=#9:name1=150|9:name2=100|9:name3=100|8:name4=50|8:name5=75|
Style=4
Grid=0
Point(doHeight)
}
Add(Hub,4250363,49,140)
{
link(onEvent1,6740804:doOperation,[(80,146)(80,62)])
link(onEvent2,11087212:doCaption,[])
}
Add(Math,6740804,175,56)
{
OpType=1
Op2=18
ResultType=0
link(onResult,15904931:doWidth,[])
link(Op1,3885935:pWidth,[(181,47)(27,47)])
}
Add(MT_Part,1177020,91,259)
{
link(onSplit,3091176:doCase,[])
}
Add(MT_String,11205836,224,245)
{
Delimeter="_"
link(onResult,9614300:doRowAction,[])
}
Add(MST_RowAction,9614300,280,245)
{
MSTControl="mtbl_001"
}
Add(Case,3091176,147,259)
{
@Hint=#34:Выделение команды установки высоты|
Value=String(-1)
link(onNextCase,11205836:doMTString,[])
link(onTrue,7577038:doOperation,[(200,272)(200,363)])
AddHint(-119,119,179,26,@Hint)
}
Add(Math,7577038,224,357)
{
OpType=2
Op2=24
ResultType=0
link(onResult,8700013:doEvent1,[])
link(Op1,11520425:Count,[])
}
Add(Hub,8700013,280,357)
{
OutCount=4
link(onEvent1,2608456:doData,[(305,363)(305,300)])
link(onEvent2,15904931:doHeight,[(368,370)(368,76)])
link(onEvent3,11458420:doOperation,[])
link(onEvent4,13247899:doWork2,[(375,384)(375,111)])
}
Add(DoData,2608456,322,294)
{
link(onEventData,15904931:doTop,[(361,300)(361,69)])
link(Data,3885935:vOffset,[(328,33)(34,33)])
}
Add(Math,11458420,441,371)
{
OpType=1
Op2=1
link(onResult,3885935:onVShift,[(480,377)(480,27)])
link(Op1,15904931:Height,[])
}
Add(ChanelToIndex,13247899,392,98)
{
link(onIndex,15904931:doVisible,[(431,104)(431,83)])
}
Add(MST_ArrayRows,15673897,175,98)
{
MSTControl="mtbl_001"
}
Add(MT_MTArrayEnum,9756254,175,154)
{
link(onItem,10915627:doStr,[])
link(Array,15673897:Strings,[])
}
Add(MT_String,10915627,224,154)
{
link(onResult,10031208:doAdd,[])
}
Add(StrList,10031208,280,154)
{
}
Add(DoData,3602060,280,203)
{
link(onEventData,3885935:onResult,[(333,209)(333,34)])
link(Data,10031208:Text,[])
}
Add(Hub,16401184,140,147)
{
OutCount=3
link(onEvent1,10031208:doClear,[(165,153)(165,146)(263,146)(263,167)])
link(onEvent2,9756254:doEnum,[])
link(onEvent3,3602060:doData,[(165,167)(165,209)])
}
END_SDK
Add(MT_String,11581838,189,126)
{
link(onResult,14798857:doValue,[])
}
Add(MT_MultiData,10069644,301,126)
{
From=2
Count=1
link(onData1,5953592:doCase,[])
}
Add(Case,5953592,357,126)
{
Value=String(-1)
link(onTrue,11554508:doSeparateMT,[(396,139)(396,118)(235,118)(235,223)])
}
Add(MT_Memory,14798857,245,126)
{
link(onData,10069644:doSeparateMT,[])
}
Add(MT_MultiData,11554508,245,217)
{
Count=1
Point(Data)
link(onData1,2261261:##add,[])
link(Data,14798857:Value,[])
}
Add(StrList,10000206,126,49)
{
}
Add(Hub,879511,63,70)
{
OutCount=3
link(onEvent1,10000206:doText,[])
link(onEvent2,151755:doEnum,[(116,83)(116,146)])
link(onEvent3,9978300:doEnum,[(109,90)(109,328)])
}
Add(ArrayEnum,151755,140,140)
{
link(onItem,11581838:doMTString,[])
link(Array,5355832:Var2,[])
}
Add(ArrayEnum,9978300,126,322)
{
link(onItem,11602246:doMTString,[])
link(onEndEnum,4154590:doEvent1,[(169,335)(169,475)])
link(Array,5355832:Var1,[(132,117)])
}
Add(GetDataEx,5355832,140,112)
{
link(Data,10000206:Array,[])
}
Add(MT_String,11602246,189,308)
{
link(onResult,11144894:doValue,[])
}
Add(MT_Memory,11144894,245,308)
{
link(onData,2376732:doSeparateMT,[])
}
Add(MT_MultiData,2376732,301,308)
{
From=2
Count=1
link(onData1,2285829:doCase,[])
}
Add(Case,2285829,357,308)
{
Value=String(-1)
link(onNextCase,5418568:doConvert,[])
}
Add(MT_MultiData,16457722,245,385)
{
Count=1
Point(Data)
link(onData1,4443410:doAdd,[])
link(Data,11144894:Value,[])
}
Add(MT_Add,4443410,413,385)
{
InputMT=1
link(onAdd,11319913:doWork2,[])
link(Data,5418568:Var,[])
}
Add(ConvertorEx,5418568,413,308)
{
Mode=1
link(onResult,16457722:doSeparateMT,[(452,314)(452,300)(235,300)(235,391)])
}
Add(For,5457338,413,476)
{
IncludeEnd=1
link(onEvent,5228770:doAdd,[])
link(End,2261261:##count,[(426,467)(566,467)])
}
Add(MT_Add,5228770,469,476)
{
@Hint=#35:Команда на установку высоты -- "-1"|
Data=String(-1)
link(onAdd,11319913:doWork3,[(515,482)])
AddHint(13,45,183,26,@Hint)
}
Add(HubEx,11319913,511,385)
{
Angle=3
link(onEvent,2261261:##select,[(515,230)])
}
Add(Math,8595977,567,154)
{
ResultType=0
Point(doClear)
link(Op2,15893030:Var1,[(580,145)(559,145)(559,194)])
}
Add(GetDataEx,15893030,567,189)
{
link(Data,8595977:Result,[])
}
Add(Hub,4154590,343,469)
{
OutCount=3
link(onEvent1,8595977:doClear,[(396,475)(396,167)])
link(onEvent2,5457338:doFor,[])
link(onEvent3,3963701:doRedraw,[(375,489)(375,524)])
}
Add(RedrawManager,3963701,413,518)
{
ControlManager="scrl_001"
}
Add(Message,4141012,630,224)
{
}
Add(InfoTip,14744595,126,91)
{
Info=#24:Парсинг заголовков групп|
Width=330
Height=165
Margin=10
}
Add(InfoTip,14361363,119,266)
{
Info=#25:Парсинг содержимого групп|
Width=344
Height=158
Margin=10
}
Add(InfoTip,8628584,308,434)
{
Info=#24:Установка размеров групп|
Width=267
Height=123
Margin=10
}
END_SDK
Add(TreeViewTrain,1574694,392,357)
{
Width=254
Height=467
Align=1
Name="main"
RightClickSelect=0
SetCheckOnChild=0
ParentIDIndex=2
IDIndex=1
IconIndex=3
CheckBoxIndex=4
Point(IDAtPos)
Point(DataAtPos)
Point(onDrop)
Point(doSetFocus)
Point(doExpand)
}
Add(TVT_AddNode,3105964,448,315)
{
TreeView="main"
}
Add(ArrayEnum,1635544,287,322)
{
link(onItem,11917214:doMT,[])
link(onEndEnum,6961896:doEvent1,[(335,335)(335,377)])
link(Array,12082072:Array,[])
}
Add(MT_String,11917214,392,315)
{
link(onResult,3105964:doAddNode,[])
}
Add(Timer,12035853,238,322)
{
Interval=0
Enable=1
AutoStop=1
link(onTimer,1635544:doEnum,[])
}
Add(StrList,12082072,273,238)
{
Strings=#18:Администрация;0;-1|26:Петров_Москва_56_777;011;0|21:Иванов_Минск_49;012;0|17:Пользователи;1;-1|21:Сидоров_Киев_26;111;1|22:Смирнов_Киров_36;112;1|23:Малевич_Сидней_27;113;1|10:Гости;2;-1|26:Гзбыштнев_Варшава_34;211;2|25:Волайтос_Вильнус_53;212;2|22:Портос_Мадрид_62;213;2|21:Арамис_Париж_63;214;2|18:Администрация;3;-1|26:Петров_Москва_56_777;311;3|21:Иванов_Минск_49;312;3|17:Пользователи;4;-1|21:Сидоров_Киев_26;411;4|22:Смирнов_Киров_36;412;4|23:Малевич_Сидней_27;413;4|10:Гости;5;-1|26:Гзбыштнев_Варшава_34;511;5|25:Волайтос_Вильнус_53;512;5|22:Портос_Мадрид_62;513;5|21:Арамис_Париж_63;514;5|18:Администрация;6;-1|26:Петров_Москва_56_777;611;6|21:Иванов_Минск_49;612;6|17:Пользователи;7;-1|21:Сидоров_Киев_26;711;7|22:Смирнов_Киров_36;712;7|23:Малевич_Сидней_27;713;7|10:Гости;8;-1|26:Гзбыштнев_Варшава_34;811;8|25:Волайтос_Вильнус_53;812;8|22:Портос_Мадрид_62;813;8|21:Арамис_Париж_63;814;8|0:|
}
Add(DoData,16516091,504,420)
{
link(onEventData,8844261:doWork1,[])
link(Data,12082072:Text,[(510,306)(279,306)])
}
Add(Hub,6961896,350,371)
{
link(onEvent1,1574694:doExpand,[])
link(onEvent2,16516091:doData,[(382,384)(382,426)])
}

карма: 22

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#17: 2025-02-27 15:06:43 ЛС | профиль | цитата
Немного дополнил схему и сделал подстройку высоты групп под шрифт в таблице

Схема2

Add(MainForm,2953706,182,308)
{
Width=910
Height=506
MarginLeft=3
MarginTop=3
MarginRight=3
MarginBottom=3
Border=3
BorderStyle=1
Position=1
link(onCreate,12035853:doTimer,[])
}
Add(ChildScrollBox,8844261,567,420)
{
}
BEGIN_SDK
Add(EditMulti,4271376,21,21)
{
WorkCount=1
Width=727
Height=550
link(doWork1,879511:doEvent1,[(53,27)(53,76)])
}
Add(ScrollBox,964248,511,112)
{
Left=264
Width=605
Height=467
Align=5
WinStyle=2
Name="scrl_001"
BorderStyle=1
Point(Width)
}
Add(ChildPanelEx,2261261,560,217)
{
@Hint=#19:Динамические группы|
Mode=1
link(onVShift,8595977:doOperation,[(606,223)(606,139)(550,139)(550,160)])
link(onResult,4141012:doMessage,[])
link(pWidth,964248:Width,[(566,208)(531,208)])
link(vOffset,15893030:Var2,[])
AddHint(39,57,130,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,3885935,21,21)
{
WorkCount=#5:##add|8:##select|
EventCount=#8:onVShift|8:onResult|0:|
VarCount=#7:##count|0:|
DataCount=#6:pWidth|7:vOffset|
Width=643
Height=522
Point(##add)
Point(##select)
Point(##count)
link(##add,4250363:doEvent1,[(39,27)(39,146)])
link(##select,1177020:doSplit,[(32,34)(32,265)])
}
Add(Panel,15904931,595,49)
{
Width=369
Height=86
Font=[MS Sans Serif,12,0,0,1]
Visible=1
Point(doWidth)
Point(Height)
Point(doTop)
Point(doHeight)
Point(doVisible)
}
Add(Button,11087212,280,147)
{
Width=135
Height=85
Align=1
Font=[MS Sans Serif,12,0,0,1]
TabOrder=-1
Caption=""
Point(doCaption)
Point(doFont)
link(onClick,16401184:doEvent1,[])
}
Add(MTStrTbl,11520425,329,392)
{
Left=87
Top=2
Width=280
Height=82
Align=5
Font=[MS Sans Serif,11,0,0,1]
WinStyle=3
Name="mtbl_001"
Columns=#9:name1=150|9:name2=100|9:name3=100|8:name4=50|8:name5=75|
Style=4
Grid=0
Point(doHeight)
}
Add(Hub,4250363,217,140)
{
link(onEvent1,6740804:doOperation,[(242,146)(242,62)])
link(onEvent2,11087212:doCaption,[])
}
Add(Math,6740804,364,56)
{
OpType=1
Op2=18
ResultType=0
link(onResult,15904931:doWidth,[])
link(Op1,3885935:pWidth,[(370,47)(27,47)])
}
Add(MT_Part,1177020,42,259)
{
link(onSplit,3091176:doCase,[])
}
Add(MT_String,11205836,413,245)
{
Delimeter="_"
link(onResult,9614300:doRowAction,[])
}
Add(MST_RowAction,9614300,476,245)
{
MSTControl="mtbl_001"
}
Add(Case,3091176,91,259)
{
@Hint=#34:Выделение команды установки высоты|
Value=String(-1)
link(onNextCase,11205836:doMTString,[])
link(onTrue,8908957:doEvent1,[(137,272)(137,349)])
AddHint(-31,-53,179,26,@Hint)
}
Add(Math,7577038,280,462)
{
OpType=2
ResultType=0
link(onResult,8700013:doEvent1,[])
link(Op1,14478038:Result,[])
link(Op2,11520425:Count,[(293,432)(349,432)])
}
Add(Hub,8700013,448,462)
{
OutCount=4
link(onEvent1,2608456:doData,[(473,468)(473,405)])
link(onEvent2,15904931:doHeight,[(564,475)(564,76)])
link(onEvent3,11458420:doOperation,[])
link(onEvent4,13247899:doWork2,[(508,489)(508,503)])
}
Add(DoData,2608456,518,399)
{
link(onEventData,15904931:doTop,[(557,405)(557,69)])
link(Data,3885935:vOffset,[(524,26)(34,26)])
}
Add(Math,11458420,595,476)
{
OpType=1
Op2=1
link(onResult,3885935:onVShift,[(634,482)(634,27)])
link(Op1,15904931:Height,[])
}
Add(ChanelToIndex,13247899,518,490)
{
link(onIndex,15904931:doVisible,[(571,496)(571,83)])
}
Add(MST_ArrayRows,15673897,364,98)
{
MSTControl="mtbl_001"
}
Add(MT_MTArrayEnum,9756254,364,154)
{
link(onItem,10915627:doStr,[])
link(Array,15673897:Strings,[])
}
Add(MT_String,10915627,413,154)
{
link(onResult,10031208:doAdd,[])
}
Add(StrList,10031208,476,154)
{
}
Add(DoData,3602060,476,203)
{
link(onEventData,3885935:onResult,[(515,209)(515,34)])
link(Data,10031208:Text,[])
}
Add(Hub,16401184,329,147)
{
OutCount=3
link(onEvent1,10031208:doClear,[(354,153)(354,146)(452,146)(452,167)])
link(onEvent2,9756254:doEnum,[])
link(onEvent3,3602060:doData,[(354,167)(354,209)])
}
Add(FontManager,7461808,182,287)
{
ControlManager="mtbl_001"
Point(FontCharset)
}
Add(Font,6371043,182,343)
{
Point(CharSet)
link(onFont,4843448:doEvent1,[])
link(Size,7461808:FontSize,[])
link(Color,7461808:FontColor,[])
link(Name,7461808:FontName,[])
link(Style,7461808:FontStyle,[])
link(CharSet,7461808:FontCharset,[])
}
Add(Img_Text,3115299,273,343)
{
Text="W"
Point(doFont)
}
Add(Hub,4843448,238,343)
{
OutCount=3
link(onEvent1,11087212:doFont,[(263,349)(263,160)])
link(onEvent2,3115299:doFont,[])
link(onEvent3,14478038:doOperation,[(263,363)(263,398)])
}
Add(Hub,8908957,147,343)
{
link(onEvent1,6371043:doFont,[])
link(onEvent2,7577038:doOperation,[(172,356)(172,468)])
}
Add(Math,14478038,280,392)
{
Op2=4
ResultType=0
link(Op1,3115299:TextHeight,[])
}
Add(InfoTip,6154573,133,280)
{
Info=#25:Определение высоты группы|
VAlign=2
Width=295
Height=242
Margin=10
}
END_SDK
Add(MT_String,11581838,189,126)
{
link(onResult,14798857:doValue,[])
}
Add(MT_MultiData,10069644,301,126)
{
From=2
Count=1
link(onData1,5953592:doCase,[])
}
Add(Case,5953592,357,126)
{
Value=String(-1)
link(onTrue,11554508:doSeparateMT,[(396,139)(396,118)(235,118)(235,223)])
}
Add(MT_Memory,14798857,245,126)
{
link(onData,10069644:doSeparateMT,[])
}
Add(MT_MultiData,11554508,245,217)
{
Count=1
Point(Data)
link(onData1,2261261:##add,[])
link(Data,14798857:Value,[])
}
Add(StrList,10000206,126,49)
{
}
Add(Hub,879511,63,70)
{
OutCount=3
link(onEvent1,10000206:doText,[])
link(onEvent2,151755:doEnum,[(116,83)(116,146)])
link(onEvent3,9978300:doEnum,[(109,90)(109,328)])
}
Add(ArrayEnum,151755,140,140)
{
link(onItem,11581838:doMTString,[])
link(Array,5355832:Var2,[])
}
Add(ArrayEnum,9978300,126,322)
{
link(onItem,11602246:doMTString,[])
link(onEndEnum,4154590:doEvent1,[(169,335)(169,475)])
link(Array,5355832:Var1,[(132,117)])
}
Add(GetDataEx,5355832,140,112)
{
link(Data,10000206:Array,[])
}
Add(MT_String,11602246,189,308)
{
link(onResult,11144894:doValue,[])
}
Add(MT_Memory,11144894,245,308)
{
link(onData,2376732:doSeparateMT,[])
}
Add(MT_MultiData,2376732,301,308)
{
From=2
Count=1
link(onData1,2285829:doCase,[])
}
Add(Case,2285829,357,308)
{
Value=String(-1)
link(onNextCase,5418568:doConvert,[])
}
Add(MT_MultiData,16457722,245,385)
{
Count=1
Point(Data)
link(onData1,4443410:doAdd,[])
link(Data,11144894:Value,[])
}
Add(MT_Add,4443410,413,385)
{
InputMT=1
link(onAdd,11319913:doWork2,[])
link(Data,5418568:Var,[])
}
Add(ConvertorEx,5418568,413,308)
{
Mode=1
link(onResult,16457722:doSeparateMT,[(452,314)(452,300)(235,300)(235,391)])
}
Add(For,5457338,413,476)
{
IncludeEnd=1
link(onEvent,5228770:doAdd,[])
link(End,2261261:##count,[(426,467)(566,467)])
}
Add(MT_Add,5228770,469,476)
{
@Hint=#35:Команда на установку высоты -- "-1"|
Data=String(-1)
link(onAdd,11319913:doWork3,[(515,482)])
AddHint(13,45,183,26,@Hint)
}
Add(HubEx,11319913,511,385)
{
Angle=3
link(onEvent,2261261:##select,[(515,230)])
}
Add(Math,8595977,567,154)
{
ResultType=0
Point(doClear)
link(Op2,15893030:Var1,[(580,145)(559,145)(559,194)])
}
Add(GetDataEx,15893030,567,189)
{
link(Data,8595977:Result,[])
}
Add(Hub,4154590,343,469)
{
OutCount=3
link(onEvent1,8595977:doClear,[(396,475)(396,167)])
link(onEvent2,5457338:doFor,[])
link(onEvent3,3963701:doRedraw,[(375,489)(375,524)])
}
Add(RedrawManager,3963701,413,518)
{
ControlManager="scrl_001"
}
Add(Message,4141012,630,224)
{
}
Add(InfoTip,14744595,126,91)
{
Info=#24:Парсинг заголовков групп|
Width=330
Height=165
Margin=10
}
Add(InfoTip,14361363,119,266)
{
Info=#25:Парсинг содержимого групп|
Width=344
Height=158
Margin=10
}
Add(InfoTip,8628584,308,434)
{
Info=#24:Установка размеров групп|
Width=267
Height=123
Margin=10
}
END_SDK
Add(TreeViewTrain,1574694,392,357)
{
Width=254
Height=467
Align=1
Name="main"
RightClickSelect=0
SetCheckOnChild=0
ParentIDIndex=2
IDIndex=1
IconIndex=3
CheckBoxIndex=4
Point(IDAtPos)
Point(DataAtPos)
Point(onDrop)
Point(doSetFocus)
Point(doExpand)
}
Add(TVT_AddNode,3105964,448,315)
{
TreeView="main"
}
Add(ArrayEnum,1635544,287,322)
{
link(onItem,11917214:doMT,[])
link(onEndEnum,6961896:doEvent1,[(335,335)(335,377)])
link(Array,12082072:Array,[])
}
Add(MT_String,11917214,392,315)
{
link(onResult,3105964:doAddNode,[])
}
Add(Timer,12035853,238,322)
{
Interval=0
Enable=1
AutoStop=1
link(onTimer,1635544:doEnum,[])
}
Add(StrList,12082072,273,238)
{
Strings=#18:Администрация;0;-1|26:Петров_Москва_56_777;011;0|21:Иванов_Минск_49;012;0|17:Пользователи;1;-1|21:Сидоров_Киев_26;111;1|22:Смирнов_Киров_36;112;1|23:Малевич_Сидней_27;113;1|10:Гости;2;-1|26:Гзбыштнев_Варшава_34;211;2|25:Волайтос_Вильнус_53;212;2|22:Портос_Мадрид_62;213;2|21:Арамис_Париж_63;214;2|18:Администрация;3;-1|26:Петров_Москва_56_777;311;3|21:Иванов_Минск_49;312;3|17:Пользователи;4;-1|21:Сидоров_Киев_26;411;4|22:Смирнов_Киров_36;412;4|23:Малевич_Сидней_27;413;4|10:Гости;5;-1|26:Гзбыштнев_Варшава_34;511;5|25:Волайтос_Вильнус_53;512;5|22:Портос_Мадрид_62;513;5|21:Арамис_Париж_63;514;5|18:Администрация;6;-1|26:Петров_Москва_56_777;611;6|21:Иванов_Минск_49;612;6|17:Пользователи;7;-1|21:Сидоров_Киев_26;711;7|22:Смирнов_Киров_36;712;7|23:Малевич_Сидней_27;713;7|10:Гости;8;-1|26:Гзбыштнев_Варшава_34;811;8|25:Волайтос_Вильнус_53;812;8|22:Портос_Мадрид_62;813;8|21:Арамис_Париж_63;814;8|0:|
}
Add(DoData,16516091,504,420)
{
link(onEventData,8844261:doWork1,[])
link(Data,12082072:Text,[(510,306)(279,306)])
}
Add(Hub,6961896,350,371)
{
link(onEvent1,1574694:doExpand,[])
link(onEvent2,16516091:doData,[(382,384)(382,426)])
}

Редактировалось 1 раз(а), последний 2025-02-27 15:09:27
карма: 22

2
Голосовали:strannik_nebes, Gitarist
Ответов: 145
Рейтинг: 0
#18: 2025-02-28 00:34:20 ЛС | профиль | цитата
nesco, Огромное спасибо, всё отлично!
карма: 0

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#19: 2025-02-28 02:15:52 ЛС | профиль | цитата
Gitarist писал(а):
Огромное спасибо, всё отлично!

Я рад, что помог. Схема не настолько сложная, что бы в ней невозможно было разобраться. И я специально сделал совместимость формата с TreeViewTrain, те добавил немного универсальности.
карма: 22

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#20: 2025-02-28 04:05:32 ЛС | профиль | цитата
P.S. Хочу сразу предупредить, что схема слегка упрощена и имеет некоторые ограничения. Одно из них это то, что индексы группы должны иметь нумерацию от 0 до N с шагом в 1. Тогда эта нумерация будет совпадать с нумерацией контейнеров. Если предполагается свободная нумерация индексов групп, то схему нужно слегка доработать.
карма: 22

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#21: 2025-03-02 15:40:04 ЛС | профиль | цитата
Решил немного продолжить тему и перевел схему на БД. База создается в памяти, но если заменить :memory: на имя файла, то БД будет создаваться в файле. Схема получилась даже проще, чем предыдущая

Схема


Add(MainForm,2953706,189,161)
{
Width=715
Height=506
MarginLeft=3
MarginTop=3
MarginRight=3
MarginBottom=3
Border=3
BorderStyle=1
Position=1
Point(onClose)
link(onCreate,12035853:doTimer,[])
link(onClose,5269537:doClose,[(235,188)(235,216)(333,216)(333,188)])
}
Add(ChildScrollBox,8844261,357,133)
{
}
BEGIN_SDK
Add(EditMulti,4271376,21,21)
{
WorkCount=1
Width=377
Height=228
link(doWork1,879511:doEvent1,[(53,27)(53,69)])
}
Add(ScrollBox,964248,322,77)
{
Width=709
Height=477
Align=5
WinStyle=2
Name="scrl_001"
BorderStyle=1
Point(Width)
}
Add(ChildPanelEx,2261261,266,147)
{
@Hint=#19:Динамические группы|
Mode=1
link(onVShift,8595977:doOperation,[(305,153)(305,62)(249,62)(249,83)])
link(onResult,4141012:doMessage,[])
link(vOffset,15893030:Var2,[])
link(pWidth,964248:Width,[(279,138)(342,138)])
AddHint(-21,69,130,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,3885935,21,21)
{
WorkCount=#5:##add|8:##select|
EventCount=#8:onVShift|8:onResult|
VarCount=#7:##count|0:|
DataCount=#7:vOffset|6:pWidth|
Width=650
Height=522
Point(##add)
Point(##select)
Point(##count)
link(##add,11635148:doSeparateMT,[(39,27)(39,146)])
link(##select,13247899:doWork2,[(46,34)(46,503)])
}
Add(Panel,15904931,602,49)
{
Width=369
Height=86
Font=[MS Sans Serif,12,0,0,1]
Visible=1
Name="panel_001"
Point(doWidth)
Point(Height)
Point(doTop)
Point(doHeight)
Point(doVisible)
}
Add(Button,11087212,266,147)
{
Width=135
Height=85
Align=1
Font=[MS Sans Serif,12,0,0,1]
TabOrder=-1
Caption=""
Point(doCaption)
Point(doFont)
link(onClick,16401184:doEvent1,[])
}
Add(MTStrTbl,11520425,343,357)
{
Left=87
Width=280
Height=82
Align=5
Font=[MS Sans Serif,11,0,0,1]
WinStyle=3
Name="mtbl_001"
Columns=#9:name1=150|9:name2=100|9:name3=100|8:name4=50|
Style=4
Grid=0
Point(doAlign)
}
Add(Hub,4250363,196,140)
{
link(onEvent1,6740804:doOperation,[(221,146)(221,62)])
link(onEvent2,11087212:doCaption,[])
}
Add(Math,6740804,392,56)
{
OpType=1
Op2=18
ResultType=0
link(onResult,15904931:doWidth,[])
link(Op1,3885935:pWidth,[(398,47)(34,47)])
}
Add(Math,7577038,287,462)
{
OpType=2
ResultType=0
link(onResult,8700013:doEvent1,[])
link(Op1,14478038:Result,[])
link(Op2,11520425:Count,[(300,446)(363,446)])
}
Add(Hub,8700013,448,462)
{
OutCount=3
link(onEvent1,2608456:doData,[(473,468)(473,433)])
link(onEvent2,15904931:doHeight,[(578,475)(578,76)])
link(onEvent3,11458420:doOperation,[])
}
Add(DoData,2608456,532,427)
{
link(onEventData,15904931:doTop,[(571,433)(571,69)])
link(Data,3885935:vOffset,[(538,292)(27,292)])
}
Add(Math,11458420,602,476)
{
OpType=1
Op2=1
link(onResult,3885935:onVShift,[(648,482)(648,27)])
link(Op1,15904931:Height,[])
}
Add(ChanelToIndex,13247899,532,490)
{
link(onIndex,15904931:doVisible,[(585,496)(585,83)])
}
Add(FontManager,7461808,140,301)
{
ControlManager="mtbl_001"
Point(FontCharset)
}
Add(Font,6371043,140,357)
{
Point(CharSet)
link(onFont,4843448:doEvent1,[])
link(Size,7461808:FontSize,[])
link(Color,7461808:FontColor,[])
link(Name,7461808:FontName,[])
link(Style,7461808:FontStyle,[])
link(CharSet,7461808:FontCharset,[])
}
Add(Img_Text,3115299,280,357)
{
Text="W"
Point(doFont)
}
Add(Hub,4843448,196,357)
{
OutCount=3
link(onEvent1,11087212:doFont,[(249,363)(249,160)])
link(onEvent2,3115299:doFont,[])
link(onEvent3,14478038:doOperation,[(221,377)(221,412)])
}
Add(Math,14478038,287,406)
{
Op2=4
ResultType=0
link(Op1,3115299:TextHeight,[])
}
Add(InfoTip,6154573,112,294)
{
Info=#25:Определение высоты группы|
VAlign=2
Width=274
Height=235
Margin=10
}
Add(DSC_Query,14267734,343,245)
{
@Color=5614250
DSManager="parent.parent.sqlite_1"
link(onQuery,2337115:doAddRow,[])
}
Add(FormatStr,11075861,196,245)
{
DataCount=1
Mask="SELECT surname,city,age,reg FROM elements WHERE parent=%1"
link(onFString,14267734:doQuery,[])
link(Str1,8637286:Value,[])
}
Add(MT_MultiData,11635148,77,140)
{
link(onData1,4250363:doEvent1,[])
link(onData2,8637286:doValue,[(130,153)(130,188)])
}
Add(Memory,8637286,196,182)
{
link(onData,15029490:doEvent1,[(235,188)(235,223)(67,223)(67,356)])
}
Add(MST_ArrayRows,15673897,343,98)
{
MSTControl="mtbl_001"
}
Add(MT_MTArrayEnum,9756254,343,154)
{
link(onItem,10915627:doStr,[])
link(Array,15673897:Strings,[])
}
Add(MT_String,10915627,392,154)
{
link(onResult,2224873:doTrim,[])
}
Add(StrList,10031208,497,154)
{
}
Add(DoData,3602060,497,203)
{
link(onEventData,3885935:onResult,[(536,209)(536,34)])
link(Data,10031208:Text,[])
}
Add(Hub,16401184,308,147)
{
OutCount=3
link(onEvent1,10031208:doClear,[(333,153)(333,146)(480,146)(480,167)])
link(onEvent2,9756254:doEnum,[])
link(onEvent3,3602060:doData,[(333,167)(333,209)])
}
Add(Hub,15029490,77,350)
{
OutCount=3
link(onEvent1,7859062:doClear,[(102,356)(102,251)])
link(onEvent2,6371043:doFont,[])
link(onEvent3,7577038:doOperation,[(130,370)(130,468)])
}
Add(MST_DB,2337115,392,245)
{
MSTControl="mtbl_001"
}
Add(MST_Clear,7859062,140,245)
{
MSTControl="mtbl_001"
link(onChange,11075861:doString,[])
}
Add(Trim,2224873,441,154)
{
Char=";"
link(onTrim,10031208:doAdd,[])
}
END_SDK
Add(Hub,879511,63,63)
{
OutCount=4
link(onEvent1,8345200:doQuery,[(88,69)(88,55)])
link(onEvent2,8595977:doClear,[(113,76)(113,90)])
link(onEvent3,3963701:doBeginUpdate,[(88,83)(88,209)])
link(onEvent4,1686440:doFor,[(102,90)(102,160)])
}
Add(Math,8595977,266,77)
{
ResultType=0
Point(doClear)
link(Op2,15893030:Var1,[(279,68)(258,68)(258,124)])
}
Add(GetDataEx,15893030,266,119)
{
link(Data,8595977:Result,[])
}
Add(RedrawManager,3963701,182,189)
{
ControlManager="scrl_001"
Point(doEndUpdate)
Point(doBeginUpdate)
}
Add(Message,4141012,322,154)
{
}
Add(For,1686440,126,154)
{
IncludeEnd=1
link(onEvent,2261261:##select,[])
link(onStop,3963701:doEndUpdate,[(172,167)(172,202)])
link(End,2261261:##count,[(139,145)(223,145)(223,208)(272,208)])
}
Add(DSC_Query,8345200,126,49)
{
@Color=5614250
SQL="SELECT name,idx FROM groups"
DSManager="parent.sqlite_1"
link(onQuery,2261261:##add,[(228,55)(228,153)])
}
END_SDK
Add(Timer,12035853,245,175)
{
Interval=0
Enable=1
AutoStop=1
link(onTimer,3931479:doEvent1,[])
}
Add(DSC_Exec,9529671,413,175)
{
@Color=5614250
SQL="BEGIN TRANSACTION;\r\nCREATE TABLE groups(id INTEGER PRIMARY KEY AUTOINCREMENT,name text,idx int,parent int);\r\nINSERT INTO "groups" VALUES(Null,'Администрация',1,-1);\r\nINSERT INTO "groups" VALUES(Null,'Пользователи',2,-1);\r\nINSERT INTO "groups" VALUES(Null,'Гости',3,-1);\r\nINSERT INTO "groups" VALUES(Null,'Администрация',4,-1);\r\nINSERT INTO "groups" VALUES(Null,'Пользователи',5,-1);\r\nINSERT INTO "groups" VALUES(Null,'Гости',6,-1);\r\nINSERT INTO "groups" VALUES(Null,'Администрация',7,-1);\r\nINSERT INTO "groups" VALUES(Null,'Пользователи',8,-1);\r\nINSERT INTO "groups" VALUES(Null,'Гости',9,-1);\r\nCREATE TABLE elements(id INTEGER PRIMARY KEY AUTOINCREMENT,surname text,city text,age text,reg text,idx int,parent int);\r\nINSERT INTO "elements" VALUES(Null,'Петров','Москва','56','777',1001,1);\r\nINSERT INTO "elements" VALUES(Null,'Иванов','Минск','49','',1002,1);\r\nINSERT INTO "elements" VALUES(Null,'Сидоров','Киев','26','',1003,2);\r\nINSERT INTO "elements" VALUES(Null,'Смирнов','Киров','36','',1004,2);\r\nINSERT INTO "elements" VALUES(Null,'Малевич','Сидней','27','',1005,2);\r\nINSERT INTO "elements" VALUES(Null,'Гзбыштнев','Варшава','34','',1006,3);\r\nINSERT INTO "elements" VALUES(Null,'Волайтос','Вильнус','53','',1007,3);\r\nINSERT INTO "elements" VALUES(Null,'Портос','Мадрид','62','',1008,3);\r\nINSERT INTO "elements" VALUES(Null,'Арамис','Париж','63','',1009,3);\r\nINSERT INTO "elements" VALUES(Null,'Петров','Москва','56','777',1010,4);\r\nINSERT INTO "elements" VALUES(Null,'Иванов','Минск','49','',1011,4);\r\nINSERT INTO "elements" VALUES(Null,'Сидоров','Киев','26','',1012,5);\r\nINSERT INTO "elements" VALUES(Null,'Смирнов','Киров','36','',1013,5);\r\nINSERT INTO "elements" VALUES(Null,'Малевич','Сидней','27','',1014,5);\r\nINSERT INTO "elements" VALUES(Null,'Гзбыштнев','Варшава','34','',1015,6);\r\nINSERT INTO "elements" VALUES(Null,'Волайтос','Вильнус','53','',1016,6);\r\nINSERT INTO "elements" VALUES(Null,'Портос','Мадрид','62','',1017,6);\r\nINSERT INTO "elements" VALUES(Null,'Арамис','Париж','63','',1018,6);\r\nINSERT INTO "elements" VALUES(Null,'Петров','Москва','56','777',1019,7);\r\nINSERT INTO "elements" VALUES(Null,'Иванов','Минск','49','',1020,7);\r\nINSERT INTO "elements" VALUES(Null,'Сидоров','Киев','26','',1021,8);\r\nINSERT INTO "elements" VALUES(Null,'Смирнов','Киров','36','',1022,8);\r\nINSERT INTO "elements" VALUES(Null,'Малевич','Сидней','27','',1023,8);\r\nINSERT INTO "elements" VALUES(Null,'Гзбыштнев','Варшава','34','',1024,9);\r\nINSERT INTO "elements" VALUES(Null,'Волайтос','Вильнус','53','',1025,9);\r\nINSERT INTO "elements" VALUES(Null,'Портос','Мадрид','62','',1026,9);\r\nINSERT INTO "elements" VALUES(Null,'Арамис','Париж','63','',1027,9);\r\nCOMMIT;\r\n"
DSManager="sqlite_1"
}
Add(DS_SQLite,5269537,357,175)
{
@Color=5614250
Name="sqlite_1"
FileName=":memory:"
WaitClose=0
link(onOpen,9529671:doExec,[])
}
Add(Hub,3931479,301,175)
{
link(onEvent1,5269537:doOpen,[])
link(onEvent2,8844261:doWork1,[(326,188)(326,139)])
}

карма: 22

0
Ответов: 145
Рейтинг: 0
#22: 2025-03-12 21:53:04 ЛС | профиль | цитата
Спасибо, но мне бы не из базы данных, а из списка строк, как вы делали сперва...
карма: 0

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#23: 2025-03-13 01:39:54 ЛС | профиль | цитата
Gitarist писал(а):
Спасибо, но мне бы не из базы данных, а из списка строк, как вы делали сперва...

Это просто был пример в продолжение темы. А так схема со списком уже есть, или что-то надо дополнить?
карма: 22

0
Ответов: 145
Рейтинг: 0
#24: 2025-03-13 01:54:30 ЛС | профиль | цитата
nesco писал(а):
или что-то надо дополнить?

Упс, простите Nesco, точно, предыдущая схема же отрисовывает линии по строкам)
Отвлекался на другой проект, сейчас вернулся в тему с табличными данными и скопировал последнюю схему посмотреть.


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

Add(MainForm,14112285,308,196)
{
Width=860
Height=506
MarginLeft=3
MarginTop=3
MarginRight=3
MarginBottom=3
Border=3
BorderStyle=1
Position=1
}
Add(ChildScrollBox,8844261,546,301)
{
}
BEGIN_SDK
Add(EditMulti,4271376,21,21)
{
WorkCount=1
Width=727
Height=550
link(doWork1,879511:doEvent1,[(53,27)(53,76)])
}
Add(ScrollBox,964248,511,112)
{
Left=264
Width=605
Height=467
Align=5
WinStyle=2
Name="scrl_001"
BorderStyle=1
Point(Width)
}
Add(ChildPanelEx,2261261,560,217)
{
@Hint=#19:Динамические группы|
Mode=1
link(onVShift,8595977:doOperation,[(606,223)(606,139)(550,139)(550,160)])
link(onResult,4141012:doMessage,[])
link(pWidth,964248:Width,[(566,208)(531,208)])
link(vOffset,15893030:Var2,[])
AddHint(39,57,130,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,3885935,21,21)
{
WorkCount=#5:##add|8:##select|
EventCount=#8:onVShift|8:onResult|0:|
VarCount=#7:##count|0:|
DataCount=#6:pWidth|7:vOffset|
Width=496
Height=403
Point(##add)
Point(##select)
Point(##count)
link(##add,4250363:doEvent1,[(39,27)(39,146)])
link(##select,1177020:doSplit,[(32,34)(32,265)])
}
Add(Panel,15904931,441,49)
{
Width=369
Height=86
Font=[MS Sans Serif,12,0,0,1]
Visible=1
Point(doWidth)
Point(Height)
Point(doTop)
Point(doHeight)
Point(doVisible)
}
Add(Button,11087212,91,147)
{
Width=85
Height=85
Align=1
Font=[MS Sans Serif,12,0,0,1]
TabOrder=-1
Caption=""
Point(doCaption)
link(onClick,16401184:doEvent1,[])
}
Add(MTStrTbl,11520425,210,294)
{
Left=87
Top=2
Width=280
Height=82
Align=5
Font=[MS Sans Serif,12,0,0,1]
WinStyle=3
Name="mtbl_001"
Columns=#9:name1=150|9:name2=100|9:name3=100|8:name4=50|8:name5=75|
Style=4
Grid=0
Point(doHeight)
}
Add(Hub,4250363,49,140)
{
link(onEvent1,6740804:doOperation,[(80,146)(80,62)])
link(onEvent2,11087212:doCaption,[])
}
Add(Math,6740804,175,56)
{
OpType=1
Op2=18
ResultType=0
link(onResult,15904931:doWidth,[])
link(Op1,3885935:pWidth,[(181,47)(27,47)])
}
Add(MT_Part,1177020,91,259)
{
link(onSplit,3091176:doCase,[])
}
Add(MT_String,11205836,224,245)
{
Delimeter="_"
link(onResult,9614300:doRowAction,[])
}
Add(MST_RowAction,9614300,280,245)
{
MSTControl="mtbl_001"
}
Add(Case,3091176,147,259)
{
@Hint=#34:Выделение команды установки высоты|
Value=String(-1)
link(onNextCase,11205836:doMTString,[])
link(onTrue,7577038:doOperation,[(200,272)(200,363)])
AddHint(-119,119,179,26,@Hint)
}
Add(Math,7577038,224,357)
{
OpType=2
Op2=24
ResultType=0
link(onResult,8700013:doEvent1,[])
link(Op1,11520425:Count,[])
}
Add(Hub,8700013,280,357)
{
OutCount=4
link(onEvent1,2608456:doData,[(305,363)(305,300)])
link(onEvent2,15904931:doHeight,[(368,370)(368,76)])
link(onEvent3,11458420:doOperation,[])
link(onEvent4,13247899:doWork2,[(375,384)(375,111)])
}
Add(DoData,2608456,322,294)
{
link(onEventData,15904931:doTop,[(361,300)(361,69)])
link(Data,3885935:vOffset,[(328,33)(34,33)])
}
Add(Math,11458420,441,371)
{
OpType=1
Op2=1
link(onResult,3885935:onVShift,[(480,377)(480,27)])
link(Op1,15904931:Height,[])
}
Add(ChanelToIndex,13247899,392,98)
{
link(onIndex,15904931:doVisible,[(431,104)(431,83)])
}
Add(MST_ArrayRows,15673897,175,98)
{
MSTControl="mtbl_001"
}
Add(MT_MTArrayEnum,9756254,175,154)
{
link(onItem,10915627:doStr,[])
link(Array,15673897:Strings,[])
}
Add(MT_String,10915627,224,154)
{
link(onResult,10031208:doAdd,[])
}
Add(StrList,10031208,280,154)
{
}
Add(DoData,3602060,280,203)
{
link(onEventData,3885935:onResult,[(333,209)(333,34)])
link(Data,10031208:Text,[])
}
Add(Hub,16401184,140,147)
{
OutCount=3
link(onEvent1,10031208:doClear,[(165,153)(165,146)(263,146)(263,167)])
link(onEvent2,9756254:doEnum,[])
link(onEvent3,3602060:doData,[(165,167)(165,209)])
}
END_SDK
Add(MT_String,11581838,189,126)
{
link(onResult,14798857:doValue,[])
}
Add(MT_MultiData,10069644,301,126)
{
From=2
Count=1
link(onData1,5953592:doCase,[])
}
Add(Case,5953592,357,126)
{
Value=String(-1)
link(onTrue,11554508:doSeparateMT,[(396,139)(396,118)(235,118)(235,223)])
}
Add(MT_Memory,14798857,245,126)
{
link(onData,10069644:doSeparateMT,[])
}
Add(MT_MultiData,11554508,245,217)
{
Count=1
Point(Data)
link(onData1,2261261:##add,[])
link(Data,14798857:Value,[])
}
Add(StrList,10000206,126,49)
{
}
Add(Hub,879511,63,70)
{
OutCount=3
link(onEvent1,10000206:doText,[])
link(onEvent2,151755:doEnum,[(116,83)(116,146)])
link(onEvent3,9978300:doEnum,[(109,90)(109,328)])
}
Add(ArrayEnum,151755,140,140)
{
link(onItem,11581838:doMTString,[])
link(Array,5355832:Var2,[])
}
Add(ArrayEnum,9978300,126,322)
{
link(onItem,11602246:doMTString,[])
link(onEndEnum,4154590:doEvent1,[(169,335)(169,475)])
link(Array,5355832:Var1,[(132,117)])
}
Add(GetDataEx,5355832,140,112)
{
link(Data,10000206:Array,[])
}
Add(MT_String,11602246,189,308)
{
link(onResult,11144894:doValue,[])
}
Add(MT_Memory,11144894,245,308)
{
link(onData,2376732:doSeparateMT,[])
}
Add(MT_MultiData,2376732,301,308)
{
From=2
Count=1
link(onData1,2285829:doCase,[])
}
Add(Case,2285829,357,308)
{
Value=String(-1)
link(onNextCase,5418568:doConvert,[])
}
Add(MT_MultiData,16457722,245,385)
{
Count=1
Point(Data)
link(onData1,4443410:doAdd,[])
link(Data,11144894:Value,[])
}
Add(MT_Add,4443410,413,385)
{
InputMT=1
link(onAdd,11319913:doWork2,[])
link(Data,5418568:Var,[])
}
Add(ConvertorEx,5418568,413,308)
{
Mode=1
link(onResult,16457722:doSeparateMT,[(452,314)(452,300)(235,300)(235,391)])
}
Add(For,5457338,413,476)
{
IncludeEnd=1
link(onEvent,5228770:doAdd,[])
link(End,2261261:##count,[(426,467)(566,467)])
}
Add(MT_Add,5228770,469,476)
{
@Hint=#35:Команда на установку высоты -- "-1"|
Data=String(-1)
link(onAdd,11319913:doWork3,[(515,482)])
AddHint(13,45,183,26,@Hint)
}
Add(HubEx,11319913,511,385)
{
Angle=3
link(onEvent,2261261:##select,[(515,230)])
}
Add(Math,8595977,567,154)
{
ResultType=0
Point(doClear)
link(Op2,15893030:Var1,[(580,145)(559,145)(559,194)])
}
Add(GetDataEx,15893030,567,189)
{
link(Data,8595977:Result,[])
}
Add(Hub,4154590,343,469)
{
OutCount=3
link(onEvent1,8595977:doClear,[(396,475)(396,167)])
link(onEvent2,5457338:doFor,[])
link(onEvent3,3963701:doRedraw,[(375,489)(375,524)])
}
Add(RedrawManager,3963701,413,518)
{
ControlManager="scrl_001"
}
Add(Message,4141012,630,224)
{
}
Add(InfoTip,14744595,126,91)
{
Info=#24:Парсинг заголовков групп|
Width=330
Height=165
Margin=10
}
Add(InfoTip,14361363,119,266)
{
Info=#25:Парсинг содержимого групп|
Width=344
Height=158
Margin=10
}
Add(InfoTip,8628584,308,434)
{
Info=#24:Установка размеров групп|
Width=267
Height=123
Margin=10
}
END_SDK
Add(StrList,12082072,567,224)
{
Strings=#18:Администрация;0;-1|26:Петров_Москва_56_777;011;0|21:Иванов_Минск_49;012;0|17:Пользователи;1;-1|21:Сидоров_Киев_26;111;1|22:Смирнов_Киров_36;112;1|23:Малевич_Сидней_27;113;1|10:Гости;2;-1|26:Гзбыштнев_Варшава_34;211;2|25:Волайтос_Вильнус_53;212;2|22:Портос_Мадрид_62;213;2|21:Арамис_Париж_63;214;2|18:Администрация;3;-1|26:Петров_Москва_56_777;311;3|21:Иванов_Минск_49;312;3|17:Пользователи;4;-1|21:Сидоров_Киев_26;411;4|22:Смирнов_Киров_36;412;4|23:Малевич_Сидней_27;413;4|10:Гости;5;-1|26:Гзбыштнев_Варшава_34;511;5|25:Волайтос_Вильнус_53;512;5|22:Портос_Мадрид_62;513;5|21:Арамис_Париж_63;514;5|18:Администрация;6;-1|26:Петров_Москва_56_777;611;6|21:Иванов_Минск_49;612;6|17:Пользователи;7;-1|21:Сидоров_Киев_26;711;7|22:Смирнов_Киров_36;712;7|23:Малевич_Сидней_27;713;7|10:Гости;8;-1|26:Гзбыштнев_Варшава_34;811;8|25:Волайтос_Вильнус_53;812;8|22:Портос_Мадрид_62;813;8|21:Арамис_Париж_63;814;8|0:|
}
Add(DoData,16516091,483,301)
{
link(onEventData,8844261:doWork1,[])
link(Data,1516999:Text,[])
}
Add(Timer,6220539,427,301)
{
Interval=200
AutoStop=1
link(onTimer,16516091:doData,[])
}
Add(StrList,1516999,483,224)
{
Strings=#59:1.02.2025;Гвозди;135шт;Эдуард Суровый;Плохо закалачиваются;|40:1.02.2025;Бананы;555шт;Тамара Ивановна;;|67:1.02.2025;Бананы;705шт;Вера Сергеевна, Татьяна Сергеевна;Сосисочная|23:1.02.2025;Гвозди;135шт;|65:2.02.2025;Лак для волос;5шт;Джамшут Равшанович;Ничего не понятно;|88:2.02.2025;Топор;705шт;Вера Сергеевна, Татьяна Сергеевна; нет фантазии что то придумать);|43:3.02.2025;Гвозди;45шт;Пол Гилберт, Стив Вай|38:4.02.2025;Бананы;542шт;Тамара Ивановна|58:4.02.2025;Хлеб;123шт;Аркадий Укупник, Филипп Бедросыч; |
}


Редактировалось 1 раз(а), последний 2025-03-13 03:12:05
карма: 0

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#25: 2025-03-13 03:54:20 ЛС | профиль | цитата
Абсолютно ничего сложного

Схема


Add(MainForm,14112285,364,238)
{
Width=860
Height=506
MarginLeft=3
MarginTop=3
MarginRight=3
MarginBottom=3
Border=3
BorderStyle=1
Position=1
}
Add(ChildScrollBox,8844261,490,315)
{
}
BEGIN_SDK
Add(EditMulti,4271376,21,21)
{
WorkCount=1
Width=727
Height=550
link(doWork1,879511:doEvent1,[(53,27)(53,76)])
}
Add(ScrollBox,964248,511,112)
{
Left=264
Width=605
Height=467
Align=5
WinStyle=2
Name="scrl_001"
BorderStyle=1
Point(Width)
}
Add(ChildPanelEx,2261261,560,217)
{
@Hint=#19:Динамические группы|
Mode=1
link(onVShift,8595977:doOperation,[(606,223)(606,139)(550,139)(550,160)])
link(onResult,4141012:doMessage,[])
link(pWidth,964248:Width,[(566,208)(531,208)])
link(vOffset,15893030:Var2,[])
AddHint(39,57,130,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,3885935,21,21)
{
WorkCount=#5:##add|8:##select|
EventCount=#8:onVShift|8:onResult|0:|
VarCount=#7:##count|0:|
DataCount=#6:pWidth|7:vOffset|
Width=496
Height=403
Point(##add)
Point(##select)
Point(##count)
link(##add,4250363:doEvent1,[(39,27)(39,146)])
link(##select,1177020:doSplit,[(32,34)(32,265)])
}
Add(Panel,15904931,441,49)
{
Width=369
Height=86
Font=[MS Sans Serif,12,0,0,1]
Visible=1
Point(doWidth)
Point(Height)
Point(doTop)
Point(doHeight)
Point(doVisible)
}
Add(Button,11087212,91,147)
{
Width=85
Height=85
Align=1
Font=[MS Sans Serif,12,0,0,1]
TabOrder=-1
Caption=""
Point(doCaption)
link(onClick,16401184:doEvent1,[])
}
Add(MTStrTbl,11520425,210,294)
{
Left=87
Top=2
Width=280
Height=82
Align=5
Font=[MS Sans Serif,12,0,0,1]
WinStyle=3
Name="mtbl_001"
Columns=#9:name1=150|9:name2=100|9:name3=250|9:name4=210|
Style=4
Grid=0
Point(doHeight)
}
Add(Hub,4250363,49,140)
{
link(onEvent1,6740804:doOperation,[(80,146)(80,62)])
link(onEvent2,11087212:doCaption,[])
}
Add(Math,6740804,175,56)
{
OpType=1
Op2=18
ResultType=0
link(onResult,15904931:doWidth,[])
link(Op1,3885935:pWidth,[(181,47)(27,47)])
}
Add(MT_Part,1177020,91,259)
{
link(onSplit,3091176:doCase,[])
}
Add(MT_String,11205836,224,245)
{
Delimeter="_"
link(onResult,9614300:doRowAction,[])
}
Add(MST_RowAction,9614300,280,245)
{
MSTControl="mtbl_001"
}
Add(Case,3091176,147,259)
{
@Hint=#34:Выделение команды установки высоты|
Value=String(-1)
link(onNextCase,11205836:doMTString,[])
link(onTrue,7577038:doOperation,[(200,272)(200,363)])
AddHint(-119,119,179,26,@Hint)
}
Add(Math,7577038,224,357)
{
OpType=2
Op2=24
ResultType=0
link(onResult,8700013:doEvent1,[])
link(Op1,11520425:Count,[])
}
Add(Hub,8700013,280,357)
{
OutCount=4
link(onEvent1,2608456:doData,[(305,363)(305,300)])
link(onEvent2,15904931:doHeight,[(368,370)(368,76)])
link(onEvent3,11458420:doOperation,[])
link(onEvent4,13247899:doWork2,[(375,384)(375,111)])
}
Add(DoData,2608456,322,294)
{
link(onEventData,15904931:doTop,[(361,300)(361,69)])
link(Data,3885935:vOffset,[(328,33)(34,33)])
}
Add(Math,11458420,441,371)
{
OpType=1
Op2=1
link(onResult,3885935:onVShift,[(480,377)(480,27)])
link(Op1,15904931:Height,[])
}
Add(ChanelToIndex,13247899,392,98)
{
link(onIndex,15904931:doVisible,[(431,104)(431,83)])
}
Add(MST_ArrayRows,15673897,175,98)
{
MSTControl="mtbl_001"
}
Add(MT_MTArrayEnum,9756254,175,154)
{
link(onItem,10915627:doStr,[])
link(Array,15673897:Strings,[])
}
Add(MT_String,10915627,224,154)
{
link(onResult,10031208:doAdd,[])
}
Add(StrList,10031208,280,154)
{
}
Add(DoData,3602060,280,203)
{
link(onEventData,3885935:onResult,[(333,209)(333,34)])
link(Data,10031208:Text,[])
}
Add(Hub,16401184,140,147)
{
OutCount=3
link(onEvent1,10031208:doClear,[(165,153)(165,146)(263,146)(263,167)])
link(onEvent2,9756254:doEnum,[])
link(onEvent3,3602060:doData,[(165,167)(165,209)])
}
END_SDK
Add(MT_String,11581838,189,126)
{
link(onResult,14798857:doValue,[])
}
Add(MT_MultiData,10069644,301,126)
{
From=2
Count=1
link(onData1,5953592:doCase,[])
}
Add(Case,5953592,357,126)
{
Value=String(-1)
link(onTrue,11554508:doSeparateMT,[(396,139)(396,118)(235,118)(235,223)])
}
Add(MT_Memory,14798857,245,126)
{
link(onData,10069644:doSeparateMT,[])
}
Add(MT_MultiData,11554508,245,217)
{
Count=1
Point(Data)
link(onData1,2261261:##add,[])
link(Data,14798857:Value,[])
}
Add(StrList,10000206,126,49)
{
}
Add(Hub,879511,63,70)
{
OutCount=3
link(onEvent1,10000206:doText,[])
link(onEvent2,151755:doEnum,[(116,83)(116,146)])
link(onEvent3,9978300:doEnum,[(109,90)(109,328)])
}
Add(ArrayEnum,151755,140,140)
{
link(onItem,11581838:doMTString,[])
link(Array,5355832:Var2,[])
}
Add(ArrayEnum,9978300,126,322)
{
link(onItem,11602246:doMTString,[])
link(onEndEnum,4154590:doEvent1,[(169,335)(169,475)])
link(Array,5355832:Var1,[(132,117)])
}
Add(GetDataEx,5355832,140,112)
{
link(Data,10000206:Array,[])
}
Add(MT_String,11602246,189,308)
{
link(onResult,11144894:doValue,[])
}
Add(MT_Memory,11144894,245,308)
{
link(onData,2376732:doSeparateMT,[])
}
Add(MT_MultiData,2376732,301,308)
{
From=2
Count=1
link(onData1,2285829:doCase,[])
}
Add(Case,2285829,357,308)
{
Value=String(-1)
link(onNextCase,5418568:doConvert,[])
}
Add(MT_MultiData,16457722,245,385)
{
Count=1
Point(Data)
link(onData1,4443410:doAdd,[])
link(Data,11144894:Value,[])
}
Add(MT_Add,4443410,413,385)
{
InputMT=1
link(onAdd,11319913:doWork2,[])
link(Data,5418568:Var,[])
}
Add(ConvertorEx,5418568,413,308)
{
Mode=1
link(onResult,16457722:doSeparateMT,[(452,314)(452,300)(235,300)(235,391)])
}
Add(For,5457338,413,476)
{
IncludeEnd=1
link(onEvent,5228770:doAdd,[])
link(End,2261261:##count,[(426,467)(566,467)])
}
Add(MT_Add,5228770,469,476)
{
@Hint=#35:Команда на установку высоты -- "-1"|
Data=String(-1)
link(onAdd,11319913:doWork3,[(515,482)])
AddHint(13,45,183,26,@Hint)
}
Add(HubEx,11319913,511,385)
{
Angle=3
link(onEvent,2261261:##select,[(515,230)])
}
Add(Math,8595977,567,154)
{
ResultType=0
Point(doClear)
link(Op2,15893030:Var1,[(580,145)(559,145)(559,194)])
}
Add(GetDataEx,15893030,567,189)
{
link(Data,8595977:Result,[])
}
Add(Hub,4154590,343,469)
{
OutCount=3
link(onEvent1,8595977:doClear,[(396,475)(396,167)])
link(onEvent2,5457338:doFor,[])
link(onEvent3,3963701:doRedraw,[(375,489)(375,524)])
}
Add(RedrawManager,3963701,413,518)
{
ControlManager="scrl_001"
}
Add(Message,4141012,630,224)
{
}
Add(InfoTip,14744595,126,91)
{
Info=#24:Парсинг заголовков групп|
Width=330
Height=165
Margin=10
}
Add(InfoTip,14361363,119,266)
{
Info=#25:Парсинг содержимого групп|
Width=344
Height=158
Margin=10
}
Add(InfoTip,8628584,308,434)
{
Info=#24:Установка размеров групп|
Width=267
Height=123
Margin=10
}
END_SDK
Add(DoData,16516091,427,315)
{
link(onEventData,8844261:doWork1,[])
link(Data,1516999:Text,[])
}
Add(Timer,6220539,371,315)
{
Interval=200
AutoStop=1
link(onTimer,16516091:doData,[])
}
Add(StrList,1516999,427,238)
{
Strings=#14:1.02.2025;0;-1|54:Гвозди_135шт_Эдуард Суровый_Плохо закалачиваются;011;0|34:Бананы_555шт_Тамара Ивановна;012;0|63:Бананы_705шт_Вера Сергеевна, Татьяна Сергеевна_Сосисочная;013;0|13:Гвозди_135шт;|14:2.02.2025;1;-1|60:Лак для волос_5шт_Джамшут Равшанович_Ничего не понятно;111;1|82:Топор_705шт_Вера Сергеевна, Татьяна Сергеевна_нет фантазии что то придумать);112;1|14:3.02.2025;2;-1|39:Гвозди_45шт_Пол Гилберт, Стив Вай;211;2|14:4.02.2025;3;-1|34:Бананы_542шт_Тамара Ивановна;311;3|53:Хлеб_123шт_Аркадий Укупник, Филипп Бедросыч;312;3 |
}

карма: 22

0
Ответов: 145
Рейтинг: 0
#26: 2025-03-13 04:14:13 ЛС | профиль | цитата
nesco писал(а):
Абсолютно ничего сложного

Схема

Но... Это же вы сами, вручную, подкорректировали строки чтоб таблица "поняла" текст. А как это всё автоматизировать, ведь строки мне будут приходить того вида как было в моем примере..?
карма: 0

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#27: 2025-03-13 04:32:53 ЛС | профиль | цитата
Gitarist писал(а):
Но... Это же вы сами, вручную, подкорректировали строки чтоб таблица "поняла" текст. А как это всё автоматизировать, ведь строки мне будут приходить того вида как было в моем примере..?

Те, в примере исходный текст, который нужно автоматически преобразовать в нужный? База данных, в этом случае, была бы более предпочтительнее, но можно что-то и так придумать. Но это уже завтра.
карма: 22

0
Ответов: 145
Рейтинг: 0
#28: 2025-03-13 10:46:57 ЛС | профиль | цитата
nesco писал(а):
Gitarist писал(а):
Но... Это же вы сами, вручную, подкорректировали строки чтоб таблица "поняла" текст. А как это всё автоматизировать, ведь строки мне будут приходить того вида как было в моем примере..?

Те, в примере исходный текст, который нужно автоматически преобразовать в нужный? База данных, в этом случае, была бы более предпочтительнее, но можно что-то и так придумать. Но это уже завтра.

Конечно бд получше будет, но мне пока что надо "прикрутить" табличный элемент для работы с обычным списком
карма: 0

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#29: 2025-03-13 16:15:49 ЛС | профиль | цитата
Вот тебе конвертор

Схема

Add(MainForm,14112285,497,322)
{
Width=860
Height=506
MarginLeft=3
MarginTop=3
MarginRight=3
MarginBottom=3
Border=3
BorderStyle=1
Position=1
}
Add(ChildScrollBox,8844261,553,371)
{
}
BEGIN_SDK
Add(EditMulti,4271376,21,21)
{
WorkCount=1
Width=727
Height=550
link(doWork1,879511:doEvent1,[(53,27)(53,76)])
}
Add(ScrollBox,964248,511,112)
{
Left=264
Width=605
Height=467
Align=5
WinStyle=2
Name="scrl_001"
BorderStyle=1
Point(Width)
}
Add(ChildPanelEx,2261261,560,217)
{
@Hint=#19:Динамические группы|
Mode=1
link(onVShift,8595977:doOperation,[(606,223)(606,139)(550,139)(550,160)])
link(onResult,4141012:doMessage,[])
link(pWidth,964248:Width,[(566,208)(531,208)])
link(vOffset,15893030:Var2,[])
AddHint(39,57,130,13,@Hint)
}
BEGIN_SDK
Add(EditMultiEx,3885935,21,21)
{
WorkCount=#5:##add|8:##select|
EventCount=#8:onVShift|8:onResult|0:|
VarCount=#7:##count|0:|
DataCount=#6:pWidth|7:vOffset|
Width=496
Height=403
Point(##add)
Point(##select)
Point(##count)
link(##add,4250363:doEvent1,[(39,27)(39,146)])
link(##select,1177020:doSplit,[(32,34)(32,265)])
}
Add(Panel,15904931,441,49)
{
Width=369
Height=86
Font=[MS Sans Serif,12,0,0,1]
Visible=1
Point(doWidth)
Point(Height)
Point(doTop)
Point(doHeight)
Point(doVisible)
}
Add(Button,11087212,91,147)
{
Left=2
Top=2
Width=95
Height=82
Align=1
Font=[MS Sans Serif,12,0,0,1]
TabOrder=-1
Caption=""
Point(doCaption)
link(onClick,16401184:doEvent1,[])
}
Add(MTStrTbl,11520425,210,294)
{
Left=97
Top=2
Width=270
Height=82
Align=5
Font=[MS Sans Serif,12,0,0,1]
WinStyle=3
Name="mtbl_001"
Columns=#9:name1=150|9:name2=100|9:name3=250|9:name4=200|
Style=4
Grid=0
Point(doHeight)
}
Add(Hub,4250363,49,140)
{
link(onEvent1,6740804:doOperation,[(80,146)(80,62)])
link(onEvent2,11087212:doCaption,[])
}
Add(Math,6740804,175,56)
{
OpType=1
Op2=18
ResultType=0
link(onResult,15904931:doWidth,[])
link(Op1,3885935:pWidth,[(181,47)(27,47)])
}
Add(MT_Part,1177020,91,259)
{
link(onSplit,3091176:doCase,[])
}
Add(MT_String,11205836,224,245)
{
Delimeter="_"
link(onResult,9614300:doRowAction,[])
}
Add(MST_RowAction,9614300,280,245)
{
MSTControl="mtbl_001"
}
Add(Case,3091176,147,259)
{
@Hint=#34:Выделение команды установки высоты|
Value=String(-1)
link(onNextCase,11205836:doMTString,[])
link(onTrue,7577038:doOperation,[(193,272)(193,363)])
AddHint(-118,113,179,26,@Hint)
}
Add(Math,7577038,224,357)
{
OpType=2
Op2=24
ResultType=0
link(onResult,8700013:doEvent1,[])
link(Op1,11520425:Count,[])
}
Add(Hub,8700013,280,357)
{
OutCount=4
link(onEvent1,2608456:doData,[(305,363)(305,300)])
link(onEvent2,15904931:doHeight,[(368,370)(368,76)])
link(onEvent3,11458420:doOperation,[])
link(onEvent4,13247899:doWork2,[(375,384)(375,111)])
}
Add(DoData,2608456,322,294)
{
link(onEventData,15904931:doTop,[(361,300)(361,69)])
link(Data,3885935:vOffset,[(328,33)(34,33)])
}
Add(Math,11458420,441,371)
{
OpType=1
Op2=1
link(onResult,3885935:onVShift,[(480,377)(480,27)])
link(Op1,15904931:Height,[])
}
Add(ChanelToIndex,13247899,392,98)
{
link(onIndex,15904931:doVisible,[(431,104)(431,83)])
}
Add(MST_ArrayRows,15673897,175,98)
{
MSTControl="mtbl_001"
}
Add(MT_MTArrayEnum,9756254,175,154)
{
link(onItem,10915627:doStr,[])
link(Array,15673897:Strings,[])
}
Add(MT_String,10915627,224,154)
{
link(onResult,10031208:doAdd,[])
}
Add(StrList,10031208,280,154)
{
}
Add(DoData,3602060,280,203)
{
link(onEventData,3885935:onResult,[(333,209)(333,34)])
link(Data,10031208:Text,[])
}
Add(Hub,16401184,140,147)
{
OutCount=3
link(onEvent1,10031208:doClear,[(165,153)(165,146)(263,146)(263,167)])
link(onEvent2,9756254:doEnum,[])
link(onEvent3,3602060:doData,[(165,167)(165,209)])
}
END_SDK
Add(MT_String,11581838,189,126)
{
link(onResult,14798857:doValue,[])
}
Add(MT_MultiData,10069644,301,126)
{
From=2
Count=1
link(onData1,5953592:doCase,[])
}
Add(Case,5953592,357,126)
{
Value=String(-1)
link(onTrue,11554508:doSeparateMT,[(396,139)(396,118)(235,118)(235,223)])
}
Add(MT_Memory,14798857,245,126)
{
link(onData,10069644:doSeparateMT,[])
}
Add(MT_MultiData,11554508,245,217)
{
Count=1
Point(Data)
link(onData1,2261261:##add,[])
link(Data,14798857:Value,[])
}
Add(StrList,10000206,126,49)
{
}
Add(Hub,879511,63,70)
{
OutCount=3
link(onEvent1,10000206:doText,[])
link(onEvent2,151755:doEnum,[(116,83)(116,146)])
link(onEvent3,9978300:doEnum,[(109,90)(109,328)])
}
Add(ArrayEnum,151755,140,140)
{
link(onItem,11581838:doMTString,[])
link(Array,5355832:Var2,[])
}
Add(ArrayEnum,9978300,126,322)
{
link(onItem,11602246:doMTString,[])
link(onEndEnum,4154590:doEvent1,[(169,335)(169,475)])
link(Array,5355832:Var1,[(132,117)])
}
Add(GetDataEx,5355832,140,112)
{
link(Data,10000206:Array,[])
}
Add(MT_String,11602246,189,308)
{
link(onResult,11144894:doValue,[])
}
Add(MT_Memory,11144894,245,308)
{
link(onData,2376732:doSeparateMT,[])
}
Add(MT_MultiData,2376732,301,308)
{
From=2
Count=1
link(onData1,2285829:doCase,[])
}
Add(Case,2285829,357,308)
{
Value=String(-1)
link(onNextCase,5418568:doConvert,[])
}
Add(MT_MultiData,16457722,245,385)
{
Count=1
Point(Data)
link(onData1,4443410:doAdd,[])
link(Data,11144894:Value,[])
}
Add(MT_Add,4443410,413,385)
{
InputMT=1
link(onAdd,11319913:doWork2,[])
link(Data,5418568:Var,[])
}
Add(ConvertorEx,5418568,413,308)
{
Mode=1
link(onResult,16457722:doSeparateMT,[(452,314)(452,300)(235,300)(235,391)])
}
Add(For,5457338,413,476)
{
IncludeEnd=1
link(onEvent,5228770:doAdd,[])
link(End,2261261:##count,[(426,467)(566,467)])
}
Add(MT_Add,5228770,469,476)
{
@Hint=#35:Команда на установку высоты -- "-1"|
Data=String(-1)
link(onAdd,11319913:doWork3,[(515,482)])
AddHint(13,45,183,26,@Hint)
}
Add(HubEx,11319913,511,385)
{
Angle=3
link(onEvent,2261261:##select,[(515,230)])
}
Add(Math,8595977,567,154)
{
ResultType=0
Point(doClear)
link(Op2,15893030:Var1,[(580,145)(559,145)(559,194)])
}
Add(GetDataEx,15893030,567,189)
{
link(Data,8595977:Result,[])
}
Add(Hub,4154590,343,469)
{
OutCount=3
link(onEvent1,8595977:doClear,[(396,475)(396,167)])
link(onEvent2,5457338:doFor,[])
link(onEvent3,3963701:doRedraw,[(375,489)(375,524)])
}
Add(RedrawManager,3963701,413,518)
{
ControlManager="scrl_001"
}
Add(Message,4141012,630,224)
{
}
Add(InfoTip,14744595,126,91)
{
Info=#24:Парсинг заголовков групп|
Width=330
Height=165
Margin=10
}
Add(InfoTip,14361363,119,266)
{
Info=#25:Парсинг содержимого групп|
Width=344
Height=158
Margin=10
}
Add(InfoTip,8628584,308,434)
{
Info=#24:Установка размеров групп|
Width=267
Height=123
Margin=10
}
END_SDK
Add(ChildFormEx,13097368,497,371)
{
link(onSendToTable,8844261:doWork1,[])
}
BEGIN_SDK
Add(EditMultiEx,3339126,21,21)
{
EventCount=#13:onSendToTable|
Width=895
Height=480
}
Add(MainForm,13836894,49,42)
{
Left=35
Top=105
Width=510
Height=431
MarginLeft=3
MarginTop=3
MarginRight=3
MarginBottom=3
Border=3
BorderStyle=3
Position=3
}
Add(Memo,14630204,105,42)
{
Left=5
Top=5
Width=245
Height=355
Strings=#59:1.02.2025;Гвозди;135шт;Эдуард Суровый;Плохо закалачиваются;|40:1.02.2025;Бананы;555шт;Тамара Ивановна;;|67:1.02.2025;Бананы;705шт;Вера Сергеевна, Татьяна Сергеевна;Сосисочная|23:1.02.2025;Гвозди;135шт;|65:2.02.2025;Лак для волос;5шт;Джамшут Равшанович;Ничего не понятно;|88:2.02.2025;Топор;705шт;Вера Сергеевна, Татьяна Сергеевна; нет фантазии что то придумать);|43:3.02.2025;Гвозди;45шт;Пол Гилберт, Стив Вай|38:4.02.2025;Бананы;542шт;Тамара Ивановна|58:4.02.2025;Хлеб;123шт;Аркадий Укупник, Филипп Бедросыч; |
ScrollBars=3
}
Add(ArrayFilterRepeats,12024156,707,217)
{
link(onEndFilter,16312575:doEnum,[])
link(Array,7552928:Array,[])
}
Add(StrList,10808540,560,98)
{
}
Add(ArrayEnum,6209312,119,98)
{
link(onItem,3522122:doSplit,[])
link(onEndEnum,7543828:doEnum,[(172,111)(172,174)])
link(Array,14630204:Array,[])
}
Add(MultiStrData,3522122,182,98)
{
Count=1
link(onPart1,9403710:doSplit,[])
}
Add(MultiStrData,9403710,238,98)
{
Char="."
Count=1
link(onPart1,13670327:doConvert,[])
}
Add(Convertor,13670327,280,98)
{
Mode=1
link(onResult,6826448:doConvert,[])
}
Add(FormatStr,13844896,504,98)
{
DataCount=3
Mask="%1.%2;%3"
link(onFString,10808540:doAdd,[])
link(Str1,6826448:Var,[(510,89)(496,89)(496,138)(328,138)])
link(Str2,9403710:RemaindStr,[(517,89)(545,89)(545,145)(244,145)])
}
Add(StrList,7552928,693,168)
{
}
Add(ArrayEnum,7543828,574,168)
{
link(onItem,4569756:doSplit,[])
link(onEndEnum,12024156:doFilter,[(627,181)(627,223)])
link(Array,14054089:Var2,[])
}
Add(MultiStrData,4569756,637,168)
{
Count=1
link(onPart1,7552928:doAdd,[])
}
Add(FormatStr,423063,805,224)
{
Mask="%1;%2;-1"
link(onFString,980245:doAdd,[])
link(Str2,16312575:Index,[(818,215)(846,215)(846,264)(769,264)])
}
Add(ArrayEnum,16312575,756,224)
{
link(onItem,423063:doString,[])
link(onEndEnum,13241821:doEnum,[(795,237)(795,272)(123,272)(123,293)])
link(Array,12024156:ArrayFilter,[(762,215)(748,215)(748,257)(713,257)])
}
Add(ConvertorEx,6826448,322,98)
{
SymbolFill="0"
link(onResult,1755495:doTrim,[])
}
Add(Replace,9950737,448,98)
{
SubStr=";"
DestStr="_"
link(onReplace,13844896:doString,[])
}
Add(Trim,1755495,364,98)
{
Char=" "
Mode=2
link(onTrim,1106632:doTrim,[])
link(Text,3522122:RemaindStr,[(370,89)(230,89)(230,138)(188,138)])
}
Add(Trim,1106632,406,98)
{
Char=";"
Mode=2
link(onTrim,9950737:doReplace,[])
}
Add(Memo,6440523,609,392)
{
Left=255
Top=5
Width=245
Height=355
ScrollBars=3
}
Add(ArrayEnum,13241821,133,287)
{
link(onItem,4337509:doEvent1,[])
link(Array,980245:Array,[(139,278)(881,278)])
}
Add(ArrayEnum,15988690,224,392)
{
link(onItem,13600319:doSplit,[])
link(Array,14054089:Var1,[(230,152)])
}
Add(MultiStrPart,3790315,343,329)
{
}
Add(If_else,6979627,336,392)
{
link(onTrue,8811699:doString,[])
link(Op2,3790315:Part1,[])
}
Add(MultiStrData,13600319,273,392)
{
Count=1
link(onPart1,6979627:doCompare,[])
}
Add(GetDataEx,14054089,574,147)
{
link(Data,10808540:Array,[])
}
Add(FormatStr,8811699,399,392)
{
DataCount=3
Mask="%1;%2;%3"
link(onFString,16709857:doWork2,[])
link(Str1,13600319:RemaindStr,[(405,383)(391,383)(391,432)(279,432)])
link(Str2,1420522:GetData,[])
link(Str3,3790315:Part2,[(419,376)(356,376)])
}
Add(Hub,4337509,189,287)
{
OutCount=3
link(onEvent1,16709857:doWork1,[(557,293)])
link(onEvent2,3790315:doSplit,[(333,300)(333,335)])
link(onEvent3,15988690:doEnum,[(214,307)(214,398)])
}
Add(StrList,980245,861,224)
{
}
Add(EventFromData,1420522,406,329)
{
link(onEvent,14098023:doConvert,[])
}
Add(HubEx,16709857,553,392)
{
link(onEvent,6440523:doAdd,[])
}
Add(Convertor,14098023,462,329)
{
Mode=1
link(onResult,10549897:doOperation,[])
link(Data,15988690:Index,[(468,320)(454,320)(454,439)(237,439)])
}
Add(Math,10549897,511,329)
{
Op2=1000
ResultType=0
link(onResult,1420522:doData,[(550,335)(550,314)(396,314)(396,335)])
}
Add(Button,4979143,49,98)
{
Left=175
Top=375
TabOrder=-1
Caption="Convert"
link(onClick,6209312:doEnum,[])
}
Add(Button,16237282,511,448)
{
Left=235
Top=375
Width=95
TabOrder=-1
Caption="SendToTable"
link(onClick,12979427:doEvent1,[])
}
Add(DoData,12599514,609,448)
{
link(onEventData,3339126:onSendToTable,[(900,454)(900,27)])
link(Data,6440523:Text,[])
}
Add(Hub,12979427,567,448)
{
link(onEvent1,12599514:doData,[])
link(onEvent2,13836894:doClose,[(592,461)(592,489)(39,489)(39,69)])
}
END_SDK


Редактировалось 1 раз(а), последний 2025-03-13 16:16:02
карма: 22

0
Разработчик
Ответов: 26223
Рейтинг: 2139
#30: 2025-03-13 20:58:54 ЛС | профиль | цитата
PS Че-то торопился и забыл предусмотреть очистку списков
карма: 22

0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)