Все же решил доделать с функционалом базы данных  Схема Add(MainForm,2953706,441,238) { Width=715 Height=506 MarginLeft=3 MarginTop=3 MarginRight=3 MarginBottom=3 Border=3 Caption="MultiTable" BorderStyle=1 Position=1 Point(onClose) link(onClose,2890957:doWork2,[]) } Add(ChildScrollBox,8844261,539,308) { } BEGIN_SDK Add(EditMulti,4271376,21,21) { WorkCount=1 Width=377 Height=228 link(doWork1,879511:doEvent1,[(53,27)(53,48)]) } Add(ScrollBox,964248,322,77) { Width=709 Height=438 Align=2 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=#7:##clear|5:##add|8:##select| EventCount=#8:onVShift|8:onResult| VarCount=#7:##count|0:| DataCount=#7:vOffset|6:pWidth| Width=650 Height=522 Point(##clear) Point(##add) Point(##select) Point(##count) link(##add,11635148:doSeparateMT,[(46,34)(46,146)]) link(##select,13247899:doWork2,[(39,41)(39,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=95 Height=85 Align=1 Font=[MS Sans Serif,12,0,0,1] TabOrder=-1 WinStyle=3 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,12,0,0,1] WinStyle=3 Name="mtbl_001" Columns=#9:name1=150|8:name2=70|9:name3=180|9:name4=150| 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,26)(34,26)]) } Add(Math,7577038,287,462) { OpType=2 ResultType=0 link(onResult,6737462:doOperation,[]) 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=1 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 product,quantity,buyer,note 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,[]) } Add(Math,6737462,399,462) { Op2=7 ResultType=0 link(onResult,8700013:doEvent1,[]) } END_SDK Add(Hub,879511,63,42) { OutCount=5 link(onEvent1,2261261:##clear,[(88,48)(88,41)(242,41)(242,153)]) link(onEvent2,8345200:doQuery,[]) link(onEvent3,8595977:doClear,[(116,62)(116,90)]) link(onEvent4,3963701:doBeginUpdate,[(88,69)(88,209)]) link(onEvent5,1686440:doFor,[(109,76)(109,167)]) } 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,161) { IncludeEnd=1 link(onEvent,2261261:##select,[]) link(onStop,3963701:doEndUpdate,[(172,174)(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,160)]) } END_SDK Add(DS_SQLite,5269537,539,252) { @Color=5614250 Name="sqlite_1" FileName=":memory:" WaitClose=0 Point(onClose) link(onOpen,3519221:doExec,[]) link(onClose,13097368:doStart,[(578,265)(578,349)(431,349)(431,307)]) } Add(ChildFormEx,13097368,441,294) { link(onCreate,5269537:doOpen,[(487,300)(487,258)]) link(onClose,2890957:doWork3,[(514,307)]) link(onSendToTable,8844261:doWork1,[]) } BEGIN_SDK Add(EditMultiEx,3339126,21,21) { WorkCount=#10:doGetTable|7:doStart| EventCount=#8:onCreate|7:onClose|13:onSendToTable| Width=706 Height=466 link(doGetTable,13836894:doShowModal,[(158,27)(158,454)]) link(doStart,15721710:doWork2,[(39,34)(39,160)]) } Add(MainForm,13836894,308,413) { Left=35 Top=105 Width=543 Height=420 MarginLeft=3 MarginTop=3 MarginRight=3 MarginBottom=3 Border=3 Visible=1 Caption="Convert ListToDB" BorderStyle=3 Position=3 Point(doVisible) Point(doShowModal) link(onActivate,2870680:doTimer,[]) } Add(Memo,14630204,182,91) { Width=537 Height=355 Align=2 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(ArrayEnum,6209312,196,154) { link(onItem,3522122:doSplit,[]) link(onEndEnum,11897762:doEvent1,[(235,167)(235,244)]) link(Array,14630204:Array,[]) } Add(MultiStrData,3522122,252,154) { Count=1 link(onPart1,2827148:doConvert,[]) } Add(FormatStr,423063,357,238) { DataCount=1 Mask="UPDATE variable SET count = (SELECT count FROM variable WHERE id = 1) + 1 WHERE id = 1;\r\nINSERT INTO groups VALUES(Null,'%1',(SELECT count FROM variable WHERE id = 1),-1);" link(onFString,9529671:doExec,[]) } Add(Trim,1755495,392,154) { Char=" " Mode=2 link(onTrim,1106632:doTrim,[]) link(Text,3522122:RemaindStr,[(398,145)(300,145)(300,194)(258,194)]) } Add(Trim,1106632,434,154) { Char=";" Mode=2 link(onTrim,5791458:doStrCatDlm,[]) } Add(Button,4979143,98,147) { Left=225 Top=365 Width=85 akLeft=1 akRight=0 Enabled=1 TabOrder=-1 Caption="Convert" Point(doEnabled) link(onClick,4266426:doEvent1,[]) } Add(DateConvertor,2827148,308,154) { Mode=8 Format="dd.MM.yyyy" link(onResult,1720819:doConvert,[]) } Add(DateConvertor,1720819,350,154) { Mode=9 Format="dd.MM.yyyy" Point(Result) link(onResult,1755495:doTrim,[]) } Add(InfoTip,6282113,245,105) { Info=#18:Нормализация строк| Width=295 Height=116 Margin=10 } Add(DSC_Exec,9529671,406,238) { @Color=5614250 DSManager="parent.sqlite_1" } Add(DSC_Query,14226630,308,280) { @Color=5614250 SQL="SELECT name,idx FROM groups" DSManager="parent.sqlite_1" link(onQuery,6177478:doEvent1,[]) } Add(FormatStr,884083,602,140) { DataCount=5 Mask="UPDATE variable SET count = (SELECT count FROM variable WHERE id = 2) + 1 WHERE id = 2;\r\nINSERT INTO elements VALUES(Null,'%1','%2','%3','%4','%5',(SELECT count FROM variable WHERE id = 2),-1);" link(onFString,1233640:doExec,[]) } Add(StrCatDelim,5791458,490,154) { Delimiter=";" link(onStrCatDlm,12997162:doMTString,[]) link(Str1,1720819:Result,[(496,145)(482,145)(482,194)(356,194)]) } Add(MT_String,12997162,553,140) { link(onResult,884083:doString,[]) } Add(DSC_Exec,1233640,658,140) { @Color=5614250 DSManager="parent.sqlite_1" } Add(DSC_Query,15791966,308,238) { @Color=5614250 SQL="SELECT DISTINCT date FROM elements;" DSManager="parent.sqlite_1" link(onQuery,423063:doString,[]) } Add(Hub,11897762,252,238) { OutCount=4 link(onEvent1,15791966:doQuery,[]) link(onEvent2,14226630:doQuery,[(284,251)(284,286)]) link(onEvent3,3339126:onSendToTable,[(291,258)(291,41)]) link(onEvent4,13836894:doClose,[(278,265)(278,440)]) } Add(MT_MultiMem,3370357,490,280) { } Add(DSC_Query,6070957,392,350) { @Color=5614250 SQL="SELECT id,date FROM elements" DSManager="parent.sqlite_1" link(onQuery,12065741:doValue,[]) } Add(Hub,6177478,357,280) { link(onEvent1,3370357:doValue,[]) link(onEvent2,6070957:doQuery,[(382,293)(382,356)]) } Add(If_else,8732812,490,350) { link(onTrue,2074840:doString,[]) link(Op1,3370357:Value1,[]) link(Op2,12065741:Value2,[(503,341)(531,341)(531,390)(454,390)]) } Add(FormatStr,2074840,546,350) { Mask="UPDATE elements SET parent = %2 WHERE id = %1;" link(onFString,1835631:doExec,[]) link(Str1,12065741:Value1,[(552,341)(538,341)(538,397)(447,397)]) link(Str2,3370357:Value2,[(559,334)(503,334)]) } Add(DSC_Exec,1835631,602,350) { @Color=5614250 DSManager="parent.sqlite_1" } Add(MT_MultiMem,12065741,441,350) { link(onData,8732812:doCompare,[]) } Add(Hub,4266426,140,147) { link(onEvent1,3339126:onCreate,[(165,153)(165,27)]) link(onEvent2,6209312:doEnum,[]) } Add(Timer,2870680,357,413) { Interval=0 Enable=1 AutoStop=1 link(onTimer,6227862:doEvent1,[]) } Add(Hub,6227862,406,413) { link(onEvent1,15721710:doWork1,[(431,419)(431,468)(46,468)(46,153)]) link(onEvent2,3339126:onClose,[(697,426)(697,34)]) } Add(ChanelToIndex,15721710,56,147) { link(onIndex,4979143:doEnabled,[]) } END_SDK Add(DSC_Exec,3519221,588,252) { @Color=5614250 SQL="CREATE TABLE variable(id INTEGER PRIMARY KEY AUTOINCREMENT, count int);\r\nINSERT INTO variable VALUES(Null,-1);\r\nINSERT INTO variable VALUES(Null,1000);\r\nCREATE TABLE groups(id INTEGER PRIMARY KEY AUTOINCREMENT,name text,idx int,parent int);\r\nCREATE TABLE elements(id INTEGER PRIMARY KEY AUTOINCREMENT,date text,product text,quantity text,buyer text,note text,idx int,parent int);" DSManager="sqlite_1" } Add(HubEx,2890957,510,259) { link(onEvent,5269537:doClose,[]) } Add(Button,12804036,385,294) { Left=310 Top=450 Width=85 akLeft=1 akRight=0 TabOrder=-1 Caption="Get Table" link(onClick,13097368:doGetTable,[]) }
|