Spinbutton und :changed [ERLEDIGT]

Klassen, Objekte, Methoden, Instanzen

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Spinbutton und :changed [ERLEDIGT]

Beitrag von Manfred »

noch einer

ich habe einen Spinbutton und bei jedem Skip in der Datenbank und der Anzeige, behauptet der, er wäre changed. Wieso ist das so und warum passiert das nicht bei einem SLE, von dem er ja erbt?
Zuletzt geändert von Manfred am Do, 30. Jul 2009 13:29, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

hat keiner eine Idee, woran das liegen könnte?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Moin,
nun, da müsste man ein wenig Code sehen!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi,

ich hoffe das verwirrt jetzt nicht...

das wird auch bei einem SLE benutzt und dort klappt es. Ich lese aber gerade mal die Knowledgebase durch, mal sehen ob da etwas darüber steht.

Code: Alles auswählen

oVt:oStatic := feldtexte():new(oVt:oRahmen,,{10,oVt:oRahmen:currentSize()[2]-nYStatic},oVt:aStaticGroesse)
         oVt:oStatic:create()

         oVt:oSteuer:oBerechnung := spinbutton():new(oVt:oRahmen,,{120,oVt:oRahmen:currentSize()[2]-nYStatic},{50,20})
         oVt:oSteuer:oBerechnung:tabStop    := .T.                              // muß sein, damit alles mit der TAB Taste angesprungen werden kann
         oVt:oSteuer:oBerechnung:dataLink   := { |x| IIf( x==NIL, oVt:oSteuer:Berechnung, oVt:oSteuer:Berechnung := x) }
         oVt:oSteuer:oBerechnung:SetNumLimits( 0,1 )
         oVt:oSteuer:oBerechnung:SetInputFocus := {|| oVt:oSleHilfe:setCaption("0 = SHD (Differenzbesteuerung)/ 1 = Neu (Umsatzsteuerpflichtig)")}
         oVt:oSteuer:holeSLEParameter(oVt:oSteuer:oBerechnung,"berechnung",oVt)
         oVt:oSteuer:oBerechnung:create()

METHOD datenbank:holeSLEParameter(objekt,cWert,oVt)
//       LOCAL cFeldname                                                          // der Feldname an sich
//       LOCAL cFeldart                                                           // Typ des Feldes
       LOCAL nFeldbreite                                                        // Breite des Feldes
       LOCAL cSlePicture                                                        // Pictureformatierung des SLE z.B. "9999"
       LOCAL cStatic                                                            // Eingebafeldtext in der Maske
       LOCAL cCaption                                                           // Text der zur Erläuterung der Eingabe angezeigt wird
       LOCAL nI
       LOCAL nLen := Len(::aStrukturErweitert)

       FOR nI := 1 TO nLen
           IF ::aStrukturErweitert[nI,1] == Upper(cWert)
              nFeldbreite := ::aStrukturErweitert[nI,feldbreite]
              cStatic     := ::aStrukturErweitert[nI,ueberschrift]
              cSlePicture := ::aStrukturErweitert[nI,slepic]
              cCaption    := ::aStrukturErweitert[nI,slehilfe]
              EXIT
           ENDIF
       NEXT
       objekt:bufferlength   := nFeldbreite
       IF objekt:classname() = "SLEPic"
          objekt:picture        := cSlePicture
          objekt:setInputFocus  := {|| oVt:oSleHilfe:setCaption(cCaption + " bis maximal " + ALLTRIM(STR(nFeldbreite)) + " Zeichen Länge eingeben und mit RETURN bestätigen. <ESC> = Abbruch")}
       ENDIF
       objekt:killInputFocus := {|| oVt:oSleHilfe:setCaption("")}
       oVt:oStatic:setCaption(cStatic + ":")
RETURN self
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
also wenn ich das richtig gesehen habe, kannst Du bei Deinem Spinbutton nur 0 oder 1 eingeben - richtig?
Dafür nimmt man keine Spinbuttons, sondern Checkboxen!! Alles andere wäre nicht GUI-konform!
Das zum Einen!
Und zu Deinem eigentlichen "Problem": Wozu willst Du denn auswerten, ob etwas changed ist? Damit Du weißt, ob Du die Änderung rausschreiben musst?
Vergiss es! Klappt eh' nicht zuverlässig!
Wenn der User aus A B macht, das Eingabefeld verlässt und dann doch wieder in A ändert, steht der selbe Wert drin, wie vorher - trotzdem würde changed true liefern!!
Wenn Du auf einen neuen Datensatz gehst, speicherst Du alle Felder in einem Array zwischen.
Wenn Du den Datensatz wieder verlässt, vergleichst Du die EditBuffer() etc. mit den Werten im Array - irgendwo ein Unterschied, speichern.

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Martin,

0 oder 1 ist jetzt, es könnte aber auch noch eine 2 irgendwann dazukommen.

Aber andersherum betrachtet, könntest Du Recht haben.....

Das mit dem changed soll genau deshalb gemacht werden.
Es ist vollkommen wurscht, ob aus einem A ein B und dann wieder ein A gemacht wird. Dann soll der User selbst entscheiden, wenn die Meldung kommt. Es geht mir nur darum, zu merken, wenn überhaupt etwas geändert wurde, weil man halt etliche Buttons drücken kann, während man in der Maske ist. Und das finde ich halt als recht komfortabel, dass es sowas gibt.
Also reine Geschmacksache. Es sieht also so aus, als wenn es ein Bug ist. Hm, werde ich mal an den Support weiterleiten, mal sehen was die dazu sagen.

Edit: Martin, Du hast sogar Recht, es kann nur die beiden Zustände geben. Ich nehme die Checkbox....
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
Manfred hat geschrieben:Es geht mir nur darum, zu merken, wenn überhaupt etwas geändert wurde, weil man halt etliche Buttons drücken kann, während man in der Maske ist. Und das finde ich halt als recht komfortabel, dass es sowas gibt.
und genau das würde mich extremst verwirren, wenn ich gefragt würde, obwohl ich ja nicht wirklich was geändert hätte...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hi Martin,

ok, lassen wir es jetzt mal so im Raume stehen, aber vom Grundprinzip wurde geändert, wenn auch wieder zurück. Aber ich denke einmal, dass dieser Vorgang so selten vorkommt, dass er nicht berücksichtigt werden muß. Außerdem muß ich mir eh eine Zeit lang ansehen, wie die User mit der neuen Oberfläche klarkommen und welche Disziplin sie an den Tag legen. Sicherlich werden beide Parteien noch ein paar Dinge lernen müssen, bzgl. Eingabeprüfung und der daraus folgenden Sicherheit, bzw. Schrottschreibung einiger Daten.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Hallo Manfred,
ich bin schon mal gespannt auf Deine Vorführung am Samstag in Osnabrück...

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Ach,

wie,
was,

Vorführung????

Soll ich zerfleischt werden? :shock:
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Martin Altmann
Foren-Administrator
Foren-Administrator
Beiträge: 16509
Registriert: Fr, 23. Sep 2005 4:58
Wohnort: Berlin
Hat sich bedankt: 111 Mal
Danksagung erhalten: 48 Mal
Kontaktdaten:

Beitrag von Martin Altmann »

Nein, wieso?
Aber sehen will ich es wenigstens mal!

Viele Grüße,
Martin
:grommit:
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/

Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Ist schon klar,

hatte ich mir auch schon gedacht, das eine gewisse Neugier, bzw ein gewisses Interesse an dem liegt, was ich gerade mache und weshalb ich hier so viele Fragen stelle.

Naja, 1 Monat noch. Ich hoffe dass ich bis dahin den schwierigsten Teil, der noch vor mir steht, auch erstellt habe. Bisher sind ja nur 1-3 Felder in den Masken, aber die besagte Maske, die ihr schon im Sommer gesehen habt, die kommt ja noch und da graut es mir vor.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Beitrag von Manfred »

Hier Jungs,

wenn ich schon sonst hinterherhinke, so habe ich doch woanders meine Qualitäten
Sehr geehrter Herr Kunz,

besten Dank fuer die Info. Wir können das von Ihnen
beschriebene Verhalten bestätigen. Dies ist definitive
falsch. Als workaround bietet sich nur an, grundsätzlich
nach einem :SetData() einen ::Changed(.F.) auszuführen.

Wir werden uns des Problems annehmen und im nächsten
Hotfix-Rollup korrigieren.

Mit besten Grüßen aus Eschborn,
Alaska Technical Support
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten