Suchen nach nächst kleinerer Zahl?

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

Karolus
********
Beiträge: 7517
Registriert: Mo, 02.01.2006 19:48

Re: Suchen nach nächst kleinerer Zahl?

Beitrag von Karolus »

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:
Artikelnummer_suche.ods
(16.89 KiB) 127-mal heruntergeladen
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

Re: Suchen nach nächst kleinerer Zahl?

Beitrag von MT326 »

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

Re: Suchen nach nächst kleinerer Zahl?

Beitrag von Karolus »

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
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)
Antworten