automatisches Zählen - infor ERP

Stelle Fragen zur Programmierung mit Autohotkey

Moderator: jNizM

Fisatec
Posts: 42
Joined: 26 Sep 2022, 07:31

automatisches Zählen - infor ERP

Post by Fisatec » 26 Sep 2022, 07:48

Hey @all,
Ich bin ganz neu in diesem Forum und ebenfalls kompletter Neuling was jede Art von Programmieren angeht.
Deswegen könnte ich etwas Hilfe gebrauchen, um ein Skript zu erstellen, was mir zunächst beim Durchzählen verschiedener Einträge in einer Tabelle behilflich sein kann.

Dafür würde ich gerne den Inhalt der aktuell ausgewählten Zelle in "Sort" auslesen und abhängig von diesem Wert die Zählung starten.
Außerdem soll die Zählung gestoppt werden, sobald eine Zelle erreicht ist, die den Wert 99 besitzt.

Leider habe ich nicht finden können, wie ich den Inhalt einer Zelle auslesen kann.

Vllt hat ja Jemand einen Tipp für mich :)

Liebe Grüße und schönen Tag
Fisatec

//EDIT: Der Zelleninhalt ist bei Auswahl jeweils automatisch markiert und kann entsprechend direkt z.B. kopiert oder verändert werden.
Ein einfaches Skript, was stupide durchzählt, habe ich hinbekommen.
Aber leider startet es immer bei 1 und läuft nur mit meinen vorgegebenen Zahlen (versuchsweise nur 1-4).
Attachments
Infor.jpg
Infor.jpg (232.01 KiB) Viewed 971 times

BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: atomatisches Zählen - infor ERP

Post by BoBo » 26 Sep 2022, 09:25

Moin,
Ich sehe zwar die Spalte 'Sort', doch die Zählerei gegen eine Zelle (wo auch immer diese positioniert ist?) kann sich ja auch auf den verdeckten Bereich beziehen.
Vielleicht kannst du einen Screenshot mit veränderten, weniger sensiblen, jedoch sichtbaren/referenzierbaren Daten erstellen?
Stellt sich noch die Frage wie es um die "accessibility" dieser application bestellt ist?

Starte das Script und positioniere anschließend mal den cursor in einer der "Sort"-Zellen. Danach wäre die F1-Taste zu drücken.

Code: Select all

F1::
   clipboard:=""
   Send ^c
   ClipWait
   MsgBox % clipboard
return
Edit: dann zeige eben mal dein script!

Fisatec
Posts: 42
Joined: 26 Sep 2022, 07:31

Re: automatisches Zählen - infor ERP

Post by Fisatec » 26 Sep 2022, 09:40

Vielen Dank schon einmal für deine schnelle Antwort :)
Morgen kann ich gerne dein Script Mal ausführen und weitere Screenshots senden. Bin nicht mehr am Arbeitsplatz.

Nur die Zahlen in der Spalte "Sort" sollen numerisch fortlaufend sein, ohne Lücken.
Im verdeckten Bereich befinden sich lediglich Artikel- und Auftragsnummern, Material etc. Diese sind ersteinmal für die Zahlenfolge uninteressant.

Auch mein "Skript" kann ich morgen leider erst präsentieren.

Liebe Grüße und schönen Abend
Fisatec

//EDIT: @jNizM Habe das Thema ausversehen als "solved" markiert. Könntest du das rückgängig machen? :oops:
Vielen Dank!

Fisatec
Posts: 42
Joined: 26 Sep 2022, 07:31

Re: automatisches Zählen - infor ERP

Post by Fisatec » 27 Sep 2022, 00:55

Guten Morgen :)

@BoBo Ich habe dein Skript ausgeführt und ein Screenshot erstellt. Der Großteil der Tabelle ist jetzt ebenfalls sichtbar.
Die Zelle mit Inhalt "10" in der Spalte "Sort" ist markiert und der Wert wird entsprechend kopiert und ausgegeben.

Hier mein primitves Skript:

Code: Select all

^j::
IfWinActive, Infor ERP COM Produktion - [Arbeitsplatzkonto 5338]
{
    WinActivate ;
    WinMaximize ;
    Send, 1{DOWN}{LEFT}{Enter}{LEFT}
    Send, 2{DOWN}{LEFT}{Enter}{LEFT}
    Send, 3{DOWN}{LEFT}{Enter}{LEFT}
    Send, 4{DOWN}{LEFT}{Enter}{LEFT}
    return
}
Mit der Pfeiltaste "runter" springt die aktive Markierung in die nächste Zelle, hier mit Inhalt "11".
Wird eine Zahl in der Zelle eingetragen, die in der Spalte "Sort" schon vorhanden ist, taucht eine Meldung auf. Diese habe ich ebenfalls mit angefügt.
"{DOWN}{LEFT}{Enter}{LEFT}" sorgt dafür, dass die Markierung in die nächste Zelle der Spalte "Sort" springt, egal ob die Meldung auftaucht oder nicht. Sicher etwas unglücklich, aber funktioniert aktuell :lol:

Liebe Grüße
Fisatec
Attachments
Infor_meldung.jpg
Infor_meldung.jpg (11.74 KiB) Viewed 891 times
Infor_script.jpg
Infor_script.jpg (304.83 KiB) Viewed 891 times
Infor.jpg
Infor.jpg (303.94 KiB) Viewed 891 times

just me
Posts: 9407
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: automatisches Zählen - infor ERP

Post by just me » 27 Sep 2022, 03:21

Moin,

erkläre doch bitte noch einmal anhand Deines letzten Beispiels, was genau Du tun willst. Du startest mir einer bereits ausgewählten Zelle und holst Dir den Inhalt. Was soll danach geschehen? Wie soll das Egebnis aussehen?

Fisatec
Posts: 42
Joined: 26 Sep 2022, 07:31

Re: automatisches Zählen - infor ERP

Post by Fisatec » 27 Sep 2022, 03:56

Hey @just me
Die gesamte Spalte "Sort" soll fortlaufend numeriert werden, bis eine Zelle erreicht wird, in der sich der Wert "99" befindet.

Im Idealfall wird der Zelleninhalt ausgelesen und ab da wird angefangen zu zählen. Wenn also eine Zelle angeklickt und dadurch aktiv ist, in der sich der Wert "10" befindet, dann soll auch ab "10" fortlaufend gezählt werden, bis eine Zelle mit "99" erreicht wird.
Im normalfall wird von 1-99 numeriert, wie im Screenshot meines ersten Posts zu erahnen ist. Der letzte Screenshot ist da etwas unglücklich gewählt.
Es kann eben auch sein, dass eine "Sort"-Spalte am Ende des Zählvorgangs nur die Werte 1, 2, 3, 4, 99 enthält. Die "99" dient in dem Fall einfach dazu, Aufträge ganz am Ende der Liste einzuordnen und optisch zu verdeutlichen, dass diese Aufträge nicht dringend sind.

Etwas umständlich zu erklären, aber vllt ist es jetzt etwas klarer?!?

Liebe Grüße
Fisatec

//EDIT:
Ich habe jetzt ein Skript, was soweit funktioniert.
Es ist aber definitv ausbau- und verbesserungsfähig.

Code: Select all

^j::
#IfWinActive ahk_class Infor ERP COM Produktion
{   
    Loop {
	clipboard:=""
    Send ^c
    ClipWait
	
	If clipboard < 99 {
	clipboard:=""
	Send {UP}
	Send ^c
    ClipWait
	x := Clipboard
	x++	
	Send, {DOWN}{LEFT}{Enter}{LEFT}
    Send, %x%
	Send, {DOWN}{LEFT}{Enter}{LEFT}
	}
	Else {
	ExitApp
	}
    }  
	
	return
}
Last edited by Fisatec on 27 Sep 2022, 07:07, edited 2 times in total.

BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: automatisches Zählen - infor ERP

Post by BoBo » 27 Sep 2022, 04:37

Mir ist immer noch nicht klar was der "Zählvorgang" an sich bewirken soll?
Annahme: Ich habe eine Tabelle mit vier Einträgen/Reihen die zwar fortlaufend , jedoch NICHT durchgehend nummeriert sind (wie in deiner ersten Abbildung)
Der Cursor befindet sich in der ersten Zelle der Spalte 'Sort', für welche der Wert 10 ausgegeben wird.
Nun, was zähle ich jetzt…
a) die Postion = 1
b) den Wert = 10
c) die Anzahl fehlender Werte oder Positionen bis zum nächsten gefundenen Wert = 0 bzw 1
d) die Gesamtzahl aller Positionen oder Werte in der Spalte 'Sort' = 9 bzw …
e)…

:?:

Mein Verdacht ist, das du in der Tabelle ab einer variablen ersten Position (hier mit dem Wert 10) nachfolgend fehlende (leere?) Reihen mit ihren jeweiligen (Positions)Werten auffüllen möchtest, jedoch ohne Dubletten zu erstellen. Endend mit der Reihe 99.
Doch wenn ja, was ist mit den vorherig fehlenden Positionen 1-9??

Wie schon gesagt, es ist nicht klar was genau das Ziel ist bzw. wie das Endergebnis aussehen soll.

Fisatec
Posts: 42
Joined: 26 Sep 2022, 07:31

Re: automatisches Zählen - infor ERP

Post by Fisatec » 27 Sep 2022, 05:35

Der Zählvorgang soll einfach eine forlaufende und lückenlose Sortierung in die Spalte "Sort" bringen.
Je nach dem, wie schnell die Aufträge abgearbeitet werden, entstehen größere Lücken, da nicht immer strikt nach Reihenfolge gefertigt wird.
Außerdem gelangen neue Aufträge unsortiert in die Liste.
Um das ganze übersichtlich zu gestalten, soll mindestens einmal am Tag die Liste "aufgeräumt" werden.
Bisher musste immer händisch durchgezählt werden. Zumindest fürs Erste klappt mein Skript aus dem vorherigen Post.

Liebe Grüße
Fisatec

//EDIT: Leider habe ich jetzt das Problem, dass der Zählvorgang nicht stoppt, wenn keine Zelle mit dem Inhalt "99" vorhanden ist. Eine Endlosschleife...

just me
Posts: 9407
Joined: 02 Oct 2013, 08:51
Location: Germany

Re: automatisches Zählen - infor ERP

Post by just me » 28 Sep 2022, 02:22

Moin,

zur Klarstellung:

1. Bei Eingabe des Hotkeys ist die erste Zelle der Tabelle ausgewählt.
2. Die Einträge sind aufsteigend sortiert.
3. Es gibt maximal 99 Einträge.
4. Es wird ab 1 fortlaufend nummeriert, bis eine Zelle mit Inhalt 99, eine leere Zelle oder die Nummer 99 erreicht werden.

Ist das so korrekt?

Fisatec
Posts: 42
Joined: 26 Sep 2022, 07:31

Re: automatisches Zählen - infor ERP

Post by Fisatec » 28 Sep 2022, 03:37

Moin @just me ,
Das ist alles soweit korrekt, bis auf 4.

Es wird fortlaufend nummeriert, bis eine Zelle mit Inhalt 99 erreicht wird. Es kann meherere Zellen mit Inhalt 99 geben, ggf dann auch über Nummer 99 hinaus. Wichtig ist, dass beim Erreichen der ersten Zelle mit Inhalt 99 die Zählung beendet wird.
Theoretisch hast du auch recht damit, dass eine leere Zelle den Zählvorgang beenden soll. Aber eine leere Zelle kann ich leider nicht auswählen.

Daher ist meine aktuelle Idee, die kopierten Werte in einer .ini abzulegen, um dann überprüfen zu können, ob eine Zahl doppelt kopiert wurde.
Das würde nämlich bedeuten, dass keine Zelle mit Inhalt 99 vorliegt und das Skript dann beendet wird.

mein aktuelles Skript:

Code: Select all

^j::
#IfWinActive ahk_class Infor ERP COM Produktion 
{ 
	IniDelete, % A_ScriptDir "\counting.ini", Reihenfolge
	
    Loop {
	clipboard:=""
    Send ^c
    ClipWait
	IniWrite, % Clipboard, % A_ScriptDir "\counting.ini", Reihenfolge
	IniRead, Zahl, % A_ScriptDir "\counting.ini", Reihenfolge
	
	If (clipboard < 99) {
	clipboard:=""
	Send {UP}
	Send ^c
    ClipWait
	x := Clipboard
	x++	
	Send {DOWN}{LEFT}{Enter}{LEFT}
    Send %x%
	Send {DOWN}{LEFT}{Enter}{LEFT}
	clipboard:=""
	}
	
	Else {
	Sleep 1000
	ExitApp
	}
    }  

}
Die .ini wird angelegt und ausgelesen. Aber leider weiß ich nicht, wie ich jetzt auf doppelte Werte prüfen kann und damit die if-Funktion unterbrechen kann.

Bisher alles Trial&Error, funktioniert aber soweit. Bis auf Beenden des Zählvorgangs, wenn keine 99er Zelle vorliegt.

Liebe Grüße
Fisatec

BoBo
Posts: 6564
Joined: 13 May 2014, 17:15

Re: automatisches Zählen - infor ERP

Post by BoBo » 28 Sep 2022, 10:41

Wundert mich das du das Video (das zweite verwirrt nur) nicht hier bereits gepostet hast :wtf:
viewtopic.php?f=76&t=108919

IMHO solltest du als Bedingung für den Fall des Nichtvorhandenseins der Postion 99 vorab die Gesamtzahl an Postionen ermitteln (evtl lässt sich das Control dazu abfragen ("50/55"))
Wird beim Nummerieren 99 gefunden, STOP.
Wird 99 NICHT gefunden, STOP nach Durchnummerierung der Gesamtzahl (fragt sich, ob die Tabelle dazu scrollt, ich denke eher nicht denn sonst sollte eigentlich nicht 50/55 angezeigt werden?).

Fisatec
Posts: 42
Joined: 26 Sep 2022, 07:31

Re: automatisches Zählen - infor ERP

Post by Fisatec » 28 Sep 2022, 13:55

@BoBo Das Video ist kurz vor Feierabend entstanden und dann musste es schnell gehen.
Feierabend halt :lol: Wollte es morgen in Laufe des Tages noch hier posten.

Die Gesamtzahl der zu nummerierenden Zellen variiert ständig und in jedem Arbeitsplatzkonto.
Daher kann ich keine Gesamtzahl als Anhaltspunkt verwenden.
Das Skript soll ebenfalls von jeder Position aus zählen können, indem es den Wert der obigen Zelle ausliest. Was aktuell auch gut funktioniert.

Im zweiten Video sieht man dann das Problem der Endlosschleife, wenn keine 99er Zelle vorhanden ist.
Dementsprechend sieht auch die angelegte .ini aus (die vorherige Zelle wird immer wieder ausgelesen und in der .ini entsprechend mehrfach niedergeschrieben).

Wenn ich abgeben könnte, dass das Skript bei einer Dopplung innerhalb der .ini gestoppt werden soll, dann würde alles funktionieren.

Liebe Grüße
Fisatec

Fisatec
Posts: 42
Joined: 26 Sep 2022, 07:31

Re: automatisches Zählen - infor ERP

Post by Fisatec » 29 Sep 2022, 03:19

Im Thread viewtopic.php?f=76&t=108919 steht die Lösung zu meinem Problem, dass die Aufzählung ohne Zelle mit Inhalt "99" nicht unterbrochen wird.

Vielen Dank auch hier an alle für die Hilfe :)

Ahk_fan
Posts: 237
Joined: 31 Aug 2018, 14:34
Contact:

Re: automatisches Zählen - infor ERP

Post by Ahk_fan » 29 Sep 2022, 06:41

servus!
infor ERP verwendet Oracle als DB, da kann dir jemand bei Softwarehaus mit Zugriff auf die DB eine kleine User-Function in einem Package machen, die das ausfüllt. Normalerweis eist das eine Kleinigkeit und in einer Stunde erledigt. Die Spalte Sort ist bestimmt eine DB-Spalte. Oder ihr habt jemanden im Haus, der die Admin-Sachen macht.
regards,
AHK_fan :)
https://hr-anwendungen.de

Post Reply

Return to “Ich brauche Hilfe”