Stapeldruck über das Aufgabencenter einbinden

SPLH

Mitglied
Hi,
Per Aufgabencenter lasse ich eine Liste der Belege aufrufen welche freigegeben sind zur Übergabe an den Stapeldruck. Diese will ich auswählen und per Rechtsklick an den Stapeldruck senden sowie einen Eintrag in die DB machen. Aktuell sieht mein code wie folgt aus. Das funktioniert alles, aber ich weiß nicht wie ich an den Stapeldruck übergeben kann. Quasi ein shortcode so etwa wie: gbOpenErfassungVKAddIn([$Spalte:BelID:Quote(")], 1) - das ist natürlich zum bearbeiten für einen Beleg, nur als Beispiel falls jemand nicht ganz versanden hat was ich meine. Die liste der Aufgabencenter Shortcodes finde ich leider nicht mehr. Danke

Code:
'Option Explicit

Dim oZeile 'As Object
Dim oSelektierteZeile 'As Object
Dim i 'As Long

Dim lBelID 'As Long


i = 0

'For timer

For Each oZeile in goInfo.SelektierteZeilen
    i = i+1
    lBelID = goInfo.SelektierteZeilen(i).Felder("BelID").Value
    
    goinfo.Datenverbindung.bExecute "UPDATE KHKVKBelege SET USER_SendFlag = 1 WHERE USER_AllowSend = 0 AND Mandant = " & goMandant.nId & " AND BelID = " & lBelID


Next
 
Moin,

hier mal ein Schnippel aus einer VB.NET Programmierung im AC die den Stapeldruck auslöst. Da der Stapeldruck nichts wirklich druckt, sondern nur dafür vorbereitet, kann man das mit drei SQL Abfragen erledigen.

Code:
Public Class Stapeldruck

    Public Shared Sub Beleg(oInfo As clsInfoDaten, Kennzeichen As String, BelId As Long, Druckprozess As Integer)
        Dim SQL As String

        SQL = "DELETE FROM KHKDruckbelegeKennzeichen WHERE BelID=@belId AND Mandant=@mandant AND Druckbeleg=0 AND Typ=4000"
        SQL = SQL.Replace("@mandant", oInfo.Mandant)
        SQL = SQL.Replace("@belId", BelID)
     
        oInfo.Datenverbindung.bExecute(SQL)

        SQL = "INSERT INTO KHKDruckbelegeKennzeichen (BelID, Druckbeleg, Mandant, Typ, Druckindex, Warten, Exemplare, Druckkennzeichen, Datum, Mitarbeiter, BerichtName, DruckbelegTAN) "
        SQL += " SELECT @belId As BelID, 0, @mandant As Mandant, 4000 As Typ, Druckindex, Warten, Exemplare, 6 As Druckkennzeichen, "
        SQL += "GetDate() AS Datum, '@mitarbeiter' AS Mitarbeiter, BerichtName, Tan FROM KHKDruckprozesseDruckbelege2  WHERE DruckprozessTan=@druckprozess"
        SQL = SQL.Replace("@mandant", oInfo.Mandant)
        SQL = SQL.Replace("@belId", BelID)
        SQL = SQL.Replace("@druckprozess", Druckprozess)
        SQL = SQL.Replace("@mitarbeiter", oInfo.Benutzer)
     
        oInfo.Datenverbindung.bExecute(SQL)

        SQL = "UPDATE KHKVKBelege SET [Status]=1 , Druckprozess=@Druckprozess WHERE BelID = @BelID AND Mandant=@Mandant"
        SQL = SQL.Replace("@Mandant", oInfo.Mandant)
        SQL = SQL.Replace("@BelID", BelID)
        SQL = SQL.Replace("@Druckprozess", Druckprozess)
     
        oInfo.Datenverbindung.bExecute(SQL)
    End Sub

End Class

Das ist exakt das, was auch die sage 100 macht, wenn man den Stapeldruck auslöst. Ich habe das nur mit einem kleinen Profiler mitgeschnitten und nachgebaut.

Und benutzen sie vielleicht lieber Skript VB.NET und kein normales Skript. Sie haben nur Vorteile, Syntaxkontrolle, Intellisense, das ganze Internet als Hilfe zu Funktionen, etc etc.
Muss doch nicht schwerer werden als unbedingt nötig. ;)

Ihr bisheriger Code sehe dann so aus:
Rich (BBCode):
Dim Zeile As clsInfoDatenZeile
Dim BelID As Long

For Each Zeile In oInfo.SelektierteZeilen
    BelID = Zeile.Felder("BelID").Wert
    oinfo.Datenverbindung.bExecute("UPDATE KHKVKBelege SET USER_SendFlag = 1 WHERE USER_AllowSend = 0 AND Mandant = " & oInfo.Mandant & " AND BelID = " & BelID)
Next



Grüße
 
Zuletzt bearbeitet:
Zurück
Oben