Thanks Alex, I think I would need to study the examples more closely but I could only find one entry there that seems to do what I am trying - that is (if *CfgNurNetto (gui 7 '(+Upd +Chg +FixField) # B-Preis '(let? Pos (curr) ...
Looks like the (gui 7...) is either a FixField or a Checkbox depending on *CfgNurNetto I think I think I have something that illustrates the idea I am trying to do. Here, set the width of the TextField to 50 if the text contained is "ABC". Calling (nth) repeatedly does not seem nice - also I am not sure if (: chart 1 data) can be used reliably here. (gui '(+E/R +Chart) '(cmts : home obj) 4 '( (This) (list NIL (: cmt) (: dt) (: tm) )) '((L D) (cond ((and D (cadr L)) D) ((cadr L) (new! '(+Cmt) 'cmt (cadr L) 'dt (date) 'tm (time) 'tsk (: home obj))) (T D)) ) ) (<table> NIL NIL '(NIL NIL NIL NIL) (for R (range 1 5) (<row> (alternating) (gui 1 '(+InsRowButton)) (if (let L (: chart 1 data) (and (car (nth L R)) (= "ABC" (get @ 'cmt)))) (gui 2 '(+TextField) 50 3) (gui 2 '(+TextField) 150 3)) (gui 3 '(+DateField)) (gui 4 '(+TimeField)) ) ) ) (scroll 5 T) Regards, Kashyap On Wed, Dec 18, 2019 at 10:09 AM Alexander Burger <a...@software-lab.de> wrote: > On Wed, Dec 18, 2019 at 09:48:16AM -0800, C K Kashyap wrote: > > I get a "val> -- Bad message" when I try this - > > > > (<table> NIL NIL > > '(NIL NIL NIL NIL) > > (do 5 > > (<row> (alternating) > > (if (val> (: home ttl)) (gui 1 '(+TextField) 20 3) (gui 1 > > '(+TextField) 150 3)) > > Ah, this is too early. The +TextField objects are not even created at this > moment when the page is still drawn in the HTTP GET transaction (here: > drawing a > <row>), so you cannot send messages to them. > > All these methods (except +Init and 'init>') are only available in POST > actions. > > I give two non-trivial examples below from an ERP system. No need to > understand > them outside the context, but I think they show typical use cases. > > ☺/ A!ex > > > (gui 'pos '(+E/R +Chart) '(pos : home obj) 13 > '((Pos I) > (with Pos > (list I > NIL (: art) > (: bez) > (- (: cnt)) > (: epr) > (if *CfgNurNetto > (*/ > (: epr) > (+ 100.00 (get (ust> (: art vor) (: bel dat)) 'pr)) > 100.0 ) > (: pn) ) > (: rab) > (brutto> This) > (and (: nxt) "W") ) ) ) > '((L D F) > (cond > (D > (dbSync) > (put> D 'bez (cadddr L)) > (put> D 'cnt (and (n0 (get L 5)) (- (get L 5)))) > (or > (gt0 (: home obj nr)) > (: home obj gp eu) > (when (; L 3 vor) > (put> D 'st (ust> @ (dat> D))) ) ) > (put> D 'epr (get L 6)) > (unless *CfgNurNetto > (put> D 'pn (get L 7)) ) > (put> D 'rab (get L 8)) > (commit 'upd) > (and (; D art) D) ) > ((caddr L) # Artikel-Spalte > (new! (posTyp> (: home obj)) > 'bel (: home obj) > 'art (caddr L) > 'cnt -1 > 'rab > (or > (; L 8) > (cadr (asoq (; L 3 wg) (: home obj gp rab))) ) > 'st > (unless (: home obj gp eu) > (when (; L 3 vor) > (ust> @ (dat> (: home obj))) ) ) > 'epr (if (: home obj gp eu) > (net> (caddr L) (: home obj dat)) > (; L 3 epr) ) > 'pn (or (: home obj gp eu) (; L 3 pn)) ) ) ) ) ) > (<table> NIL NIL > (quote > (NIL) > (btn) > (NIL "Nr/Artikel") > (NIL "Bezeichnung") > (NIL "Menge") > (NIL "E-Preis") > (NIL `(if *CfgNurNetto "B-Preis" "N")) > (NIL "Rab-%") > (NIL "Sum-Brutto") > (NIL "W") ) > (do 8 > (<row> NIL > (gui 1 '(+NumField)) > (choArt 2) > (gui 3 '(+ArtObjField) 15) # Art > (gui 4 '(+Dflt +TextField) # Bez > '(field -1 'obj 'bez) > 20 ) > (gui 5 '(+NumField) 6) # Menge > (gui 6 '(+FixField) 2 10) # E-Preis > (if *CfgNurNetto > (gui 7 '(+Upd +Chg +FixField) # B-Preis > '(let? Pos (curr) > (*/ > (; Pos epr) > (+ 100.00 (get (ust> (; Pos art vor) (; Pos bel > dat)) 'pr)) > 100.0 ) ) > '((Br) > (let? Pos (curr) > (set> (field -1) > (*/ Br 100.0 > (+ 100.00 (get (ust> (; Pos art vor) (; Pos > bel dat)) 'pr)) ) > T ) ) > Br ) > 2 10 ) > (gui 7 '(+Tip +Able +Checkbox) # "N" > "Einzelpreis Netto / Brutto" > '(not (: home obj gp eu)) ) ) > (gui 8 '(+ProzField)) # Rab-% > (gui 9 '(+Sgn +Chg +FixField) # Sum-Brutto > '((N) > (when (curr) > (incEpr!> @ (- N (brutto> @))) > (put> (: home pos)) ) > N ) > 2 10 ) > (gui 10 '(+Tip +TextField) # "W" > "Position ist bereits gewandelt" ) > (gui 11 '(+Rid +Able +Tiny +Button) '(curr) "Detail" > '(and (curr) (detailDlg @)) ) > (gui 12 '(+DelRowButton)) > (gui 13 '(+BubbleButton)) ) ) > (<row> NIL (scroll 8 T) - - - > (<href> "EMail erstellen" > (with (: obj) > (pack > "mailto:" > (or (: ansp em) (: gp em)) # To > "?" > "from=" > (firm 'em) > "&" > "subject=" > (ht:Fmt (ttl> This)) " Nr." (: nr) " vom " (datStr (: > dat)) # Subject > "&" > "body=" > (and > (if (: ansp anr) (: ansp) (: gp)) > (hi> @) ) ) ) ) > - - - > (gui '(+Sgn +Chg +Upd +FixField) > '((N) > (let? Pos (or (maxi 'brutto> (: home obj pos)) (: home obj > pos 1)) > (let D (- N (sum> (: home obj))) > (if (and (brutto> Pos) (> (abs D) 99)) > (alert (env '(Pos D)) > "Soll der Endpreis um mehr als 99 Cent > verändert werden?" > (--) > (yesButton '(incEpr!> Pos D)) > (noButton) ) > (incEpr!> Pos D) > (put> (: home pos)) ) ) ) > N ) > '(sum> (: home obj)) > 2 10 ) ) ) > > > > (<grid> 3 > "Fibukonto Kasse" > (gui '(+ChoButton) '(choFk (field 1))) > (gui 'kasse '(+Init +Chg +FkObjField) > (arbeitsplatz 'kasse) > '((V) > (for N (4 6 8 10 12 14 16 18 20 22 24 26 28 30 32) > (clr> (get (: home gui) N)) ) > V ) > 12 ) ) > (--) > (<grid> 3 > (<br> "Münzen:") > (<nbsp> 7) > (<br> "Scheine:") > (<grid> ".--" > NIL "Anzahl" "Wert" > "1 Cent" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(val> (field -1)) > 2 9 ) > "2 Cent" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 2 (val> (field -1))) > 2 9 ) > "5 Cent" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 5 (val> (field -1))) > 2 9 ) > "10 Cent" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 10 (val> (field -1))) > 2 9 ) > "20 Cent" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 20 (val> (field -1))) > 2 9 ) > "50 Cent" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 50 (val> (field -1))) > 2 9 ) > "1 Euro" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 1.00 (val> (field -1))) > 2 9 ) > "2 Euro" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 2.00 (val> (field -1))) > 2 9 ) ) > (<nbsp> 7) > (<grid> ".--" > NIL "Anzahl" "Wert" > "5 Euro" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 5.00 (val> (field -1))) > 2 9 ) > "10 Euro" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 10.00 (val> (field -1))) > 2 9 ) > "20 Euro" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 20.00 (val> (field -1))) > 2 9 ) > "50 Euro" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 50.00 (val> (field -1))) > 2 9 ) > "100 Euro" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 100.00 (val> (field -1))) > 2 9 ) > "200 Euro" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 200.00 (val> (field -1))) > 2 9 ) > "500 Euro" (gui '(+NumField) 5) > (gui '(+View +FixField) > '(* 500.00 (val> (field -1))) > 2 9 ) ) ) > (--) > (<grid> 2 > "Geschäftsjahr" > (gui 'gj '(+Init +AktGjField) (gJahr) 4) > "Ist (Saldo)" > (gui 'sum '(+View +FixField) > '(sum > '((N) (val> (get (: home gui) N))) > (5 7 9 11 13 15 17 19 21 23 25 27 29 31 33) ) > 2 12 ) > "Soll (Saldo)" > (gui 'saldo '(+View +Sgn +FixField) > '(saldo (val> (: home kasse)) (val> (: home gj))) > 2 12 ) > NIL (<hr>) > "Differenz" > (gui '(+View +Sgn +FixField) > '(- (val> (: home sum)) (val> (: home saldo))) > 2 12 ) ) > > -- > UNSUBSCRIBE: mailto:picolisp@software-lab.de?subject=Unsubscribe >