6. Juli 2018 13:02
6. Juli 2018 16:12
FindPrinter(ReportID : Integer) : Text[250]
CLEAR(PrinterSelection);
//P01 suche definierten Standortdrucker. Wird keiner gefunden, geht es weiter mit der Standardprogrammierung. >>>
LocationPrinter := FindPrinterByLocation(ReportID);
IF LocationPrinter <> '' THEN
EXIT(LocationPrinter);
PrinterSelection.SETCURRENTKEY("User ID","Report ID");
IF NOT FindPrinterByNavStandard(PrinterSelection,USERID,ReportID) THEN
IF NOT FindPrinterByNavStandard(PrinterSelection,'',ReportID) THEN
IF NOT FindPrinterByNavStandard(PrinterSelection,USERID,0) THEN
IF FindPrinterByNavStandard(PrinterSelection,'',0) THEN;
// Der GET Aufruf aus dem Standard kann nicht mehr verwendet werden, da ein neuer Primärschlüssel existiert.
// Stattdessen wird die Funktion FindPrinterByNavStandard aufgerufen in der mittels SETRANGE gefiltert wird.
// Siehe Oben über diesem text.
//
//IF NOT PrinterSelection.GET(USERID,ReportID) THEN
// IF NOT PrinterSelection.GET('',ReportID) THEN
// IF NOT PrinterSelection.GET(USERID,0) THEN
// IF PrinterSelection.GET('',0) THEN;
//
// P01 <<<
EXIT(PrinterSelection."Printer Name");
FindPrinterByLocation(ReportID : Integer) : Text[250]
//P01 RZ
CLEAR(PrinterSelection);
CLEAR(Printer);
//Zurück zum Standard wenn User nicht im User Setup
IF NOT UserSetup.GET(USERID) THEN
EXIT('');
//Zurück zum Standard wenn "Standort" im User Setup leer ist
IF UserSetup.Standort = '' THEN
EXIT('');
//Suche Druckernamen in Tabelle 78
PrinterSelection.SETCURRENTKEY(Standort,"User ID","Report ID");
IF NOT PrinterSelection.GET(UserSetup.Standort,USERID,ReportID) THEN
IF NOT PrinterSelection.GET(UserSetup.Standort,'',ReportID) THEN
IF NOT PrinterSelection.GET(UserSetup.Standort,USERID,0) THEN
IF PrinterSelection.GET(UserSetup.Standort,'',0) THEN;
//Zurück zum Standard wenn kein Druckername in Tabelle 78 gefunden
IF PrinterSelection."Printer Name" = '' THEN
EXIT('');
//Prüfe ob Druckername genauso in der Systemtabelle "Printer" existiert.
//Andernfalls: Suche ersten Drucker welcher mit dem Druckernamen aus Tabelle 78 anfängt
//Dies ist nötig, da ThinPrint Drucker nach dem eigentlichen Druckernamen noch verschiedene Dinge anhängen (Benutzername und Druckernr.)
Printer.SETRANGE(Name,PrinterSelection."Printer Name");
IF Printer.FINDFIRST THEN
EXIT(PrinterSelection."Printer Name")
ELSE BEGIN
CLEAR(Printer);
//Printer.SETFILTER(ID,'%1..',PrinterSelection."Printer Name");
Printer.SETFILTER(ID,'%1',PrinterSelection."Printer Name" + '*');
IF Printer.FINDFIRST THEN
EXIT(Printer.ID);
END;
EXIT('');
FindPrinterByNavStandard(VAR PrinterSelection : Record "Printer Selection";UserID : Code[50];ReportID : Integer) : Boolean
//P01 RZ
CLEAR(PrinterSelection);
PrinterSelection.SETRANGE("User ID",UserID);
PrinterSelection.SETRANGE("Report ID",ReportID);
IF PrinterSelection.FINDFIRST THEN
EXIT(TRUE);
EXIT(FALSE)
11. Juli 2018 13:34