powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с госномерами...
15 сообщений из 15, страница 1 из 1
Работа с госномерами...
    #33541868
Doktor Gradus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Приветствую.

Интересует вот какой вопрос: Кто как работает с автомобильными госномерами?

Я почесал в затылке и сделал следующее:

в базе госномер хранится в виде: "(А,В,Е,К,М,Н,О,Р,С,Т,У,Х){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)
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33541996
Doktor Gradus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Виноват, номер региона в базе тоже пока не существует. Так что пример 66 К 123 КК / 66ККК123 следует читать как К 123 КК / ККК123
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33542000
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Doktor Gradus
несовсем понятно в чем проблема. В чем конкретно надо помочь????
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33542009
Doktor Gradus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну собственно, вопрос в том, как заставить грид переварить пользовательские (в смысле, не встроенные, а самописные) функции. И более общий вопрос, в самом начале -- если у кого есть опыт работы с госномерами (хранение в БД, поиск, отбор, ввод/показ и т.п.) -- если не жалко, поделитесь, плиз.
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33542785
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Doktor Gradus

Функции полюбому самописные. Ну конкретнее, что значит переварить? Что ты хочешь получить в результате?. Опиши проблему так. Есть таблица, чтолько-то полей(какие поля), в этих полях такие такие значения. В результате хочу видеть в гриде тота тота и тота. После этого возможно и помогут, если правильно все опишешь.
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33543036
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Doktor Gradus

функция CarNumberToScreen
в ней нужно в начале
lparam tcNum
в конце
retu ???nnnn???


в гриде в колонке
iif(empt(tAlias.stnum),"нетути",CarNumberToScreen( tAlias.stnum))

все должно жить
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33544639
Doktor Gradus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex11100

Насчёт
iif(empt(tAlias.stnum),"нетути",CarNumberToScreen( tAlias.stnum))

попробую.

А параметры в функцию я передаю, и возвращаю результат. Дело тут в не в функции, потому что она возвращает то, что нужно. То есть если я сделаю просто форму с тремя текстбоксами: первый для ввода, а два оставшихся для вывода результата функции, то всё отрабатывает просто замечательно.

Проблема в том, что мне надо отобразить результат в ячейку грида. А вот этого категорически не удаётся сделать.

А встроенные функции отрабатывают. Но они меня никак не устраивают.

Недоходящий.

Хорошо, описываю проблему таким образом. В таблице есть поле stnum, в нём хранится госномер автомобиля: БЕЗ пробелов, группа букв, группа цифр.
На форме есть грид привязанный к этой таблице, в нём есть колонка, привязанная к полю stnum, и при открытии формы нужно показать номер автомобиля в удобном для пользователя виде, то есть как на автомобиле: буква, 3 цифры, 2 буквы, между буквами и цифрами пробелы.

Почему надо хранить номер не так как показывать? Да потому что с точки зрения пользователя номер "А 000 АА" и номер "АА 000 А" -- это одно и то же, а с точки зрения фокса -- это разные вещи.
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33544676
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Doktor Gradus

Проблема только с выводом. Правильно?
На форме 3 едитбокса и в каждый должно выводиться свое разбитое значение?
Данные хроняться только в таком виде ККК432, ВАК142? Или есть еще какой нить?
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33544706
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33544710
Doktor Gradus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Когда щёлкаешь на кнопке сохранить -- функция CarNumberToDB форматирует в вид ККК123456, то есть просто складывает номер в виде 2-х групп, группы букв, затем группы цифр.

Функция CarNumberToScreen сама по себе продвинутый аналог свойства InputMask. Так что проблема только с выводом. Причём вывод в текстбоксы работает чудесно. Не работает вывод в грид, а он куда нужнее.

Пример:

Пользователь ввёл

АБ 12-34В

Нажал "Сохранить"

в таблицу попало:

АБВ1234

А в текстбоксах потом выводится так:

А 12-34 БВ

Надо чтоб в гриде было так же.

Если б дело ограничилось соременными российикими номерами, я бы обошёлся встроенными функциями, проблема в том, что номера могут быть: российские, советские, автобусные и военные (там 4 цифры вроде).
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33544720
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я выложил пример - посмотри
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33544723
Doktor Gradus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alex11100

Спасибо за приложенный пример.

То есть вместо thisform.retustr можно использовать свою функцию?
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33544725
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ну канечно
и делов та
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33550257
Doktor Gradus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Привет, Alex11100

Помогло! Спасибо! Правда, напрямую прописать в IIF свои функции не получилось, пришлось создавать метод формы, и уже из него обращаться к функции. Но всё работает просто ЗАМЕЧАТЕЛЬНО!

Однако, всё же остаётся вопрос. Я подозреваю, что если б срабатывало ContorlSource = IIF(,,MyFunc(parameters)) , то срабатывало бы и просто ContorlSource = MyFunc(parameters), но оно не срабатывает. То ли с гридом я начудил, то ли ещё что... И вот с этим я, конечно, хочу разобраться...
...
Рейтинг: 0 / 0
Работа с госномерами...
    #33553674
Igor Korolyov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Hi Doktor Gradus!

> Однако, всё же остаётся вопрос. Я подозреваю, что если б срабатывало
> ContorlSource = IIF(,,MyFunc(parameters)), то срабатывало бы и просто
> ContorlSource = MyFunc(parameters), но оно не срабатывает.

Если присваивать ControlSource программно, то надо брать всё выражение в
кавычки.
Если присваивать в окне свойств, то поставь перед этим выражением один
пробел - возможно полегчает ;)

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Работа с госномерами...
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]