Re: Cannot calculate with Dynamic variables
- To: mathgroup at smc.vnet.net
- Subject: [mg128778] Re: Cannot calculate with Dynamic variables
- From: "Rolf.Mertig at gmail.com" <rolf.mertig at gmail.com>
- Date: Sat, 24 Nov 2012 02:31:27 -0500 (EST)
- Delivered-to: l-mathgroup@mail-archive0.wolfram.com
- Delivered-to: l-mathgroup@wolfram.com
- Delivered-to: mathgroup-newout@smc.vnet.net
- Delivered-to: mathgroup-newsend@smc.vnet.net
- References: <k8jsv3$5pi$1@smc.vnet.net>
Dear Reinhard, something like this will work. However, it is kind of difficult to enter 10 (you have to be fast, or click back into the InputField after typing the 1). So I would suggest to use PopupMenu instead. Rolf Mertig DynamicModule[{mark4 = 1/3, mark3 = 0.51, mark2 = 0.68, mark1 = 0.80, initPtsPartA = {{10, 8, 10, 6}, {10, 5, 10, 5}, {10, 7, 10, 1}}, initPtsStudent, initPtsSchool, initPtsPartSum, numTable, SchoolAPts, StudentAPts, StudentMinAchieved}, numTable[x_, y_ /; OddQ[y]] := initPtsPartA[[x, y]]; numTable[x_, y_ /; EvenQ[y]] := InputField[Dynamic[initPtsPartA[[x, y]], If[0 < # <= 10, initPtsPartA[[x, y]] = #, 0] & ], Number, ContinuousAction -> True, FieldSize -> 2]; initPtsPartSum[x_, y_, col_] := Setting[Dynamic@Total[initPtsPartA[[x ;; y, col]]]]; SchoolAPts = (Total[initPtsPartA[[1 ;; 3, #]]] &) /@ {1, 3}; StudentAPts = (initPtsPartSum[1, 3, #] &) /@ {2, 4}; Dynamic@Column[{Grid[ Append[Array[numTable, {3, 4}], (initPtsPartSum[1, 3, #] &) /@ Range[4]]], {"Just Testing Values:", initPtsPartSum[1, 3, 1], initPtsPartSum[1, 3, 2], initPtsPartSum[1, 3, 3], initPtsPartSum[1, 3, 4], "Student Pts only:", StudentAPts}, {"seems to work now", 5*initPtsPartSum[1, 3, 2] + 10, initPtsPartSum[1, 3, 4] > 30, Total[(initPtsPartSum[1, 3, #] &) /@ Range[4]], (Total@StudentAPts)/(Total@ SchoolAPts)}, {"seems to work now", StudentMinAchieved = (StudentAPts[[1]]/SchoolAPts[[1]] > mark4) && (StudentAPts[[2]]/SchoolAPts[[2]] > mark4)}}]]