[gelöst] Report Ausdrucke zählen

9. Mai 2007 20:42

Hallo zusammen,

gibt es eine Möglichkeit die Anzahl der Ausdrucke eines Reports
zu zählen ? Ähnlich wie z.B "Anzahl gedruckt" in Rechnung oder LS
Hintergrund: oft werden mit mehr oder weniger großen Aufwand Reports
erstellt, die am Ende dann doch nicht benutzt werden.

Gruß Max
Zuletzt geändert von Max am 10. Mai 2007 21:23, insgesamt 1-mal geändert.

9. Mai 2007 22:13

Da du ja schon eine "Inspirations-Vorlage" gefunden hast, ist dir auch ein Lösungsweg bekannt. (Spontan fällt mir kein anderer akzeptabler Weg ein.)
Sofern eure Lizenz ein direktes Bearbeiten der Datensätze erlaubt, kommt ihr auch ohne den Umweg über eine Codeunit (mit den entsprechend gesetzten Permissions) aus.
(Sofern eure Lizenz nur ein indirektes "Bearbeiten"-Recht auf die entsprechende Tabelle gewährt, muss der Umweg über eine Codeunit mit den entsprechenden Permissions genommen werden. Dies kann nur von einem MBSP durchgeführt werden.)

10. Mai 2007 08:33

Hallo Max,

für Reports die ausgedruckt werden können gibt es noch eine universelle Möglichkeit:

Du legst eine neue Tabelle für die Protokollierung an. Enthalten sind z. B. die Felder Datum, Zeit, User und ReportID.

Nun sorgst Du im Trigger FindPrinter der Codeunit 1 dafür, dass die Tabelle entsprechend gefüllt wird. Dieser Trigger wird für alle druckbaren Reports (ProcessingOnly = Nein) durchlaufen.

Gruß
Frank

10. Mai 2007 08:34

Guten Morgen,

ich möchte die Datensätze aber nicht verändern.
Es geht hierbei uns Statistik Reports, die sich Daten aus x verschiedenen
Tabellen zusammensuchen.

Gruß

10. Mai 2007 08:48

Dann passt ja vielleicht meine Lösung. Sollten diese Statistik Reports wirklich mal nicht ausdruckbar sein sondern z. B. eine Excel-Datei schreiben, dann muss halt in diesem Report ein Code-Stück, dass die Tabelle füllt.

Gruß
Frank

10. Mai 2007 09:07

Hallo Max,

ähnliches habe ich auch.

Ich habe mir eine Reportig Tabelle erstellt.
Das erste Feld ist vom Typ "Option", damit Filtere ich für welchen Bereich die Zeile ist.
z.B. Report, Form, usw.
Alle weiteren Felder Dokumentieren, wer wann was womit gemacht hat.
Gruß Mikka

** Edit bey Mikka **
Oh,
ich habe die ganzen neuen Postings nicht gesehen :roll:
Franks posting ist Identisch mit meinem!

10. Mai 2007 14:43

Hallo,

Danke für die Antworten. Ich habe mir jetzt eine Tab nach dem Vorbild von Frank erstellt. Befüllen lasse ich diese aber direkt aus dem Report. ich glaube die würde sonst schnell explodieren, wenn die jeden Ausdruck protokolliert. ich lege ja nur Wert auf bestimmte Report´s.
Das Befüllen klappt auch soweit.
Problem: ich kann die BerichtsID nicht auslesen.
Hat jemand einen Code bereit, wei ich die in eine Variable bekomme ?

Gruß Max

10. Mai 2007 15:01

Wenn Du das sowieso direkt aus dem Report machen lässt, dann kannst du dort auch direkt die Nummer eintragen.
Gilt ja dann nur für diesen.....

10. Mai 2007 15:01

In der CodeUnit 1 wird mit der ReportID geabeitet, reicht die nicht?
Oder arbeitest du von anderer Stelle?

Dann müsstest du in jeden gewünschten Report die ID manuell in die Tabelle schreiben lassen.

Für Tabellen kenne ich FILEDNAME und FIELDCAPTION,
bei einem Report wüste ich das nicht!

@Frank
Das mit der CodeUnit ist mir bisher nicht aufgefallen, aber eine
Klasse Idee :-)
Gruß Mikka

10. Mai 2007 15:35

mikka hat geschrieben:Dann müsstest du in jeden gewünschten Report die ID manuell in die Tabelle schreiben lassen.

Für Tabellen kenne ich FILEDNAME und FIELDCAPTION,
bei einem Report wüste ich das nicht!


Report-ID := REPORT::"Reportname"

10. Mai 2007 18:19

Natalie hat geschrieben:Report-ID := REPORT::"Reportname"


woher weiß der Report dann seinen Namen?
Bring einen Report mal dazu, zu sagen, wie er heißt und wo er wohnt..... ;-)

10. Mai 2007 19:04

Ich habe direkt auf die Frage geantwortet, ohne den Rest zu beachten ;-) - manchmal (aber nur manchmal...) ist das ein Schuss ins Schwarze.

10. Mai 2007 19:31

Max hat geschrieben:Befüllen lasse ich diese aber direkt aus dem Report.
[...]
Problem: ich kann die BerichtsID nicht auslesen.
Hat jemand einen Code bereit, wei ich die in eine Variable bekomme?
Natalie hat geschrieben:Report-ID := REPORT::"Reportname"
Michael Schumacher hat geschrieben:woher weiß der Report dann seinen Namen?

Bis Version 2.6 gibt es keine Möglichkeit, die eigene Objekt-ID zu ermitteln, da müsste man dann zwangsläufig Natalie's Lösung verwenden.
Ab Runtime-Version NAV3.x kennt Navision zumindest CurrReport.OBJECTID(FALSE), mit dem man indirekt die Report ID ermitteln kann.
Der Rückgabewert ist ein String (z. B. Report 54711).

Mit
EVALUATE(IntObjID,DELCHR(CurrReport.OBJECTID(FALSE),DELCHR(CurrReport.OBJECTID(FALSE),'0123456789')));
hast du dann den rein nummerischen Teil dieses Strings in der Integer-Variablen IntObjID.

Diese Zeile enthält drei Programmzeilen in einer:
EVALUATE(IntObjID,DELCHR(CurrReport.OBJECTID(FALSE),DELCHR(CurrReport.OBJECTID(FALSE),'0123456789')));
  1. Lösche alle nummerischen Zeichen aus dem Rückgabewert von CurrReport.OBJECTID(FALSE)
    'Report 54711' -> 'Report '
  2. Lösche die Zeichen des Rückgabewertes aus 1. aus dem Rückgabewert von CurrReport.OBJECTID(FALSE)
    'Report 54711' -> '54711'
  3. Evaluiere den Rückgabewert von 2. in eine Integer-Variable
    '54711' -> 54711
Alternativ kann man auch
EVALUATE(IntObjID,COPYSTR(CurrReport.OBJECTID(FALSE),7));
verwenden, wobei ich jetzt nicht weiß, ob der Textteil "Report " sprachabhängig ist, daher würde ich die erste - wenn auch etwas umständlichere - Variante verwenden.

10. Mai 2007 21:22

Leute,.... vielen Dank
ich hab´s mit Natalie´s Variante hinbekommen
Einfach aber wirkungsvoll

Schönen Abend noch

11. Mai 2007 09:32

Natalie hat geschrieben:manchmal (aber nur manchmal...)

....haben Frauen ein bisschen haue gern ;-)
(Bekanntes Lied von den Doktoren)
Gruß Mikka

11. Mai 2007 09:36

Genau darauf habe ich angespielt.... :-)

11. Mai 2007 09:39

...Natalie du bist raus...

Jetzt habe ich das Lied in den Ohren :-)
Gruß Mikka