Informationen aus Textfeld auslesen lassen und in Eingabefelder überspielen lassen für Datensätze in einem Programm

  • Guten Tag,

    ich bin noch ganz neu mit AutoIt, habe jedoch schon ein wenig Programmiererfahrung. Ich habe eine Idee aus aktuellem Anliegen, um die Eingabe in einem Programm zu erleichtern, wobei aus einem Textfeld gegebene Informationen in eine "Zusatztabelle" übertragen werden sollen, eventuell würde ich dies sogar noch automatisch über ganze Listen von Dateien laufen lassen wollen. Wollte erstmal herausfinden, in wie weit meine Ideen mit Autoit umsetzbar wären, da ich den vollen Funktionsumfang der Software noch nicht abschätzen kann und falls sie es sind, würde ich mich auch sehr über ausgefertigte Codeschnipsel, entsprechenden Hinweisen, Tipps usw. zur Umsetzung dessen freuen.

    Also verschiedene Datensätze sind in einem Programm angelegt, auf die über eine Suchfunktion zugegriffen werden kann. Wenn ich die einzelnen Datensätze anklicke, habe ich ein Text-Infofeld, in welchem sich verschiedene Informationen befinden nach folgendem Schemata:

    "Name des Datensatzes" Attribut1="..." Attribut2="..." .... Attributn= "..." nun verfügt jeder Datensatz über eine Zusatztabelle, welche über ein Tastenkürzel geöffnet werden kann, in welches die Attribute übernommen werden sollen mit unterschiedlichen Eingabefeldern zu den einzelnen Attributen und dann über ein Tastenkürzel gespeichert werden. Wobei die Reihenfolge der Attribute sich unterscheiden kann und manchmal nach "..." ein Komma kommen kann und manchmal keines. Ich denke, dass sollte sich jedoch mit Auslesen, einem Array/Liste oder sowas und Suchfunktion geschickt handhaben lassen.

    So ich wäre schon sehr froh, wenn das ausfüllen der Daten in die Zusatztabelle automatisch funktionieren würde, der nächste Schritt wäre dann zu schauen, ob sich die Suchfunktion n mal für n Artikel aus einer Exceltabelle wiederholen lässt, um jeweils das Eintragen der Attribute auszuführen.

    Schon mal vielen Dank

    Liebe Grüße

    Einmal editiert, zuletzt von Outtaspace (28. Februar 2020 um 20:40)

    • Offizieller Beitrag

    Um eine hilfreichere Antwort geben zu können, brauchen wir weitere Einzelheiten:

    1. In welches Programm willst Du eine Eingabe machen?

    2. Aus welcher Datenbank (Format) holst Du die Informationen?

    3. Was sind das für Attribute?

    Du schreibst etwas von einer Exceltabelle. Dafür gibt es eine AutoIt-UDF. Je nachdem, was das für eine Datenbank ist, kann man auch direkt (mit AutoIt) darauf zugreifen (ohne dieses Zusatzprogramm).

  • Das Porgramm ist ein ERP-System und es handelt sich um Abmessungen wie Durchmesser, Länge, Radius usw., es gibt Gruppen und in diesen Gruppen befinden sich leicht in den Abmessungen unterscheidende Artikel mit ähnlichen Namen. Leider kann ich nicht selber auf die Datenbank zugreifen und es geht eben darum, dass diese Daten aus der Software aktuell in eine Datenbank überspielt werden sollen. Dafür müssen nun alle möglichen Artikel und Gruppen überarbeitet werden, weil viele falsch eingetragen wurden und nur die Attribute aus der Zusatztabelle überspielt werden können, die allerdings oft leer ist.

    Es wäre auch schön, wenn diese Aktualisierung der Zusatztabelle in Zukunft automatisch funktionieren würde, weil nur dieses Infotextfeld sauber genutzt wird beim Anlegen neuer Daten und es gibt immer wieder Fehler beim Anlegen.

    Einmal editiert, zuletzt von Outtaspace (2. März 2020 um 20:53)

    • Offizieller Beitrag

    Ok, also keinen direkten Zugriff auf die Datenbank. Schade, dass wäre wahrscheinlich am einfachsten.

    Die Automatisierung einer Fremdsoftware ist hingegen nicht immer möglich. Das kommt etwas darauf an, ob Windows-eigene Controlelemente verwendet werden oder nicht.

    Wenn Du AutoIt bereits installiert hast, dann sieh mal in das Programmverzeichnis ("c:\Program Files (x86)\AutoIt3\"). Dort gibt es eine Exedatei ("Au3Info.exe" oder "Au3Info_x64.exe" als 64Bit Version).

    Wenn Du diese Datei startest geht ein Fenster auf, wo auf der rechten Seite ein "Finder Tool" zu finden ist. Wenn Du mit der linken Maustaste drauf klickst, die Maustaste gedrückt hälst und den Mauszeiger über dem Eingabefeld der zu steuernden Software ziehst, dann erscheinen dort verschiedene Informationen (hoffentlich).

    Mit diesen Informationen kann man dann rangehen und eine Automatisierung schreiben.

    So kannst Du schonmal prüfen, ob sich die Software überhaupt Informationen entlocken lässt. Wenn das nämlich nicht der Fall ist, dann müsste man eine Automatisierung per MouseMove, MouseClick machen, was aber sehr fehleranfällig ist.

  • Ok das werde ich nach Möglichkeit morgen am besten gleich testen. Wegen dem Zugriff der Datenbank hab ich nochmal überlegt, vllt lässt sich doch was machen, müsste das nochmal abklären. Wie würdest du denn mit Zugriff auf die Datenbank weiter verfahren?

  • Wie würdest du denn mit Zugriff auf die Datenbank weiter verfahren?

    Auf viele Datenbanken kann man von AutoIt aus mittels ActiveX_Data_Objects (ADO) zugreifen.

    Du solltest drei Dinge abklären :

    - welche Datenbank steht hinter der Software

    - für den Zugriff benötigt man i.d.R. einen Usernamen und ein Passwort

    - erlaubt der Anbieter eurer Software solche externen Operationen (Stichwort : "Gewährleistung")

    Sofern ADO möglich ist, wäre der Basiszugriff relativ einfach zu testen.

    Das Lesen von / Schreiben in Tabellen ist allerdings nicht mehr trivial !

    EDIT : Outtaspace - Nur zur Sicherheit :

    Du solltest echte Zugriffsdaten (Username / Passwort) hier natürlich nicht aus Versehen angeben ;).

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

    Einmal editiert, zuletzt von Musashi (1. März 2020 um 17:06)

  • So Hallo,

    schon mal vielen Dank für eure Hilfsbereitschaft!

    hab jetzt schon mal bisschen was herausfinden können. Theoretisch wäre zwar ein Zugriff möglich, der allerdings nicht von der Software unterstützt wird. Ich weiß nicht, wie schlau es ist, das dann dennoch zu machen oder wie das rechtlich überhaupt aussieht und wie Änderungen dann vom Programm übernommen werden.

    Allerdings weiß ich auch gar nicht, ob dieser Infotext zu den Datensätzen überhaupt in die Datenbank übergespielt werden. Da müsste man mal paar Abfragen auch erst machen.

    Alternativ könnte es noch die Möglichkeit geben, die Daten auf Tabelle ausgeben lassen zu können und diese dann wieder ins Programm einzuspielen. Da muss ich mal nachfragen bzw testen, ob dieser Infotext mit ausgegeben werden kann. Wegen dem Klicken auf die Software wird sich erst am Mittwoch die Gelegenheit ergeben, dass ich das testen kann.

    Eventuell werde ich mich auch nochmal an den Support wenden mit diesem Thema, wobei da in der Vergangenheit nicht immer so viel passiert ist.

    Gruß OuttaSpace

    2 Mal editiert, zuletzt von Outtaspace (2. März 2020 um 21:02)

  • Theoretisch wäre zwar ein Zugriff möglich, der allerdings nicht von der Software unterstützt wird. Ich weiß nicht, wie schlau es ist, das dann dennoch zu machen oder wie das rechtlich überhaupt aussieht...

    Das ist meiner Meinung nach, ohne die Software zu kennen, ein höchst relevanter Punkt.

    Selbst wenn man externe Schreib-/Lesezugriffe auf die Datenbank technisch umsetzen kann, bleibt diese rechtliche Komponente. Sollte dabei etwas schief gehen, dann wird der Support kostenmäßig richtig zulangen (und das nicht mal völlig zu unrecht).

    Eventuell werde ich mich auch noch mal an den Support wenden mit diesem Thema, wobei da in der Vergangenheit nicht immer so viel passiert ist.

    Das wäre, zumindest als erster Schritt, sicher sinnvoll ;)!

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • Wie schätzt du denn das ganze ein in Bezug es über Exceltabellen laufen zu lassen? Das Textfeld ist derzeit wohl noch nicht auf die Exceltabelle übertragen, nur die Zusatztabelle. Allerdings könnte es sich gegebenenfalls einrichten lassen, dass das Textfeld auch übertragen wird und dann wie oben beschrieben das Infotextfeld immer auf die einzelne Attribute verteilt werden könnte über ganze Listen.

  • Wie schätzt du denn das ganze ein in Bezug es über Exceltabellen laufen zu lassen?

    Ohne nähere Kenntnisse über die Software und ihrer Möglichkeiten bleibt es bei Vermutungen.

    Annahme :

    • die Software verfügt über eigene Exportmöglichkeiten (z.B. in Exceltabellen)
    • mit den exportierten Daten kannst Du i.d.R. machen, was Du möchtest (ohne Gewähr)
    • sollte die Software über eigene Importmöglichkeiten verfügen, kann man die geänderten Daten aus den Exceltabellen ggf. wieder einlesen - das solltest Du mit dem Support klären

    Von direkten Schreib/Lesezugriffen auf die Datenbank über externe Verfahren (z.B. ADO) , würde ich nach dem momentanen Stand der Dinge abraten !

    Gruß Musashi

    86598-musashi-c64-png

    "Am Anfang wurde das Universum erschaffen. Das machte viele Leute sehr wütend und wurde allenthalben als Schritt in die falsche Richtung angesehen."

  • achso ja also Import und Export Möglichkeit existiert und wurde in der Vergangenheit schon angewandt, bloß hat das keiner bisher über Makros, AutoIt oder so automatisiert. Zurzeit wird da eher noch sehr händisch dran gegangen. Man müsste wohl nur noch zusätzlich einrichten, dass dieses Textfeld eben mit auf Tabelle ausgegeben wird, damit man dann hier automatisch die einzelnen Attribute über eine ganze Tabelle auslesen lassen könnte. das werde ich mal abklären.