Вверх ↑
Этот топик читают: Гость
Ответов: 133
Рейтинг: 0
#16: 2024-09-21 18:49:38 ЛС | профиль | цитата
Gunta, Спасибо большое.
А теперь объясните мне идиоту, пожалуйста, почему ЭТО не работает. Почему данные не записываются в файл базы данных и почему не отображаются в таблице и очень прошу, добавьте пожалуйста добавление данных по нажатию кнопки, не понимаю как это сделать.
Add(MainForm,2953706,21,105)
{
Width=718
Height=406
}
Add(Button,5667771,126,182)
{
Left=10
Top=60
Width=80
Caption="Создать"
link(onClick,7707573:doOpen,[])
}
Add(Edit,14560686,182,133)
{
Left=10
Top=30
Width=120
Text=""
}
Add(Label,121854,182,91)
{
Left=10
Top=5
Width=123
Height=17
Caption="Название базы данных"
}
Add(MTStrTbl,4626275,441,182)
{
Left=160
Top=10
Width=530
Height=200
Columns=#7:Дата=70|11:Фамилия=100|12:Описание=100|10:Работа=100|8:Сумма=70|
}
Add(DS_SQLite,7707573,182,182)
{
Name="mdb"
WaitClose=0
link(onOpen,16718266:doExec,[])
link(FileName,14560686:Text,[])
}
Add(DSC_Exec,16718266,238,182)
{
SQL="CREATE TABLE IF NOT EXISTS[tab1](\r\n [id] INTEGER PRIMARY KEY AUTOINCREMENT, \r\n [date] DATE, \r\n [familia] TEXT, \r\n [opisanie] TEXT, \r\n [work] TEXT, \r\n [summa] TEXT);\r\nINSERT INTO [tab1] VALUES(1,'21.09.2024','Пупкин Николай Владимирович','работа','решил''2500');"
DSManager="mdb"
link(onExec,12956405:doQuery,[])
}
Add(DSC_Query,12956405,287,182)
{
SQL="SELECT date AS Дата,familia AS Фамилия,opisanie AS Описание,work AS Работа,summa AS Сумма FROM "tab1";"
DSManager="sqlite_1"
link(onQuery,5392188:doAddRow,[])
link(onColumns,5392188:doAddCols,[])
}
Add(MST_DB,5392188,336,182)
{
MSTControl="parent.mtst"
}


Редактировалось 1 раз(а), последний 2024-09-21 18:49:56
карма: 1

0
Разработчик
Ответов: 26112
Рейтинг: 2124
#17: 2024-09-21 19:43:14 ЛС | профиль | цитата
Всем Привет!
Serascer писал(а):
не понимаю как это сделать

Как-то так. Но надо внимательнее смотреть на обращение к менеджерам. Да и кол-во данных по INSERT проверять, а то запятую забыл где-то
Схема

Add(MainForm,4842992,280,196)
{
Width=718
Height=406
}
Add(Button,5667771,336,273)
{
Left=10
Top=60
Width=80
Caption="Создать"
link(onClick,7640810:doEvent1,[])
}
Add(Edit,14560686,476,231)
{
Left=10
Top=30
Width=120
Text="eferere.db"
}
Add(Label,121854,280,154)
{
Left=10
Top=5
Width=123
Height=17
Caption="Название базы данных"
}
Add(MTStrTbl,4626275,336,196)
{
Left=160
Top=10
Width=530
Height=200
Name="mtst"
}
Add(DS_SQLite,7707573,476,280)
{
Name="mdb"
WaitClose=0
link(onOpen,8256804:doEvent1,[])
link(FileName,14560686:Text,[])
}
Add(DSC_Exec,16718266,574,280)
{
SQL="CREATE TABLE IF NOT EXISTS[tab1](\r\n [id] INTEGER PRIMARY KEY AUTOINCREMENT, \r\n [date] DATE, \r\n [familia] TEXT, \r\n [opisanie] TEXT, \r\n [work] TEXT, \r\n [summa] TEXT);\r\nINSERT INTO tab1 VALUES(\r\n Null,\r\n '2024-09-21',\r\n 'Пупкин Николай Владимирович',\r\n 'работа',\r\n 'решил',\r\n '2500');"
DSManager="mdb"
}
Add(DSC_Query,12956405,574,322)
{
SQL="SELECT date AS Дата,familia AS Фамилия,opisanie AS Описание,work AS Работа,summa AS Сумма FROM "tab1";"
DSManager="mdb"
link(onQuery,5392188:doAddRow,[])
link(onColumns,5392188:doAddCols,[])
}
Add(MST_DB,5392188,630,322)
{
MSTControl="mtst"
}
Add(Hub,8256804,525,280)
{
link(onEvent1,16718266:doExec,[])
link(onEvent2,12956405:doQuery,[(557,293)(557,328)])
}
Add(Hub,7640810,385,273)
{
link(onEvent1,14141324:doClear,[(410,279)(410,237)])
link(onEvent2,7707573:doOpen,[])
}
Add(MST_Clear,14141324,420,231)
{
ClearAll=0
MSTControl="mtst"
}

--- Добавлено в 2024-09-21 19:45:18

Да и запросы желательно ставить не каскадом, а через хаб. Это и разделяет очередей запросов, и улучшает поиск ошибок.

Редактировалось 3 раз(а), последний 2024-09-21 20:24:38
карма: 22

0
Ответов: 771
Рейтинг: 168
#18: 2024-09-21 19:49:12 ЛС | профиль | цитата
nesco, немного не успел..

и формат даты лучще изменить, легче потом сортировать будет.
Add(MainForm,1130157,259,154)
{
Width=718
Height=406
}
Add(Button,5667771,287,231)
{
Left=10
Top=60
Width=80
Caption="Создать"
link(onClick,7707573:doOpen,[])
}
Add(Edit,14560686,343,182)
{
Left=10
Top=30
Width=120
Text="asd.db"
}
Add(Label,121854,343,140)
{
Left=10
Top=5
Width=123
Height=17
Caption="Название базы данных"
}
Add(MTStrTbl,4626275,539,231)
{
Left=160
Top=10
Width=530
Height=200
Name="mytbl"
}
Add(DS_SQLite,7707573,343,231)
{
Name="mdb"
WaitClose=0
link(onOpen,16718266:doExec,[])
link(FileName,14560686:Text,[])
}
Add(DSC_Exec,16718266,399,231)
{
SQL="CREATE TABLE IF NOT EXISTS[tab1](\r\n [id] INTEGER PRIMARY KEY AUTOINCREMENT, \r\n [date] DATE, \r\n [familia] TEXT, \r\n [opisanie] TEXT, \r\n [work] TEXT, \r\n [summa] TEXT);\r\nINSERT\r\nINTO\r\n [tab1](\r\n [date],\r\n [familia],\r\n [opisanie],\r\n [work],\r\n [summa])\r\nVALUES(\r\n '2024-09-21',\r\n 'Пупкин Николай Владимирович',\r\n 'работа',\r\n 'решил',\r\n '2500');\r\n"
DSManager="mdb"
link(onExec,12956405:doQuery,[])
}
Add(DSC_Query,12956405,448,231)
{
SQL="SELECT \r\n date AS Дата,\r\n familia AS Фамилия,\r\n opisanie AS Описание,\r\n work AS Работа,\r\n summa AS Сумма \r\nFROM tab1;\r\n"
DSManager="mdb"
link(onQuery,5392188:doAddRow,[])
link(onColumns,5392188:doAddCols,[])
}
Add(MST_DB,5392188,497,231)
{
MSTControl="mytbl"
}


Редактировалось 1 раз(а), последний 2024-09-21 19:49:52
карма: 15

0
Разработчик
Ответов: 26112
Рейтинг: 2124
#19: 2024-09-21 20:03:37 ЛС | профиль | цитата
У вас, у обоих, одна и та же ошибка -- невозможность многократного обращения к базе в примере. У вас создается куча ненужных столбцов и строк. Таблицу в ваших схемах надо обязательно полностью очищать.
карма: 22

0
Ответов: 133
Рейтинг: 0
#20: 2024-09-21 20:26:58 ЛС | профиль | цитата
Gunta, nesco, спасибо вам, нашел таки ошибку )
А как мне добавлять новую запись в таблицу? Командой INSERT это понятно, а как именно? Просто выполнить команду с нужными данными через модуль DSC_Exec и далее в MST_DB не получается. Потому что столбцов не указываю?
карма: 1

0
Разработчик
Ответов: 26112
Рейтинг: 2124
#21: 2024-09-21 20:28:03 ЛС | профиль | цитата
Можно не перечислять столбцы в запросе INSERT, но тогда значение поля Id должно прописываться как Null, если прописано при создании [id] INTEGER PRIMARY KEY AUTOINCREMENT

--- Добавлено в 2024-09-21 20:29:45

Я немного исправил пример. При запуске всегда будет добавляться новая строка со след. номером. А так надо просто вынести INSERT в отдельный запрос

Редактировалось 1 раз(а), последний 2024-09-21 20:29:45
карма: 22

0
Ответов: 133
Рейтинг: 0
#22: 2024-09-21 20:30:23 ЛС | профиль | цитата
nesco, вот так?

Add(MainForm,4842992,364,189)
{
Width=718
Height=406
}
Add(Button,5667771,420,266)
{
Left=10
Top=60
Width=80
Caption="Создать"
link(onClick,7640810:doEvent1,[])
}
Add(Edit,14560686,560,224)
{
Left=10
Top=30
Width=120
Text="eferere.db"
}
Add(Label,121854,364,147)
{
Left=10
Top=5
Width=123
Height=17
Caption="Название базы данных"
}
Add(MTStrTbl,4626275,420,189)
{
Left=160
Top=10
Width=530
Height=200
Name="mtst"
}
Add(DS_SQLite,7707573,560,273)
{
Name="mdb"
WaitClose=0
link(onOpen,8256804:doEvent1,[])
link(FileName,14560686:Text,[])
}
Add(DSC_Exec,16718266,658,259)
{
SQL="CREATE TABLE IF NOT EXISTS[tab1](\r\n [id] INTEGER PRIMARY KEY AUTOINCREMENT NULL, \r\n [date] DATE, \r\n [familia] TEXT, \r\n [opisanie] TEXT, \r\n [work] TEXT, \r\n [summa] TEXT);\r\nINSERT INTO tab1 VALUES(1,'21.09.2024','Пупкин Николай Владимирович','работа','решил','2500');"
DSManager="mdb"
}
Add(DSC_Query,12956405,658,301)
{
SQL="SELECT date AS Дата,familia AS Фамилия,opisanie AS Описание,work AS Работа,summa AS Сумма FROM "tab1";"
DSManager="mdb"
link(onQuery,5392188:doAddRow,[])
link(onColumns,5392188:doAddCols,[])
}
Add(MST_DB,5392188,714,301)
{
MSTControl="mtst"
}
Add(Hub,8256804,609,273)
{
link(onEvent1,16718266:doExec,[(641,279)(641,265)])
link(onEvent2,12956405:doQuery,[(641,286)(641,307)])
}
Add(Hub,7640810,469,266)
{
link(onEvent1,14141324:doClear,[(494,272)(494,230)])
link(onEvent2,7707573:doOpen,[])
}
Add(MST_Clear,14141324,504,224)
{
ClearAll=0
MSTControl="mtst"
}
Add(SQLite_Exec,13232776,476,343)
{
SQL="INSERT INTO tab1 VALUES(2,'21.09.2024','Николай Владимирович','работа','решил','2500');"
link(onError,75674:doAddRow,[])
}
Add(Button,6340362,420,343)
{
Left=10
Top=95
Width=110
Caption="Добавить запись"
link(onClick,13232776:doExec,[])
}
Add(MST_DB,75674,525,343)
{
MSTControl="mtst"
}


--- Добавлено в 2024-09-21 21:15:37

nesco, пожалуйста, можете изменить ваш пример так, чтобы там была отдельная кнопка для добавления новой отдельной записи, отличающейся от той, что уже добавлена была. Ну никак не получается у меня это сделать.

Редактировалось 1 раз(а), последний 2024-09-21 21:15:37
карма: 1

0
Ответов: 133
Рейтинг: 0
#23: 2024-09-21 22:32:56 ЛС | профиль | цитата
Такс, с добавлением записи я разобрался, теперь надо понять как ИЗМЕНЯТЬ её )
Вот эта команда верная?
UPDATE tab1
SET familia = ВАСЯ
WHERE familia = Пупкин Николай Владимирович;

Редактировалось 1 раз(а), последний 2024-09-21 22:39:40
карма: 1

0
Ответов: 771
Рейтинг: 168
#24: 2024-09-21 22:42:53 ЛС | профиль | цитата
Serascer писал(а):
пожалуйста, можете изменить ваш пример так, чтобы там была отдельная кнопка для добавления новой отдельной записи, отличающейся от той, что уже добавлена была. Ну никак не получается у меня это сделать.

Правой кнопкой мыши в таблице

Add(MainForm,1130157,203,105)
{
Width=718
Height=406
Point(onClose)
link(onCreate,7707573:doOpen,[])
link(onClose,7707573:doClose,[])
}
Add(MTStrTbl,4626275,210,224)
{
Left=160
Top=10
Width=530
Height=200
Align=5
Name="mytbl"
Point(onMouseUp)
link(onMouseUp,7623674:doEvent,[])
}
Add(DS_SQLite,7707573,259,119)
{
Name="mdb"
FileName="mydarabase.db"
WaitClose=0
link(onOpen,16718266:doExec,[])
}
Add(DSC_Exec,16718266,315,119)
{
SQL="CREATE TABLE IF NOT EXISTS[tab1](\r\n [id] INTEGER PRIMARY KEY AUTOINCREMENT, \r\n [date] DATE, \r\n [familia] TEXT, \r\n [opisanie] TEXT, \r\n [work] TEXT, \r\n [summa] TEXT);\r\n"
DSManager="mdb"
link(onExec,12639736:doEvent1,[])
}
Add(DSC_Query,12956405,420,126)
{
SQL="SELECT \r\n date AS Дата,\r\n familia AS Фамилия,\r\n opisanie AS Описание,\r\n work AS Работа,\r\n summa AS Сумма \r\nFROM tab1;\r\n"
DSManager="mdb"
link(onQuery,5392188:doAddRow,[])
link(onColumns,5392188:doAddCols,[])
}
Add(MST_DB,5392188,476,126)
{
MSTControl="mytbl"
}
Add(Hub,12639736,378,119)
{
InCount=2
OutCount=3
link(onEvent1,15792448:doClear,[(403,125)(403,90)])
link(onEvent2,12956405:doQuery,[])
link(onEvent3,14072073:doColAction,[(410,139)(410,174)])
}
Add(MST_ColAction,14072073,420,168)
{
Action=9
Index=-2
MSTControl="mytbl"
}
Add(PopupMenu,15198874,364,259)
{
Menu=#15:Добавить запись|0:|
link(onClick,1907426:doEvent,[])
}
Add(DeferredEvent,9633104,315,259)
{
link(onDeferredEvent,15198874:doPopupHere,[])
}
Add(IndexToChanel,1907426,420,259)
{
Count=3
link(onEvent1,3731829:doWork1,[])
}
Add(IndexToChanel,7623674,266,252)
{
link(onEvent2,9633104:doDeferredEvent,[])
}
Add(ChildForm,3731829,476,259)
{
link(onEvent1,2381268:In,[])
}
BEGIN_SDK
Add(EditMulti,1491838,21,14)
{
EventCount=1
WorkCount=1
Width=573
Height=291
link(doWork1,475173:doEvent1,[(67,20)(67,62)])
}
Add(MainForm,13367302,119,28)
{
Left=35
Top=105
Width=504
Height=218
Visible=1
Point(doVisible)
}
Add(Button,1416819,168,189)
{
Left=225
Top=125
Width=110
Height=30
Caption="Создатьзапись"
link(onClick,15597162:doString,[])
}
Add(Edit,13718670,287,112)
{
Left=10
Top=80
Width=120
Text=""
}
Add(Label,10493128,364,49)
{
Left=10
Top=5
Width=30
Height=17
Caption="Дата"
}
Add(DSC_Exec,12580462,301,189)
{
DSManager="parent.mdb"
link(onExec,2150116:doEvent1,[])
}
Add(DatePicker,11740223,112,112)
{
Left=5
Top=30
Width=115
Height=21
link(onChange,3131699:doWork2,[])
}
Add(Label,8723371,368,46)
{
Left=10
Top=60
Width=53
Height=17
Caption="Фамилия"
}
Add(Edit,1991437,342,110)
{
Left=160
Top=30
Width=310
Text=""
}
Add(Label,10818380,290,37)
{
Left=160
Top=10
Width=54
Height=17
Caption="Описание"
}
Add(Label,7006651,361,42)
{
Left=170
Top=60
Width=40
Height=17
Caption="Работа"
}
Add(Edit,6769963,385,108)
{
Left=160
Top=80
Width=310
Text=""
}
Add(Edit,10926788,431,113)
{
Left=10
Top=130
Width=120
Text=""
DataType=1
}
Add(Label,14976561,330,40)
{
Left=10
Top=110
Width=59
Height=17
Caption="Стоимость"
}
Add(DateConvertor,5015877,224,112)
{
Mode=9
Format="yyyy-MM-dd"
Point(Result)
Point(Data)
link(Data,12298793:DateTime,[])
}
Add(FormatStr,15597162,224,189)
{
DataCount=5
Mask="INSERT\r\nINTO\r\n [tab1](\r\n [date],\r\n [familia],\r\n [opisanie],\r\n [work],\r\n [summa])\r\nVALUES(\r\n '%1',\r\n '%2',\r\n '%3',\r\n '%4',\r\n %5);\r\n"
link(onFString,12580462:doExec,[])
link(Str1,5015877:Result,[])
link(Str2,13718670:Text,[(237,152)(293,152)])
link(Str3,1991437:Text,[(244,159)(348,159)])
link(Str4,6769963:Text,[(251,166)(391,166)])
link(Str5,10926788:Text,[(258,173)(437,173)])
}
Add(Hub,2150116,378,189)
{
link(onEvent1,1491838:onEvent1,[(466,195)(466,20)])
link(onEvent2,14722169:doDeferredEvent,[(410,202)(410,230)])
}
Add(DoData,7108916,476,224)
{
Data=Integer(0)
link(onEventData,475173:doEvent2,[(521,230)(521,274)(67,274)(67,69)])
}
Add(DeferredEvent,14722169,420,224)
{
link(onDeferredEvent,7108916:doData,[])
}
Add(Hub,475173,77,56)
{
InCount=2
link(onEvent1,13367302:doVisible,[])
link(onEvent2,3131699:doWork1,[(109,69)(109,97)(186,97)])
}
Add(Time,12298793,217,56)
{
Point(DateTime)
}
Add(HubEx,3131699,182,112)
{
link(onEvent,5015877:doConvert,[])
}
END_SDK
Add(MST_Clear,15792448,420,84)
{
ClearAll=0
MSTControl="mytbl"
}
Add(LineBreak,10263144,322,161)
{
link(Out,12639736:doEvent2,[(361,167)(361,132)])
Primary=[2381268,203,98]
}

карма: 15

0
Ответов: 133
Рейтинг: 0
#25: 2024-09-21 22:45:47 ЛС | профиль | цитата
Gunta, Спасибо большое, тоже хороший пример

--- Добавлено в 2024-09-21 23:29:59

А теперь задачка посерьёзнее ) Я хочу выделить строчку и при нажатии кнопки Изменить, должно открыться окошко, где я в отдельных полях могу изменить все данные. У модуля MT таблица строк есть внизу точка - Select, там указано, что содержит все выделенную строку с данными в виде MT элементов. А как бы вытащить их и разложить? Я понимаю, что это можно сделать с помощью разложения MT потока на элементы, но как именно? Мне только ID строки постоянно выдается.

Редактировалось 1 раз(а), последний 2024-09-21 23:29:59
карма: 1

0
Разработчик
Ответов: 26112
Рейтинг: 2124
#26: 2024-09-22 00:59:04 ЛС | профиль | цитата
Вот, тоже состряпал пример пока только для добавления записи, но с отслеживанием пустых полей

Схема


Add(MainForm,4842992,119,161)
{
Width=865
Height=405
Position=1
}
Add(Button,5667771,175,238)
{
Left=65
Top=35
Width=80
Caption="Открыть"
link(onClick,7640810:doEvent1,[])
}
Add(Edit,14560686,350,196)
{
Left=140
Top=5
Width=170
Text="eferere.db"
}
Add(Label,121854,119,119)
{
Left=5
Top=7
Width=126
Height=17
Caption="Название базы данных:"
}
Add(MTStrTbl,4626275,175,161)
{
Left=319
Width=530
Height=367
Align=3
Name="mtst"
}
Add(DS_SQLite,7707573,350,245)
{
Name="mdb"
WaitClose=0
link(onOpen,8256804:doEvent1,[])
link(FileName,14560686:Text,[])
}
Add(DSC_Exec,16718266,448,245)
{
SQL="CREATE TABLE IF NOT EXISTS[tab1](\r\n [id] INTEGER PRIMARY KEY AUTOINCREMENT NULL, \r\n [date] DATE, \r\n [familia] TEXT, \r\n [opisanie] TEXT, \r\n [work] TEXT, \r\n [summa] TEXT);"
DSManager="mdb"
}
Add(DSC_Query,12956405,448,287)
{
SQL="SELECT date AS Дата,familia AS Фамилия,opisanie AS Описание,work AS Работа,summa AS Сумма FROM "tab1";"
DSManager="mdb"
link(onQuery,5392188:doAddRow,[])
link(onColumns,5392188:doAddCols,[])
}
Add(MST_DB,5392188,504,287)
{
MSTControl="mtst"
}
Add(Hub,8256804,399,245)
{
link(onEvent1,16718266:doExec,[])
link(onEvent2,12956405:doQuery,[(431,258)(431,293)])
}
Add(Hub,7640810,231,238)
{
OutCount=3
link(onEvent1,5240480:doWork2,[])
link(onEvent2,7707573:doOpen,[])
link(onEvent3,10046301:doWork2,[(256,258)(256,349)])
}
Add(MST_Clear,14141324,294,196)
{
ClearAll=0
MSTControl="mtst"
}
Add(Button,2355534,175,294)
{
Left=150
Top=35
Width=80
Caption="Закрыть"
link(onClick,12642272:doEvent1,[])
}
Add(Hub,12642272,231,294)
{
OutCount=3
link(onEvent1,5240480:doWork3,[(284,300)])
link(onEvent2,7707573:doClose,[(291,307)(291,258)])
link(onEvent3,10046301:doWork1,[(284,314)(284,342)])
}
Add(HubEx,5240480,280,238)
{
Angle=3
link(onEvent,14141324:doClear,[(284,202)])
}
Add(ChildGroupBox,6602222,350,336)
{
}
BEGIN_SDK
Add(EditMulti,7158192,21,21)
{
WorkCount=1
Width=797
Height=550
link(doWork1,6340362:doEnabled,[(102,27)(102,125)])
}
Add(GroupBox,11911772,112,35)
{
Left=5
Top=65
Width=305
Height=295
Caption="Добавление записи"
}
Add(Button,6340362,112,119)
{
Left=100
Top=265
Width=110
Enabled=1
Caption="Добавить запись"
Point(doEnabled)
link(onClick,15668785:doCompare,[])
}
Add(MST_DB,75674,399,483)
{
MSTControl="parent.mtst"
}
Add(DSC_Query,1312896,336,483)
{
SQL="SELECT date AS Дата,familia AS Фамилия,opisanie AS Описание,work AS Работа,summa AS Сумма\r\nFROM tab1\r\nWHERE (id = (SELECT Max(id) FROM tab1))"
DSManager="parent.mdb"
link(onQuery,75674:doAddRow,[])
}
Add(Hub,1208040,126,427)
{
OutCount=4
link(onEvent1,8170282:doConvert,[(151,433)(151,391)])
link(onEvent2,12107249:doExec,[])
link(onEvent3,1312896:doQuery,[(326,447)(326,489)])
link(onEvent4,2274975:doText,[(151,454)(151,468)(109,468)(109,195)])
}
Add(DSC_Exec,12107249,336,434)
{
DSManager="parent.mdb"
link(SQL,11114498:FString,[])
}
Add(DatePicker,2099405,175,329)
{
Left=90
Top=25
Width=200
Height=21
Point(DateInt)
}
Add(Label,8418362,112,77)
{
Left=50
Top=27
Width=33
Height=17
Caption="Дата:"
AutoSize=1
AutosizeAtStart=1
Alignment=1
}
Add(Label,16295616,259,70)
{
Left=25
Top=57
Width=56
Height=17
Caption="Фамилия:"
AutoSize=1
AutosizeAtStart=1
Alignment=1
}
Add(Edit,7844435,203,63)
{
Left=90
Top=55
Width=200
Text=""
}
Add(Label,460532,364,140)
{
Left=25
Top=87
Width=56
Height=17
Caption="Описание:"
AutoSize=1
AutosizeAtStart=1
Alignment=1
}
Add(Edit,2442220,308,133)
{
Left=90
Top=85
Width=200
Text=""
}
Add(Label,3518953,469,210)
{
Left=25
Top=117
Width=57
Height=17
Caption="Работа:"
AutoSize=1
AutosizeAtStart=1
Alignment=1
}
Add(Edit,9214349,413,203)
{
Left=90
Top=115
Width=200
Text=""
}
Add(Label,14137413,567,280)
{
Left=25
Top=147
Width=58
Height=17
Caption="Сумма:"
AutoSize=1
AutosizeAtStart=1
Alignment=1
}
Add(Edit,941169,518,273)
{
Left=90
Top=145
Width=200
Text=""
}
Add(If_else,15668785,203,119)
{
Op2=String()
link(onTrue,9119366:doData,[])
link(onFalse,384872:doCompare,[(249,132)(249,195)])
link(Op1,10575844:Var2,[])
}
Add(If_else,384872,308,189)
{
Op2=String()
link(onTrue,14933663:doData,[])
link(onFalse,4752950:doCompare,[(347,202)(347,265)])
link(Op1,14770250:Var2,[])
}
Add(If_else,4752950,413,259)
{
Op2=String()
link(onTrue,12172580:doData,[])
link(onFalse,13297301:doCompare,[(459,272)(459,335)])
link(Op1,3198494:Var2,[])
}
Add(If_else,13297301,518,329)
{
Op2=String()
link(onTrue,641101:doData,[])
link(onFalse,1208040:doEvent1,[(557,342)(557,524)(116,524)(116,433)])
link(Op1,4480612:Var2,[])
}
Add(Message,2347219,756,329)
{
}
Add(DoData,641101,567,329)
{
link(onEventData,12998804:doWork2,[])
link(Data,14137413:Caption,[])
}
Add(DoData,12172580,469,259)
{
link(onEventData,15432838:doWork2,[])
link(Data,3518953:Caption,[])
}
Add(DoData,14933663,364,189)
{
link(onEventData,12767042:doWork2,[])
link(Data,460532:Caption,[])
}
Add(DoData,9119366,259,119)
{
link(onEventData,12767042:doWork1,[(627,125)])
link(Data,16295616:Caption,[])
}
Add(FormatStr,8451463,700,329)
{
DataCount=1
Mask="Не введено поле "%1""
link(onFString,2347219:doMessage,[])
}
Add(Replace,6836078,651,329)
{
SubStr=":"
link(onReplace,8451463:doString,[])
}
Add(HubEx,12998804,623,329)
{
link(onEvent,6836078:doReplace,[])
}
Add(HubEx,15432838,623,259)
{
Angle=1
link(onEvent,12998804:doWork1,[])
}
Add(HubEx,12767042,623,189)
{
Angle=1
link(onEvent,15432838:doWork1,[])
}
Add(FormatStr,11114498,336,385)
{
DataCount=5
Mask="INSERT INTO tab1 VALUES(Null,'%1','%2','%3','%4','%5');"
Point(FString)
link(Str2,10575844:Var3,[(349,376)(244,376)(244,103)])
link(Str3,14770250:Var3,[(356,173)])
link(Str4,3198494:Var1,[(363,243)])
link(Str5,4480612:Var1,[(370,313)])
}
Add(DateConvertor,8170282,175,385)
{
Mode=9
Format="dd.MM.yyyy"
Point(Data)
link(onResult,11114498:doString,[])
link(Data,2099405:DateInt,[])
}
Add(GetDataEx,10575844,203,98)
{
link(Data,7844435:Text,[])
}
Add(GetDataEx,14770250,308,168)
{
link(Data,2442220:Text,[])
}
Add(GetDataEx,3198494,413,238)
{
link(Data,9214349:Text,[])
}
Add(GetDataEx,4480612,518,308)
{
link(Data,941169:Text,[])
}
Add(Hub,7737197,168,189)
{
OutCount=4
link(onEvent1,7844435:doText,[(193,195)(193,69)])
link(onEvent2,2442220:doText,[(298,202)(298,139)])
link(onEvent3,9214349:doText,[(298,209)(298,230)(403,230)(403,209)])
link(onEvent4,941169:doText,[(291,216)(291,300)(508,300)(508,279)])
}
Add(VisualStrings,2274975,119,189)
{
Point(doText)
Point(onText)
link(onText,7737197:doEvent1,[])
}
END_SDK
Add(ChanelToIndex,10046301,294,336)
{
link(onIndex,6602222:doWork1,[])
}

карма: 22

0
Ответов: 771
Рейтинг: 168
#27: 2024-09-22 05:47:22 ЛС | профиль | цитата
Serascer писал(а):
хочу выделить строчку и при нажатии кнопки Изменить, должно открыться окошко, где я в отдельных полях могу изменить все данные. У модуля MT таблица строк есть внизу точка - Select, там указано, что содержит все выделенную строку с данными в виде MT элементов. А как бы вытащить их и разложить? Я понимаю, что это можно сделать с помощью разложения MT потока на элементы, но как именно? Мне только ID строки постоянно выдается.

Правая кнопка мыши на строчке, которую хочешь изменить

Add(MainForm,1130157,140,112)
{
Width=718
Height=406
Point(onClose)
link(onCreate,7707573:doOpen,[])
link(onClose,7707573:doClose,[])
}
Add(MTStrTbl,4626275,140,196)
{
Left=160
Top=10
Width=530
Height=200
Align=5
Name="mytbl"
Columns=#4:Дата|7:Фамилия|8:Описание|6:Работа|5:Сумма|
Point(onMouseDown)
link(onMouseDown,7623674:doEvent,[])
}
Add(DS_SQLite,7707573,196,126)
{
Name="mdb"
FileName="mydarabase.db"
WaitClose=0
link(onOpen,16718266:doExec,[])
}
Add(DSC_Exec,16718266,252,126)
{
SQL="CREATE TABLE IF NOT EXISTS[tab1](\r\n [id] INTEGER PRIMARY KEY AUTOINCREMENT, \r\n [date] DATE, \r\n [familia] TEXT, \r\n [opisanie] TEXT, \r\n [work] TEXT, \r\n [summa] TEXT);\r\n"
DSManager="mdb"
link(onExec,12639736:doEvent1,[])
}
Add(DSC_Query,12956405,357,133)
{
SQL="SELECT \r\n date,\r\n familia,\r\n opisanie,\r\n work,\r\n summa,\r\n id \r\nFROM tab1;\r\n"
DSManager="mdb"
link(onQuery,5392188:doAddRow,[])
}
Add(MST_DB,5392188,413,133)
{
MSTControl="mytbl"
}
Add(Hub,12639736,315,126)
{
InCount=3
OutCount=3
link(onEvent1,15792448:doClear,[(340,132)(340,97)])
link(onEvent2,12956405:doQuery,[])
link(onEvent3,14072073:doColAction,[(347,146)(347,181)])
}
Add(MST_ColAction,14072073,357,175)
{
Action=9
Index=-2
MSTControl="mytbl"
}
Add(PopupMenu,15198874,294,231)
{
Menu=#15:Добавить запись|8:Изменить|7:Удалить|0:|
link(onClick,1907426:doEvent,[])
}
Add(DeferredEvent,9633104,245,231)
{
link(onDeferredEvent,15198874:doPopupHere,[])
}
Add(IndexToChanel,1907426,350,231)
{
Count=3
link(onEvent1,3731829:doWork1,[])
link(onEvent2,1289256:doWork1,[(396,244)(396,314)])
link(onEvent3,2780906:doMessage,[(389,251)(389,377)])
}
Add(IndexToChanel,7623674,196,224)
{
link(onEvent2,9633104:doDeferredEvent,[])
}
Add(ChildForm,3731829,406,231)
{
link(onEvent1,6524517:doWork,[])
}
BEGIN_SDK
Add(EditMulti,1491838,21,14)
{
EventCount=1
WorkCount=1
Width=615
Height=347
link(doWork1,475173:doEvent1,[(67,20)(67,62)])
}
Add(MainForm,13367302,119,28)
{
Left=35
Top=105
Width=504
Height=218
Visible=1
Caption="Добавление новой записи"
Point(doVisible)
}
Add(Button,1416819,168,189)
{
Left=225
Top=125
Width=110
Height=30
Caption="Создать запись"
link(onClick,15597162:doString,[])
}
Add(Edit,13718670,287,112)
{
Left=10
Top=80
Width=120
Text=""
}
Add(Label,10493128,364,49)
{
Left=10
Top=5
Width=30
Height=17
Caption="Дата"
}
Add(DSC_Exec,12580462,301,189)
{
DSManager="parent.mdb"
link(onExec,2150116:doEvent1,[])
}
Add(DatePicker,11740223,112,112)
{
Left=5
Top=30
Width=115
Height=21
link(onChange,3131699:doWork2,[])
}
Add(Label,8723371,368,46)
{
Left=10
Top=60
Width=53
Height=17
Caption="Фамилия"
}
Add(Edit,1991437,342,110)
{
Left=160
Top=30
Width=310
Text=""
}
Add(Label,10818380,290,37)
{
Left=160
Top=10
Width=54
Height=17
Caption="Описание"
}
Add(Label,7006651,361,42)
{
Left=170
Top=60
Width=40
Height=17
Caption="Работа"
}
Add(Edit,6769963,385,108)
{
Left=160
Top=80
Width=310
Text=""
}
Add(Edit,10926788,431,113)
{
Left=10
Top=130
Width=120
Text=""
DataType=1
}
Add(Label,14976561,330,40)
{
Left=10
Top=110
Width=59
Height=17
Caption="Стоимость"
}
Add(DateConvertor,5015877,224,112)
{
Mode=9
Format="yyyy-MM-dd"
Point(Result)
Point(Data)
link(Data,12298793:DateTime,[])
}
Add(FormatStr,15597162,224,189)
{
DataCount=5
Mask="INSERT\r\nINTO\r\n [tab1](\r\n [date],\r\n [familia],\r\n [opisanie],\r\n [work],\r\n [summa])\r\nVALUES(\r\n '%1',\r\n '%2',\r\n '%3',\r\n '%4',\r\n %5);\r\n"
link(onFString,12580462:doExec,[])
link(Str1,5015877:Result,[])
link(Str2,13718670:Text,[(237,152)(293,152)])
link(Str3,1991437:Text,[(244,159)(348,159)])
link(Str4,6769963:Text,[(251,166)(391,166)])
link(Str5,10926788:Text,[(258,173)(437,173)])
}
Add(Hub,2150116,378,189)
{
link(onEvent1,1491838:onEvent1,[(466,195)(466,20)])
link(onEvent2,14722169:doDeferredEvent,[(410,202)(410,230)])
}
Add(DoData,7108916,476,224)
{
Data=Integer(0)
link(onEventData,475173:doEvent2,[(521,230)(521,274)(67,274)(67,69)])
}
Add(DeferredEvent,14722169,420,224)
{
link(onDeferredEvent,7108916:doData,[])
}
Add(Hub,475173,77,56)
{
InCount=2
link(onEvent1,13367302:doVisible,[])
link(onEvent2,3131699:doWork1,[(109,69)(109,97)(186,97)])
}
Add(Time,12298793,217,56)
{
Point(DateTime)
}
Add(HubEx,3131699,182,112)
{
link(onEvent,5015877:doConvert,[])
}
END_SDK
Add(MST_Clear,15792448,357,91)
{
MSTControl="mytbl"
}
Add(ChildForm,1289256,406,308)
{
link(onEvent1,9679634:doWork,[])
link(Data1,14576830:Var2,[])
}
BEGIN_SDK
Add(EditMulti,15505584,21,14)
{
EventCount=1
WorkCount=1
DataCount=1
Width=811
Height=459
VOffset=49
link(doWork1,5362846:doEvent1,[])
}
Add(MainForm,8915849,112,77)
{
Left=35
Top=105
Width=504
Height=218
Visible=1
Caption="Изменение записи"
Point(doVisible)
}
Add(Button,5898922,294,224)
{
Left=225
Top=125
Width=110
Height=30
Caption="Изменить запись"
link(onClick,2155722:doString,[])
}
Add(Edit,13959878,357,70)
{
Left=10
Top=80
Width=120
Text=""
}
Add(Label,11383187,735,182)
{
Left=10
Top=5
Width=30
Height=17
Caption="Дата"
}
Add(DSC_Exec,1872617,427,224)
{
DSManager="parent.mdb"
link(onExec,16293946:doEvent1,[])
}
Add(DatePicker,7315003,280,28)
{
Left=5
Top=30
Width=115
Height=21
link(onChange,15533825:doWork2,[])
}
Add(Label,14589450,735,175)
{
Left=10
Top=60
Width=53
Height=17
Caption="Фамилия"
}
Add(Edit,7295256,399,77)
{
Left=160
Top=30
Width=310
Text=""
}
Add(Label,3236980,658,168)
{
Left=160
Top=10
Width=54
Height=17
Caption="Описание"
}
Add(Label,10418596,728,175)
{
Left=170
Top=60
Width=40
Height=17
Caption="Работа"
}
Add(Edit,1472904,441,84)
{
Left=160
Top=80
Width=310
Text=""
}
Add(Edit,16758460,483,84)
{
Left=10
Top=130
Width=120
Text=""
DataType=1
}
Add(Label,6925719,700,168)
{
Left=10
Top=110
Width=59
Height=17
Caption="Стоимость"
}
Add(DateConvertor,14919682,336,28)
{
Mode=9
Format="yyyy-MM-dd"
Point(Result)
Point(Data)
}
Add(FormatStr,2155722,350,224)
{
DataCount=6
Mask="UPDATE\r\n [tab1]\r\nSET\r\n [date] = '%1',\r\n [familia] = '%2',\r\n [opisanie] = '%3',\r\n [work] = '%4',\r\n [summa] = '%5'\r\nWHERE\r\n [id] = %6;\r\n"
link(onFString,1872617:doExec,[])
link(Str1,14919682:Result,[(356,224)(356,208)(342,208)])
link(Str2,13959878:Text,[])
link(Str3,7295256:Text,[(370,117)(405,117)])
link(Str4,1472904:Text,[(377,124)(447,124)])
link(Str5,16758460:Text,[(384,131)(489,131)])
link(Str6,2693451:RemaindData,[(391,215)(167,215)])
}
Add(Hub,16293946,476,224)
{
link(onEvent1,15505584:onEvent1,[(592,230)(592,69)])
link(onEvent2,1216687:doDeferredEvent,[(522,237)(522,265)])
}
Add(DoData,8065789,588,259)
{
Data=Integer(0)
link(onEventData,5362846:doEvent2,[(704,265)(704,321)(60,321)(60,76)])
}
Add(DeferredEvent,1216687,532,259)
{
link(onDeferredEvent,8065789:doData,[])
}
Add(Hub,5362846,70,63)
{
InCount=2
link(onEvent1,2693451:doSeparateMT,[])
link(onEvent2,8915849:doVisible,[(102,76)(102,111)])
}
Add(MT_MultiData,2693451,161,63)
{
Count=5
Point(Data)
Point(RemaindData)
link(onData1,2655649:doConvert,[(200,69)(200,34)])
link(onData2,13959878:doText,[])
link(onData3,7295256:doText,[])
link(onData4,1472904:doText,[])
link(onData5,16758460:doText2,[])
link(Data,15505584:Data1,[(167,26)(27,26)])
}
Add(DateConvertor,2655649,217,28)
{
Mode=8
Format="yyyy-MM-dd"
Point(Result)
Point(Data)
link(onResult,2068209:doEvent1,[])
}
Add(Hub,2068209,259,28)
{
link(onEvent1,7315003:doSetDate,[])
link(onEvent2,15533825:doWork3,[(326,41)])
}
Add(HubEx,15533825,322,28)
{
link(onEvent,14919682:doConvert,[])
}
END_SDK
Add(Message,2780906,406,371)
{
Message="Вы уверены что хотите удалить запись"
Caption="ВНимание"
Type=2
Icon=1
DefButton=1
Point(onYES)
link(onYES,7347893:doSplit,[])
}
Add(DSC_Exec,2241594,560,378)
{
DSManager="mdb"
link(onExec,16153839:doWork,[])
}
Add(FormatStr,8646130,504,378)
{
Mask="DELETE\r\nFROM\r\n [tab1]\r\nWHERE\r\n [id] = %1;\r\n"
link(onFString,2241594:doExec,[])
}
Add(LineBreakEx,6524517,455,231)
{
}
Add(LineBreakEx,1697710,266,168)
{
Type=1
link(OnEvent,12639736:doEvent2,[(291,174)(291,139)])
}
Add(LineBreakEx,16153839,602,378)
{
}
Add(MT_Part,7347893,455,378)
{
After=4
Point(Data)
link(onSplit,8646130:doString,[])
link(Data,14576830:Var3,[(461,290)])
}
Add(LineBreakEx,9679634,469,308)
{
}
Add(GetDataEx,14576830,406,285)
{
Angle=3
link(Data,4626275:Select,[(146,290)])
}


Редактировалось 1 раз(а), последний 2024-09-22 05:51:17
карма: 15

0
Ответов: 133
Рейтинг: 0
#28: 2024-09-22 06:53:25 ЛС | профиль | цитата
nesco, Gunta, большое вам спасибо, буду теперь всё в кучу собирать )
карма: 1

0
Ответов: 133
Рейтинг: 0
#29: 2024-09-22 08:09:05 ЛС | профиль | цитата
Gunta, подскажите пожалуйста, как мне указать вручную ширину столбцов?

Редактировалось 1 раз(а), последний 2024-09-22 09:10:06
карма: 1

0
Ответов: 2236
Рейтинг: 676
#30: 2024-09-22 09:19:22 ЛС | профиль | цитата
Serascer, на элементе таблицы (MTStrTbl) при выборе свойства Columns, куда записываются данные столбцов, можно прочитать описание. Вторым после названия идёт ширина:
Columns писал(а):
Столбец1=200
Столбец2=300
Столбец3=100


Редактировалось 1 раз(а), последний 2024-09-22 09:19:44
карма: 11

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