Beim ILLDataProvider ist die Druckschleife ja relativ simpel gehalten:
nRet = ::LlPrint(hJob);
while (nRet == LL_WRN_REPEAT_DATA)
{
nRet = ::LlPrint(hJob); // magic happens in CPrintDataProvider
}
Wenn ich jetzt während des Druckens eines Berichts die Variablen neu definieren möchte, wie gehe ich dazu vor? Kann ich z.B. mit LlDbSetMasterTable sozusagen einen Reset auslösen und die Variablen neu definieren? Also, dass die Druckschleife so aussieht (Pseudocode):
LlPrintWithBoxStart(…)
foreach(MasterTable : MasterTables)
{
LlDbAddTable(MasterTable)
LlDbSetMasterTable(MasterTable)
[… Defines etc. …]
nRet = ::LlPrint(hJob);
while (nRet == LL_WRN_REPEAT_DATA)
{
nRet = ::LlPrint(hJob); // magic happens in CPrintDataProvider
}
}
Oder muss ich die ganze Logik irgendwie in den virtuellen Methoden des ILLDataProvider wie z.B. OpenTable() unterbringen? Da hätte ich keine richtige Vorstellung, wie das funktionieren soll.
Wäre super, wenn mir da jemand einen Tipp geben könnte. Vielen Dank!