[Gelöst] C/A PC des Users

22. Juni 2016 11:20

Hallo zusammen

Leider stehe ich wieder mal am Berg :-D

Wie kann ich beim Druck einer Rechnung feststellen, von welchem PC gedruckt wird.
(es darf nicht vom jedem PC Rechnungen gedruckt werden)

Kann ich das per Code oder im Object Designer feststellen bzw. prüfen?

Danke schon mal für jeden Tipp.

Markus
Zuletzt geändert von FlyingHorse am 27. Juni 2016 13:11, insgesamt 1-mal geändert.

Re: C/A PC des Users

22. Juni 2016 11:29

Kann ich das per Code oder im Object Designer feststellen bzw. prüfen?


Nicht wirklich. Das wird sehr aufwändig, und hängt auch von deiner Umgebung ab. Wenn du mit einem Terminalserver arbeitest, ist der Rechner immer der gleiche.

Die einzige Möglichkeit das zu steuern funktioniert über den Benutzer. Arbeitest du mit der Warteschlange könnte auch das ein Problem werden.

Gruß Fiddi

Re: C/A PC des Users

22. Juni 2016 11:46

Hallo Fiddi

Danke für deine Antwort.

Ich dachte an folgenden Lösungsansatz:

Wenn im NAV per Drucken die Rechnung (Formular) ausgelöst, gestartet wird, so prüft zuerst ein Code welcher PC den Befehl erteilte.
Nur weiss ich nicht wo ich das machen muss. Ev. gleich beim Event Report erzeugen?
Wenn ja, wie?

Re: C/A PC des Users

22. Juni 2016 11:52

Du kannst in der Sessiontable schauen mit welchem Computer die Session gestartet ist.
Ist natürlich nur bedingt sicher, da der Computername auch geändert werden kann.

Grüße
Ted

Re: C/A PC des Users

22. Juni 2016 12:47

Üblicherweise macht man solche Einschränkungen anhand der Benutzer-ID und nicht hardwareabhängig. Was spricht denn dagegen, das so zu prüfen?

Re: C/A PC des Users

22. Juni 2016 14:21

Dagegen spricht
a) die Lizenz für die ESR-Schrift (OCR-B1) ist nur auf zwei Computern installiert (2 Lizenzen)
b) das ERP kann (könnte) von jedem Computer aus Rechnungen drucken
c) Jeder Benutzer könnte sich an den zwei PC's anmelden. Es dürfen theoretisch auch alle Rechnungen drucken.

Deshalb war meine Idee dies anhand vom PC Namen zu tun. Das das nicht 100% sicher ist, ist klar aber egal. Es geht ja nicht um ein sicherheits-relevantes Thema. Sonden nur um ein praktisches.
Die anderen PC's sollten eine Msgbox bekommen mit: RE Drucken nicht möglich - bitte im Sekretariat machen. z.B. :-)

@Ted
Wie könnte den so ein Code aussehen?

Re: C/A PC des Users

22. Juni 2016 14:43

So wie hier beschrieben kann man den Client (am Terminalserver) bzw. Computernamen ermitteln:
http://www.dynamics.is/?p=282

Re: C/A PC des Users

22. Juni 2016 14:52

Kowa hat geschrieben:So wie hier beschrieben kann man den Client (am Terminalserver) bzw. Computernamen ermitteln:
http://www.dynamics.is/?p=282

so "kompliziert" muss man das ganze gar nicht gestalten. es gibt in der Tabelle "Active Session" das Feld "Client Computer Name".


Zum Thema ESR:
Es existiert eine freie Schrift "ocrb10", diese wurde bei uns zumindest von der Kantonalbank als auch der Deutschen Bank abgenommen.
Verhindert natürlich nicht, dass die Schrift auf dem Computer liegen muss von dem gedruckt wird.

Grüße
Ted

Re: C/A PC des Users

22. Juni 2016 15:15

Ted hat geschrieben:so "kompliziert" muss man das ganze gar nicht gestalten. es gibt in der Tabelle "Active Session" das Feld "Client Computer Name".

Das stimmt, aber das funktioniert eben nicht am Terminalserver. Da steht dann nur der gleiche Servername samt Dömane für alle User.

Re: C/A PC des Users

22. Juni 2016 15:47

Falls unter einer Terminalserverumgebungen weitere Informationen benötigt werden, kann auch PowerShell mit einem Zusatzmodul weiterhelfen:
Terminal Services PowerShell Module
Aufbauend auf dem Modul sogar mit GUI:
PowerShell GUI - LazyTS (Terminal Services Management)

Re: C/A PC des Users

22. Juni 2016 16:03

FlyingHorse hat geschrieben:Dagegen spricht
a) die Lizenz für die ESR-Schrift (OCR-B1) ist nur auf zwei Computern installiert (2 Lizenzen)
...

wie verhält es sich denn lizenztechnisch, wenn die Rechnung über den NAS gedruckt wird? Dann bräuchtest du die Schrift nur auf dem Server zu installieren.

Re: C/A PC des Users

22. Juni 2016 16:35

Hallo zusammen

Um auf den Drucker zu installieren gibt es eine andere Lizenz :lol:
Was wie der Bund :lol:

Wir haben keinen Terminalserver. Nur Clients an einem DC.

Ich werde mal die Tipps weiter verfolgen...

danke schon mal bis hierher
Markus

Re: C/A PC des Users

22. Juni 2016 16:56

Also... das ging schneller als ich gedacht habe :-)

Ich kann den Clientcomputername auf dem ESR anzeigen.
Wie kann ich jetzt beim Start des Reports den Clientcomputername abfragen, eine Msgbox ausgeben und gegebenenfalls den Report sofort wieder beenden?

Re: C/A PC des Users

22. Juni 2016 17:23

Wenn kein Terminalserver im Einsatz oder geplant ist, reicht der "kleine Dienstweg" über die "Active Session"-Tabelle;
Code:
ActiveSession.SETRANGE("User ID",USERID);
ActiveSession.FINDFIRST;
MESSAGE('Computername: %1',ActiveSession."Client Computer Name");

Re: C/A PC des Users

24. Juni 2016 09:22

Hallo Kowa

Herzlichen Dank.
Ich habe es soweit hinbekommen, dass ich die Abfrage und die Messagebox ausgeben kann.
Wie kann ich jetzt den Report vorzeitig beenden?
Das Druck-Fenster erscheint immer noch.
Habe schon quite, Exit versucht..

Re: C/A PC des Users

24. Juni 2016 10:22

Bei Abbruchabfragen immer CONFIRM weil MESSAGE-Fenster immer erst nach der Verarbeitung hochkommen.
Den Code im OnInitReport-Report (nicht OnPreReport, weil dann vorher die RequestPage dazwischenfunkt) einbauen, CurrReport.QUIT oder einfach Abbruch mit ERROR.

Re: C/A PC des Users - gelöst

24. Juni 2016 11:11

perfekt.
Herzlichen Dank.
Jetzt klappt alles.

Danke allen.
Gruss Markus