Array in Word einfügen

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Array in Word einfügen

Beitrag von Wolfgang_B »

ich möchte ein XBASE-Array in Word einfügen. Hat jemand einen Tipp?
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Jan
Marvin
Marvin
Beiträge: 14651
Registriert: Fr, 23. Sep 2005 18:23
Wohnort: 49328 Melle
Hat sich bedankt: 21 Mal
Danksagung erhalten: 88 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Jan »

Var2Char(aArray) gibt Dir einen String zurück.

Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Koverhage »

Es muss sich halt eine Tabelle im Word Dokument befinden

Code: Alles auswählen

  nAnzTables := oDoc:tables:count

//  msgbox(str(nAnzTables))

  if nAnzTables > 1 .and. nAnzElemente > 0
     nAnzCells := len(aArray[1])

     oTable := oDoc:tables(3)
     // Hier z.B. fr ganze Tabelle
     // oTable:Range:Font:Bold := .t.
     for i:=1 to nAnzElemente
        if i > 2
           oTable:rows:add()
        endif
        oCell := oTable:Cell(i,1):range
//        oCell:Font:Bold := .t.
//        oCell:Font:Size := 8
        oCell:text := aArray[i,1]
        oCell := oTable:Cell(i,2):range
        oCell:text := aArray[i,2]
        IF nAnzCells > 2
           oCell := oTable:Cell(i,3):range
           oCell:text := aArray[i,3]
        ENDIF
        IF nAnzCells > 3
           oCell := oTable:Cell(i,4):range
           oCell:text := aArray[i,4]
        ENDIF
        IF nAnzCells > 4
           oCell := oTable:Cell(i,5):range
           oCell:text := aArray[i,5]
        ENDIF
        IF nAnzCells > 5
           oCell := oTable:Cell(i,6):range
           oCell:text := aArray[i,6]
        ENDIF
     next
  endif
Gruß
Klaus
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Tom »

Oder durch Tabs getrennt. Oder was auch immer. Heute ist der Tag der möglichst ungenauen Wolfgangfragen. :badgrin:
Herzlich,
Tom
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2934
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Wolfgang Ciriack »

Habe heute noch nichts gefragt :D :wink:
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Array in Word einfügen

Beitrag von Wolfgang_B »

Komisch, gerade eine Antwort verfaßt und abgesendet aber nicht angekommen ... :(

Also nochmal...

erstmal sollte ich meine Fragen auf mehrere Tage verteilen .. :D

ich möchte Rechnungsdaten in ein Word Formular formatiert einfügen. Diese liegen als Array vor. Adressdaten usw. habe ich schon mit Tokens ersetzt, sowohl in .DOCX als auch in .RTF. Wie kriege ich diese Rechnungsdaten formatiert in das Dokument?

@Klaus, vielleicht ist das schon die Lösung. Probiere ich aus ... -Danke
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Tom »

Ich nehme an, Du willst ein Word-Dokument als eine Art Formular für Rechnungen verwenden, richtig? Da würde ich ein RTF-Dokument als Template mit einer vorformatierten Tabellenzeile generieren, die mit Platzhaltern ausgestattet ist und sich dann wiederholt vom Programm aus gesteuert einfügen lässt (das kann man dann auch mit den Infos drumherum machen, also Empfängerdaten, Rechnungsnummer usw.). Das ist zwar nicht der eleganteste, aber der einfachste Weg. Komplizierte und elegantere gibt es zuhauf. Es fängt bei ActiveX an und hat kein Ende.
Herzlich,
Tom
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Array in Word einfügen

Beitrag von Wolfgang_B »

So habe ich es mit den Adressdaten, Rechnungsnr. usw. schon gemacht. Wie gehe ich dann mit den Platzhaltern für die Rechnungspositionen um? Hier weiss ich ja noch nicht, wieviele Positionen auftauchen...
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Tom »

Du müsstest halt im RTF-Code herausfinden, wo eine Grid-Zeile beginnt und wo sie endet, den Code nimmst Du dann in Deine App und repetierst ihn dort. Er ist je nach Textprogramm mal weniger komplex (Wordpad) und mal etwas umfangreicher (Word). Wie gesagt, elegant geht anders, aber das ist der vermutlich einfachste Weg.
Herzlich,
Tom
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Array in Word einfügen

Beitrag von Wolfgang_B »

das hab ich befürchtet. Martin hat mir schon mal so was Ähnliches in Bezug auf Serienbriefe geschrieben. I

Dann muß ich mich doch mal damit befassen :x

Schon mal Danke!
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Benutzeravatar
Koverhage
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2470
Registriert: Fr, 23. Dez 2005 8:00
Wohnort: Aalen
Hat sich bedankt: 102 Mal
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Koverhage »

Hier mal die Doc Datei zu meinem Codebeispiel.
Dateianhänge
Muster_Tabelle_in_Word.docx
(18.6 KiB) 178-mal heruntergeladen
Gruß
Klaus
Benutzeravatar
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Rolf Ramacher »

Wolfgang du kannst in die Platzhalter jede Menge Daten aus dem Array reinpacken. Ich mache das so

ich befülle eine Variable . beispiel cText auffüllen mit +=
für die nächste Zeile machst du das dann cText+="\line"+space(1)

und zum schluss ersetzt du den Platzhalter mit strtran.

probier es mal aus.
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Tom »

Bei Tabellenzellen und -zeilen ist das ein wenig komplizierter, Rolf.
Herzlich,
Tom
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Martin Altmann »

Aber nicht wesentlich, Tom.
Man kann die Informationen über die Spaltenbreiten in den Header der Tabelle packen (der ja im Worddokument steht) und braucht sie nicht bei jeder Zeile wiederholen. Da beschränkt sich das dann im wesentelichen auf \cell, um die nächste Spalte zu beginnen und halt das Ende der Zeile. Klar, wenn man Formatierungen anpassen will (\b, \i oder \font), kommt noch ein wenig mehr dazu.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9358
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: Array in Word einfügen

Beitrag von Tom »

Das hängt von der Komplexität ab - und womit man es macht. Ansonsten Zustimmung; im einfachsten Fall endet ein Spalteninhalt mit \cell. Aber wenn ich eine ganze Zeile herstellen und reproduzieren will, brauche ich noch ihren Prolog und Epilog. Wenn ich einfach nur Spalten wiederhole, bekomme ich lediglich eine einzige, sehr lange Zeile.
Herzlich,
Tom
Benutzeravatar
Wolfgang_B
Rekursionen-Architekt
Rekursionen-Architekt
Beiträge: 484
Registriert: Do, 14. Jun 2007 18:22
Wohnort: 94065 Waldkirchen
Hat sich bedankt: 14 Mal
Danksagung erhalten: 5 Mal

Re: Array in Word einfügen

Beitrag von Wolfgang_B »

Danke mal an alle ... Hatte noch keine Zeit das alles genauer zu eruieren ...

Habe gerade ein ganz anderes Problem ... ich mache da mal einen neuen Thread auf ..
Beste Grüße
Wolfgang

Mitglied des Deutschsprachigen Xbase-Entwickler e. V.
Mitglied der XUG Osnabrück
Antworten