SuchGrid

Eigentlich ist mir die Frage peinlich, aber es kann sonst niemand helfen ... :)

Moderator: Moderatoren

SuchGrid

Beitragvon GrillenHirni » Sa, 20. Aug 2016 10:08

Hat jemand ein Control, mit dem man in beliebiger Spalte einen Suchbegriff eingeben kann, wonach ein Suchalgorythmus den DatenSatz auf den ersten zutreffenden DatenSatz positioniert...?

Wo man eventuell sogar als zusätzliche Option - PushButton [Filter] - einen Filter auf einen aktiven Begriff setzen könnte?

Dies sollte etwa zur Folge haben, dass die Anzeige der Datensätze auf den Zugriff des betreffenden Filters beschränkt sein sollte. Eine Reorganisation der Anzeige nach Aufhebung des Filters sollte bestenfalls auch möglich sein...?

Gibt es sowas...?

Für detaillierte Vorstellungen verweise ich auf meine Ausschreibung im Forum Jobbörse...

Herzliche Grüsse an alle und ein schönes WochenEnde...!
Grilli
GrillenHirni
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Do, 18. Jul 2013 10:56

Re: SuchGrid

Beitragvon AUGE_OHR » Sa, 20. Aug 2016 18:43

GrillenHirni hat geschrieben:Hat jemand ein Control, mit dem man in beliebiger Spalte
also ein Browse

GrillenHirni hat geschrieben:einen Suchbegriff eingeben kann, wonach ein Suchalgorythmus den DatenSatz auf den ersten zutreffenden DatenSatz positioniert...?
Seek() bzw OrdWildSeek(), beide benötigen einen Index

GrillenHirni hat geschrieben:Wo man eventuell sogar als zusätzliche Option - PushButton [Filter] - einen Filter auf einen aktiven Begriff setzen könnte?
wenn man einen Index hat würde man SCOPE nehmen zur Eingrenzung.
ein SET FILTER könnte extrem langsam sein ... und ein "Filter" im DbSkipper ist nicht zu empfehlen.

GrillenHirni hat geschrieben:Dies sollte etwa zur Folge haben, dass die Anzeige der Datensätze auf den Zugriff des betreffenden Filters beschränkt sein sollte. Eine Reorganisation der Anzeige nach Aufhebung des Filters sollte bestenfalls auch möglich sein...?
was meinst du mit Reorganisation ?
wenn du ein SCOPE oder FILTER entfernst brauchst du nur ein oBrowse:RefreshAll()

ich habe zwar deine Anzeige unter Jobs gesehen aber ich frage mich ob du es nicht selbst lernen willst.
ein Browse benötigt man doch ständig und da sollte man schon wissen welche Möglichkeiten geboten werden.
Es ist ja nicht eine externe Schnittstelle oder ein Control was Xbase++ nicht hat sondern ein XbPart.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10146
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SuchGrid

Beitragvon AUGE_OHR » Sa, 20. Aug 2016 18:44

meine Browse, mit inkrementeller Suche, haben für jede Such Spalte einen Index.
mit oBrowse:colPos bekommst man die aktuelle Spalte wo sich der Cursor (XBPBRW_CURSOR_CELL) befindet.
Mit oBrowse:getColumn( <nColPos> ) bekommst du das Column Object

mit einem klick auf den Browse Header (könnte auch Footer sein) wechsle ich den Index
Code: Alles auswählen
   // lbClick auf Browse Header
   ::browser:getColumn(i):heading:lbClick:=::STR2BLOCK(i)

METHOD VYBN:STR2BLOCK(i)
RETURN {||::ORDSETINDEX(&(str(i)))}

METHOD VYBN:ORDSETINDEX(nIndexNo)
LOCAL i
IF LEN(::aColElement[nIndexNo])>3
   // reset Browse header
   FOR i:=1 to LEN(::aColElement)
       ::browser:getColumn(i):heading:setCell(1,::aColElement[i,3])
       ::browser:getColumn(i):heading:inValidateRect()
       ::browser:getColumn(i):heading:setColorFG(GRA_CLR_WHITE)
       ::browser:getColumn(i):heading:setColorBG(GRA_CLR_BLUE)
   NEXT
   // markierung aktive Index / Spalte
   ::browser:getColumn(nIndexNo):heading:setCell(1,::aColElement[nIndexNo,3]+" /\")

   // aktiven Index setzten
   ORDSETFOCUS(::aColElement[nIndexNo,4])

   i := nIndexNo
   IF i > LEN(::aColElement)
      i := LEN(::aColElement)
   ENDIF

   // im Browse Spalte optisch anzeigen
   ::browser:colpos := i
   ::browser:getColumn(i):heading:setColorFG(GRA_CLR_YELLOW)
   ::browser:getColumn(i):heading:setColorBG(GRA_CLR_RED)

   // Anzeige neu aufbauen
   ::browser:refreshAll()
   ::currIndex:=nIndexNo
ENDIF

RETURN self
die Suche geht wie schon gesagt inkrementell.
Code: Alles auswählen
METHOD VYBN:KEYBOARD(nKey)

IF KEY2SEEK(nKey) .or.nKey==xbeK_SPACE
  ::cSeekTXT+=chr(nKey)

  IF LEN(::cSeekTXT) == 1
     IF nKey > 90 .and. nKey < 123
        ::cSeekTXT := UPPER(::cSeekTXT)
     ENDIF
  ENDIF
  ::SearchTXT:setCaption(::cSeekTXT)

  IF VALTYPE(&(ordKey()))="N"
    DBSEEK(VAL(::cSeekTXT))
  ELSEIF VALTYPE(&(ordKey()))="C"
    DBSEEK(UPPER(::cSeekTXT))
  ENDIF

  ::browser:refreshAll()
  postAppEvent(xbeBRW_ItemMarked,NIL,NIL,::browser)

ELSEIF nKey==xbeK_RIGHT

   IF OrdNumber() < LEN(::aColElement)
      ::ORDSETINDEX(OrdNumber() +1)
   ELSEIF OrdNumber() >= LEN(::aColElement)
      ::ORDSETINDEX( LEN(::aColElement) )
   ENDIF

  ::cSeekTXT:=""
  ::SearchTXT:setCaption("Suchbegriff eingeben (ALT-S aktivieren)")

ELSEIF nKey==xbeK_LEFT

   IF OrdNumber() <= 1
      ::ORDSETINDEX(1)
   ELSE
      ::ORDSETINDEX(OrdNumber() -1)
   ENDIF

  ::cSeekTXT:=""
  ::SearchTXT:setCaption("Suchbegriff eingeben (ALT-S aktivieren)")

ELSEIF nKey==xbeK_BS .or. nKey==xbeK_DEL

  ::cSeekTXT:=""
  ::SearchTXT:setCaption("Suchbegriff eingeben (ALT-S aktivieren)")
  ::browser:refreshAll()

ELSEIF nKey==xbeK_ESC
  IF ::escapePressed<>NIL
    EVAL(::escapePressed)
  ENDIF

ENDIF

RETURN SELF
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10146
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SuchGrid

Beitragvon brandelh » Sa, 20. Aug 2016 18:56

Sowas muss man selbst bauen, aus Geschwindigkeitsgründen sollte eventuell ein Quickbrose mit Array für die Treffer benutzt werden.
Dieses Array könnte man dann sehr schnell Filtern und sortieren (SLE und Pushbuttons darüber).
Bei der Anzeige sollte man zunächst die Treffer auf 100 begrenzen damit es schneller geht.
Gruß
Hubert
Benutzeravatar
brandelh
Foren-Moderator
Foren-Moderator
 
Beiträge: 13267
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim

Re: SuchGrid

Beitragvon georg » Sa, 20. Aug 2016 19:43

Eine etwas ausführlichere Beschreibung der Anforderung findet Ihr hier: http://www.xbaseforum.de/viewtopic.php?f=8&t=9390&p=106738#p106738
Liebe Grüsse aus der Eifel,

Georg
georg
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 1769
Registriert: Fr, 08. Feb 2008 21:29

Re: SuchGrid

Beitragvon GrillenHirni » So, 21. Aug 2016 9:12

Guten Morgen Ihr Lieben...

Herzlichsten Dank für Eure Tipps!!

Ich denke auch, dass ich es eigentlich selber bauen sollte - in einem weiteren Sinn würde ich es mir sogar zutrauen
und es würde mich sogar reizen...

Leider neige ich zu überdimensionionierten Projekten und versuche die, halbwegs mit meiner Lebenserwartung
in Einklang zu bringen... Mit Lebenserwartung meine ich das, was mir der Hausarzt sagt - der weiss nicht, dass
ich unsterblich bin...

So bin ich Tag und Nacht mit den Anwendungen beschäftigt - bei StandardSoftware kannst nicht einfach was
fest verdrahten - die meisten Einstellungen müssten "nach aussen" programmiert werden, wo sie der Anwender
verändern kann...

Ich versuche meine ungefähr 40 AnwenderModule zu pflegen - das mache ich mit einem selbsterstellten Tool,
welches mir sämtliche Menu- und Dateibeschreibungen codiert...

In der XUG haben sie mich schon gewarnt, dass die interne Umstellung auf XBase++ mindestens solange dauern
würde, wie die Umstellung der Oberfläche und tatsächlich bin ich schon seit Monaten dabei, intern die neuen
Möglichkeiten umzusetzen - bin aber glaubs kurz vor der ZielLinie...

Damit möchte ich erklären, warum ich bisher noch nicht selbst angefangen hab mit dem Grid und warum
ich hier angefragt hab, ob es mir jemand erstellen oder ein bereits bestehendes verkaufen kann...

Dann hab ich es bisher nicht als meine Aufgabe als AnwendungsEntwickler gesehen, die unzulänglichen Controls
von XBase++ auszuprogrammieren... In der XUG Zürich haben wir Menschen, die deswegen auf andere Umgebungen
umgestiegen sind...

Trotzdem ist mir das Argument von Herrn Ohr zugänglich - heisst er mit Vorname tatsächlich Auge...?

Und ich bin schon am überlegen, wo ich die Zeit für die Erstellung dieses Suchgrids "abschränzen" könnte -
vielleicht könnte meine Katze wenigstens die Fleissarbeiten übernehmen, aber die bringts bis jetzt
nicht mal fertig, mir ein Bier vom Eisschrank zu holen...

Ich arbeite aber an mir und an dem Problem - es wär ein wichtiger Lerneffekt für mich...

Wegen den obenerwähnten Umständen in der AnwendungsEntwicklung sollte das SuchGrid universal
auf eine vorselektierte Datei und deren in einem Parameter übergebenen Felder aFeldId anwendbar
sein.

Heute Morgen habe ich zur Veranschaulichung noch eine schematische Darstellung in Excel gebastelt -
die versuch ich hiermit gleich hochzuladen...

Nochmal vielen Dank für die wertvollen Tipps und Euch allen einen schönen Sonntag...!!
Grilli
Dateianhänge
20160821.1 SuchGrid schematischer DarstellungsEntwurf.xls
(24 KiB) 17-mal heruntergeladen
GrillenHirni
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Do, 18. Jul 2013 10:56

Re: SuchGrid

Beitragvon AUGE_OHR » So, 21. Aug 2016 22:01

GrillenHirni hat geschrieben:Trotzdem ist mir das Argument von Herrn Ohr zugänglich - heisst er mit Vorname tatsächlich Auge...?
Nein, Jimmy s.h. Signatur

wir alle haben doch genau so wie du angefangen ... nur das es das Forum noch nicht gab.

GrillenHirni hat geschrieben:wie die Umstellung der Oberfläche
jetzt muss ich mal nach-harken : du kommst von Cl*pper ? mit TBrowse gearbeitet ?
wie sieht es mit deinen Xbase++ Class Code Kenntnissen aus ?

p.s. hast du dir schon mal Express++ angesehen ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10146
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SuchGrid

Beitragvon GrillenHirni » Mo, 22. Aug 2016 7:38

Hallo Jimmy...

Das war bestimmt auch Knochenarbeit ohne Forum...?

Ja ich "komme" von Clipper... Mit TBrowse hab ich mal
gearbeitet - das ist aber Jahre her. So wie ich mich erinnere,
waren es einige wenige Browse-Funktionen und dann
abenteuerliche Balance-Akte, um die BrowseObjekte
stabil zu halten - waren aber schöne Zeiten...

Was meinst Du mit XBase++- Class-Code-Kenntnissen...?
Ich bin halbwegs in der Lage, im Anwendungsbereich
Klassen zu definieren und zu verwenden...

Im technischen Bereich der GUI-Oberfläche hapert
es... Da es mir beispielsweise nicht gelingt, ein MenuObjekt
so abzuleiten, wie ich es gerne hätte, oder da ich mich
eben damit beschäftigen muss, wie ich zu einem zumutbaren
SuchGrid komme, nerft das ein bisschen, weil ich lieber
Anwendungen schreiben würde... Ein bisschen finde ich
auch, dass dies eigentlich Aufgabe der Programmiersprache
wäre, brauchbare Controls oder im XBase-Fall Dialoge anzubieten...

Express++ habe ich vor Jahren ganz oberflächlich angesehen -
hab es auch lizenziert - wollte es aber nicht von Anfang
an einsetzen. Inzwischen ist vermutlich die Lizenz abgelaufen.

Empfiehlst Du mir Express++...?

Ebenfalls lizenziert habe ich XClass++. Auch das wollte ich
nicht von Anfang an einsetzen, bevor ich mich mal hausgemacht
durchgeschlagen habe... Auch dies müsste ich wahrscheinlich
neu lizenzieren, falls ich tatsächlich damit arbeiten wollte...

Herzliche Grüsse und einen guten Start in die Woche...!
Grilli
GrillenHirni
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Do, 18. Jul 2013 10:56

Re: SuchGrid

Beitragvon Manfred » Mo, 22. Aug 2016 7:45

kurzer Hinweis, die Lizenz von express++ läuft nie ab. Es kann bis in alle Ewigkeiten genutzt werden. Es kann nur sein, das es nicht mehr 100%ig klappt, wenn Xbase++ sich zu stark verändert haben sollte. Aber das glaube ich eher weniger. ;-) Express++ ist in reinem xbase++ Code egschrieben und paßt daher eigentlich immer, oder läßt sich modifizieren. (meine Erfahrung)
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Moderator
Foren-Moderator
 
Beiträge: 15969
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel

Re: SuchGrid

Beitragvon AUGE_OHR » Mo, 22. Aug 2016 15:43

GrillenHirni hat geschrieben:Das war bestimmt auch Knochenarbeit ohne Forum...?
früher war ich im Compuserve Forum ... mit Akustikkoppler ... das dauerte bis man eine Antwort bekam
hilfreich waren für mich die DevCon Veranstaltungen wo ich Fragen stellen konnte (und Antworten bekam)

---

Xbase++ hat gar kein echtes Grid.
XbpBrowse() ist die GUI Umsetzung von Tbrowse und hat die selben Class Methoden wie die Class (!) TBrowse.

wenn ich deine Wünsche umsetzten würde bekämst du das
Code: Alles auswählen
CLASS GrilliBrowse FROM XbpBrowse
wenn du nun schreibst das du Express++ und XClass++ hast frage ich mich ob du dann was mit der Class anfangen könntest ?

Dann hab ich es bisher nicht als meine Aufgabe als AnwendungsEntwickler gesehen, die unzulänglichen Controls von XBase++ auszuprogrammieren...
ich bin mir nicht sicher was du jetzt meinst ...

in TBrowse unter DOS hatten wir nur die Class Methoden. unter Windows gibt es nun Propertys welche unter Xbase++ die VAR darstellen.
nun hat Xbase (alle Versionen) noch etwas : Codeblock

tatsächlich wirst du unter Windows weniger "Business-Logik" schreiben aber dafür um so mehr Propertys "ausfüllen" müssen.

das "ausfüllen" solcher Property Dialoge ist der Windows Weg zum schreiben von Apps.
probieren kannst du es ja mal mit dem Formdesigner ... Masken wirst du ja irgendwann benötigen.

---

Express++, welches auf Xbase++ aufbaut, verwendet COMMAND Befehle. die Property werden ebenso beschrieben.
mit DcSAY / DcGET hast du ähnlich Befehle wie unter Cl*pper.
ein DcBrowse hat nun schon viele "eingebaute" Eigenschaften die du nutzen könntest

klar müsste man die Express++ Syntax lernen aber auch OOP Class Code muss man ja lernen.
das Forum kann dir ( und anderen ) dabei helfen ... du musst "nur" die Fragen stellen.

mein Vorschlag : eröffnen einen neuen Thread und wir bauen zusammen dein gewünschtes Browse
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10146
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SuchGrid

Beitragvon GrillenHirni » Mo, 22. Aug 2016 20:57

Hallo Jimmy...

An die Zeiten mit Akkustikkoppler (300 dings pro Sekunde oder Minute) kann ich mich
auch noch erinnern - wir sind einfach tapfere Kämpfer...!

Damals hab ich die grösste Mailbox in der Schweiz betrieben - das Internet war noch
in weiter Ferne... Bestimmt werde ich heute Nacht in meinen Träumen das Hupen
von so einem Koppler hören...

Danke für Deine Tipps betreffend XbpBrowse... Ich hab das schon gesehen, dass es
das gibt.

Eigentlich wollte ich hier in der JobBörse gucken, ob ich einen Auftrag ausschreiben
kann und mir so die Zeit sparen, um das Teil zu erstellen, weil ich auch anderweitig
mehr als ausgelastet bin...

Aber ich hab in der JobBörse noch keine gescheite Offerte erhalten - anscheinend
sind hier die meisten Menschen mit ihren eigenen Projekten beschäftigt, was ich
gut verstehen kann...

Inzwischen habe ich mir nach Deinem Tipp mal die Beschreibung von XbpBrowse
ausgedruckt und aufs Nachttischchen gelegt...

Die könnten aber - was mich betrifft - mit dem Xbase++ ruhig ein paar ordentliche
Controls oder Dialoge ausliefern, wie beispielsweise ein anständiges Suchgrid...

Ich hab ein paaar Probleme, wo ich die Umsetzung der Konzepte im Vergleich
mit Clipper als Einschränkung empfinde - dies betrifft besonders das MenuObjekt...

Express++ hab ich schon gesehen - ich wollte mich eigentlich schon erst Mal auf
XBase++ einlassen und nicht mit den alten Clipper-Commands weiter machen...

Dein Angebot, in einem Thread gemeinsam ein entsprechendes Browse zusammen
zu basteln ist super... Ich wollte aber niemanden kostenlos mit meinen Problemen
beschäftigen... Jedenfalls tu ich mir vorbeugend mal das XbpBrowse mal ansehen
und ich fände es toll, wenn ich mich wieder melden darf...

Allerdings will ich mich auch nicht beim öffentlichen Zusammenbauen von einem
Suchgrid blamieren... Mit dieser Xbase-Parts-Programmierung ist es bei mir
wie mit dem Kochen: egal was ich versuche zu kochen - am Schluss wird es
immer Gulasch...

Danke auch den anderen für die Tipps und Dir für Deine Hilfsbereitschaft...
Grilli
GrillenHirni
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Do, 18. Jul 2013 10:56

Re: SuchGrid

Beitragvon AUGE_OHR » Mo, 22. Aug 2016 22:59

GrillenHirni hat geschrieben:Allerdings will ich mich auch nicht beim öffentlichen Zusammenbauen von einem Suchgrid blamieren...
es gibt IMHO keine dummen Fragen ... nur dumme Antworten.

bei den Usern die über Xbase++ "meckern" möchte ich behaupten das dieses auf sehr hohem Niveau geschieht.
die User, die ich kenne, welche von Xbase++ zu eine anderen Sprache / RAD umgestiegen sind hatten die Grenzen von Xbase++ erreicht.

nun scheinst du am Anfang einer Windows App zu sein ... was hast du bislang ausser dem Menu ?

was du suchst ist ein GUI "Fenster" mit mehren XbParts.
der "Filter" soll nun die Anzeige im Browse (Grid) begrenzen.

Frage : um welche Datenmengen handelt es sich ?

p.s. war das eine Cl*pper Mailbox + Frontdoor ?
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10146
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SuchGrid

Beitragvon GrillenHirni » Di, 23. Aug 2016 14:09

Frage: um welche Datenmengen handelt es sich?


In meinen Anwendungen handelt es sich nicht um Unmengen von DatenSätzen – es können vielleicht in der Dimension von
etwa 2000, manchmal natürlich auch mehr – im extremen Einzelfall doppelt soviel - sein…?

Da ich Standardsoftware entwickle, muss ich dem Anwender praktisch bei jedem SchlüsselWert (Key) eine Tabelle anbieten.
Dafür sollte das Grid universal einsetzbar sein – ich kann nicht im voraus garantieren, dass die Spalte, in welcher der Anwender
sucht, indexiert ist. Wenn der Anwender in einem Feld sucht, das nicht indexiert ist, ist das seine Sache - Hauptsache, es ist
möglich. Darum sollte eine entsprechende Suche ohne Index (skippen) entgegen allen Ratschlägen möglich sein. Die Tipps für
entsprechende Optimierung hier in diesem Thread werde ich natürlich und nach Möglichkeit mit Dankbarkeit versuchen umzusetzen…!

Es geht mir beim Grid hauptsächlich um die Oberfläche – eine entsprechende SuchLogik habe ich bereits –
allerdings nach den Tipps hier im Forum mit dem Verdacht, dass diese schon Potential für Optimierungen hat.




... was hast Du bislang ausser dem Menu?


Bisher habe ich soweit eine Oberfläche, die Beta-Versionen von Dialogen für den Unterhalt von DatenSätzen zur
Verfügung stellt,

mit den SLEs werde ich es irgendwie hinkriegen, wenn es soweit ist,

es kommt noch das Suchgrid, das werde ich irgendwie dann auch hinkriegen, wenn ich es selber machen muss
und notfalls halt mit Hilfe,

dann kommt noch das Problem Drucken, da hatte ich schon ziemlich Unterstützung.

Leider jagt bei mir ein Problem das andere und das einzige, was nicht hab, ist eben das Menu! Das ist der absolute
Knackpunkt – die Suche nach dem Gral...

Ich kann nicht nach dem Programmstart die ganze Menustruktur erzeugen – ich habe Menus, wo ich es unter
anderem von einer Prüffunktion abhängig machen muss, ob ein SubMenu überhaupt angeboten wird oder nicht:


IF PrüfFunktion()=.T. // Wenn Prüffunktion()=.F. wird möglicherweise eine FehlerMeldung ausgegeben.

Ok – dann baue mal das SubMenu auf und biete es dem Anwender zur Auswahl an…

ELSE

Was…? PrüfFunktion()=.F.? Ok, dann gibt’s leider kein SubMenu.

ENDIF


Dies werde ich im GegenSatz zu diesem GulaschGrid ganz bestimmt nicht mehr selber hin kriegen.

Das gehört zwar nicht mehr in diesen Thread - nur soviel: ich habe eine Beschreibung des Problems
vorbereitet und bräuchte ein abgeleitetes MenuObjekt mit Unterstützung der folgenden zusätzlichen
Slots:

oMenu:bMenuValid // PrüfFunktion
oMenu:bProlog // PreValidierung

oMenu:bEpilog // PostValidierung – Rückgabewert wird nicht verwendet


Falls ich darf, werde ich dies gerne bei einer anderen Gelegenheit an einem anderen Ort thematisieren.


Herzliche Grüsse
Grilli


P.S. Die Software für die MailBox hiess DLX – eine pfiffige Software – voll der TextModus.
Das war ende der 80er/anfangs der 90er-Jahre des letzten Jahrhunderts. Als Veranstalter
war ich eher verantwortlich für die Inhalte – bei der Technik hatte ich Unterstützung. Wir
hatten beispielsweise ein „Schachbrett“, wo Schach gespielt und Turniere veranstaltet
wurden, ein „KulturBrett“, das von einem Träger des deutsche Kleinkunstpreises moderiert
wurde und weitere Foren – auch PC-Support. Die Benutzer waren vorwiegend männlich und
mit den heutigen Aufreissplattformen hatte es nichts zu tun.
GrillenHirni
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Do, 18. Jul 2013 10:56

Re: SuchGrid

Beitragvon AUGE_OHR » Di, 23. Aug 2016 16:33

GrillenHirni hat geschrieben:der Dimension von etwa 2000, manchmal natürlich auch mehr – im extremen Einzelfall doppelt soviel - sein…?
Ok dann sollte das kein Problem sein

zu XbpBrowse :

besser als die Hilfe sind die Demos unter
Code: Alles auswählen
XbpBrowse()      : C:\ALASKA\XPPW32\SOURCE\samples\basics\GuiBrow\
XbpQuickBrowse() : c:\ALASKA\XPPW32\SOURCE\samples\basics\QBrowse\
zum Thema Filter :

wenn du nur 1 SLE für die Column als Suchbegriff hast dann wäre die obere und untere Grenze gleich.
eine Anzeige Umsatz > 1.000.000 wäre dann nicht möglich.

Xbase++ hat auch OrdWildSeek() (benötigt Index).
damit ist eine Teil Suche möglich wobei man die "Treffer" in ein Array schaufeln sollte.

zum SuchGrid Design :

Wenn du die Demo vergrösserst/verkleinerst ändert sich die Breite der Column nicht. vielmehr werden mehr oder weniger Spalten angezeigt.

die SLE sollen ja der Anzahl der (angezeigten) Spalten entsprechen ... was wenn nicht alle Spalten angezeigt werden wenn Fenster verkleinert ?
XbpBrowse zeigt in so einem Fall einen horizontalen Scrollbar an. wenn man den weiter nach rechts verschiebt könnte die erste Spalte aus dem Sichtfeld fallen.
alle einzelnen SLE müssten verschoben werden wobei man noch ermitteln müsste welche Spalten nun sichtbar sind ...

Ein XbpBrowse verfügt über einen Footer Bereich. es lässt sich feststellen wenn ein User in den Bereich klickt. ( o:lbDown() )
es wird dann ein SLE an der Stelle über den Footer Bereich der Spalte gelegt.
da du nur 1 SLE zulassen willst werden alle Footer gelöscht bevor das Ergebniss SLE:GetData() in den Footer übertragen wird.
nach dem SLE:Destroy() wird der Footer Bereich wieder sichtbar und ein "refresh" sorgt für die Anzeige.

Menu : hm ...

GrillenHirni hat geschrieben:und bräuchte ein abgeleitetes MenuObjekt mit Unterstützung der folgenden zusätzlichen Slots:
Code: Alles auswählen
oMenu:bMenuValid // PrüfFunktion
oMenu:bProlog // PreValidierung

oMenu:bEpilog // PostValidierung – Rückgabewert wird nicht verwendet
du kannst iVAR oder Methoden in eine abgeleitete Class hinzufügen aber ein Callback Slot ...
ein Callback Slot wird durch einen Event aktiviert ... wo soll man die Events her bekommen ?

es gibt Menu die so umfangreich sind das man darin verlaufen kann ...

bei einem Auftrag was das so schlimm das ich vorgeschlagen habe ein Treeview statt Menu zu verwenden.
Treeview hat z.b. den Callback Slot : o:itemExpanded
damit kann man verhindern das ein Node ( SubMenu-Zweig ) geöffnet wird.

da der Compiler nicht wissen kann was gesperrt ist muss die angesprochene Procedure/Function (als Dummy ) vorhanden sein.

! Note : das sperren in einem Menu / Treeview kann man "von aussen" aus-hebeln !
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10146
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SuchGrid

Beitragvon Wolfgang Ciriack » Di, 23. Aug 2016 16:50

When du eXPress++ hast, ist das mit dem Menü recht einfach (DCSUBMENU, DCMENUITEM).
Dort gibt es für jeden Menüpunkt eine WHEN Klausel, wo du deine Prüffunktion mit Rückgabewert .T./.F. hinterlegen kannst, z.B.
Code: Alles auswählen
DCSUBMENU oUebMenu PROMPT "Übernahme" OWNERDRAW BARTEXT "Übern."
   DCMENUITEM 'Kundendaten -> Kundenstamm'   PARENT oUebMenu ACTION {|| Txt2Stamm(KUNDEN,oDlg)} WHEN {|| te->txtart<>SERIENBRIEF .and. !vorhanden(KUNDEN,1,str(te->kundnum,5))}
   DCMENUITEM SEPARATOR PARENT oUebMenu
   DCMENUITEM 'Positionen  -> Sonderpreise'  PARENT oUebMenu ACTION {|| Txt2Stamm(UMS_1,oDlg)} WHEN {|| te->txtart=SPEZTEXT }
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2220
Registriert: Sa, 24. Sep 2005 8:37
Wohnort: Berlin

Re: SuchGrid

Beitragvon AUGE_OHR » Di, 23. Aug 2016 18:47

Wolfgang Ciriack hat geschrieben:When du eXPress++ hast, ist das mit dem Menü recht einfach (DCSUBMENU, DCMENUITEM).
Dort gibt es für jeden Menüpunkt eine WHEN Klausel, wo du deine Prüffunktion mit Rückgabewert .T./.F. hinterlegen kannst, z.B.
es gibt ja o:disableItem(n) / o:enableItem(n) aber nicht die von Grilli aufgeführten Callback Slots.

wie sehe verwendet Roger dazu den o:beginMenu Callback Slot ... :-k
Code: Alles auswählen
METHOD dc_getList:init()
    ...
    ::menuBar := DC_MenuOSys( aMenu, ::parentDlg, .f., aGetList, boMsgBox, cKeyList, nKeyType )
    ::menuBar:beginMenu := {|a,b,o|_MenuWhen(o)}
    IF Valtype(boMsgBox) == 'B'
      ::menuBar:endMenu := {||Eval(boMsgBox):setCaption('')}
    ENDIF


STATIC FUNCTION _MenuWhen( oMenu )
LOCAL aList, i, bWhen, aChildList, lEnable

   IF !oMenu:isDerivedFrom('DC_WindowMenu')
     RETURN nil
   ENDIF

   aList := oMenu:cargo[4]
   FOR i := 1 TO LEN(aList)
     bWhen := aList[i,1]
     IF Valtype(bWhen) = 'B'
       lEnable := Eval(bWhen,oMenu)
       aList[i,2] := lEnable
       IF lEnable
         oMenu:enableitem(i)
       ELSE
         oMenu:disableitem(i)
       ENDIF
     ENDIF
   NEXT
   aChildList := oMenu:ChildList()
   FOR i := 1 TO Len(aChildList)
     _MenuWhen( aChildList[i] )
   NEXT

RETURN nil

auf ein TreeView als Alternative kam ich wenn man tief verschachtelte Menus hat.

angenommen du bist in Menu Punkt "A" und hast dort Submenus geöffnet.
nun willst du was unter Menu Punkt "B" machen ... alles was mit "A" offen war verschwindet.
danach willst du von "B" wieder nach "A" wo du vorher warst ...

ein TreeView kann ja den Zweig geöffnet lassen was dann ein Vorteil wäre.
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10146
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SuchGrid

Beitragvon GrillenHirni » Mi, 24. Aug 2016 7:25

Ui... viel Information zum verarbeiten und umsetzen für ein armes GrillenHirni...!

wenn du nur 1 SLE für die Column als Suchbegriff hast dann wäre die obere und untere Grenze gleich.
eine Anzeige Umsatz > 1.000.000 wäre dann nicht möglich.


Ich würde das Grid gerne universal einsetzen - hauptsächlich um dem Anwender bei Schlüsselwerten
Tabellen anzubieten. Der Anwender soll in einem Grid einen bestimmten Begriff suchen können und
auch rum scrollen. Eine Suchlogik hab ich eigentlich schon - allerdings optimierungsbedürftig. Einen
Zugriff Umsatz>1'000'000 brauche ich eigentlich nicht. Auch Wildcards sollen nicht unterstützt
werden. Es sollte einfach auf den ersten DatenSatz positioniert werden, der in der selektierten
Datei dem Suchbegriff entspricht. Der Typ betreffend OrdWildSeek() und dem Array ist wertvoll...!


Wenn du die Demo vergrösserst/verkleinerst ändert sich die Breite der Column nicht. vielmehr werden mehr oder weniger Spalten angezeigt.


Die SLEs für die Suchbegriffe sollten konsequent unter den betreffenden Spalten platziert sein. Wenn Spalten
aus dem Sichtfeld fallen, weil der Dialog zu klein ist, sollte der Anwender das Fenster vergrössern können
oder die betreffenden Spalten mit RollBalken ins Sichtfeld holen können.


Menu : hm ...


Das Menu, welches abhängig von einer PrüfFunktion angeboten soll, ist ein anderes Thema... Ich glaube,
dass ich hier nicht zu einem Angebot komme, wenn wir dies nicht separat behandeln - möchte mich aber
hier auch allen so gut es geht anpassen... Es ist der Knackpunkt in meiner Software - ich suche seit zwei
Jahren nach einer Lösung... Vielleicht könnt Ihr mich da in meiner Mailbox anschreiben...? ich habe eine
Beschreibung von dem Problem... Die folgenden Einlassungen kann ich mir aber nicht verkneifen:

betreffend Wolfang:
When du eXPress++ hast, ist das mit dem Menü recht einfach (DCSUBMENU, DCMENUITEM).


Ich kann es fast nicht glauben, weil ich bisher so viel in das Problem investiert habe... Diesen Tipp werde
ich in jedem Fall verfolgen müssen... Wenn Du mir einen ProtoTyp im Sinne eines Demos machen würdest,
würde ich Dir den Aufwand gerne bezahlen, wenn Du mir vorher zu einem adäquaten Preis ein Angebot machen
kannst...


es gibt ja o:disableItem(n) / o:enableItem(n) aber nicht die von Grilli aufgeführten Callback Slots.


Auch für die Anwendung der Methoden o:disableitem oder o:enableitem müsstest Du irgendwie aus
dem MenuSystem aussteigen können, um die PrüfFunktion aufzurufen, bevor das SubMenu angezeigt
wird. Und anschliessend je nach Ergebnis der PrüfFunktion das SubMenu anzeigen oder nicht.

Die Callback-Slots itemSelected, beginMenu und endMenu funktionieren aber - anderst als die
Dokumentation vermuten lässt - nur für die MenuBar -NICHT für SubMenus...

Abgesehen davon, wenn mit den betreffenden Slots abgeleitet wird, kann das SubMenu anschliessend
nicht mehr aufgeklappt werden.


auf ein TreeView als Alternative kam ich wenn man tief verschachtelte Menus hat.


Diesen Ansatz haben wir auch versucht... Er ist daran gescheitert, dass das TreeViewObjekt keine
Möglichkeit für eine PreValidierung anbietet.


Eventuell seid Ihr einverstanden, wenn wir uns hier um das Grid kümmern - soviel Sorgen wie jetzt
noch mit diesem oMenuObjekt wollte ich Euch tatsächlich nicht zumuten... Aber nur wenn Ihr
einverstanden seid - wenn nicht, dann nicht... Sonst könntet Ihr mich wie erwähnt, privat
anschreiben wegen dem MenuObjekt - ich habe eine Beschreibung sowie ein Demo im VIO-Modus
und würde gerne einen Auftrag vergeben (oder soll ich das anderst machen?)...

Herzliche Grüsse und einen guten Morgen...
Grilli
Dateianhänge
20160821.1 SuchGrid schematischer DarstellungsEntwurf.xls
(24 KiB) 9-mal heruntergeladen
GrillenHirni
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Do, 18. Jul 2013 10:56

Re: SuchGrid

Beitragvon Rudolf » Mi, 24. Aug 2016 8:23

Hallo,
vielleicht hilft das, Beispiel für die Indexinkrementelle Suche in eXpress++
Grüße
Rudolf


Code: Alles auswählen
@ 1.5,1 DCBROWSE oBrowse ALIAS "LIF" SIZE SIZE_X-22,SIZE_Y-5  DATALINK {||lif->(eg_lieferant()),dc_getrefresh(oBrowse)}  CURSORMODE XBPBRW_CURSOR_ROW ...

DCBROWSECOL FIELD lif->nummer     HEADER "Nummer"    PARENT oBrowse  WIDTH 5
DCBROWSECOL DATA {|| SUBSTR(PADR(ALLTRIM(lif->NAME1) + " " + ALLTRIM(lif->NAME2),40),1,35)} HEADER ">Name" PARENT oBrowse  WIDTH 30
DCBROWSECOL field lif->lkz         HEADER "LKZ" PARENT oBrowse  WIDTH 2
...

@ SIZE_Y -  3, 2  DCSAY 'Nummer'     GET cF_NUM PICTURE "9999999"                         SAYSIZE  0 PARENT aoTabStatic[1] KEYBLOCK {|a,b,o|lif->(_Xsearchitem(a,b,o,oBrowse,@cF_NUM,"LIFNR"))}
@ SIZE_Y -  3,24  DCSAY 'Name'       GET cF_NAM PICTURE "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"  SAYSIZE  0 PARENT aoTabStatic[1] KEYBLOCK {|a,b,o|lif->(_Xsearchitem(a,b,o,oBrowse,@cF_NAM,"LIFNAM"))}
@ SIZE_Y -  3,80  DCSAY 'Matchcode'  GET cF_MAT PICTURE "!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"  SAYSIZE  0 PARENT aoTabStatic[1] KEYBLOCK {|a,b,o|lif->(_Xsearchitem(a,b,o,oBrowse,@cF_MAT,"MATCH"))}
...



FUNCTION _xsearchitem( a, b, o, oBrowse,cSeek,xOrder,cType,cPrefix,lDebug)
******************************************************************
LOCAL lSoftSeek := Set(_SET_SOFTSEEK,.t.),cBuffer := alltrim(o:EditBuffer())
local lWild := "*" $ cBuffer .or. "?" $ cBuffer
local snSeconds := Seconds(),nEvent,mp1,mp2,nKey := o:lastkey,nDelay := 0
local lClearBuffer := .t.
default cType to valtype(cSeek)
default cPrefix to ""
default lDebug to .f.
IF a = xbeK_UP
   oBrowse:up()
ELSEIF a = xbeK_DOWN
   oBrowse:down()
ELSEIF a = xbeK_PGUP
   oBrowse:pageup()
ELSEIF a = xbeK_PGDN
   oBrowse:pagedown()
ELSEIF a = xbeK_END
   oBrowse:gobottom()
ELSEIF a = xbeK_HOME
   oBrowse:gotop()
ELSE
     IF nDelay > 0
          DO WHILE Seconds() - snSeconds < nDelay .AND. nKey < 60000 .AND. nKey # xbeK_ENTER
               nEvent := AppEvent(@mp1,@mp2,@oXbp,.1)
               IF Valtype(oXbp) == 'O'
                    oXbp:handleEvent(nEvent,mp1,mp2)
               ENDIF
          ENDDO
     ENDIF


     setorder(xOrder)
     dc_clrscope()
     if cType = "C"
          cBuffer := cPrefix + cBuffer
          if "UPPER(" $ upper(indexkey())
               cBuffer := upper(cBuffer)
          endif
          if lWild
               ordwildSEEK(cBuffer)
          else
               SEEK(cBuffer)
          endif
     elseif cType = "N"
          SEEK(val(cBuffer))
     elseif cType = "D"
          if !empty(ctod(cBuffer))
               cBuffer := dtos(ctod(cBuffer))
               SEEK(cBuffer)
          else
               return NIL
          endif
     else
          SEEK(cBuffer)
     endif
     lClearBuffer := .f.
ENDIF
IF lClearBuffer
  if cType = "N"
     cSeek := 0
  elseif cType = "C"
     cSeek := Space(50)
  elseif cType = "D"
     cSeek := ctod("")
  else
     cSeek := space(20)
  endif
  o:Get:home()
  o:setData()
ENDIF
oBrowse:refreshall()
Set(_SET_SOFTSEEK,lSoftSeek)
RETURN nil

Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
 
Beiträge: 1166
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich

Re: SuchGrid

Beitragvon Wolfgang Ciriack » Mi, 24. Aug 2016 17:56

Grundsätzlich solltest du überlegen, ob ein solches Grid sinnvoll ist.
Wenn du sowieso schon die Daten anzeigst, ist es evtl. sinnvoller, nur ein Suchfeld zu haben und dann in der Spalte zu suchen, die der Anwender durch Klick in den Header gewählt hat (wobei man den Klick in den Header mit einer Sortierfunktion- entweder index oder ein ASort bei Arrays- verbinden sollte). Ein Grid wäre m.E. nur sinnvoll, wenn man in mehrere Spalten Werte eingeben könnte um nach kombinierten Begriffen zu suchen. Das wäre bei Arrays schnell, bei Datenbanken evtl. langsam, je nach Anzahl der Datensätze oder man benutzt den ADS.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2220
Registriert: Sa, 24. Sep 2005 8:37
Wohnort: Berlin

Re: SuchGrid

Beitragvon AUGE_OHR » Mi, 24. Aug 2016 20:52

GrillenHirni hat geschrieben:Wenn Spalten aus dem Sichtfeld fallen, weil der Dialog zu klein ist, sollte der Anwender das Fenster vergrössern können oder die betreffenden Spalten mit RollBalken ins Sichtfeld holen können.
man merkt das du noch nicht mit XbpBrowse() gearbeitet hast ;-)

angenommen zu hast 10 Felder als Column aber die Grösse des Fensters zeigt nur 5 Spalten an dann wird ein horizontaler Scrollbar "im" Browse sichtbar.
wenn du den Scrollbar betätigst verschieben sich die Spalten des Browse ... sonst nichts.

GrillenHirni hat geschrieben:Die SLEs für die Suchbegriffe sollten konsequent unter den betreffenden Spalten platziert sein. Wenn Spalten aus dem Sichtfeld fallen, weil der Dialog zu klein ist, sollte der Anwender das Fenster vergrössern können oder die betreffenden Spalten mit RollBalken ins Sichtfeld holen können.
siehe dir doch mal die Xbase++ Browse Demos an damit das mit dem Scrollbar "live" siehst.

GrillenHirni hat geschrieben:soviel Sorgen wie jetzt noch mit diesem oMenuObjekt wollte ich Euch tatsächlich nicht zumuten...
wenn die Leute keine Lust hätten würden die nicht antworten ;-)

aber du hast Recht das du dafür ein neuen Thread aufmachen solltest ... da gibt es wohl einige Missverständnisse :roll:


GrillenHirni hat geschrieben:
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10146
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SuchGrid

Beitragvon GrillenHirni » Do, 25. Aug 2016 8:17

Guten Morgen Ihr Lieben...

Danke Rudolf für den Prototypen dieses offensichtlichen eXpress++-Browsers...!

Ich bin total gespannt, wie er funktioniert und schaue mir den übers WochenEnde
an...!

Danke an Wolfgang für die Tipps...!

Wenn du sowieso schon die Daten anzeigst, ist es evtl. sinnvoller, nur ein Suchfeld zu haben und dann in der Spalte zu suchen, die der Anwender durch Klick in den Header gewählt hat (wobei man den Klick in den Header mit einer Sortierfunktion- entweder index oder ein ASort bei Arrays- verbinden sollte).


Ja... stimmt... Es ist nicht vorgesehen, Algorythmen für Suchbegriffe, die aus mehreren Spalten zusammen gesetzt sind, anzubieten... Ich hab mal ein Grid mit einem SLE pro Spalte gesehen und fand es gut... Aber es wäre tatsächlich auch möglich, nur eine Eingabe für einen Suchbegriff zu haben und in der aktiven Spalte zu suchen... Auf die Idee bin ich noch gar nicht gekommen...


Herzlichen Dank auch an Jimmy...!

man merkt das du noch nicht mit XbpBrowse() gearbeitet hast ;-)


Ich konnte es aber die ersten Beiträge lang ganz gut verbergen - oder...? Das Rumscrollen mit diesen SLEs, wenn nicht alle Spalten angezeigt werden, das scheint tatsächlich das kniffligste Problem zu werden...?

siehe dir doch mal die Xbase++ Browse Demos an damit das mit dem Scrollbar "live" siehst.


Das QBrowse2 habe ich schon angesehen und auch eingesetzt - es ist ein übler Krampf... Das GUIBrowse habe ich erst mal von weitem gesehen... Ich arbeite daran...

Aber ich müsste auch mal jemand haben, wo sagt: so und soviel Euros - ich mach das...


MenuObjekt:

wenn die Leute keine Lust hätten würden die nicht antworten ;-)
aber du hast Recht das du dafür ein neuen Thread aufmachen solltest ...



Das ist ja mein eigentliches Problem. Das SuchGrid ist dagegen nur ein Vorspiel...

Ich möchte aber das Forum hier nicht gleichzeitig mit zwei Threads beanspruchen... wenn allerdings jemand anders einen Thread zu diesem Thema eröffnet, kann ich natürlich nichts dagegen tun. Ausserdem gehört es zu meinen Lebenszielen, dass ich mir hier nicht nur helfen lasse, sondern eines Tages auch mal jemandem helfen kann - und sei es nur mit allgemeiner LebensHilfe, KochRezepten oder FrauenProblemen... Leider kann ich mich nur bei ersterem empfehlen - von Kochen und Frauen habe ich keine Ahnung... Jetzt wo ich es mir überlege: vom Leben eigentlich auch nicht...

Aber das oMenuObjekt wird das Problem sein, wo die Menscheit wird das Universum gegen den Untergang verteidigen müssen - ich habe mein LaserSchwert schon gewetzt... Um das Thema zu bodigen, habe ich eine ganzheitliche Strategie entwickelt... Dazu gehört als Anlauf erst mal auch SinnSuche und ein philosophisches Fundament... Ausdruck für den philosophische Einstieg in das Thema sind wahrscheinlich die folgenden Zitate:

Der Weg ist das Ziel... (Konfuzius)

Der Weg kommt beim Gehen (GrillenHirni, Ritter des Paradoxons)


Und Ralf Senftleben - (glaub ein deutscher Hilfsphilosoph - ich kenn ihn nicht und er soll mir nicht böse sein...):

Es gibt eine Fähigkeit, die dich im Leben unglaublich weit trägt.
Die Fähigkeit, Probleme zu lösen. Systematisch. Schritt für Schritt. Wie ein Terrier, der sich in ein Hosenbein verbissen hat.
Probleme lösen …
Also zuerst einmal zu erklären: Da gibt es dieses Problem.
Dann zu sagen: Ich werde dieses Problem lösen.
Dann überlegst du dir Lösungsmöglichkeiten.
Du suchst nach Ursachen für das Problem.
Dann stellst du Hypothesen auf, mit Herz und Verstand. Und mit der Hilfe anderer Menschen.
Du probierst Dinge aus.
Du scheiterst.
Du stehst wieder auf, wieder und wieder.
Bis das Problem gelöst ist.
Dann schmeißt du eine wilde, großartige Party.
Wenn du das kannst und tust, bist du ein Problemlöser.
Und solche Menschen werden gebraucht. Überall. Egal wie alt. Egal wie jung.
Ich wünsch dir viele spannende Probleme und die Fähigkeit, sie zu lösen.


Hoffentlich hab ich Euch nicht gelangweilt mit dieser chrotten MenuObjekt-Philosophie aber ich bin schon so verzweifelt, dass es ohne Philosophie und guten Zuspruch nicht mehr geht...

Herzliche Grüsse!
Grilli
Zuletzt geändert von GrillenHirni am Do, 25. Aug 2016 9:59, insgesamt 2-mal geändert.
GrillenHirni
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Do, 18. Jul 2013 10:56

Re: SuchGrid

Beitragvon Rudolf » Do, 25. Aug 2016 9:29

Hallo,
Danke Rudolf für den Prototypen dieses offensichtlichen eXpress++-Browsers...!

hab vergessen zu Erwähnen dass es sehr einfach wäre mit nur einem Suchfeld auch die aktuelle Spalte des Browsers abzufragen und dementsprechend die Suche zu gestalten. Im Header kannst Du alle Suchspalten markieren. Werde mal bei Gelegenheit ein Beispiel machen.
Grüße
Rudolf
Benutzeravatar
Rudolf
Programmier-Gott
Programmier-Gott
 
Beiträge: 1166
Registriert: Mo, 02. Jan 2006 23:03
Wohnort: Salzburg/Österreich

Re: SuchGrid

Beitragvon AUGE_OHR » Do, 25. Aug 2016 10:11

GrillenHirni hat geschrieben:Ich möchte aber das Forum hier nicht gleichzeitig mit zwei Threads beanspruchen...
wenn du etwas fragst und Antworten erhältst können alle davon profitieren und je mehr los ist desto öfter gucken die Leute in das Forum.

wenn du mehr tun willst dann werde doch Mitglied im Verein. Der Verein und das Forum sind nicht kommerziell und non-Profit.
§2 Zweck
Zweck des Vereins ist die gegenseitige Unterstützung von Programmierern und Softwareentwicklern, die mit der Programmiersprache "Alaska Xbase++" und Folgeprodukten arbeiten. Zur Erfüllung dieses Zwecks betreibt der Verein eine Internet-Site, veranstaltet Programmiererkonferenzen und unterstützt seine Mitglieder bei der Organisation von Programmierertreffen.
einen Antrag / Satzung findest du hier : http://www.xbaseentwickler.de/index.php/downloads/category/6-vereinsdokumente
gruss by OHR
Jimmy
Benutzeravatar
AUGE_OHR
Marvin
Marvin
 
Beiträge: 10146
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg

Re: SuchGrid

Beitragvon GrillenHirni » Do, 25. Aug 2016 12:11

Hallo Rudolf...

Möglicherweise ist es tatsächlich einfacher, mit nur einem Suchfeld einen Suchbegriff
der aktuellen Spalte des Browsers abzufragen... Der Wolfgang hatte auch diese Idee...

Wie geht es denn mit dem Aufbau des Dialoges? Das SuchFeld könnte wahrscheinlich
erst erscheinen, wenn eine Spalte fokussiert ist, da vorher Typ und FeldLänge nicht
bekannt sind...?

Herzliche Grüsse
Grilli
GrillenHirni
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Do, 18. Jul 2013 10:56

Re: SuchGrid

Beitragvon GrillenHirni » Do, 25. Aug 2016 12:14

Hallo Jimmy...


wenn du mehr tun willst dann werde doch Mitglied im Verein. Der Verein und das Forum sind nicht kommerziell und non-Profit.


Ich wusste nicht, dass es einen Verein gibt. Falls mein Eintritt da als Unterstützung empfunden wird, trete ich sofort bei...!!

Nehmt Ihr auch Schweizer...? Meine Ex-Partnerin aus Düsseldorf meinte, dass die Schweiz bald ausstirbt, weil wer will schon
dieses komische Deutsch hören...?

Herzliche Grüsse - bald Euer neues Vereinsmitglied...
Grilli
Zuletzt geändert von GrillenHirni am Do, 25. Aug 2016 12:53, insgesamt 1-mal geändert.
GrillenHirni
Cut&Paste-Entwickler
Cut&Paste-Entwickler
 
Beiträge: 43
Registriert: Do, 18. Jul 2013 10:56

Nächste

Zurück zu Newbie

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast