In .NET Application Druckdialog öffnen

Dieses Thema im Forum ".NET (sagede.* DLLs)" wurde erstellt von Arne Drews, 18. April 2019.

  1. Arne Drews

    Arne Drews Neues Mitglied

    Hallo,

    Es gibt viele Threads zum Thema Belegdruck, aber ich möchte es etwas anders machen.

    Ich entwickle kleine Tools, die in reinem .NET, ausserhalb der OL laufen.
    Aktuell würde ich gerne ein Tool entwickeln, mit dem der Benutzer mit minimalem Aufwand Artikel umlagert und für diese Umlagerung einen Packzettel auf einem vorbestimmten Drucker auswirft.

    Warum das Ganze?
    Wir haben einen Store bekommen und arbeiten dort mit einer Kassensoftware, die auch Artikel verkaufen kann, die nicht im Store-Lager verfügbar sind, im Haupt-/Versandlager nebenan allerdings schon. In dem Fall kommt bei Kaufabschluss auf einem vordefinierten Drucker der entsprechende Packzettel mit dem Artikel, der vom Hauptlager zum Store gebracht werden muss.

    Das Problem ist, dass diese Funktion nicht mit Handelsstücklisten zurecht kommt, wenn deren Stücklistenelemente nicht im Store-Lager verfügbar sind. Da ich die OfficeLine/Sage 100 im laufenden Kundenverkehr für zu langsam halte, ist meine Idee, ein kleines Tool auf dem Kassen-PC zur Verfügung zu stellen, mit dem man über eine einfache Auswahl der Handelsstückliste die entsprechenden Mengen der Stücklistenelemente in das Store-Lager buchen kann, um sie dann dem Kunden über die Kassensoftware problemlos verkaufen zu können.

    Bis dahin ist das kein Problem, ich baue eine Sitzung in der .NET Application auf und führe eine interne Umbuchung aus. Nun muss aber jemand im Hauptlager auch Bescheid bekommen, dass diese Artikel in den Store gebracht werden müssen. Also habe ich vor, im Idealfall nach der Umbuchung einen Beleg zu erstellen, der weder Lager- oder FiBu-Buchungen durchführt, sowie keinen Einfluß auf Statistiken oder Gleichgewicht hat und im Anschluß diesen auf dem vordefinierten Drucker auszugeben.

    Die benötigte Belegart habe ich schon angelegt, weil ich die für andere Aktionen bereits verwende.

    Mir geht es nun wie gesagt darum, aus einer .NET Application den Druckprozessdialog für den gerade erstellten Beleg aufzurufen.

    Kurz zusammengefasst:
    Kassierer/Benutzer ruft das Tool auf => wählt die Handelsstückliste aus => interne Prozesse zur Umbuchung und Beleganlage werden im Hintergrund verarbeitet => Druckdialog öffnet sich => Klick auf OK.

    Der entsprechende Druckprozess ist vorhanden und der Belegart zugewiesen und der Benutzer hat in den Berichtsdruck-Konfigurationen den korrekten Drucker hinterlegt.

    Da es sich aber scheinbar noch um ein Access-Formular handelt, vermute ich bereits, dass ich mir etwas anderes einfallen lassen muss.

    Aber vielleicht hat ja jemand einen Tipp dazu?

    EDIT: Ich habe vergessen zu erwähnen, dass es sich um die Sage 100 (8.0) mit .NET-Printing handelt. Ein Report für den Packzettel existiert bereits.

    Danke und schöne Ostertage schonmal ;-)
    Gruß Arne
     
    Zuletzt bearbeitet: 19. April 2019
  2. bscheffer

    bscheffer Neues Mitglied Mitglieder

    Hallo Arne,

    ist dein Problem noch aktuell?

    Den Druckprozess wirst du selbst ermitteln müssen, mir ist da kein .NET-Dialog bekannt. Prinzipiell ist das an sich ja recht einfach:
    Code:
    SELECT KHKDruckprozesse.Druckprozess, KHKDruckprozesse.Bezeichnung FROM KHKDruckprozesse
        INNER JOIN KHKDruckprozesseBelegarten
            ON KHKDruckprozesse.Druckprozess = KHKDruckprozesseBelegarten.Druckprozess
            AND KHKDruckprozesse.Typ = KHKDruckprozesseBelegarten.Typ
    WHERE KHKDruckprozesseBelegarten.Belegkennzeichen = '<X>' AND KHKDruckprozesse.Typ = 4000
    
    SELECT * FROM KHKDruckprozesseDruckbelege WHERE Druckprozess = <Y> AND Typ = 4000
    Belegkennzeichen und Druckprozess entsprechend eintragen, dann solltest du die Druckbelege schon haben.

    Analog funktioniert das auch mit der erw. Druckersteuerung über die Tabellen mit der 2 am Ende (ab S100 8.1)

    Anschließend kannst du aber die Druckengine aus .NET heraus aufrufen, das wiederum ist im Entwicklerhandbuch ab Seite 351 ganz gut beschrieben.

    Gruß
    Björn
     
  3. Arne Drews

    Arne Drews Neues Mitglied

    Moin Björn,

    Danke für die Antwort! Egal ob aktuell oder nicht, ich nehme jeden Hinweis zu jeder Zeit gerne an. :)

    Den Druckprozess kenne ich ja, den brauche ich nicht suchen.
    Entwicklerhandbuch muss ich mir noch mal aus dem WDB besorgen, danke für den Hinweis.

    Gruß Arne
     

Diese Seite empfehlen