мистика в отчетах | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
Доброго дня всем!
Случалось ли кому сталкиваться с такой историей: в деталях отчета частично "съедается" информация. Например, типовой отчет типа "счет", наименование товара может может занять от 1 до 4-х строк. До 2-х включительно все хорошо. Но если 4-ре строки, то начинается мистика: в документе, где много наименований (товаров), часть информации просто на полуслове теряется. Те же наименования в том же отчете, но в документе с 2...3 товарами, отображаются корректно. Исправлено 1 раз(а). Последнее : DmitryKn, 05.11.22 17:35 |
Re: мистика в отчетах | |
---|---|
PaulWist Сообщений: 14601 Дата регистрации: 01.04.2004 |
У контрола выводящего текст надо проставить сюсекбокс strech with overflow, вроде так называется.
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) Исправлено 1 раз(а). Последнее : PaulWist, 05.11.22 17:50 |
Re: мистика в отчетах | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
Это сделано, причем, эти же наименования в другом документе, этот же отчет, корректно выводятся. Опять же, теряется не целая строка, а прям на полуслове, полстроки. Например, фраза "товар такойто из оттуда" выводится типа "товар та", этот же товар в другом документе выводится корректно. Исправлено 1 раз(а). Последнее : DmitryKn, 05.11.22 17:58 |
Re: мистика в отчетах | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
А вы остановите программу прямо перед выводом мистического отчета, и затем выложите для всех сам репорт и текущие данные (минимальный набор таблиц и содержимого, убрав всё лишнее или секретное), приводящие к этой мистике.
Если у меня эта ошибка тоже будет проявляться, то попробую найти, в чем дело. Вряд ли здесь кто-то вылечит пациента без того, чтобы его осмотреть и потрогать. |
Re: мистика в отчетах | |
---|---|
PaulWist Сообщений: 14601 Дата регистрации: 01.04.2004 |
А что лежит в курсоре-таблице из которой выводится отчет, возможно уже там обрезано из-за select-a.
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: мистика в отчетах | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
так, отчеты тут не причем.
Это так курсор заполняется, тоже не очень понятно, что происходит. Делаю отбор
и вот этот ctovar заполняется некорректно: иногда все хорошо, иногда обрывается прям посреди поля cfld4, иногда посреди текста 'текст1' или 'текст2', причем в разных местах может быть. Поле cfld4 символьное, содержит номер сертификата и дату, оборваться может на любом символе. Текст вообще в select задается... Как такое может быть? Вывел курсор в Browse и увидел. Еще есть странность - если в открытом Browse курсоре поставить мышкой в конце обычной строки курсор, который экранный, то он там и моргает. А в поломанной строке на символ назад отскакивает, за последним символом никак становиться не хочет. Исправлено 5 раз(а). Последнее : DmitryKn, 05.11.22 20:42 |
Re: мистика в отчетах | |
---|---|
AndyNigmatec Сообщений: 1550 Откуда: Волгоград Дата регистрации: 28.06.2015 |
смотрите длину получаемых символьных полей - похоже выходите за предельный размер ctovar для проверки например можно сделать дополнительное поле типа так:
Исправлено 4 раз(а). Последнее : AndyNigmatec, 05.11.22 21:47 |
Re: мистика в отчетах | |
---|---|
PaulWist Сообщений: 14601 Дата регистрации: 01.04.2004 |
Это нулевой прогон, для «обрезанного» поля надо задать длину либо cast(... as c(254)) либо padr(..., 254) либо Memo
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: мистика в отчетах | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
Цитата:Обычное дело. Вы-то сами при таком выражении какую длину поля ctovar ожидаете? А на каком основании именно такую? Задавайте длину поля явно с помощью CAST(). Исправлено 1 раз(а). Последнее : akvvohinc, 05.11.22 22:16 |
Re: мистика в отчетах | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
Получилось так:
самые большие значения не превышают 200 LEN считает правильное число символов, в курсоре, приводит , например, 165, это столько, сколько должно быть правильно. Однако в поле фактически может быть 115 или 103 и т.п. Т.е. LEN для одного товара всегда 165, символы в выражении подсчитываются правильно, но в поле курсора попадают не все, не во всех случаях. Для двух документов, в составе имеющих один и тот же товар, в одном случае, ctovar содержит все 165 символов, lentovar = 165, во втором ctovar 103, lentovar = 165 Это цифры для иллюстрации, такая хрень не именно в этих документах или именно этот товар, но всегда больше 100 символов. Какой-либо закономерности не увидел. |
Re: мистика в отчетах | |
---|---|
AndyNigmatec Сообщений: 1550 Откуда: Волгоград Дата регистрации: 28.06.2015 |
все верно, вам нужно явно задать размерность (как выше и написали)
CAST( ... as c(254)) as ctovar раз уж более 200 нет - то поместится ))) хотя обзывать товар длинной 200 символов как-то не очень. |
Re: мистика в отчетах | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
CAST() полечил, все работает.
Никогда бы не подумал, что поле курсора может принимать произвольно длину, то 103, то 115, то 165 для одних и тех же данных. Друзья мои, большое вам человеческое спасибо, не знаю, что бы я без вас делал. Как говорят мои дети, вам плюс в карму |
Re: мистика в отчетах | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
все верно, не то, что не очень, а вообще г...о какое-то, сплош избыточная, и никому не нужная от слова совсем информация, но таковы требования, инструкция у нас новая ( |
Re: мистика в отчетах | |
---|---|
AndyNigmatec Сообщений: 1550 Откуда: Волгоград Дата регистрации: 28.06.2015 |
нет, не так - курсор - это такая же таблица только временная, и в ней размерность каждого поля фиксирована, но в в вашем случае это поле в select-е вычисляемое и его длина зависит от этих данных. Не помню как именно фокс в таких случаях эту размерность выбирает - то ли по первому вычисленному значению, то ли еще как, но суть остается прежней - в данном случае необходимо это было явно указать.
|
Re: мистика в отчетах | |
---|---|
PaulWist Сообщений: 14601 Дата регистрации: 01.04.2004 |
Это фича фокса, что бы сформировать курсор, фокс берет первую попавшуюся запись и по ней определяет размерность полей.
------------------ Есть многое на свете, друг Горацио... Что и не снилось нашим мудрецам. (В.Шекспир Гамлет) |
Re: мистика в отчетах | |
---|---|
akvvohinc Сообщений: 4201 Откуда: Москва Дата регистрации: 11.11.2008 |
Главное в другом - размер поля не будет определяться максимальной длиной выражения, как вы, видимо, ожидали. |
Re: мистика в отчетах | |
---|---|
DmitryKn Автор Сообщений: 300 Дата регистрации: 06.04.2022 |
Опыт - великое дело. В книжке об этом не встречал.
|
© 2000-2024 Fox Club  |