Макроязык можно применять и в обычных формах печати, что придает дополнительную гибкость по настройке форм печати и открывает дополнительные возможности (в частности, раньше в формах печати сложно было использовать массивы значений).
Если в форме печати необходимо вставить блок кода, написанный на макроязыке, необходимо ограничить вставляемый блок кода на макроязыке строками $BEG_SCRIPT
и $END_SCRIPT
:
$BEG_SCRIPT строки кода на макроязыке $END_SCRIPT
Больше никаких дополнительных действий выполнять не требуется.
Следует сделать несколько замечаний по поводу использования макроязыка в формах печати:
В блоке, написанном на макроязыке, доступны все переменные, определенные в печатной форме выше данного блока. Но обратное утверждение не верно, то есть, если в блоке на макроязыке описаны какие-либо новые переменные, то их значения не будут доступны в остальных местах формы печати.
Вывод строки на печать можно осуществить непосредственно из блока на макроязыке. Для этого достаточно воспользоваться функцией print( LPSTR str)
(см. описание зарегистрированных функций в приложении 1).
Использовать обычные функции приема в том виде, в каком их привыкли использовать в формах печати, в блоке, написанном на макроязыке, к сожалению, пока нельзя. Можно использовать только те функции приема, которые зарегистрированы, при этом формат вызова у этих функций будет следующим: name_func(LPSTR Arg, LPSTR Rez, int W, int A)
, где Arg
– строка параметров передаваемых в функцию, Rez
– строка, куда будет помещен результат работы функции, W
– ширина для строки результата, A
– точность для строки результата (имеет смысл, если результат – числовое значение с плавающей точкой).