| Autor |
Beitrag |
baka0815
      
Beiträge: 489
Erhaltene Danke: 14
Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
|
Verfasst: Di 16.09.08 09:51
In dem Programm, das ich hier vorliegen habe, werden Berichte gedruckt. Diese werden entweder mithilfe eines externen Reporting Tools oder mit MS Access angezeigt und gedruckt.
Bis inkl. MS Access 2003 funktioniert das auch wunderbar, nur Access 2007 stellt sich hier ein bisschen an. Access öffnet sich zwar und der Bericht wird auch in dieser Leiste (wo auch die anderen Objekte der DB: Abfragen, etc. angezeigt werden) links markiert, jedoch nicht geöffnet.
Zum Anzeigen des Berichts wird folgender Code verwendet:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| Bericht: string; MSAccess.DoCmd.Close('3', Bericht); MSAccess.DoCmd.SelectObject('3', Bericht, True); MSAccess.DoCmd.OpenReport(Bericht, '2'); MSAccess.DoCmd.SelectObject('3', Bericht, True); MSAccess.DoCmd.RunCommand('2'); ShowWindow(MSAccess.hWndAccessApp, SW_MAXIMIZE); MSAccess.DoCmd.Maximize; ShowWindow (MSAccess.hWndAccessApp, SW_MAXIMIZE); |
Ich habe bereits herausgefunden, dass man in Access 2007 für einen Bericht die Eigenschaft "PopUp" auf True setzen kann, damit dieser automatisch geöffnet wird, dieses habe ich bei [1] wie folgt eingefügt:
Delphi-Quelltext 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11:
| if (access_version = '.12') then begin for I := 0 to MSAccess.Reports.Count.AsInteger - 1 do begin if (MSAccess.Reports.Item(I).Name = Bericht) then begin MSAccess.Reports.Item(I).Popup := True; Break; end; end; end; |
So öffnet sich der Bericht zumindest entsprechend allerdings in einem Fenster von ca. 50x50 Pixel.
Was genau muss ich (wo) einstellen, damit dieser Bericht im Vollbild dargestellt wird?
|
|
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Di 16.09.08 11:16
Moin,
Normalerweise reicht ein DoCmd.OpenReport "DeinBericht", acViewPreview und ein DoCmd.Maximize. Das PopUp hat noch andere Eigenschaften, wenn es modal aufgerufen werden soll, kannst du im OpenReport noch ein acDialog mitgeben. Wenn du den Bericht als acViewNormal öffnest, wird der Bericht nicht angezeigt, sondern gedruckt.
Und was die Selects für einen (Un-)Sinn haben, kann ich nicht nachvollziehen.
_________________ Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
|
|
baka0815 
      
Beiträge: 489
Erhaltene Danke: 14
Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
|
Verfasst: Di 16.09.08 12:03
Was die Selects angeht, weiß ich auch nicht genau, was für einen Zweck die erfüllen. Ich vermute, dass ausprobiert wurde und "so ging's".
Die '2' die beim OpenReport mitgeschickt wird ist laut Microsoft ja eben acViewPreview.
Bei Access bis inkl. 2003 funktioniert's auch prima, nur bei der 2007er Version tut's eben nicht. Access öffnet sich, in der Leiste wird der Bericht ausgewählt und fertig. Wenn man diesen dann manuell öffnet, funktioniert der Bericht, die Daten sind also da.
Könnte es daran liegen, dass nach dem OpenReport noch die Selects gemacht werden?
|
|
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Di 16.09.08 12:15
| Zitat: | View Optionaler AcView-Wert. Die Ansicht, die für den angegebenen Bericht verwendet werden soll.
AcView kann einer der folgenden AcView-Konstanten entsprechen.
acViewDesign
acViewNormal Standard Druckt den Bericht sofort.
acViewPivotChart Nicht unterstützt.
acViewPivotTable Nicht unterstützt.
acViewPreview |
Da unterscheiden sich die Enumerationen aber schon. Wobei ich eigentlich davon ausgehe, dass die alten Werte ihre Gültigkeit behalten.
Wobei ich die 2 mit dem Preview und der Beschreibung als Print Preview sehr merkwürdig finde. Probier doch mal die 5, vielleicht passt das in 07 dann wieder. Damit konnte ich leider noch nicht arbeiten. Lass den Rest doch erstmal weg und versuche nur das OpenReport.
_________________ Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
|
|
baka0815 
      
Beiträge: 489
Erhaltene Danke: 14
Win 10, Win 8, Debian GNU/Linux
Delphi 10.1 Berlin, Java, C#
|
Verfasst: Di 16.09.08 12:23
Das folgende ist von der MS-Seite, die ich verlinkt habe:
Quelltext 1: 2: 3: 4: 5: 6: 7: 8:
| Name Value Description acViewDesign 1 Design view acViewLayout 6 Layout view acViewNormal 0 (Default) Normal view acViewPivotChart 4 PivotChart view acViewPivotTable 3 PivotTable view acViewPreview 2 Print Preview acViewReport 5 Report view |
Die Reihenfolge der Einträge lässt also nicht auf deren Wert schließen.
2 ist also acViewPreview und in meinen Augen richtig.
|
|
ene
      
Beiträge: 779
Erhaltene Danke: 1
Vista, XP, W2K
Delphi, .Net, Deutsch und Englisch
|
Verfasst: Di 16.09.08 12:26
Das nicht, aber 5+6 sind die neuen Einträge, damit sollten wenigstens die alten Werte weiterhin bestehen 
_________________ Wir, die guten Willens sind, geführt von Ahnungslosen, Versuchen für die Undankbaren das Unmögliche zu vollbringen.
Wir haben soviel mit so wenig so lange versucht, daß wir jetzt qualifiziert sind, fast alles mit Nichts zu bewerkstelligen.
|
|
|