[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte
  1. #1
    Registriert seit
    Nov 2004
    Beiträge
    325

    AS/400 und Word

    Moin Ihr Lieben,

    jetzt habe ich eine "ehrenvolle" Aufgabe bekommen. Wir haben jetzt eine Postbox über die unsere Korrespondenz abgewickelt werden soll. Für PC und so, kein Problem, --> Datei --> Drucken --> Potsbox --> geht. ABER:

    Unser WWS soll jetzt auch alle Korrespondenzen mit Word machen. Die jetztigen Aufträge, Produktionsberichte, Fahraufträge usw. werden per eigengestrickter Textverarbeitung erzeugt, die teilweise noch 36er Programme sind. Einige davon werden auch per Post verschickt.

    Jetzt suche eine Anleitung, mit der ich ein Makro für eine Word Vorlage erstellen kann, welche Adressdaten von der AS/400 in Word überträgt.

    Beispiel: Formularauswahl durch Sachbearbeiter, Eingabe Kundennummer in Word, Makro holt Adressdaten und diese werden ins Adressfeld im Brief übernommen.

    Der Teil mit Formularauswahl, Kundennummereingabe und Adressdaten in die Felder füllen ist fertig und funzt. Leider nur manuell und im Test.
    Jetzt suche ich eine Anleitung nach dem Muster:

    Verbinde mich zur AS/400
    führe SQL Statement select f1, f2... from kunde

    hat das mal jemand schon in der Form gemacht, seit 2 tagen bringt google mich nicht so richtig weiter.

    Vielen Dank im Voraus und ein schönes Wochenende

    DKSPROFI

  2. #2
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Hallo, da noch keiner geantwortet hat, bekommst du wenigstens von mir eine Antwort, auch wenn sie dir wohl nicht weiterhelfen wird. Bei uns nutzen wir Word, um Ausdrucke von der iseries zu erstellen. Das heißt, wir füllen die Textmarken im Word-Dokument mit den gewünschten Werten. Das machen wir aber nicht direkt im VBA, sondern wir machen das mit dem "richtigen" VB (Visual Basis). Das heißt, es gibt ein xxxx.exe-Programm (in VB geschrieben), das sich die Daten von der iseries holt und per COM-Schnittstelle das Word steuert.

    Es funktioniert sehr stabil, aber wie es genau geht, weiß ich leider auch nicht, da ich es nicht geschrieben habe und ich auch kein VB-Programmierer bin.

    Dieter

  3. #3
    Registriert seit
    Jan 2011
    Beiträge
    81
    Im Prinzip willst Du einen Serienbrief über Word schreiben.
    Versuche es doch einmal mit diesem Ansatz.

  4. #4
    Registriert seit
    Nov 2004
    Beiträge
    325
    Moin,

    ich habe mich schon gewundert, über 100 mal gelesen und keine Antwort. Ist das Vorhaben so ungewöhnlich?

    Die Anforderung der Anwender ist ja ganz einfach formuliert: MDG (Mach das geht). Die Vorlagen müssen ilt. Vorgabe der GL n WORD erstellt werden. Also mal kurz erzählt was ich gemacht habe. Vorlage in Word erstellt und Textmarken plaziert wo die Daten gefüllt werden sollen.

    Ein Makro erstellt was zunächst mal "hart" die Textmarken füllt. Das funktioniert.

    Jetzt soll das Makro erweitert werden, um die Möglichkeit eine Kundennummer einzugeben und die Daten der AS/400 in die Textmarken zu stellen.

    Der Zugriff per VBA scheint zu funktionieren allerdings nur mit MS-Access. Da wir aber nur eine Office Version mit Access haben, scheidet m. E. nach diese Möglichkeit aus.

    Also Kundennummereingabe mit Prüfung auf Gültigkeit habe ich bereits, mir fehlt eigentlich nur der Teil:

    -Mit AS/400 verbinden
    -SQL ausführen (Select f1, f2 ... from Kundenstamm where Kundennummer = Input
    -Fehlerbehandlung wenn Kunde nicht gefunden wurde
    -Füllen der Textmarken

    Eigentlich ganz einfach, in RPG wäre das ja schon durch, aber Word ist überhaupt nicht mein Ding.

    @dschroeder Das wäre evtl. eine Lösung, das prüfe ich mal, auch wenn ich kein "richtiges BASIC" spreche.

    @MR-BN Der Ansatz war der erste den ich ich verfolgt habe, scheitert aber am Anwender. Es "unzumutbar" sich einen Datensatz auszusuchen und diverse Word Dialoge durchzuklicken.

    Vielleicht hat ja jemand doch noch einen Ansatz. Trotzdem vielen Dank an Euch.

    MFG

    DKSPROFI

  5. #5
    Registriert seit
    Mar 2002
    Beiträge
    5.287
    ... das ist wohl simpel das falsche Forum. Versuch's mal bei der Mausschieber Fraktion, die haben auch Foren.

    D*B
    AS400 Freeware
    http://www.bender-dv.de
    Mit embedded SQL in RPG auf Datenbanken von ADABAS bis XBASE zugreifen
    http://sourceforge.net/projects/appserver4rpg/

  6. #6
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Moin
    Unsere Kunden machen das auf 2 verschiedenen Wegen
    1. < W e r b u n g > mit unserm Spooldesigner wird ein/mehrere Textbausteine erfasst. Die Variablen stehen
    im Text. Ein RPGLE Pgm fragt den/die zu druckenden Textbausteine und die Kundennr ab, druckt
    die TB-Nr und die Kundendaten, und der Spooldesigner schreibt den Brief, druckt, mailt ... < / W e r b u n g >

    2. Der User wählt auf der iSeries den Kunden, dadurch wird eine standardisierte Datei (als Serienbriefvorlage) in 'seinem' verzeichnis erstellt. Dann ruft er die Word vorlage, schreibt/ergänzt seinen Text, speichert und druckt den Serienbrief.

    Version 2 geht auch mal daneben! Aber PC Anwender sind Kummer gewöhnt, die schreiben dann den Brief neu!

    Gruß
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  7. #7
    Registriert seit
    Nov 2004
    Beiträge
    325
    Moin,

    und wie habt Ihr die Lösung 2 realisiert? Für einen Ansatz wäre ich Dir sehr dankbar.


    MFG

    DKSPROFI

  8. #8
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Na ja, wie beschrieben ...

    Basis ist eine (mehrere) Word Vorlage(n) mit den Serienbrief-Feldern.
    VORHER geht der Anwender in eine iSeries Anwendung, wählt den Kunden / Auftrag / Mandant, ...
    Die Anwendung löscht/erzeugt eine Datei (ich glaube CSV)
    Die Datei enthält die Felder ALLER Briefe/Schreiben
    Beim drucken fragt Word ob es ein Serienbrief sein soll, der Anwender sagt ja und druckt alle in der Datei vorhandenen Sätze.

    As400 realisierung durch uns, Word Lösung durch 'versierten' Pc-Anwender.

    Robi

    PS. Ich bevorzuge Version 1!
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  9. #9
    Registriert seit
    Jan 2012
    Beiträge
    1.120
    Ich glaube, DKSPROFI sucht einen Beispiel-Quellcode in VBA, wie man die Verbindung zur iSeries aufbaut. Da ich kein VB-Programmierer bin, weiß ich nicht genau, wie es geht.

    Kann es sein, dass man zunächst in den ODBC Einstellungen des PCs eine ODBC Verbindung einrichten muss? Wenn man IBM Client Access (oder wie es inzwischen auch immer heißen mag) auf dem PC hat, sollte das kein Problem sein. Dann sind die korrekten dlls bereits auf dem PC vorhanden.

    Ich habe auf jeden Fall eben mal folgenden Code mit google gefunden. Da machen die es im VBA für Excel. Vielleicht sind da ja ein paar Stichworte drin, an denen du dich weiterhangeln kannst.

    Dieter

    Sub transfer()
    Dim varState As String
    Set CS = CreateObject(“ADODB.Connection”)
    Set RS = CreateObject(“ADODB.Recordset”)

    ‘Retrieve values from Cells on the sheet to use as selections in the query below
    varState = ActiveSheet.Range(“C2″).Value
    varFrom_Date = ActiveSheet.Range(“B3″).Value
    varTo_Date = ActiveSheet.Range(“B4″).Value

    ‘ ISeries connection String
    ‘ConnectString = “Driver={ISeries Access ODBC Driver};System=10.1.4.1;Uid=xxxxx;Pwd=xxxxx;Librar y=PWRDTA41;QueryTimeout=0″
    ConnectString = “Driver={ISeries Access ODBC Driver};System=10.1.4.1;Library=PWRDTA41;QueryTime out=0″

    CS.Open (ConnectString)
    SqlString = “SELECT hhicusn , C.FFDCNMB, C.FFDSTEB, hhiclsn, SUM(hhiqysa), SUM(hhiexsn), SUM(hhiexac) ” & _
    ” FROM pwrdta41.hhiorddp ” & _
    ” left outer join PWRDTA41.FFDCSTBP c” & _
    ” ON hhicusn = c.ffdcusn and” & _
    ” hhidivn = c.ffddivn and” & _
    ” c.ffdcmpn = hhicmpn and” & _
    ” c.ffddptn = hhidptn” & _
    ” WHERE hhidtei between ” & varFrom_Date & ” and ” & varTo_Date & _
    ” and hhiclsn = ‘105’ and c.ffdsteb = ‘” & varState & “‘” & _
    ” GROUP BY hhicusn, c.ffdcnmb, c.ffdsteb, hhiclsn” & _
    ” ORDER BY hhicusn”
    ‘Message box can be used for debugging the SQL statement
    ‘MsgBox (SqlString)

    RS.Open SqlString, CS
    ‘Clear Previous contents of Cells
    Cells.Select
    ActiveSheet.Range(“A7:Z65535″).ClearContents

    ‘copy the Recordset to excel sheet starting at A7
    ActiveSheet.Range(“A7″).CopyFromRecordset RS

    ‘Close Connection and RecordSet
    RS.Close
    CS.Close

    ‘Reset cell back to A1
    ActiveSheet.Range(“A1″).Select

    End Sub

  10. #10
    Registriert seit
    Jun 2001
    Beiträge
    1.975
    Ich glaube, DKSPROFI sucht einen Beispiel-Quellcode in VBA, wie man die Verbindung zur iSeries aufbaut.
    Kann sein, aber das ist NICHT unser weg!
    Wir erzeugen von der iSeries eine PC Datei, die, mit immer gleichem Namen als Serienbrief Input gilt.
    Da kommt schon mal Chaos raus, aber wir machen das auch nur dort, wo es unumgänglich ist, das der Anwender 'seinen' individuellen Text in Word erfasst und dort auch formatiert.
    Alles was sich aus festen Texten zusammensetzt, oder wo die Formatierung nicht 'das aller aller wichtigste' ist, verwenden wir Lösung1
    (die keine Fehler erzeugt und Optisch locker mit den Word Briefen mithält. Auch durch das automatische Speichern, an' s DMS übergeben oder mailen, ist die Lösung mittlerweile auch von den Anwendern akzeptiert und bevorzugt. Einige Fällen sind schon umgestellt worden da der Anwender nur auf einer Plattform arbeitet (iseries) )
    Robi
    Das Notwendige steht über dem technisch machbaren.
    (klingt komisch, funktioniert aber!)

  11. #11
    Registriert seit
    Nov 2004
    Beiträge
    325
    Moin,

    vielen Dank an Dieter so etwas schwebte mir vor. Probiere ich mal aus.

    MFG


    DKSPROFI

  12. #12
    Registriert seit
    Aug 2006
    Beiträge
    2.077
    Hallo,es gibt bei den Jungs ein News Letter " SmartTools Access Weekly vom 9.7.2015" die bringen immer wieder Tipps wie man was in Word / Excel etc. besser machen kann. Ab und zu auch Makros und so. Habe leider nicht immer die Zeit das jeden Tag zu lesen und auszuprobieren, aber vielleicht suchst Du ja ma bei den auf der Hompage. __GG

Similar Threads

  1. AS400 Dokumente in Word
    By Mario in forum IBM i Hauptforum
    Antworten: 3
    Letzter Beitrag: 30-10-06, 11:39
  2. mit word-makro daten aus as/400 holen
    By karin-vogelmann in forum NEWSboard Windows
    Antworten: 0
    Letzter Beitrag: 06-06-03, 15:26
  3. Word/Excel Daten übernehmen auf AS400
    By Bosch in forum NEWSboard Windows
    Antworten: 3
    Letzter Beitrag: 19-05-03, 09:06
  4. CRM, Kalender, Word, Fax, Mail, SMS, Telefon
    By molter in forum NEWSboard load'n'go
    Antworten: 0
    Letzter Beitrag: 05-04-01, 11:17
  5. Antworten: 1
    Letzter Beitrag: 19-12-00, 06:43

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • You may not post attachments
  • You may not edit your posts
  •