Red [] L: charset "ABCDEFGHI" D: union N: charset "123456789" charset "0" | |
repeat y 9 [repeat x 9 [col: either x = 1 [#"^(2028)"][#"A" + (x - 2)] | |
append p: [] set ref: (to word! rejoin [col y - 1]) make face! [size: 90x24 | |
type: pick [text field] header?: (y = 1) or (x = 1) | |
offset: -20x10 + as-pair ((x - 1) * size/x + 2) ((y - 1) * size/y + 1) | |
text: form case [y = 1 [col] x = 1 [y - 1] 'else [copy ""]] | |
para: make para! [align: pick [center right] header?] | |
extra: object [name: form ref formula: old: none] | |
actors: context [on-create: on-unfocus: function [f e][f/color: none | |
if rel: f/extra/old [react/unlink rel 'all] | |
if #"=" = first f/extra/formula: copy text: copy f/text [parse remove text | |
[any [p: L N not ["/" skip not N] insert p " " insert "/data " | |
| L skip | p: some D opt [dot some D] insert p " " insert " " | skip]] | |
f/text: rejoin [f/extra/name "/data: any [math/safe [" text {] "#UND"]}] | |
if f/data [any [react f/extra/old: f/data do f/data]]] | |
] on-focus: func [f e][f/text: any [f/extra/formula f/text] f/color: yello] | |
]]]] | |
A1/text: "Designation" | |
B1/text: "Quantity" | |
C1/text: "Price $" | |
D1/text: "Total $" | |
E1/text: "Tax rate:" | |
F1/text: "12%" | |
A2/text: "PC" | |
B2/text: "1" | |
C2/text: "500" | |
D2/text: "=B2*C2" | |
E2/text: "Average price:" | |
F2/text: "=(C2+C3+C4)/3" | |
A3/text: "Monitor" | |
B3/text: "2" | |
C3/text: "250" | |
D3/text: "=B3*C3" | |
E3/text: "Nb of items :" | |
F3/text: "=B2+B3+B4" | |
A4/text: "Desk" | |
B4/text: "1" | |
C4/text: "120" | |
D4/text: "=B4*C4" | |
E4/text: "Avg price / items:" | |
F4/text: "=F2/F3" | |
C5/text: "TOTAL $" | |
D5/text: "=D2+D3+D4" | |
C6/text: "VAT" | |
D6/text: "=D5*F1" | |
view make face! [type: 'window text: "PicoSheets demo" size: 840x250 pane: p] |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment