Непонятный пустой отчёт

Обсуждение извечных проблем кларионовских (и не только) отчетов

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Непонятный пустой отчёт

Сообщение Игорь Столяров »

kreator писал(а): 18 Октябрь 2018, 16:41Придётся второй if not писать
Не надо так. Результат (строка произвольной длины) принимается в IDynString и если её длина = 0, то дополняется пробелом.
Нет проблем разрулить ситуацию. Непонятно поведение Clarion Report … :(
За теми кто отстал - не возвращаться. (С) Кодекс
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Непонятный пустой отчёт

Сообщение kreator »

Игорь Столяров писал(а): 18 Октябрь 2018, 16:51 Непонятно поведение Clarion Report … :(
Кларион не причём, ДП объяснил. Null'ы по-любому надо как-то обрабатывать. Вопрос как это сделать правильно и красиво. У Вас ole-контрол со сберовским ActiveХ?
We are hard at work… for you. :)
Аватара пользователя
vic7tar
Ветеран
Сообщения: 365
Зарегистрирован: 09 Февраль 2017, 20:12

Непонятный пустой отчёт

Сообщение vic7tar »

Игорь Столяров писал(а): 18 Октябрь 2018, 15:52Я же в первом посте написал, где юзается … Было вот так:
Код: Выделить всё
Report_Slip(Loc:Sber{'GParamString("Cheque")'}) ! Получить и распечать слип-чек эквайринга сбера ...

! X-Отчёт по операциям с платёжными картами
If Not Loc:Sber{'NFun(6002)'} then Report_Slip(Loc:Sber{'GParamString("Cheque")'}).
Нет, сначала было вот так:
Игорь Столяров писал(а): 18 Октябрь 2018, 8:56Report_Slip('') ! GPF с крахом приложения :(
Use-переменная получает нулевой указатель а ненулевую строку (см. Дед Пахом, выше), и что делать?

Код: Выделить всё

print_str = ''
Report_Slip(print_str)
А если все же очень хочется вызвать Report_Slip(''), то:

Код: Выделить всё

Report_Slip       Procedure(string xText_)
text_ string(...)
report              REPORT('Текстовый файл'),AT(200,200,7760,11031),PAPER(PAPER:A4), PRE(RPT),FONT('Consolas',10,,FONT:regular,CHARSET:CYRILLIC),THOUS
detail  DETAIL,USE(?detail)
        TEXT,AT(,,7760,),USE(  text_  ),TRN,LEFT,RESIZE
  END
END
    code
        text_ = xText_
        OPEN(report)
        . . .
C10, Win10x64
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Непонятный пустой отчёт

Сообщение Игорь Столяров »

kreator писал(а): 18 Октябрь 2018, 17:22ДП объяснил. Null'ы по-любому надо как-то обрабатывать
Не согласный я c ним. Косяк это именно Report. Нет проблем ведь с отображением такого же пустого параметра в поле окна,
нет проблем с присвоением этого параметра, и только внутри Report всё клинит. С чего бы ?
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Непонятный пустой отчёт

Сообщение Дед Пахом »

Игорь Столяров писал(а): 18 Октябрь 2018, 17:50Не согласный я c ним. Косяк это именно Report. Нет проблем ведь с отображением такого же пустого параметра в поле окна,
нет проблем с присвоением этого параметра, и только внутри Report всё клинит. С чего бы ?
Да то же самое с окном:

Код: Выделить всё

  PROGRAM

  MAP
    DisplayWin(STRING pText)
  END

  CODE
!  DisplayWin('Hello world!')  !- works
  DisplayWin('')                     !- GPF
  
DisplayWin                    PROCEDURE(STRING pText)
Window                          WINDOW('Caption'),AT(,,260,110),CENTER,GRAY,FONT('Segoe UI',9)
                                  TEXT,AT(20,20,214),USE(pText)
                                  BUTTON('Close'),AT(195,87),USE(?bClose),STD(STD:Close)
                                END
  CODE
  OPEN(Window)
  ACCEPT
  END
С уважением, ДП
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Непонятный пустой отчёт

Сообщение Игорь Столяров »

Дед Пахом писал(а): 18 Октябрь 2018, 13:48Явно нет, а неявно есть. На мой взгляд, правильно делать как-то так:
Код: Выделить всёTEXT,AT(,,7760,),USE(?txtField),TRN,LEFT,RESIZE
?txtField{prop:text} = xText_
Спасибо ! Код работает, ограничений по длине текста нет, GPF убирает … но проблему не решает.
При передаче в отчёт пустой строки - отчёт просто не создаётся …

Наверно, истина где-то рядом. Правильно использовать указанный Вами "безопасный" способ печати текста,
но всё-равно проверять на пустую строку и дополнять пробелом (или переводом строки) при присвоении ?txtField{prop:text}.
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
RaFaeL
✯ Ветеран ✯
Сообщения: 1376
Зарегистрирован: 24 Март 2009, 17:59
Откуда: НН
Благодарил (а): 7 раз
Поблагодарили: 1 раз
Контактная информация:

Непонятный пустой отчёт

Сообщение RaFaeL »

Дополняй всегда пробелом в конце, проблем то
Аватара пользователя
Дед Пахом
Старичок
Сообщения: 3131
Зарегистрирован: 07 Июль 2005, 16:51
Откуда: Москва, Россия
Благодарил (а): 10 раз
Поблагодарили: 28 раз
Контактная информация:

Непонятный пустой отчёт

Сообщение Дед Пахом »

Игорь Столяров писал(а): 19 Октябрь 2018, 7:18При передаче в отчёт пустой строки - отчёт просто не создаётся …
Я думаю, всё создаётся, но так как деталь пустая, то она и не печатается. Добавьте ещё одну деталь в отчёт, заведомо непустую.
С уважением, ДП
kreator
✯ Ветеран ✯
Сообщения: 4960
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 6 раз
Поблагодарили: 19 раз

Непонятный пустой отчёт

Сообщение kreator »

Нафига печатать отчёт с пустой деталью?
We are hard at work… for you. :)
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7329
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

Непонятный пустой отчёт

Сообщение Игорь Столяров »

kreator писал(а): 19 Октябрь 2018, 12:08Нафига печатать отчёт с пустой деталью?
Что бы показать отсутствие данных для печати. :)
Я немного абстрактно написал, в реале печатается "Нет данных по запросу !". ;)
За теми кто отстал - не возвращаться. (С) Кодекс
Ответить