Вверх ↑
Разработчик
Ответов: 26226
Рейтинг: 2139
#1: 2025-03-14 16:22:30 ЛС | профиль | цитата
Все же решил доделать с функционалом базы данных

Схема

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,[])
}

карма: 22

1
Голосовали:Gitarist
Редактировалось 2 раз(а), последний 2025-03-14 16:33:48