Re: О 16000 фактов.



Posted by Денис, Днепропетровск (212.113.37.194) on February 06, 2001 at 06:38:10:

In Reply to: О 16000 фактов. posted by Аркадий Водяник on January 31, 2001 at 05:04:34:

Прошу прощения за поздний ответ, но нам просто отключили доступ в Интернет. Ответ прочитал только что и отвечаю.
В данном случае проблема заключалась не в ограничении количества фактов, а в различном выполнении оператора Total сетевой и локальной версиями программы:
1)В отчетной форме велся поиск с помощью конструкции total ..x ,где х числовое значение средневзвешенной цены. Это значение вычисляется при каждой операции продажи, как текущая стоимость товара деленная на текущее количество. При этом значение такой цены отличается от предыдущего где-то в 16,17-м знаках после запятой, даже если товар не поступал и цена не должна была бы измениться.
Так вот, получается что локальная версия в операторе total ..x при числовом значении х считает совпадением - совпадение примерно до 16 знака после запятой, а сервер, вероятно, ищет только полное совпадение.
2)Следующее наблюдение:
оператор Sort, вероятно, сортирует по полному значению числовой переменной.
Для того, чтобы не печатать второй раз товар уже найденный и записанный, в форме использовалось условие типа: x1<>x
Такое условие, оказывается, проверяет совпадение х1 и х до определенного знака после запятой (не знаю до какого, но < 16)
3)Я внес в форму одно единственное исправление:
заменил условие х1<>x на x1>x.
Теперь сервер выполняет форму правильно, ничего не пропуская, но в локальной версии выводятся лишние повторяющиеся данные.

Сейчас попробую изменить программу, чтобы в факт записывалась цена, оругленная до 5,6-го знака или вобще в строковом формате. Думаю, что тогда будут работать одинаково и локальная и сетевая версии.

Спасибо за ответ!




Пpишедшие ответы: