Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Я ламер, так что моя просьба у вас много времени не отнимет.. / 15 сообщений из 15, страница 1 из 1
27.06.2007, 22:21
    #34624818
HaemaLunae
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я ламер, так что моя просьба у вас много времени не отнимет..
вот не могу даже разобраться..как ограничить ввод в поле Пол, соответственно либо Ж либо М.. что куда вводить.:-[
...
Рейтинг: 0 / 0
28.06.2007, 04:20
    #34624992
Dag
Dag
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я ламер, так что моя просьба у вас много времени не отнимет..
Использовать для ввода combobox.
...
Рейтинг: 0 / 0
28.06.2007, 08:32
    #34625108
Лисонька
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я ламер, так что моя просьба у вас много времени не отнимет..
HaemaLunaeвот не могу даже разобраться..как ограничить ввод в поле Пол, соответственно либо Ж либо М.. что куда вводить.:-[Не претендую на оригинальность, но я сделалf везде так:
У текстбокса, в котором прописывается пол, Format=М, а InputMask=М,Ж
При попадании фокуса на данный бокс, пользователю нужно будет лишь нажатием Space менять знаxение между М и Ж.
...
Рейтинг: 0 / 0
28.06.2007, 12:01
    #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
28.06.2007, 13:33
    #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
28.06.2007, 13:43
    #34626028
PaulWist
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Я ламер, так что моя просьба у вас много времени не отнимет..
ЛисонькаОграничение - да, как прописали Вы. Но я имела в виду немного другое: пользователю нажимать "пробел" и менять так значение, не допуская ошибки, легче, чем искать на клавиатуре конкретно клавиши "М" или "Ж".

2Лисонька

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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