Вверх ↑
Этот топик читают: Гость
Ответов: 92
Рейтинг: 0
#1: 2018-01-23 03:13:59 ЛС | профиль | цитата
Привет, есть несколько вопросов по MTStrTbl и SQLite.

1. Нюанс с удалением и нумерацией

Имеем строки с уникальным индикатором id
1
2
3

Удаляем строку 2 и получаем:
1
3

Тоесть выводить в таблицу id в качестве нумерации не имеет смысла, для этого нужно сделать отдельную нумерацию генерируемую при добавлении строк в MTStrTbl. Вопрос как? И второе, для пользователя id так же не несет смысловой нагрузки, но необходим для манипуляций со строкой(редактирование/удаление), как его скрыть? Или я чего-то недопонимаю...

2. Как в MTStrTbl разрешить пользователю менять размер шрифта в таблице, например ползунком?

Редактировалось 14 раз(а), последний 2018-01-24 13:56:30
карма: 0

0
vip
#1.1контекстная реклама от партнеров
Ответов: 92
Рейтинг: 0
#2: 2018-01-24 13:56:57 ЛС | профиль | цитата
Живые есть?)))
карма: 0

0
Ответов: 4621
Рейтинг: 746
#3: 2018-01-24 14:02:14 ЛС | профиль | цитата
Есть живие, есть. Мне кажется для работы с табличными данными нужен набор компонентов "Виртуальная таблица" (или "Датасет"). Все манипуляции с данными выполняются над такой невидимой таблицей (добавление, удаление, изменение строк, колонок, сохранение/загрузка из файла в различных форматах). А для отображения данных она цепляется к визуальной таблице с настройкой колонок, которые нужно отображать и в каком порядке, цвета, шрифты, редактирование и т.п.

Редактировалось 2 раз(а), последний 2018-01-24 14:03:19
карма: 26

0
Ответов: 92
Рейтинг: 0
#4: 2018-01-24 14:19:07 ЛС | профиль | цитата
Netspirit писал(а):
Есть живие, есть. Мне кажется для работы с табличными данными нужен набор компонентов "Виртуальная таблица" (или "Датасет"). Все манипуляции с данными выполняются над такой невидимой таблицей (добавление, удаление, изменение строк, колонок, сохранение/загрузка из файла в различных форматах). А для отображения данных она цепляется к визуальной таблице с настройкой колонок, которые нужно отображать и в каком порядке, цвета, шрифты, редактирование и т.п.


Возможно, но как говорится чукча скромный пользователь. Работаю с тем что есть.

Думал вывести из мт, подрубить счетчик, соединить с данными и отправить сново в поток а из него в таблицу. Но как то гм, не очень это дело выглядит. Да и вопрос куда девать столбец Id тоже остается.
карма: 0

0
Ответов: 4621
Рейтинг: 746
#5: 2018-01-24 14:24:04 ЛС | профиль | цитата
theSever писал(а):
Да и вопрос куда девать столбец Id тоже остается.
Держи отдельный StrList для ID. Добавил строку в таблицу - добавил ID в StrList, удалил - аналогично. При выборе строки из таблицы по её индексу выбираешь ID из StrList. Впрочем, если бы у таблицы была бы возможность скрывать некоторые столбцы - было бы неплохо.

Редактировалось 1 раз(а), последний 2018-01-24 14:30:49
карма: 26

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#6: 2018-01-24 14:34:39 ЛС | профиль | цитата
Netspirit писал(а):
Впрочем, если бы у таблицы была бы возможность скрывать некоторые столбцы - было бы неплохо.

У MTStrTbl предусмотрен скрытый хвост неограниченной длины. Все, что дальше по столбцам и есть хвост, где два первых элемента зарезервированы под цвет и индекс иконки, а остальные можно использовать как душе угодно.
карма: 22

0
Ответов: 92
Рейтинг: 0
#7: 2018-01-24 14:44:49 ЛС | профиль | цитата
Netspirit писал(а):
theSever писал(а):
Да и вопрос куда девать столбец Id тоже остается.
Держи отдельный StrList для ID. Добавил строку в таблицу - добавил ID в StrList, удалил - аналогично. При выборе строки из таблицы по её индексу выбираешь ID из StrList. Впрочем, если бы у таблицы была бы возможность скрывать некоторые столбцы - было бы неплохо.

Было бы еще неплохо если бы можно было включить автоматическую нумерацию в таблице.

--- Добавлено в 2018-01-24 14:58:32

nesco писал(а):
Netspirit писал(а):
Впрочем, если бы у таблицы была бы возможность скрывать некоторые столбцы - было бы неплохо.

У MTStrTbl предусмотрен скрытый хвост неограниченной длины. Все, что дальше по столбцам и есть хвост, где два первых элемента зарезервированы под цвет и индекс иконки, а остальные можно использовать как душе угодно.

Тупой вопрос, как возможно обратится к хвосту?

Редактировалось 2 раз(а), последний 2018-01-24 15:01:32
карма: 0

0
Разработчик
Ответов: 26061
Рейтинг: 2120
#8: 2018-01-24 15:24:32 ЛС | профиль | цитата
theSever писал(а):
Тупой вопрос, как возможно обратится к хвосту?

Через MT-массив строк. Но изначально хвост нужно определить, те при заполнении таблицы в хвост необходимо записать какие-то изначальные данные, чтобы таблица под этот хвост выделила память.

--- Добавлено в 2018-01-24 15:47:23

Вот пример выдергивания хвоста в отдельную таблицу

Схема


Add(MainForm,4617739,210,196)
{
Width=692
Height=570
link(onCreate,9130156:doEvent1,[])
}
Add(MTStrTbl,10457550,490,196)
{
Left=55
Top=30
Width=375
Height=215
Name="tbl"
Columns=#1:1|1:2|1:3|1:4|
}
Add(MST_RowAction,9860535,427,196)
{
MSTControl="tbl"
}
Add(StrList,9677425,301,133)
{
Strings=#13:1;2;3;4;5;6;7|13:1;2;3;4;5;6;7|13:1;2;3;4;5;6;7|
}
Add(ArrayEnum,7385609,315,210)
{
link(onItem,15902660:doMTString,[])
link(Array,9677425:Array,[])
}
Add(MT_String,15902660,378,196)
{
link(onResult,9860535:doRowAction,[])
}
Add(Hub,9130156,259,210)
{
link(onEvent1,7385609:doEnum,[])
link(onEvent2,10358474:doEnum,[(305,223)(305,328)])
}
Add(MTStrTbl,3366920,490,259)
{
Left=55
Top=290
Width=375
Height=215
Name="tbl_2"
Columns=#1:1|1:2|1:3|1:4|
}
Add(MST_ArrayRows,4468137,378,259)
{
MSTControl="tbl"
}
Add(MT_MTArrayEnum,10358474,378,322)
{
link(onItem,6587830:doSplit,[])
link(Array,4468137:Strings,[])
}
Add(MT_Part,6587830,434,322)
{
After=3
link(onSplit,13333161:doRowAction,[])
}
Add(MST_RowAction,13333161,490,322)
{
MSTControl="tbl_2"
}


Редактировалось 1 раз(а), последний 2018-01-24 15:47:23
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#9: 2018-01-24 15:53:50 ЛС | профиль | цитата
1.
theSever писал(а):
для пользователя id так же не несет смысловой нагрузки, но необходим для манипуляций со строкой
theSever писал(а):
Да и вопрос куда девать столбец Id тоже остается.
Просто скрыть его.
Если наименование колонок определены в MTStrTbl, то просто id=0,
если наименование колонок загружается из запроса, то
SELECT id AS "№=0", name AS "Наименование=200", ....и т.д.
2. Пока не дойдет, что при работе с БД, MTStrTbl просто окно для наблюдения - ничего нормального не придумаешь.
3.
theSever писал(а):
нужно сделать отдельную нумерацию генерируемую при добавлении строк в MTStrTbl.
Делается элементарно.

Редактировалось 5 раз(а), последний 2018-01-24 18:55:43
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 92
Рейтинг: 0
#10: 2018-01-24 19:16:27 ЛС | профиль | цитата
Всем большое спасибо.

Нумерацию реализовал способом найденным в одной из тем:


Add(MST_DB,15833769,1372,210)
{
MSTControl="mtst"
}
Add(MT_String,14757672,1273,210)
{
link(onResult,13887370:doMTString,[(1314,216)(1314,230)])
}
Add(MT_String,13887370,1323,210)
{
link(onResult,15833769:doAddRow,[])
}
Add(Hub,11804119,1176,203)
{
link(onEvent1,3333460:doOperation,[(1201,209)(1201,167)])
link(onEvent2,11709330:doAdd,[])
}
Add(MT_AddData,11709330,1225,210)
{
Count=1
InputMT=1
link(onAdd,14757672:doStr,[])
link(Data1,3333460:Result,[])
}
Add(Math,3333460,1225,161)
{
Op2=1
ResultType=0
}


С хвостами возится не стал, по совету Tad просто задал размер 0.
карма: 0

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