Вверх ↑
Ответов: 933
Рейтинг: 197
#1: 2025-07-27 16:39:45 ЛС | профиль | цитата
Gitarist писал(а):
Подскажите, есть ли менее замороченный способ подсчета значений правого столбца в таблице.

Add(MainForm,9097428,91,154)
{
Width=742
Height=454
Point(onClose)
link(onCreate,11171972:doOpen,[])
link(onClose,11171972:doClose,[])
}
Add(StrList,13965242,238,119)
{
Strings=#10:йцукенг;11|5:цук;5|6:фыва;8|9:йцукенг;4|9:йцукенг;5|6:фыва;3|8:ячсми;22|9:ячсми;115|10:пролдж;265|9:йцукен;44|9:пролдж;25|7:фыва;74|
}
Add(StringTable,14508183,329,231)
{
Left=375
Top=40
Width=285
Height=225
Columns=#11:позиция=100|8:колич=50|
Point(doAddColumn)
}
Add(StringTable,9725226,357,112)
{
Left=50
Top=40
Width=285
Height=225
Columns=#11:позиция=100|8:колич=50|
Point(Strings)
}
Add(ArrayEnum,1370606,252,168)
{
link(onItem,2341561:doEvent1,[])
link(Array,13965242:Array,[])
}
Add(Button,1690297,91,224)
{
Left=275
Top=300
Width=155
Caption="посчитать"
link(onClick,11185442:doEvent1,[])
}
Add(DS_SQLite,11171972,147,168)
{
Name="bd"
FileName=":memory:"
link(onOpen,7933638:doExec,[])
}
Add(DSC_Exec,7933638,196,168)
{
SQL="CREATE TABLE [list](\r\n [Poz] CHAR(30), \r\n [Qt] INTEGER);"
DSManager="bd"
link(onExec,1370606:doEnum,[])
}
Add(DSC_Exec,13859579,455,161)
{
DSManager="bd"
}
Add(MT_String,9368895,357,161)
{
link(onResult,653926:doString,[])
}
Add(FormatStr,653926,406,161)
{
Mask="INSERT\r\nINTO [list](\r\n [Poz], \r\n [Qt])\r\nVALUES('%1',%2); \r\n"
link(onFString,13859579:doExec,[])
}
Add(Hub,2341561,308,168)
{
link(onEvent1,9725226:doAdd,[(333,174)(333,118)])
link(onEvent2,9368895:doMTString,[])
}
Add(DSC_Query,9807701,189,231)
{
SQL="SELECT\r\n Poz,\r\n SUM(Qt)\r\nFROM\r\n list\r\nGROUP BY\r\n Poz;\r\n "
DSManager="bd"
link(onQuery,2535870:doStr,[])
}
Add(MT_String,2535870,252,231)
{
link(onResult,14508183:doAdd,[])
}
Add(Hub,11185442,154,224)
{
link(onEvent1,14508183:doClear,[(291,230)(291,244)])
link(onEvent2,9807701:doQuery,[])
}


Можно даже так
Add(MainForm,9097428,98,147)
{
Width=742
Height=454
Point(onClose)
link(onCreate,11171972:doOpen,[])
link(onClose,11171972:doClose,[])
}
Add(StrList,13965242,245,112)
{
Strings=#10:йцукенг;11|5:цук;5|6:фыва;8|9:йцукенг;4|9:йцукенг;5|6:фыва;3|8:ячсми;22|9:ячсми;115|10:пролдж;265|9:йцукен;44|9:пролдж;25|7:фыва;74|
}
Add(StringTable,14508183,322,224)
{
Left=375
Top=40
Width=285
Height=225
Point(doAddColumn)
}
Add(StringTable,9725226,364,105)
{
Left=50
Top=40
Width=285
Height=225
Columns=#11:позиция=100|8:колич=50|
Point(Strings)
}
Add(ArrayEnum,1370606,259,161)
{
link(onItem,2341561:doEvent1,[])
link(Array,13965242:Array,[])
}
Add(Button,1690297,98,217)
{
Left=275
Top=300
Width=155
Caption="посчитать"
link(onClick,11185442:doEvent1,[])
}
Add(DS_SQLite,11171972,154,161)
{
Name="bd"
FileName=":memory:"
link(onOpen,7933638:doExec,[])
}
Add(DSC_Exec,7933638,203,161)
{
SQL="CREATE TABLE [list](\r\n [Poz] CHAR(30), \r\n [Qt] INTEGER);"
DSManager="bd"
link(onExec,1370606:doEnum,[])
}
Add(DSC_Exec,13859579,462,154)
{
DSManager="bd"
}
Add(MT_String,9368895,364,154)
{
link(onResult,653926:doString,[])
}
Add(FormatStr,653926,413,154)
{
Mask="INSERT\r\nINTO [list](\r\n [Poz], \r\n [Qt])\r\nVALUES('%1',%2); \r\n"
link(onFString,13859579:doExec,[])
}
Add(Hub,2341561,315,161)
{
link(onEvent1,9725226:doAdd,[(340,167)(340,111)])
link(onEvent2,9368895:doMTString,[])
}
Add(DSC_Query,13549371,203,224)
{
SQL="SELECT\r\n Poz AS "Позиция",\r\n MAX(Qt) AS "Максимальное",\r\n MIN(Qt) AS "Минимальное",\r\n SUM(Qt) AS "Сумма",\r\n AVG(Qt) AS "Среднее",\r\n COUNT(Qt) AS "Количество",\r\n GROUP_CONCAT(Qt, ", ") AS "Все значения"\r\nFROM\r\n list\r\nGROUP BY\r\n Poz;\r\n "
DSManager="bd"
link(onQuery,2535870:doStr,[])
link(onColumns,10003028:doEnum,[(249,237)(249,272)])
}
Add(MT_String,2535870,259,224)
{
link(onResult,14508183:doAdd,[])
}
Add(Hub,11185442,161,217)
{
link(onEvent1,14508183:doClear,[(298,223)(298,237)])
link(onEvent2,13549371:doQuery,[])
}
Add(MT_Enum,10003028,259,266)
{
link(onItem,14508183:doAddColumn,[(298,272)(298,251)])
}

карма: 19

1
Голосовали:Gitarist
Редактировалось 1 раз(а), последний 2025-07-27 16:45:54