[NEWSboard IBMi Forum]
  1. #1
    Registriert seit
    Oct 2014
    Beiträge
    6

    AS400 Schriftfarbe per Excel Makro auslesen

    Ich versuche die Schriftfarbe einer bestimmten Position in einem AS-400 Fenster aus einem Excel-Macro heraus zu bestimmen. Die Textfarbe kann entweder Grün(=Standart) oder Rot sein.
    Da es keinen direkten Weg dafür zu geben scheint ('GetColor' funktioniert nicht), versuche ich es über den Umweg 'autECLSession.autECLPS.WaitForAttrib' mit einer Millisekunde Wartezeit - bei Timeout sollte der Wert 'False' zurückgegeben werden = Schrift ist nicht Grün oder eben 'True' = Schrift ist Grün.

    Ich weiß aber nicht , was für Werte ich eingeben muss.
    autECLSession.autECLPS.WaitForAttrib(row, col, Waitdata, [optional] MaskData, [optional] plane , [optional] TimeOut, [optional] WaitForIr)

    Kann mir jemand weiterhelfen? Bin ich sowieso komplett auf dem falschen Weg, und/oder weiß jemand einen besseren?
    Vielen Dank im voraus.

  2. #2
    Registriert seit
    Feb 2001
    Beiträge
    20.207
    Ich würde mir da eher die Bedingung hierfür mittels SQL über ODBC holen!
    Es gibt sicherlich einen datentechnischen Grund warum ein Wert in Rot dargestellt wird.
    Diesen kann man sicherlich auch per SQL erfragen.

    Für die 5250-Emulation gibt es noch andere API's: HLLAPI/EHLLAPI
    Wenn das CA-Toolkit mit installiert ist, kannst du im Verzeichnis
    C:\Program Files (x86)\IBM\Client Access\Toolkit\Include
    die Datei ehlapi32.h betrachten um herauszufinden, wie man von einer Sitzung ein bestimmtes Feld/Attribut abfragt.

    Aber wie gesagt, SQL ist einfacher und sicherer.
    Ein User kann ja auch mehrere Fenster aufhaben.
    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
    Oct 2014
    Beiträge
    6
    Ja, würde ich auch lieber eleganter lösen, hab aber ebenfalls Gründe, warum ich es so lösen muss. Leider hab ich z.B. keinen SQL etc Zugriff, sondern muss mich mit den beschränkten Möglichkeiten zufrieden geben, die das Sitzungsfenster mir bietet. Unsere EDV-Profis würden mich auch bestenfalls auf ihr To-Do-Liste setzen und in ungefähr zwei Jahren (eventuell) prüfen, ob sich der Aufwand lohnt. Was vermutlich nicht der Fall sein wird, weil nicht alle Filialen das nutzen würden...

    Das mit den anderen API's werde ich prüfen. Bis dahin würde ich mich sehr freuen, wenn jemand eine Idee zu meiner urspünglichen Frage wegen den WaitForAttrib hätte.

  4. #4
    Registriert seit
    Oct 2014
    Beiträge
    6
    Hab das Problem gelöst, wer das Handbuch liest ist klar im Vorteil.
    Versucht hatte ich:
    autECLSession.autECLPS.WaitForAttrib(7, 6, 0, "3c", 2, 1) in diversen Variationen

    Der Farbwert (dritte Position) muss aber als 1-Byte Hex geschrieben werden. Richtig ist also:
    autECLSession.autECLPS.WaitForAttrib(7, 6, "00", "3c", 2, 1)

Similar Threads

  1. AS400 Daten als Excel verteilen???
    By kuetemaj in forum IBM i Hauptforum
    Antworten: 7
    Letzter Beitrag: 10-02-03, 10:14
  2. EXCEL native auf der AS400
    By andigoering in forum NEWSboard Server Software
    Antworten: 4
    Letzter Beitrag: 18-10-02, 13:32
  3. Excel mit meheren Blättern auf AS400
    By MEXX in forum NEWSboard Windows
    Antworten: 3
    Letzter Beitrag: 15-10-02, 17:05
  4. Macro Excel to AS400
    By Andonny in forum NEWSboard Windows
    Antworten: 5
    Letzter Beitrag: 13-01-02, 17:50
  5. Macro Excel to AS400
    By Andonny in forum IBM i Hauptforum
    Antworten: 5
    Letzter Beitrag: 13-01-02, 17:50

Tags for this Thread

Berechtigungen

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