U pitanju su sledeći koraci:
1) Napravim rekordset.
2) Imam tabelu sa 10.000 rekorda i jednim fildom. Pomoću SQL upita uzimam iz te tabele onoliko rekorda koliko ima prethodno kreirani rekordset i sa tim upitom pokrećem OpenReport komandu.
3) Izveštaj ima neke unboundovane fildove. Njih punim u Detail_Print eventu sa podacima iz rekordseta. Tako dobijamo izveštaj koji je uglavnom napunjen dinamički.
Dešava se da dobijam korektni izveštaj, ali on neće da se štampa kako treba. Ako ga štampam direktno (acViewNormal) onda se odštampa kako treba. Ako ga otvorim u Preview-u, on se otvori kako treba ali posle toga nastaju sledeći problemi prilikom štampanja:
- Prvih n-1 rekorda se ne odštampa, a poslednji rekord se pojavljuje n puta (Windows XP i Access 2003).
- Uopšte neće da se štampa (Windows 7 i Access 2010).
- Da se izveštaj delimično odštampa, ali na poslednjoj stranici piše tekst (Windows 7 i Access 2010):
ERROR: syntaxerror
OFFENDING COMMAND: --nostringval--
STACK:
Ono što sam probao bez uspeha je:
- Da report inicijalno bude (ili ne bude) baundovan za ovu tabelu sa 10000 rekorda.
- Da report ima (ili nema) jedan boundovan fild iz te tabele od 10000 rekorda.
- Da rekordset bude DAO tipa dobijen boundovanjem forme (kao u atačovanom fajlu) ili da koristimo ADO diskonektovani rekordset dobijen preko VBA.
- Da napravimo novi fajl u kome ću rekonstruisati čitav proces. Ni ovo ne pomaže. Znači, ista stvar i sa MDB i sa ACCDB.
U prilogu je primer. U ovom primeru tblReportDriver je tabela sa 10000 rekorda. tblPodaci je tabela na osnovu koje je napravljen rekordset.
Forma frmPodaci sadrži dugme koje pokreće izveštaj u ReportView-u. Kada se izveštaj otvori u ReportView-u on izgleda kako treba, ali neće da se štampa.
Znači, kada otvorite atačovani fajl u formi frmPodaci kliknete na dugme. Otvoriće se izveštaj koji će OK izgledati. Probajte da odštampate u PDF virtuelnom štampaču i tada će se pojaviti neki od navedenih problema.
Da li ima leka?