:: Visual Foxpro, Foxpro for DOS
Как не отображать в гриде нулевые значения?
rud

Сообщений: 640
Откуда: Москва
Дата регистрации: 02.09.2000
Забыл, как сделать, чтобы нулевые значения в гриде не отображались
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
Alsim

Сообщений: 3636
Откуда: Екатеринбург
Дата регистрации: 17.11.2004
Если в коде то
.column1.Format = [BZ]
Если в самом гриде, то в нужной колонке Format Z
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
PaulWist
Автор

Сообщений: 14618
Дата регистрации: 01.04.2004
Control.NullDisplay = "'Нет'"


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
rud

Сообщений: 640
Откуда: Москва
Дата регистрации: 02.09.2000
Спасибо
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
of63

Сообщений: 25244
Откуда: Н.Новгород
Дата регистрации: 13.02.2008
NullDisplay не про "ноль" (пусто), а именно про NULL...
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
PaulWist
Автор

Сообщений: 14618
Дата регистрации: 01.04.2004
Ааа, вот я тормоз, действительно вопрос про нОль.


------------------
Есть многое на свете, друг Горацио...
Что и не снилось нашим мудрецам.
(В.Шекспир Гамлет)
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
sphinx

Сообщений: 31179
Откуда: Каменск-Уральски
Дата регистрации: 22.11.2006
Пашк, ты бы знал как я торможу порой. Или часто. Все норм.


------------------
"Veni, vidi, vici!"(с)
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
_vit

Сообщений: 5175
Дата регистрации: 29.07.2002
of63
NullDisplay не про "ноль" (пусто), а именно про NULL...

Ноль не пусто.
Пусто - NULL.
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
akvvohinc

Сообщений: 4217
Откуда: Москва
Дата регистрации: 11.11.2008
_vit
Ноль не пусто.
Пусто - NULL.
Пусто - EMPTY (по версии гугла и прочих словарей).
Значит, именно этой функцией надо проверять на пустоту.
? EMPTY(null) && .F.
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
_vit

Сообщений: 5175
Дата регистрации: 29.07.2002
Ну да есть такая функция.
Ведет себя таким образом.
В каких-то случаях это поведение рационально.

Какое значение в колонке SomeVal пустое?

Select cur1.Id, cur1.Name, cur2.SomeVal ;
FROM cur1 Left Join cur2 ;
ON cur1.Id = cur2.Id ;
INTO Cursor cur3

[attachment 36580 cur3.jpg]
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
akvvohinc

Сообщений: 4217
Откуда: Москва
Дата регистрации: 11.11.2008
_vit
Какое значение в колонке SomeVal пустое?
Все подобные вопросы не помогут - надо просто знать, что именно хочет ТС.

А хочет он сделать так:
rud
как сделать, чтобы нулевые значения в гриде не отображались
Так зачем нам выяснять, что такое "пустое"?

_vit
Ноль не пусто. Пусто - NULL.
А кто-то считает, что когда в корзине ноль яблок, то она пуста.

Мне же значение Null привычнее "переводить" не как "пусто", а как "неизвестно сколько, не задано, нет данных" (n/a - not applicable).



Исправлено 1 раз(а). Последнее : akvvohinc, 29.05.23 01:04
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
Владимир Максимов

Сообщений: 14097
Откуда: Москва
Дата регистрации: 02.09.2000
Если пошел разговор "за жизнь", то конкретно для FoxPro, если для хранения числа используется поле типа Numeric, то можно "стереть" ноль командой

BLANK

Это фича FoxPro, связанная с тем, что физически, поля типа Numeric хранятся как обычный текст. Т.е. число 0 так напрямую как символ "0" в таблице и хранится. Команда Blank заменит символ "0" на символ пробела. Визуально, такое значение в Grid и будет выглядеть как "пустое значение"

Но с полями, где числа хранятся не как символьные строки (Integer, Currency, Double) этот фокус уже не пройдет. Тут только Format = "Z"
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
_vit

Сообщений: 5175
Дата регистрации: 29.07.2002
akvvohinc
А кто-то считает, что когда в корзине ноль яблок, то она пуста.

И может ошибаться. В корзине могут быть к примеру груши.
Пусто это значит ничего нет.

Если "нет данных" не означает пусто,
то что значит пусто в контексте данных?
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
akvvohinc

Сообщений: 4217
Откуда: Москва
Дата регистрации: 11.11.2008
Цитата:
Пусто это значит ничего нет.
"Пусто" - это просто слово.
А что оно означает, зависит от контекста.

В моем предыдущем примере корзина пуста, если в ней нет яблок (0 штук) и это нам точно известно, а груш и чего-либо ещё там не может быть в принципе (корзина для яблок!).
А если я не знаю, сколько в корзине яблок (n/a), то записываю в поле Null.
Одновременно этот Null правильно сообщает, что корзину нельзя назвать пустой (EMPTY(null) - ложь).
А если бы в Фоксе была функция NONEMPTY(), то, надеюсь, она бы тоже возвращала ложь при Null.

(А для кого-то "в кармане пусто", если там менее 100 тыс.руб. )

_vit
Если "нет данных" не означает пусто,
то что значит пусто в контексте данных?
Разработчики Фокса решили, что это "ноль" для числовых данных и т.п. в соответствии с работой функции EMPTY().



Исправлено 1 раз(а). Последнее : akvvohinc, 30.05.23 01:47
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
DmitryKn

Сообщений: 300
Дата регистрации: 06.04.2022
akvvohinc
Цитата:
Пусто это значит ничего нет.
"Пусто" - это просто слово.
А что оно означает, зависит от контекста.

В моем предыдущем примере корзина пуста, если в ней нет яблок (0 штук) и это нам точно известно, а груш и чего-либо ещё там не может быть в принципе (корзина для яблок!).
А если я не знаю, сколько в корзине яблок (n/a), то записываю в поле Null.
Одновременно этот Null правильно сообщает, что корзину нельзя назвать пустой (EMPTY(null) - ложь).
А если бы в Фоксе была функция NONEMPTY(), то, надеюсь, она бы тоже возвращала ложь при Null.

(А для кого-то "в кармане пусто", если там менее 100 тыс.руб. )

_vit
Если "нет данных" не означает пусто,
то что значит пусто в контексте данных?
Разработчики Фокса решили, что это "ноль" для числовых данных и т.п. в соответствии с работой функции EMPTY().


А если в корзине есть яблоки, и это нам точно известно ( 0 как частный случай), но неизвестно сколько, это разве NULL ? Это скорее Х какой-то. Если верить гуглу в корзинке NULL когда ее только сплели и еще не решили, яблоки тут будут или груши, или песок.
Или после яблок решаем, для чего сейчас будет.



Исправлено 1 раз(а). Последнее : DmitryKn, 02.06.23 14:24
Ratings: 0 negative/0 positive
Re: Как не отображать в гриде нулевые значения?
akvvohinc

Сообщений: 4217
Откуда: Москва
Дата регистрации: 11.11.2008
DmitryKn
Если верить гуглу в корзинке NULL когда ее только сплели и еще не решили, яблоки тут будут или груши, или песок.
При чем здесь Гугл, если я постановщик задачи и сам решаю, что в ней будет означать Null?

В моей задаче есть только корзины для яблок, их много и они разные (вес, объем, материал, цвет и т.п.) - таблица корзин для яблок.
И в каждой из них может находиться некоторое количество яблок в некоторый момент времени (таблица количеств яблок в корзинах во времени):
Id, DateTime, Quantity

Значение Null в поле Quantity этой таблицы и означает, что я не знаю, сколько яблок находится в корзине Id в момент времени DateTime.
А значение 0 означает, что эта корзина в это время была пуста.
(можете убрать слово "яблоки" из моей задачи - а оставить "просто корзины" и сохранить все остальные поля. Тогда под количеством будем понимать "любые предметы в штуках").

DmitryKn
Это скорее Х какой-то.
Ну, чему-то же будет равен X в вашей таблице?
До появления Null так и приходилось делать - либо выдумывать некоторое значение, которое заведомо не должно встретиться в исходных данных, либо использовать дополнительное, например, логическое поле, показывающее "неизвестность значения".

Разработчики Фокса, естественно, выбрали второй путь, добавляя в таблицу служебное "невидимое" поле (_NullFlags типа "0") при наличии хотя бы одного Null-поля в таблице.
И при заполнении Null-поля значением Null само значение остается без изменений, а бит в поле _NullFlags, отвечающий за это Null-поле таблицы, возводится в 1. Так что при необходимости можно и восстановить прежнее значение поля после его "нуллификации" (правда, штатных средств для этого я не знаю).
Ratings: 0 negative/1 positive
Re: Как не отображать в гриде нулевые значения?
DmitryKn

Сообщений: 300
Дата регистрации: 06.04.2022
akvvohinc
DmitryKn
Если верить гуглу в корзинке NULL когда ее только сплели и еще не решили, яблоки тут будут или груши, или песок.
При чем здесь Гугл, если я постановщик задачи и сам решаю, что в ней будет означать Null?
...

Ну вот только соберешься порассуждать о природе пустоты, даосизме, королях и капусте, как сразу - я сам решаю ...
Ratings: 0 negative/0 positive


Извините, только зарегистрированные пользователи могут оставлять сообщения в этом форуме.

On-line: 22 akvvohinc  (Гостей: 21)

© 2000-2024 Fox Club 
Яндекс.Метрика