Programmierung unter AOO/LO (StarBasic, Python, Java, ...)
Moderator: Moderatoren
Karolus
********
Beiträge: 7517 Registriert: Mo, 02.01.2006 19:48
Beitrag
von Karolus » Mo, 24.03.2025 14:27
Ich hab das nochmal etwas angepasst und an das Ereignis »Inhalt geändert« von Tabelle3 gebunden:
Code: Alles auswählen
from bisect import bisect_left
def search_and_select(event):
if not event.AbsoluteName.endswith("$D$2"):
return
nummer = event.Value
if not nummer:
return
doc = XSCRIPTCONTEXT.getDocument()
tab_2 = doc.Sheets[1]
tab_3 = event.Spreadsheet
ctrl = doc.CurrentController
in_use = tab_3["B:B"].queryContentCells(7)[0].DataArray
existing_nums = tab_2["A:A"].queryContentCells(7)[0].DataArray
try:
pos = in_use.index( (nummer,) )
ctrl.select( tab_3[pos, 1] )
return
except ValueError:
pos = bisect_left( existing_nums, (nummer,) )
if existing_nums[pos][0] == nummer:
(t:=tab_3[len(in_use),1]).Value = nummer
ctrl.select( t )
return
else:
ctrl.select( tab_2[pos-1, 0] )
Zum Testen:
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)
MT326
**
Beiträge: 20 Registriert: Mi, 28.08.2024 09:24
Beitrag
von MT326 » Mo, 24.03.2025 15:07
Faszinierend....
wie das auf einmal aussieht wenn jemand programmiert anstatt zu basteln.
meine Hochachtung...
Zu deinen Bedenken wegen dem ZählenWenn.
Sicherer ist auf jeden Fall >= aber die Zahlen in Tabelle 2 sind Artikelnummern die nur einmal vorkommen dürfen.
Gruß MT
Karolus
********
Beiträge: 7517 Registriert: Mo, 02.01.2006 19:48
Beitrag
von Karolus » Mo, 24.03.2025 16:01
Damit ihr mal seht wie ein Benutzerfreundliches modernes interaktives Werkzeug ( Jupyter-notebook ) im Vergleich zur »BÄHSICK«-IDE aussieht:
Dateianhänge
20250324_18h03m03s_grim.png (82.85 KiB) 2855 mal betrachtet
LO7.4.7.2 debian 12(bookworm) auf Raspberry4b 8GB (64bit)
LO24.8.2.1 flatpak debian 12(bookworm) auf Raspberry4b 8GB (64bit)