Excel druckt falsch

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

Antworten
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Excel druckt falsch

Beitrag von ramses »

Hallo
wir haben eine mehrseitige Excel-Tabelle die den Tabellen-Kopf als "Wiederholungszeilen oben" auf jede Seite drucken soll.

Wird Excel mit der Tabelle geöffnet und die Tabelle gedruckt ist die Ausgabe immer korrekt.

Beim Ausdruck über Xbase++ mit dem Com-Objekt ist die Seiteneinteilung korrekt der Blattkopf wird auf den Folgeseiten aber nicht gedruckt, die Zeilen beginnen ganz oben auf der Seite und unten auf den Folgeseiten bleibt der benötigte Platz des Tabellenkopfs leer.

Für den Ausdruck wird folgender Code verwendet:

Code: Alles auswählen


function PrintExcelxls( cSourceFile, aSheet )
    local oExcel, oWorkbook, bAlterFehlerblock := ErrorBlock()
    local a, ret_val := .f., oSheet

    default aSheet to {1}

    oExcel := CreateObject( "Excel.Application" )
    IF Empty( oExcel )
       msgbox("MS-Excel ist nicht oder nicht korrekt installiert!" + chr(13) + "Fehlernr.: " + ltrim(str(ComLastError())) )
       return(ret_val)
    ENDIF

    ErrorBlock({|oError|Excelfehler(oError)})

    begin sequence

    oExcel:Application:DisplayAlerts := .F.
    oExcel:Application:Workbooks:new()
    oExcel:visible := .f.               // excel versteckt laden
    oWorkbook := oExcel:application:workbooks:open(cSourceFile)
    for a = 1 to len(aSheet)
       oSheet := oWorkbook:Worksheets(aSheet[a])   // Referenz auf das zu druckende Worksheet
       oSheet:select()
       oSheet:PrintOut()
    next
    sleep(50)
    oExcel:Application:Quit()
    oExcel:destroy()

    end sequence

    ErrorBlock(bAlterFehlerblock)


return(ret_val)

Der hat eigentlich immer funktioniert, dies ist jedoch die erste Tabelle mit "Wiederholungszeilen oben" die wir nicht selbst erstellt haben sondern vorgängig nur mit Werten bestücken und drucken müssen.
Hat jemand eine Idee was hier beim Ausdruck schief läuft?
Valar Morghulis

Gruss Carlo
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Excel druckt falsch

Beitrag von Marcus Herz »

Ich hab jetzt nicht nachgesehen, kann es sein, dass bei Druck in Execl du ja alle Seiten auswählst, das aber in einem Druckjob machst. In deinem Code wird ja je Seite der Druck ausgeführt.
Gibt es eine Print() Methode auch auf dem Workbook?
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
Benutzeravatar
Marcus Herz
1000 working lines a day
1000 working lines a day
Beiträge: 851
Registriert: Mo, 16. Jan 2006 8:13
Wohnort: Allgäu
Hat sich bedankt: 39 Mal
Danksagung erhalten: 192 Mal
Kontaktdaten:

Re: Excel druckt falsch

Beitrag von Marcus Herz »

Code: Alles auswählen

Workbook.PrintOut
Gruß Marcus

Erkenne, was du findest, dann weißt du, wonach du gesucht hast
ramses
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2513
Registriert: Mi, 28. Jul 2010 17:16
Hat sich bedankt: 12 Mal
Danksagung erhalten: 77 Mal

Re: Excel druckt falsch

Beitrag von ramses »

Hallo Markus

das Excel File enthält mehrere Tabellen jede mit mehreren Seiten.
Mit

Code: Alles auswählen

oSheet := oWorkbook:Worksheets(aSheet[a])  
wird eine Tabelle angewählt die dann mit dem Printout mit allen Seiten Gedruckt wird.

Printout auf dem Workbook funktionert gar nicht.
Valar Morghulis

Gruss Carlo
Antworten