Hi - vielleicht nicht direkt eine Lösung Deines Problems, aber ein anderer Denkansatz:
Schaff Dir eine Tabelle "Rechnungen". Dort erzeugst Du immer dann einmalig einen neuen Datensatz, wenn eine neue Rechnung erstellt wird. Jedem Datensatz gibst Du ein Feld "Printed" vom typ Boolean mit. Den Ausdruck der Rechnung entkoppelst Du von der Entsprechung in der Datenbank. Geht der Ausdruck schief, kannst Du sie einfach nochmals aus der Datenbank auslesen und ausdrucken. Hat der Ausdruck geklappt, setzt Du das Feld "Printed" auf "True". Will danach ein Anwender diese Rechnung nochmals drucken, kennzeichnest Du diesen Ausdruck einfach mit "Kopie" - Glücklich ist der Anwender
Grüße