powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Я ламер, так что моя просьба у вас много времени не отнимет..
15 сообщений из 15, страница 1 из 1
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34624818
HaemaLunae
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот не могу даже разобраться..как ограничить ввод в поле Пол, соответственно либо Ж либо М.. что куда вводить.:-[
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34624992
Dag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использовать для ввода combobox.
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34625108
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HaemaLunaeвот не могу даже разобраться..как ограничить ввод в поле Пол, соответственно либо Ж либо М.. что куда вводить.:-[Не претендую на оригинальность, но я сделалf везде так:
У текстбокса, в котором прописывается пол, Format=М, а InputMask=М,Ж
При попадании фокуса на данный бокс, пользователю нужно будет лишь нажатием Space менять знаxение между М и Ж.
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34625694
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HaemaLunae.как ограничить ввод в поле Пол, соответственно либо Ж либо М.. что куда вводить.:-[

Поскольку, М,Ж это свойство данного поля, то ограничение надо вводить на уровне данных.

Код: plaintext
1.
2.
3.
4.
5.
6.
CREATE CURSOR test (f1 c( 1 ) CHECK INLIST(UPPER(f1),'М','Ж') error 'Нельзя !!!!')

INSERT INTO test VALUES ('ж')

INSERT INTO test VALUES ('a')

BROWSE 
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34625992
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PaulWist HaemaLunae.как ограничить ввод в поле Пол, соответственно либо Ж либо М.. что куда вводить.:-[Поскольку, М,Ж это свойство данного поля, то ограничение надо вводить на уровне данных.
Код: plaintext
1.
2.
3.
CREATE CURSOR test (f1 c( 1 ) CHECK INLIST(UPPER(f1),'М','Ж') error 'Нельзя !!!!')
INSERT INTO test VALUES ('ж')
INSERT INTO test VALUES ('a')
BROWSE 

Ограничение - да, как прописали Вы. Но я имела в виду немного другое: пользователю нажимать "пробел" и менять так значение, не допуская ошибки, легче, чем искать на клавиатуре конкретно клавиши "М" или "Ж".
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34626028
PaulWist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛисонькаОграничение - да, как прописали Вы. Но я имела в виду немного другое: пользователю нажимать "пробел" и менять так значение, не допуская ошибки, легче, чем искать на клавиатуре конкретно клавиши "М" или "Ж".

2Лисонька

Одно другому не мешает, а дополняет, да действительно можно облегчить ввод в интерфейс, НО ещё важнее не допустить в БД не корректных данных, поэтому нужно и то и то.
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34626957
HaemaLunae
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пасиб.. а как задать условно перечислимый тип, то есть, допустим, имеется поле Отдел, вот чтоб можно было выбирать из списка значения и при необходимости новые вводить... И чтоб это можно было прописать в Table Designer->rule с использованием stored procedures.
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34628298
foxwizard
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заводим поле man логическое
.t. - мужской
.f. - женский
.null. - не определен :-)
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34630249
Лисонька
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
foxwizardЗаводим поле man логическое
.t. - мужской
.f. - женский
.null. - не определен :-)Ранее в одном из топиков асами Фокса уже говорилось о нецелесообразности применения логического поля для пола.
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34630356
1010100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Лисонька foxwizardЗаводим поле man логическое
.t. - мужской
.f. - женский
.null. - не определен :-)Ранее в одном из топиков асами Фокса уже говорилось о нецелесообразности применения логического поля для пола.

Пустословье никому не нужно, или приведи аргумент или ничего не пиши
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34630424
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1010100Пустословье никому не нужно, или приведи аргумент или ничего не пиши
Логическое поле (и CheckBox, как средство отображения его содержимого) - это поле, неявно содержащее ответ на вопрос типа: А является ли?...

В данном случае, это означаете ответ на вопрос: а является ли данный человек мужеска полу? Или женскаго полу?

Т.е. это не есть выбор: мужчина, женщина, не определено. Это будет выбор: мужчина или НЕ мужчина. Ну, или как вариант, женщина или НЕ женщина. Да или Нет?

Проблема в чем? Это Вы сейчас помните, что .T. = мужчина? Почему собственно? Просто потому, что лично Вы так решили. Убедительно. Кроме шуток, это часто решающий аргумент.

Но представьте себе, что с Вашим приложением будет разбираться Лисонька . А для нее .T. = женщина. Просто потому, что для нее это "совершенно очевидно".

Вы сознательно закладываете в собственное приложение неопределенность еще на уровне структуры базы данных. Есть некое "умолчание", "соглашение", которое никак, никоим образом, не вытекает ни из структуры базы данных, ни из его содержимого.

Разумеется, без таких умолчаний иногда не обойтись. Но зачем это делать в таком очевидном случае? Ведь Вы не получаете совершенно никаких выгод, кроме недостатков.

Логическое поле в файле DBF физически занимает 1 байт, значит, выигрыша в размере по сравнение с М/Ж - нет. Наглядность данных по сравнению с символьным полем - ухудшается. Требуется дополнительное программирование, чтобы преобразовать .T./.F. в М/Ж в отчетах. Дополнительные проблемы при отсутствии преимуществ.
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34630502
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
HaemaLunaeвот не могу даже разобраться..как ограничить ввод в поле Пол, соответственно либо Ж либо М.. что куда вводить.:-[Как хронить хорошо объяснили тебе PaulWist и ВладимирМ. А вот как ограничить на форме, я бы выбрал ComboBox.
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34630507
да уж :)
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тут круче совет, куда всем вам пойти, идиологи хреновы
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34630508
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Извиняюсь за некрасивое высказывание:
Владимир САКак хронить хорошо объяснили...
Следует читать: "Как хранить данные хорошо объяснили...".
...
Рейтинг: 0 / 0
Я ламер, так что моя просьба у вас много времени не отнимет..
    #34655507
ВладимирМПроблема в чем? Это Вы сейчас помните, что .T. = мужчина? Почему собственно? Просто потому, что лично Вы так решили. Убедительно. Кроме шуток, это часто решающий аргумент.

Но представьте себе, что с Вашим приложением будет разбираться Лисонька . А для нее .T. = женщина. Просто потому, что для нее это "совершенно очевидно".
Не вижу такой проблемы.
Вижу другую проблему: некий программист пытается разбираться в чужих таблицах исключительно на основе своих догадок , игнорируя описания структур. Вот это действительно проблема и гнать надо подальше таких программистов.

Вообще говоря, свои субъективные личные представления программист, как и переводчик, должен оставить в стороне. Если не знает точно - пусть читает документацию или (при отсутствии оной) пусть выясняет косвенным путем. "Мне совершенно очевидно" - это прямой путь к ляпам, подобным тем, о которых предупреждают переводчиков в подборках типа "Ложные друзья переводчика".

Анекдот в тему догадок:
--------------------------------------
Девушка в гостях у парня. Захотела умыть лицо.
Выходя из ванной, говорит:
- Я там у тебя увидела два полотенца - "М" и "Ж". Взяла "Ж". Я правильно догадалась?
- Вообще-то, "М" - это для морды.
--------------------------------------
:)

ВладимирМВы сознательно закладываете в собственное приложение неопределенность еще на уровне структуры базы данных. Есть некое "умолчание", "соглашение", которое никак, никоим образом, не вытекает ни из структуры базы данных, ни из его содержимого.
В чем проблема? Назовите логическое поле IsMale (IsFemale или что-нибудь в этом роде) и вот уже нет никакой неопределенности.

ВладимирМРазумеется, без таких умолчаний иногда не обойтись. Но зачем это делать в таком очевидном случае? Ведь Вы не получаете совершенно никаких выгод, кроме недостатков.

Логическое поле в файле DBF физически занимает 1 байт, значит, выигрыша в размере по сравнение с М/Ж - нет. Наглядность данных по сравнению с символьным полем - ухудшается. Требуется дополнительное программирование, чтобы преобразовать .T./.F. в М/Ж в отчетах. Дополнительные проблемы при отсутствии преимуществ.

Никакие выгоды, кроме недостатков, говорите? Дополнительные проблемы при отсутствии преимуществ?
Хорошо, вот мое мнение по поводу достоинств и недостатков:

Одинаково для обоих полей:
- Размер поля.
- Вывод в тех отчетах, где требуется либо расширенный вывод (Мужской/Женский, Муж/Жен и т.п.), либо любой вывод на другом языке.

Преимущества символьного поля:
- Простота вывода (на экран или в отчеты), где требуются просто "М" или "Ж".
- Наглядность при просмотре таблиц напрямую (актуально только для программистов и администраторов БД, которые лазят в таблицах напрямую, а не через программы для пользователей, в которых можно запрограммировать какой угодно показ и для символьного, и для логического поля).

Преимущества логического поля:
- Проще программировать в логических операциях (например, where <field> вместо where <field>=='М'). Кроме того, исключаются ошибки, когда программист при написании очередной логической операции забыл переключить раскладку и набрал английскую 'M' вместо русской 'М'.
- Быстрее работает в логических операциях (особенно это актуально в циклах и на больших объемах данных).
- Если у символьного поля есть преимущество в наглядности при просмотре таблиц напрямую, то у логического поля есть преимущество, если программист или администратор БД захотят увиденную ошибку откорректировать напрямую. Если какая-то таблица не имеет встроенного контроля значений поля, то в случае символьного поля проблема раскладки может привести к труднообнаружимым ошибкам, которые могут годами оставаться незамеченными.
- Если предполагается обмен с другими программами, то проще контроль входных данных - в логическом поле запрещенных значений в принципе быть не может (входная проверка поля не нужна вообще), а в символьном поле запрещенных значений - завались (требуется входная проверка поля).
- Если сейчас или в будущем предполагается обмен данными с таблицами на других языках (национальные языки народов России, стран СНГ и других государств), то корректнее именно логическое поле. Кстати, в этом частном случае все преимущества символьного поля не только "идут лесом", но и превращаются в недостатки.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Я ламер, так что моя просьба у вас много времени не отнимет..
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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