[NEWSboard IBMi Forum]
Seite 1 von 2 1 2 Letzte

Hybrid View

  1. #1
    Registriert seit
    Apr 2002
    Beiträge
    792

    Question ScreenScraping??

    Hallo *ALL,

    ich bin auf der Suche nach einer Lösung wie unsere Verkäufer sich aus Ihrer normalen 5250-Session (CA400) Bilder aus unserer Datenbank ziehen können (einfach mit *JPG verküpftes Programm öffnen). Ich hatte mir das irgendwie per ScreenScraping vorgestellt nur leider fehlt mir da noch so die zündende Idee. Ich weiß nicht genau ob ich das vielleicht per CA-Makro machen kann oder ob ich ein VB-Programm schreiben muss oder beides?. Was mir ja auch schon reichen würde wenn das CA-Makro den markierten Bereich aus der Sitzung an ein anderes Programm übergeben könnte.
    Falls das nicht geht dann wäre mir sehr weitergeholfen, wenn mir jemand sagen könnte wie ich dirkekt aus VB den markierten Bereich aus CA lese.
    ALso vielleicht hat ja jemand von euch einen Tip. Vielen Dank im Voraus.

    mfg

    Sascha

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Die Bilder sind am besten auf dem IFS abzulegen.
    Über den NetServer eine Freigabe erteilen (suche hierzu andere Beiträge).
    Bei der Anmeldung der Anwendung STRPCO ausführen.
    Per F-Taste kann das AS/400-Programm dann per STRPCCMD('\\mynetserver\mydir\mypicfile.jpg') ausgeführt werden.
    Das Standard-Programm (ggf. Bildbetrachter) wird gestartet.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  3. #3
    Registriert seit
    Apr 2002
    Beiträge
    792
    Hi,

    danke für die schnelle Antwort. Ich habe natürlich etwas vergessen zu schreiben sorry Auf dem Bildschirm steht z.B. in Zeile 5 Spalte 7 Artikelnr: 23251654. Ich will jetzt auf meinem PC-Server im Verzeichnis \\Server\Bilder\ die Datei 23251654.JPG aufrufen und anzeigen. Ich muss also die Artikelnummer die der Benutzer dann vorher markiert hat, irgendwie lesen.

    mfg

    Sascha

  4. #4
    Registriert seit
    Feb 2001
    Beiträge
    20.696
    Auch hier bietet sich der PCO an (klar muss das Programm geändert werden).

    Das STRPCCMD kann ja zusammengebaut und dann ausgeführt werden. Für den Bediener ist es auch einfacher den Cursor z.B. auf ein Feld zu setzten und dann einfach die Fx-Taste zu drücken, als erst umständlich das Feld markieren und ein Makro aufzurufen.

    Wenn nur ein Feld angezeigt ist braucht man nur die F-Taste.

    Ausserdem: dies ist sofort für alle verfübar ohne das erst ein Script oder Makro verteilt werden muss.
    Dienstleistungen? Die gibt es hier: http://www.fuerchau.de
    Das Excel-AddIn: https://www.ftsolutions.de/index.php/downloads
    BI? Da war doch noch was: http://www.ftsolutions.de

  5. #5
    Registriert seit
    Jul 2001
    Beiträge
    2.713
    Wenn auf dem Bildschirm noch Platz ist,
    einfach ausgeben:

    http://(ip_as400)/bilder/2312312.jpg

    Die ClientAccess Emulation kann daraus einen direkt klickbaren Hyperlink machen.

    -h

  6. #6
    Registriert seit
    Feb 2004
    Beiträge
    15

    CA Hyperlink

    Zitat Zitat von holgerscherer
    Wenn auf dem Bildschirm noch Platz ist,
    einfach ausgeben:

    http://(ip_as400)/bilder/2312312.jpg

    Die ClientAccess Emulation kann daraus einen direkt klickbaren Hyperlink machen.

    -h
    Hallo,

    wir haben iseries access V5R2 mit SP 9809 installiert.
    Wie funktioniert das denn mit dem Hyperlink ?
    Wenn ich einen entsprechenden String auf dem
    Bildschirm ausgebe macht mir die CA Emulation daraus keinen Hyperlink...

  7. #7
    Registriert seit
    Apr 2002
    Beiträge
    792
    Hi,

    leider ist die Anwendung auch nicht von mir geschrieben, sodass ich keinen Einfluss auf die F-Tasten oder Felder habe. Deswegen bin ich ja auch zu dem Entschluss mit dem Makro oder einem anderen Programm gekommen.

    mfg

    Sascha

  8. #8
    Registriert seit
    Dec 2000
    Beiträge
    450
    Hallo Sascha,

    in VB den Verweis auf PCOMM autoECLPS Automation Object 1.0 Library aktivieren und folgenden Code einbauen


    Dim text As String
    Set PSObj = CreateObject("PCOMM.autECLPS")
    PSObj.SetConnectionByName ("A")


    text = PSObj.GetText(12, 17, 9)

    Damit lese ich aus Session A Zeile 12, Spalte 17 in der Länge 9 aus.

    Gruß
    Bruno

  9. #9
    Registriert seit
    Sep 2005
    Beiträge
    2

    Frage

    Zitat Zitat von Bruno Jakob
    Hallo Sascha,

    in VB den Verweis auf PCOMM autoECLPS Automation Object 1.0 Library aktivieren und folgenden Code einbauen


    Dim text As String
    Set PSObj = CreateObject("PCOMM.autECLPS")
    PSObj.SetConnectionByName ("A")


    text = PSObj.GetText(12, 17, 9)

    Damit lese ich aus Session A Zeile 12, Spalte 17 in der Länge 9 aus.

    Gruß
    Bruno
    Wie kannich einen ganzen Bereich (mehrere Zeilen von bis) in die Zwischenablage kopieren ? Es funktionieren alle Tasten, wie zum Beispiel pf1 pf2 enter usw. usw., aber die strg-v bzw. die edit-copy nicht. Ich möchte einen bestimmten Teil des angezeigten Bildschirms auf die oben aufgeführte Art und Weise in eine Excel-Tabelle kopieren und auch einige Sachen aus dieser Tabelle in einen bestimmten Bildschirmbereich schreiben. Ich habe mir Hilfsweise zwei Macros aufgezeichnet(makieren und kopieren / und einfügen), die stoße ich dann mit PS.StartMacro "mymacro" an, das gefällt mir aber nicht. Gibt es eine Lösung direkt in Excel ?

    Wir haben die Software gewechselt, bei der alten Software(Attachmate) sah das so aus :

    Sub kopiere_bestand_stueck_()
    ' Das Hauptsystemobjekt abrufen
    Dim Sessions As Object
    Dim System As Object
    Set System = CreateObject("EXTRA.System") ' Ruft das Systemobjekt ab.
    If (System Is Nothing) Then
    MsgBox "EXTRA! Systemobjekte konnten nicht erstellt werden. Makro-Wiedergabe wird abgebrochen."
    Stop
    End If
    Set Sessions = System.Sessions
    If (Sessions Is Nothing) Then
    MsgBox "Sessions-Kollektionsobjekt konnte nicht erstellt werden. Das abgespielte Marko wird abgebrochen."
    Stop
    End If
    '--------------------------------------------------------------------------------
    ' Den Wert der Standard-Wartezeitüberschreitung einstellen
    g_HostSettleTime = 50 ' Millisekunden
    OldSystemTimeout& = System.TimeoutValue
    If (g_HostSettleTime > OldSystemTimeout) Then
    System.TimeoutValue = g_HostSettleTime
    End If
    ' Das erforderliche Session-Objekt abrufen
    Dim Sess0 As Object
    Set Sess0 = System.ActiveSession
    If (Sess0 Is Nothing) Then
    MsgBox "Session-Objekt konnte nicht erstellt werden. Makro-Wiedergabe wird abgebrochen."
    Stop
    End If
    If Not Sess0.Visible Then Sess0.Visible = True
    Sess0.Screen.WaitHostQuiet (g_HostSettleTime)
    System.TimeoutValue = OldSystemTimeout
    Dim Sys As Object, Sess As Object, MyArea As Object
    Set Sys = CreateObject("EXTRA.System")
    ' Geht davon aus, daß eine Session geöffnet ist.
    Set Sess = Sys.ActiveSession
    ' Demonstriert die Methode "Copy" für Screen-Objekte.
    Set MyScreen = Sess.Screen
    MyScreen.SelectAll
    MyScreen.Copy
    ' Demonstriert die Methode Copy für Area-Objekte.
    Set MyArea = MyScreen.Area(19, 45, 24, 55)
    MyArea.Select
    MyArea.Copy
    End Sub



    Kann da Jemand helfen ???

  10. #10
    Registriert seit
    Oct 2002
    Beiträge
    6
    Warum das Rad neu erfinden

    Foxtrot macht das ganze per Mausklick und auch noch Hard- und Software unabhängig.

    Grüße
    Dick Dekker

  11. #11
    Registriert seit
    Sep 2005
    Beiträge
    2

    Question ?

    wir benutzen Windows XP, das funktioniert leider nicht, oder ?

  12. #12
    Registriert seit
    Oct 2002
    Beiträge
    6
    Na Klar funzt das auch bei XP. (sogar mit W98 )
    Ist alles egal; W98, XP, NT, W2003, Unix, AS400, MVS, BS2000 .....

Berechtigungen

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