[gelöst] Drucken über einen NAS

6. Juni 2007 00:20

Hi Leute,

ich würde gern über einen NAS Rechnungen drucken können und als PDF.

Der PDFCreator funktioniert nicht!

Folgendes gebe ich im Code an:
Code:
SalesHeader.RESET;
SalesHeader.SETRANGE("Document Type",SalesHeader."Document Type"::Order);
SalesHeader.SETRANGE("No.",'04200024');
IF SalesHeader.FIND('-') THEN
  REPORT.RUN(50089,FALSE,FALSE,SalesHeader);

GEHHHHHTTTT NICH :cry:

Code in "Code-Tags" abgelegt. Gruß Mikka
Zuletzt geändert von svenessar am 6. Juni 2007 21:05, insgesamt 1-mal geändert.

6. Juni 2007 08:13

1. Wenn du wirklich nur einen (!) Autrag drucken möchtest, würde ich diesen Code hier im Vorfeld verwenden:

Code:
IF SalesHeader.GET(SalesHeader."Document Type"::Order, '04200024') THEN
 ...


2. Als Test würde ich den Report mit Vorschaufenster öffnen. Stoße ihn manuell an; möglicherweise liegt der Fehler im Report selber.
Code:
REPORT.RUN(50089,TRUE,FALSE,SalesHeader);


Sonst: Viel Erfolg beim Debuggen ;-)
Ich würde dann als nächstes tippen, dass das GET ein FALSE liefert ...
Zuletzt geändert von Natalie am 6. Juni 2007 08:35, insgesamt 1-mal geändert.

6. Juni 2007 08:32

Mit NAS ist die Verwendung von REPORT Funktionen nicht möglich:

Navision Application Server
No Graphical User Interface
As there is no graphical user interface (GUI) on Navision Application Server, there are some limitations on the C/AL code that can run on the application server. For more information on this, see the GUIALLOWED function.

The following functions are available when running Navision Application Server:

All system functions except for the GUI related functions, such as DIALOG and CONFIRM.

OCX and AUTOMATION functions.

CODEUNIT functions.

FILE functions.

The following functions are not available in Navision Application Server:

FORM functions.

REPORT functions.

Dataport functions.

Error Logging
When you run C/AL code with triggers containing functionality that invokes GUI, an error occurs. A corresponding error message is posted in the NT event log. For more information on message logging, see the manual Installation & System Management: Microsoft Business Solutions-Navision Application Server.

Calls to the following functions will create errors:

FORM, DIALOG and CONFIRM: an error is shown on screen when the application server runs from the Microsoft DOS command line. When Navision Application Server runs as a service, an error message is logged.

MESSAGE and ERROR: an error message is logged.

ATTENTION
REPORT and DATAPORT functions are not available. OCX and AUTOMATION functions are available. However, if they invoke GUI functions, they may cause Navision Application Server to stop running. The only way to restart the application server, is to reboot.

Starting Up Navision Application Server
Before you can successfully start a Navision Application Server, you must create a startup trigger on codeunit 1 with ID number 99. The trigger must have a parameter of type Text with a maximum length of 1024 characters. This parameter is passed to the codeunit trigger, which is always executed when Navision Application Server starts up. This trigger is not defined in the standard application. The interpretation of the text string is the responsibility of the C/AL programmer. If you do not supply the parameter, the Navision Application Server startup procedure fails.

Communication between Navision Client and Navision Application Server
To establish communication between a Navision client and Navision Application Server, you need to start a timer. You can make the application server start a timer that triggers an event at a certain interval. When Navision Application Server receives the event, it can check the database for unprocessed tasks, such as an order.

A user that runs a Navision client can put, for example, a 'send order' task in the task table in the database. Navision Application Server can then check the database for this task.

Example
This is an example of what the startup trigger can look like. First, the trigger instantiates a communication component. Then, if the parameter passed equals 'Test,' the application server is instructed to also look in the task table. The 'Test' parameter starts a timer.

InitComCom.RUN;
CASE StartupParm OF
'Test': InitializeTaskTable.RUN;
END;
C/SIDE Reference Guide

Du musst eine Variabe vom Typ "Report" definieren, um diesen dann zu starten:
Code:
Globals:
MyInvoice, Type: Report 50089

SalesHeader.RESET;
SalesHeader.SETRANGE("Document Type",SalesHeader."Document Type"::Order);
SalesHeader.SETRANGE("No.",'04200024');
IF SalesHeader.FIND('-') THEN BEGIN
  MyInvoice.SETTABLEVIEW(SalesHeader);
  MyInvoice.USEREQUESTFORM(FALSE);
  MyInvoice.RUNMODAL;
END;



P.S: Sind wir hier nicht im falschen Forum? Wir reden doch über NAV?

6. Juni 2007 08:34

stryk hat geschrieben:P.S: Sind wir hier nicht im falschen Forum? Wir reden doch über NAV?


Falls das Forum doch richtig gewählt worden ist (was dem Navision Application Server entgegen stehen würde), dann wäre ich mal wieder drauf reingefallen!!!!!

6. Juni 2007 08:41

dann wäre ich mal wieder drauf reingefallen!!!!!

dito :lol:

6. Juni 2007 09:21

Danke Stryk, für die Information :-)
(war mir nicht aufgefallen, das es der falsche Forenbereich war..)

[Beitrag aus dem Forum Dynamics AX nach Dynamics NAV 4.xx verschoben, ]

Gruß, Mikka
MSDynamics.de-Team

[gelöst] Lösung gefunden

6. Juni 2007 21:04

Vielen Dank Leute,

der fehler war, dass ich die Installation des PDFCreators für einen Clienten benutzt habe.

Die Serverinstallation bietet die Möglichkeit, dass man per NAS drucken kann ohne das Fehler entstehen.

Den Code musste ich demzufolge auch nicht ändern.

Vielen Dank

25. Juli 2007 13:59

Wen es noch interessiert:
Als Partner hat man Zugriff auf diesen interessanten MS-Knowledge-Base-Artikel:
How to use Navision Application Server as a Printing Server