Страница 2 из 2

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

Добавлено: 18 Октябрь 2018, 16:51
Игорь Столяров
kreator писал(а): 18 Октябрь 2018, 16:41Придётся второй if not писать
Не надо так. Результат (строка произвольной длины) принимается в IDynString и если её длина = 0, то дополняется пробелом.
Нет проблем разрулить ситуацию. Непонятно поведение Clarion Report … :(

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

Добавлено: 18 Октябрь 2018, 17:22
kreator
Игорь Столяров писал(а): 18 Октябрь 2018, 16:51 Непонятно поведение Clarion Report … :(
Кларион не причём, ДП объяснил. Null'ы по-любому надо как-то обрабатывать. Вопрос как это сделать правильно и красиво. У Вас ole-контрол со сберовским ActiveХ?

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

Добавлено: 18 Октябрь 2018, 17:48
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)
        . . .

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

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

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

Добавлено: 18 Октябрь 2018, 18:00
Дед Пахом
Игорь Столяров писал(а): 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

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

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

Наверно, истина где-то рядом. Правильно использовать указанный Вами "безопасный" способ печати текста,
но всё-равно проверять на пустую строку и дополнять пробелом (или переводом строки) при присвоении ?txtField{prop:text}.

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

Добавлено: 19 Октябрь 2018, 11:41
RaFaeL
Дополняй всегда пробелом в конце, проблем то

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

Добавлено: 19 Октябрь 2018, 11:59
Дед Пахом
Игорь Столяров писал(а): 19 Октябрь 2018, 7:18При передаче в отчёт пустой строки - отчёт просто не создаётся …
Я думаю, всё создаётся, но так как деталь пустая, то она и не печатается. Добавьте ещё одну деталь в отчёт, заведомо непустую.

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

Добавлено: 19 Октябрь 2018, 12:08
kreator
Нафига печатать отчёт с пустой деталью?

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

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