Hola lirio
Veamos, vamos por partes.
El tema del OnPrint y la comprobacion a nulo
Si tu haces algo como...
Código:
if (QRDBText1.DataSet.FieldByName('ElQueSea').AsString = '') or
(QRDBText1.DataSet.FieldByName('ElQueSea').IsNull then
// campo nulo
deberia funcionarte
Para el tema de las variables globales. Si son SOLO globales esa unit, se acostumbran a poner en la clausula private del form, pero si quieres que sean accesibles desde otro form, tienes que ponerlas en la clausula public del form
Espero te sirva