Вверх ↑
Этот топик читают: Гость
Ответов: 16884
Рейтинг: 1239
#16: 2016-08-29 08:38:57 ЛС | профиль | цитата
shuster писал(а):
никак не могу найти где на новом форму заливаются файлы
Главное меню -> Пользователи -> Файлы
Всё. Буду в 15
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26073
Рейтинг: 2122
#17: 2016-08-29 09:16:07 ЛС | профиль | цитата
Tad писал(а):
компонент StrCase. Я бы добавил вначале Trim(Str); Ну очень многие начинают печатать с Пробела (иногда с нескольких)

КМК. Строку трогать вообще нельзя. Надо бы сделать это так, как в методе ProperCase, только с выходом из цикла по первому вхождению.
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#18: 2016-08-29 14:13:18 ЛС | профиль | цитата
Shuster писал(а):
При нажатии на Edit открывалась бы форма аналогичная Add
file2+Edit.rar
Вообще-то это всё можно организовать и в одной форме, что я тебе и показал раньше.
При таком подходе (как ты там в file2 задумал) насношаешься ты по самое нехочу.
Начинать нужно с проектирования БД.


nesco, это понятно. Но некоторае умудряются и заканчивать ввод парой-тройкой пробелов.
Давно применяю IC.

Редактировалось 5 раз(а), последний 2016-08-29 14:25:17
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
файлы: 1file2+Edit.rar [11KB] [376]
Разработчик
Ответов: 26073
Рейтинг: 2122
#19: 2016-08-29 14:28:10 ЛС | профиль | цитата
Tad писал(а):
Но некоторае умудряются и заканчивать ввод парой-тройкой пробелов

Это ихние проблемы, а не компонента. Для этой цели есть отдельный компонент Trim и его свойство NormalText, пихать функцию обрезки в элемент Case не имеет никакого смысла
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#20: 2016-08-29 14:43:53 ЛС | профиль | цитата
nesco писал(а):
Это ихние проблемы
Это проблемы пишущего программы для них.
"Вот, ты деньги взял, а я не могу найти Петрова, хотя точно помню, что вводила его сегодня утром".
Оказалось ввела не "Петров", а "__Петров" (два пробела спереди).
Вывел все фамилии в Memo со шрифтом Consoles
А там "картина маслом":

Иванов
Петров
Сидоров
вАСИЛЬЕВ

Редактировалось 1 раз(а), последний 2016-08-29 14:45:23
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Разработчик
Ответов: 26073
Рейтинг: 2122
#21: 2016-08-29 14:45:30 ЛС | профиль | цитата
Добавил в StrCase пропуск пробелов для метода FirstChar.

Tad писал(а):
Оказалось ввела не "Петров", а "__Петров" (два пробела спереди).

Еще раз повторю
nesco писал(а):
Для этой цели есть отдельный компонент Trim и его свойство NormalText

или TrimStrXXX

StrCase предназначен только для управления регистром и ни для чего больше. Возможно, мне не надо будет обрезать строку, а он будет это делать.

Редактировалось 1 раз(а), последний 2016-08-29 14:50:50
карма: 22

0
Ответов: 16884
Рейтинг: 1239
#22: 2016-08-29 15:23:58 ЛС | профиль | цитата
nesco писал(а):
Еще раз повторю
Это понятно.
Но,например, перед записью в БД для обслуживания одной Edit при вводе фамилии нужно:
1.Trim()
2.проверить на "" (If-Else)
3.если не "" то
а) Проверить на символы букв и "-" (может быть Салтыков-Щедрин)
б) привести в божеский вид (FirstChar), который из Салтыков-Щедрин сделает Салтыков-щедрин
в) Поднимаем "Щ"
и установить флаг разрешения записи (Memory)
4.если "", то сбросить флаг разрешения записи и разбудить оператора длинным гудком и предупреждающей красной табличкой с матюгами.

А если нужно оприходовать Рустам Мамед Ибрагим оглы Ибрагимбе́ков ? Вообще страшный сон.
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 72
Рейтинг: 0
#23: 2016-08-30 04:55:05 ЛС | профиль | цитата
Спасибо, Tad за кнопку Edit. Подскажи еще ответ на вопрос - как сделать чтобы удаление происходило, например, по телефону, дому или имени? замена DELETE FROM note where LastName='%1' на например DELETE FROM note where Name='%2' ничего не дает.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#24: 2016-08-30 06:12:09 ЛС | профиль | цитата
shuster,
DELETE FROM - самая "коварная команда". Удаляет в SQLite безвозвратно.
Например : DELETE FROM note where LastName='%1';
удалит ВСЕХ Ивановых, а не только того, которого ты выбрал в StringTable.
DELETE FROM note where Name='%2' удалит ВСЕХ Васей, невзирая на их LastName.

Чтобы избежать этого, можно удалять по № строки.
Для этого заполнять StringTable в твоём случае нужно запросом
SELECT rowid, LastName, Name FROM note ORDER BY LastName,Name;
(rowid - это номер строки в БД)
DELETE FROM note where rowid=%1; удалит только того, кого ты выделил в StringTable.
А вообще-то (нормальные люди) применяют колонку id INTEGER PRIMARY KEY

Чего ты упёрся в этот notebook ?

Редактировалось 1 раз(а), последний 2016-08-30 06:16:52
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 72
Рейтинг: 0
#25: 2016-08-30 07:40:35 ЛС | профиль | цитата
Чтобы избежать этого, можно удалять по № строки

Да, только я не совсем понимал как это должно быть прописано. Теперь понятно.
Чего ты упёрся в этот notebook ?

Да потому, что этот пример ближе всего к тому что я хочу сделать. Я же скидывал тебе файл-схему LDv1.0.rar (внешнее представление программы), теперь я пытаюсь заставить ее работать.
Уровень моего понимания хиасма достаточно низок, поэтому работаю с тем, что воспринимается моим мозгом, на углубленное изучение уже не остается времени. Программа нужна будет достаточно скоро. Максимум я сейчас могу сделать - это огромный клубок схем, с кусками кода из других программ форумчан и демок самого хиасма.
Я прочитываю топик "sqlite - с чем его едят" почти каждый день, но пока не сильно приблизился к пониманию нормального проектирования БД. С операторами я более менее разобрался, но вот сами схемы с их применением вызывают затруднения.
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#26: 2016-08-30 08:50:05 ЛС | профиль | цитата
shuster писал(а):
Да потому, что этот пример ближе всего к тому что я хочу сделать.
Все программы, работающие с БД, ничем не отличаются друг от друга.
Формы ввода и редактирования данных одних программ от других различаются только внешним видом.
У одних перед Edit написано "Фамилия", у других "Товар" у третьих ещё что-то, но алгоритм обработки данных один и тот же.
Всё. Поехал на работу

Редактировалось 1 раз(а), последний 2016-08-30 08:51:55
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 72
Рейтинг: 0
#27: 2016-08-30 09:19:08 ЛС | профиль | цитата
Все программы, работающие с БД, ничем не отличаются друг от друга

Да не отличаются внешне, но когда открываешь схему будучи новичком - глаза разбегаются

--- Добавлено в 2016-08-30 10:39:28

Пропала функция Edit Перетряхнул всю схему, но при редактировании поля пустые. Удалил базу, сделал заново. Не работает. - http://forum.hiasm.com/getfile/37745

еще вопрос по другой схеме - не работает кнопка Удалить http://forum.hiasm.com/getfile/37743

Редактировалось 3 раз(а), последний 2016-08-30 11:40:27
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#28: 2016-08-30 16:12:52 ЛС | профиль | цитата
shuster писал(а):
Пропала функция Edit
Правильно пропала.
shuster писал(а):
по другой схеме - не работает кнопка Удалить

Да не прыгай ты между схемами.

Давай сначала:
CREATE TABLE IF NOT EXISTS note( -- Если нет таблицы note, то создать её
[Id] INTEGER PRIMARY KEY, -- идентификатор записи я добавил. О его пользе мы говорили.
[fam] TEXT, -- Фамилия
[ima] TEXT, -- Имя
[otc] TEXT, -- Отчество
[nld] TEXT, -- № личного дела
[gry] TEXT, -- Группа
[tre] TEXT, -- Тренер
[sta] TEXT); -- Статус
Хотя, если имена колонок поместить в квадратные скобки или в кавычки, то можно давать колонкам и русские имена:
CREATE TABLE IF NOT EXISTS note( -- Если нет таблицы note, то создать её
[Id] INTEGER PRIMARY KEY, -- идентификатор записи я добавил. О его пользе мы говорили.
[Фамилия] TEXT, -- Фамилия
[Имя] TEXT, -- Имя
[Отчество] TEXT, -- Отчество
[Личное дело №] TEXT, -- № личного дела
[Группа] TEXT, -- Группа
[Тренер] TEXT, -- Тренер
[Статус] TEXT); -- Статус
Первые четыре - вопросов нет
Личное дело № - в номере только цифры или могут быть и другие символы ?
Группа - это что ? номер или название. Если есть названия, то нужен список.
Тренер - величина постоянная или может меняться ? А если тренер бросил, уехал или, не дай бог, помер ?
Статус - это что ? Есть какой-то список статусов ? Если "да" то список в студию.

Редактировалось 7 раз(а), последний 2016-08-30 16:54:47
карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Ответов: 72
Рейтинг: 0
#29: 2016-08-30 16:45:42 ЛС | профиль | цитата
[Id] INTEGER PRIMARY KEY, -- идентификатор записи я добавил. О его пользе мы говорили

Да я про него почитал, делает значения уникальными. Забыл добавить в схему перед тем как отправил.
Личное дело № - будут цифры
Группа - Тренировочная группа1 (ТГ1), Тренировочная группа2 (ТГ2), Спортивное совершенствование (СС), ВСМ и т.д.
Тренер - в школе несколько тренеров, тут я планирую заменить строку на список с возможностью добавлять новых.
Статус - это то кем будут являться ученики - обучающиеся, спортсмены.

Редактировалось 1 раз(а), последний 2016-08-30 16:47:15
карма: 0

0
Ответов: 16884
Рейтинг: 1239
#30: 2016-08-30 16:51:41 ЛС | профиль | цитата
Tad писал(а):
Есть какой-то список статусов ?

карма: 25
Немного терпения! Дежурный экстрасенс скоро свяжется с Вами!
0
Сообщение
...
Прикрепленные файлы
(файлы не залиты)