2 Fehler im Programmablauf

Alle Fragen um die Programmierung, die sich sonst nicht kategorisieren lassen. Von Makro bis Codeblock, von IF bis ENDIF

Moderator: Moderatoren

Antworten
Flymoon
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 23
Registriert: Fr, 02. Mär 2012 8:29

2 Fehler im Programmablauf

Beitrag von Flymoon »

Hallo und regnerische Grüße aus dem Allgäu :D

Ich hätte mal wieder 2 Fragen:

1 Frage: Habe in meinem Programm eine Checkbox die ich nicht editieren kann bzw. er kennt den Befehl editable:false oder true nicht, Gibt es hierfür eine andere Lösung? Ich muss diese Checkbox editieren können da sie mir aus der DB eine True/False abfrage zu bestimmten Kunden Infos macht und diese auch verändert werden sollen...

2 Frage: Habe eine Stundensatz Variable diese zeigt aber nur Ganzzahl an und keine Gleitkomma. Habe diesen Abschnitt mit dem Formdesigner angefertigt der ja hier den Befehl Transform verwendet. Kann ich die Variable vom Datentyp auch selbst verändern in dem generierten Function Code, weil iwie funktioniert das nicht. z.B. stdsatz As Integer oder Integer stdsatz...funktioniert leider nicht

Vielen Dank :D
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21248
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 211 Mal
Danksagung erhalten: 71 Mal

Re: 2 Fehler im Programmablauf

Beitrag von Manfred »

Hi,

in dem Klassenbaum zu XbpCheckBox steht auch kein editable.. Hast Du es mal mit Enable() und disable() versucht?
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
brandelh
Foren-Moderator
Foren-Moderator
Beiträge: 15710
Registriert: Mo, 23. Jan 2006 20:54
Wohnort: Germersheim
Hat sich bedankt: 73 Mal
Danksagung erhalten: 38 Mal
Kontaktdaten:

Re: 2 Fehler im Programmablauf

Beitrag von brandelh »

Hi,

ein SLE und ein MLE haben im Prinzip 3 Zustände:

1. Änderbar: SetEditable(.t.), enabled()
2. Read Only, aber markier- und scrollbar: SetEditable(.f.), enabled()
3. Nicht anwählbar (also gegraut): disabled()

bei einer checkbox gibt es nur 2 Zustände,

1. Änderbar: enabled()
2. Nicht änderbar: disbled()

Laut Windows ist ein SLE immer TEXT :!:
den kann man formatieren: oSle:setData( str(...) oder Transform(...) ) wie man will, aber grundsätzlich bleibt es Text.
Die "Windowsmaskierung" wird nomalerweise im Style des controls (resource) definiert, aber das geht bei uns so nicht.

In der Wissensdatenbank habe ich aber verschiedene abgeleitete Klassen hinterlegt, die mit Datum und numerisch umgehen können.
:arrow: http://www.xbaseforum.de/viewtopic.php? ... sle#p58259
:arrow: oSle := HB_SLE_Zahl:new(...):create(...); oSle:setValue( 1132433.433 ) geht damit z.B.

Hier einige Parameter und Methoden (der Rest ist gleich mit XbpSle()):

Code: Alles auswählen

   VAR    MASKE                    // Maske wie für Transform(n, !!! )
   VAR    NurPositiv               // Komma wird unterdrückt
   VAR    NurGanzzahl              // Minuszeichen wird unterdrückt
   VAR    AutoMark                 // Überschreibenmarkierung bei SetInputFocus automatisch setzten ?
   METHOD getValue                 // numerischen Wert abfragen
   METHOD setValue                 // numerischen Wert setzen
Gruß
Hubert
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9394
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 105 Mal
Danksagung erhalten: 364 Mal
Kontaktdaten:

Re: 2 Fehler im Programmablauf

Beitrag von Tom »

Man kann eine Checkbox dazu bringen, sich wie ein SLE zu verhalten, das nicht editierbar, aber "enabled" ist. Dazu verbiegt man einfach den Slot "SetInputFocus" und fängt dort ab, ob die Bedingungen dafür erfüllt sind, dass die Checkbox editiert werden kann. Ist das nicht der Fall, setzt man den Fokus einfach woanders hin, etwa auf das vorherige Control (das man sich dafür natürlich merken muss).
Herzlich,
Tom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12913
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: 2 Fehler im Programmablauf

Beitrag von AUGE_OHR »

Flymoon hat geschrieben:Ich hätte mal wieder 2 Fragen:
Gegenfrage : hast du im Formdesigner den Assistenten für DBF Felder benutzt ?
der "sollte" dir aus den gewählten Feldern die "richtigen" o:Datalink Codeblöcke erzeugen.
gruss by OHR
Jimmy
Flymoon
Cut&Paste-Entwickler
Cut&Paste-Entwickler
Beiträge: 23
Registriert: Fr, 02. Mär 2012 8:29

Re: 2 Fehler im Programmablauf

Beitrag von Flymoon »

Danke für eure Antworten :idea:
AUGE_OHR hat geschrieben:Gegenfrage : hast du im Formdesigner den Assistenten für DBF Felder benutzt ?
der "sollte" dir aus den gewählten Feldern die "richtigen" o:Datalink Codeblöcke erzeugen.
ja ich habe den Assistenten benutzt für die Felder, aber Problem ist er macht mir aus boolischen Werten in der Tablle ne Checkbox automatisch(könnte ja eigl auch ein Textfeld sein mit True/False, denke aber mal das es vom Assistent so gewollt ist das er eine Checkbox macht anstatt ein Textfeld in diesem Fall.

Und die Std Satz Variable erstellt der Assistent folgendes: oXbp2:dataLink := {|x| IIf( PCOUNT()==0, Transform( MST_SATZ, '@N' ), MST_SATZ := Val(x) ) }

Mein Code: oXbp2:dataLink := {|x| IIf( PCOUNT()==0, str( MST_SATZ, 2), MST_SATZ := Val(x) ) } funktioniert aber leider nicht! Er macht mir keine Kommazahlen :angry5:

Lg Malcom
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12913
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: 2 Fehler im Programmablauf

Beitrag von AUGE_OHR »

Flymoon hat geschrieben:ja ich habe den Assistenten benutzt für die Felder, aber Problem ist er macht mir aus boolischen Werten in der Tablle ne Checkbox automatisch(könnte ja eigl auch ein Textfeld sein mit True/False, denke aber mal das es vom Assistent so gewollt ist das er eine Checkbox macht anstatt ein Textfeld in diesem Fall.
YUP . wenn du per Keyboard "Y" / "N" haben willst kannst du das im oCheckBox:Keyboard Callback Slot machen.
Flymoon hat geschrieben:Und die Std Satz Variable erstellt der Assistent folgendes: oXbp2:dataLink := {|x| IIf( PCOUNT()==0, Transform( MST_SATZ, '@N' ), MST_SATZ := Val(x) ) }

Mein Code: oXbp2:dataLink := {|x| IIf( PCOUNT()==0, str( MST_SATZ, 2), MST_SATZ := Val(x) ) } funktioniert aber leider nicht! Er macht mir keine Kommazahlen :angry5:
mit mit STR(n,2) gibt es keine Dezimalstellen und deshalb kein Komma ... STR(n,10,2) wäre es wenn.

aber wenn dir der Formdesigner den "richtigen" Datalink gibt warum ändern ?
gruss by OHR
Jimmy
Antworten