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 <[email protected]>
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:[email protected]?subject=Unsubscribe
>