|
|
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
Приветствую. Интересует вот какой вопрос: Кто как работает с автомобильными госномерами? Я почесал в затылке и сделал следующее: в базе госномер хранится в виде: "(А,В,Е,К,М,Н,О,Р,С,Т,У,Х){1-6}(0-9){1-6}" Надеюсь понятно, если нет, то для примера: 66 К 123 КК хранится как 66ККК123 то есть сначала идёт номер региона, потом все буквы в номере, а в конце все цифры. Но именно в том порядке, в каком их ввел оператор. А в текстбоксе и в гриде всё это дело отображаю как: "(А,В,Е,К,М,Н,О,Р,С,Т,У,Х){1-3}_(0-9){1-3}-(0-9){1-3}_(А,В,Е,К,М,Н,О,Р,С,Т,У,Х){1-3}" Разумеется, знаки подчёркивания я ЗДЕСЬ нарисовал, у пользователя вместо них пробелы. Ясно, что нужны 2 функции, чтобы преобразовывать, как надо: 1-ая -- при введении новой записи, и потом 2-ая -- при её отображении. Ещё нужно учесть что номера могут быть ещё советские, транспортные, военные. И даже без букв, одни цифры. Хорошо, функции написал. CarNumberToDB CarNumberToScreen Они рабочие - я проверял. Единственное, они не учитывают номер региона. Но это пока. Теперь пытаюсь их привязать. с первой всё ОК. Просто при нажатии на кнопку сохранить присваиваю текстбоксу его же значение, но пропущенное через первую функцию и сохраняю. А вот при выводе есть проблемы. То есть при выводе в текстбокс -- никаких, а вот в грид -- никак. Я делал следующие варианты: 1. в свойствах колонки грида прописывал ControlSource = CarNumberToScreen( tAlias.stnum ) 2. тот же самый Контролсорс = eval( "CarNumberToScreen( tAlias.stnum )" ) Причём оба варианта, как со знаками равно, так и без них. Нифига. Показывает на месте грида чистую белую простыню. (VFP 6.0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 19:13 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
Виноват, номер региона в базе тоже пока не существует. Так что пример 66 К 123 КК / 66ККК123 следует читать как К 123 КК / ККК123 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 20:26 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
2 Doktor Gradus несовсем понятно в чем проблема. В чем конкретно надо помочь???? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 20:28 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
Ну собственно, вопрос в том, как заставить грид переварить пользовательские (в смысле, не встроенные, а самописные) функции. И более общий вопрос, в самом начале -- если у кого есть опыт работы с госномерами (хранение в БД, поиск, отбор, ввод/показ и т.п.) -- если не жалко, поделитесь, плиз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.02.2006, 20:33 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
2 Doktor Gradus Функции полюбому самописные. Ну конкретнее, что значит переварить? Что ты хочешь получить в результате?. Опиши проблему так. Есть таблица, чтолько-то полей(какие поля), в этих полях такие такие значения. В результате хочу видеть в гриде тота тота и тота. После этого возможно и помогут, если правильно все опишешь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 10:46 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
Doktor Gradus функция CarNumberToScreen в ней нужно в начале lparam tcNum в конце retu ???nnnn??? в гриде в колонке iif(empt(tAlias.stnum),"нетути",CarNumberToScreen( tAlias.stnum)) все должно жить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 12:01 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
Alex11100 Насчёт iif(empt(tAlias.stnum),"нетути",CarNumberToScreen( tAlias.stnum)) попробую. А параметры в функцию я передаю, и возвращаю результат. Дело тут в не в функции, потому что она возвращает то, что нужно. То есть если я сделаю просто форму с тремя текстбоксами: первый для ввода, а два оставшихся для вывода результата функции, то всё отрабатывает просто замечательно. Проблема в том, что мне надо отобразить результат в ячейку грида. А вот этого категорически не удаётся сделать. А встроенные функции отрабатывают. Но они меня никак не устраивают. Недоходящий. Хорошо, описываю проблему таким образом. В таблице есть поле stnum, в нём хранится госномер автомобиля: БЕЗ пробелов, группа букв, группа цифр. На форме есть грид привязанный к этой таблице, в нём есть колонка, привязанная к полю stnum, и при открытии формы нужно показать номер автомобиля в удобном для пользователя виде, то есть как на автомобиле: буква, 3 цифры, 2 буквы, между буквами и цифрами пробелы. Почему надо хранить номер не так как показывать? Да потому что с точки зрения пользователя номер "А 000 АА" и номер "АА 000 А" -- это одно и то же, а с точки зрения фокса -- это разные вещи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 18:53 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
2 Doktor Gradus Проблема только с выводом. Правильно? На форме 3 едитбокса и в каждый должно выводиться свое разбитое значение? Данные хроняться только в таком виде ККК432, ВАК142? Или есть еще какой нить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 19:14 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
Когда щёлкаешь на кнопке сохранить -- функция CarNumberToDB форматирует в вид ККК123456, то есть просто складывает номер в виде 2-х групп, группы букв, затем группы цифр. Функция CarNumberToScreen сама по себе продвинутый аналог свойства InputMask. Так что проблема только с выводом. Причём вывод в текстбоксы работает чудесно. Не работает вывод в грид, а он куда нужнее. Пример: Пользователь ввёл АБ 12-34В Нажал "Сохранить" в таблицу попало: АБВ1234 А в текстбоксах потом выводится так: А 12-34 БВ Надо чтоб в гриде было так же. Если б дело ограничилось соременными российикими номерами, я бы обошёлся встроенными функциями, проблема в том, что номера могут быть: российские, советские, автобусные и военные (там 4 цифры вроде). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 19:32 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
я выложил пример - посмотри ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 19:37 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
Alex11100 Спасибо за приложенный пример. То есть вместо thisform.retustr можно использовать свою функцию? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 19:38 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
ну канечно и делов та ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.02.2006, 19:38 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
Привет, Alex11100 Помогло! Спасибо! Правда, напрямую прописать в IIF свои функции не получилось, пришлось создавать метод формы, и уже из него обращаться к функции. Но всё работает просто ЗАМЕЧАТЕЛЬНО! Однако, всё же остаётся вопрос. Я подозреваю, что если б срабатывало ContorlSource = IIF(,,MyFunc(parameters)) , то срабатывало бы и просто ContorlSource = MyFunc(parameters), но оно не срабатывает. То ли с гридом я начудил, то ли ещё что... И вот с этим я, конечно, хочу разобраться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.02.2006, 19:04 |
|
||
|
Работа с госномерами...
|
|||
|---|---|---|---|
|
#18+
Hi Doktor Gradus! > Однако, всё же остаётся вопрос. Я подозреваю, что если б срабатывало > ContorlSource = IIF(,,MyFunc(parameters)), то срабатывало бы и просто > ContorlSource = MyFunc(parameters), но оно не срабатывает. Если присваивать ControlSource программно, то надо брать всё выражение в кавычки. Если присваивать в окне свойств, то поставь перед этим выражением один пробел - возможно полегчает ;) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.02.2006, 04:41 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33550257&tid=1592317]: |
0ms |
get settings: |
7ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
211ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
61ms |
get tp. blocked users: |
2ms |
| others: | 198ms |
| total: | 513ms |

| 0 / 0 |
