+1 800 256 3608 (toll-free in North America) or +49 7531 90 60 10| service@combit.com

Loop bei Direktdruck in Win7


(Guest) #1

Hallo,
ich habe mein Projekt von XP SP3 nach Win7 portiert. Die VB6-Applikation funktioniert sehr gut; auch LL15 macht keine Probleme, solange ich den Ausdruck erst in die Vorschau lenke - und dann drucke.
Jetzt möchte aber ein Kunde (was verständlich ist) direkt drucken; die Vorschau wird
hier nicht benötigt. Und damit beginnt mein Problem. Der Ausdruck funktioniert nicht
mehr. Es erscheint noch die Melddung “Rechnung wird gedruckt” - dann verschwimmt das
Bild und die Meldung: Visual Basic funktioniert nicht mehr, sowie der Hinweis, dass das Programm nicht mehr richtig funktioniert wird ausgegeben. Dann stürzt das Programm ab. Unter XP kein Problem.

Private Sub PrintThis(PrintMode As Integer)
   
    ' DevMode-Struktur erzeugen
    ReadDevMode SelDrucker, MyDevMode
    ' DevMode-Struktur manipulieren
    ChangeDevMode MyDevMode
    ' DevMode-Struktur in P-datei schreiben
    ret% = LlSetPrinterInPrinterFile(ListLabel1.hJob, LL_PROJECT_LIST, Dateiname, 0, SelDrucker, MyDevMode)
    
    ' -------------------------------------------- Lizensschlüssel setzen
    ListLabel1.LicensingInfo = "aa/bb"
    
    ' Variable und Felder zurücksetzen
    ListLabel1.LlDefineVariableStart
    ListLabel1.LlDefineFieldStart

    ' Variablen definieren, welche vor der Tabelle liegen
    DefineVars
    '  Variablen, welche nach der Tabelle gedruckt werden
    DefineVarsAfter
    ' Felder definieren
    ' DefineFields
    DefineFelder

    ' Druck starten
    ret% = ListLabel1.LlPrintWithBoxStart(LL_PROJECT_LIST, Dateiname, PrintMode, LL_BOXTYPE_STDWAIT, hWnd, "Busplan")
    If ListLabel1.LlPrint = LL_WRN_REPEAT_DATA Then
       ListLabel1.LlPrint
    End If

    ' ==============================================================
    ' Felder mit Echtdaten füllen
    ' ==============================================================
    
    eRs.MoveFirst
    ErsteZeile = 0
    DefineFelder
    
    ' =============================================================
    ' Druck beenden
    ' =============================================================
       
    [b]ret% = ListLabel1.LlPrintEnd(0)[/b]
    ' Beim Preview-Druck Vorschau anzeigen und dann Preview-Datei löschen
    If PrintMode = LL_PRINT_PREVIEW Then
       ret% = ListLabel1.LlPreviewDisplay(Dateiname, "", hWnd)
       ret% = ListLabel1.LlPreviewDeleteFiles(Dateiname, "")
    End If
End Sub

Beim Debuggen bleibt der Cursor auf der Zeile ret% = ListLabel1.LlPrintEnd(0) stehen.

Kann mir vielleicht jemand einen Rat geben ?

Danke
Rainer


(Guest) #2

Im Zweifel mal ein Debug-Log anfertigen und selber schauen, sonst klingt das nach einem Fall für combit…

G.