No worries. Asking "obvious" questions in a public forum like this helps future users and lets me know about potential documentation/usability problems so I can continue to improve Decker.
There are a few different ways we could approach using the value of one field to update another. For starters, let's take a look at string formatting.
The Lil "format" operator takes a formatting string on the left and one or more parameters on the right. Let's see a few examples in the listener:
"Hello, %s. How's it hanging?" format "Alice" "Hello, Alice. How's it hanging?" "%s missed your call; they were busy %s." format ("Phil","gardening") "Phil missed your call; they were busy gardening."
Each "%s" in the formatting string is replaced with a string on the right, in order of appearance. There are lots of other formatting codes and features available for dealing with numbers, zero-padding, case conversion, etc, but for the moment we can ignore them.
Now, let's say we have two fields on the same card: "name" and "reply":
There are a few ways we could approach updating "reply" when "name" is changed. One way would be to add a script to "name" and use the "on change" event:
on change do reply.text:"Hi, %s. I hope this example makes sense!" format name.text end
It would also be possible to do the same thing when a button is clicked, etc. If "reply" was on another card, we might have to specify the "path" to it:
on change do otherCard.widgets.reply.text:"Hi, %s- how's it going?" format name.text end
Both of these approaches are "push"-based: something explicitly happens to the name field and our script reaches out to other fields in response. A different way to think about it would be "pull"-based: logic on individual cards which reach out to other widgets and update themselves. For example, we could have an "on view" script on our "other card" which updates reply whenever a user travels to that card:
on view do reply.text:"Hi, %s- how's it going?" format firstCard.widgets.name.text end
Either way works.
Does that get you "unstuck"?