Не надо так. Результат (строка произвольной длины) принимается в IDynString и если её длина = 0, то дополняется пробелом.
Нет проблем разрулить ситуацию. Непонятно поведение Clarion Report …
Модератор: Дед Пахом
Не надо так. Результат (строка произвольной длины) принимается в IDynString и если её длина = 0, то дополняется пробелом.
Кларион не причём, ДП объяснил. Null'ы по-любому надо как-то обрабатывать. Вопрос как это сделать правильно и красиво. У Вас ole-контрол со сберовским ActiveХ?
Нет, сначала было вот так:Игорь Столяров писал(а): ↑18 Октябрь 2018, 15:52Я же в первом посте написал, где юзается … Было вот так:
Код: Выделить всё
Report_Slip(Loc:Sber{'GParamString("Cheque")'}) ! Получить и распечать слип-чек эквайринга сбера ...
! X-Отчёт по операциям с платёжными картами
If Not Loc:Sber{'NFun(6002)'} then Report_Slip(Loc:Sber{'GParamString("Cheque")'}).
Use-переменная получает нулевой указатель а ненулевую строку (см. Дед Пахом, выше), и что делать?
Код: Выделить всё
print_str = ''
Report_Slip(print_str)
Код: Выделить всё
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)
. . .
Не согласный я c ним. Косяк это именно Report. Нет проблем ведь с отображением такого же пустого параметра в поле окна,
Да то же самое с окном:Игорь Столяров писал(а): ↑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
Спасибо ! Код работает, ограничений по длине текста нет, GPF убирает … но проблему не решает.
Я думаю, всё создаётся, но так как деталь пустая, то она и не печатается. Добавьте ещё одну деталь в отчёт, заведомо непустую.Игорь Столяров писал(а): ↑19 Октябрь 2018, 7:18При передаче в отчёт пустой строки - отчёт просто не создаётся …
Что бы показать отсутствие данных для печати.kreator писал(а): ↑19 Октябрь 2018, 12:08Нафига печатать отчёт с пустой деталью?