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
>

Reply via email to