At last I can allow myself to go back to my IT doodling. I was putting together an App for my husband to track his self-employed expenditure and income; and when coding his receipts, I am, as a "true accountant" cannot to add up in my head.
I had to go to my Calculator App on my Samsung phone and add few receipts together.
Eventually I fed up and one weekend evening later I sketched this little calculator helper.
My next step is to learn how to use components, as it will be great if calculator can be called from any app and the result can be fed to a cell.
For now there is a quick solution. Perhaps I have overcomplicated things, I am a newbie myself, so any suggestions to improve are VERY WELCOME!
lblError Text
varError
lblResult Text
If(IsBlank(varResultFinal),
varResult,varResultFinal)
lblFormula Text
varCalcString
lblHeader Text
"Calculator"
["C","","",Char(247),7,8,9,"x",4,5,6,"-",1,2,3,"+",0,"00",".","="]
4
If(ThisItem.Value="C",Color.Red,
ThisItem.Value="=",Color.Green,
!IsError(Value(ThisItem.Value))||
Text(ThisItem.Value)=".",RGBA(56, 96, 178, 1))
Set(varCalcString,varCalcString&ThisItem.Value);
If(!IsBlank(varAction),Set
(varActionPrev,varAction));
If(!IsBlank(varCalc),
If(ThisItem.Value="+",Set(varAction,"+"),
ThisItem.Value="-",Set(varAction,"-"),
ThisItem.Value="x",Set(varAction,"*"),
ThisItem.Value=Char(247),Set(varAction,"/")));
If
(varEqCount>0,Set(varCalcString,Blank()),
If(!IsError(Value(ThisItem.Value))||
Text(ThisItem.Value)=".",Set(varCalc,varCalc&ThisItem.Value),
If(IsBlank(varResult),Set(varResult,Value(varCalc))&&Set(varCalc,Blank()),Set(varCalc2,Value(varCalc))&&Set(varCalc,Blank()),
If(IsBlank(varActionPrev),
If(varAction="+",Set(varResult,varResult+Value(varCalc2)),
varAction="-",Set(varResult,varResult-Value(varCalc2)),
varAction="*",Set(varResult,varResult*Value(varCalc2)),
varAction="/"&&Value(varCalc2)<>0,Set(varResult,varResult/Value(varCalc2)),
varAction="/"&&Value(varCalc2)=0,Set(varResult,Blank())&&Set(varError,"Error")),
If(varActionPrev="+",Set(varResult,varResult+Value(varCalc2)),
varActionPrev="-",Set(varResult,varResult-Value(varCalc2)),
varActionPrev="*",Set(varResult,varResult*Value(varCalc2)),
varActionPrev="/"&&Value(varCalc2)<>0,Set(varResult,varResult/Value(varCalc2)),
varActionPrev="/"&&Value(varCalc2)=0,Set(varResult,Blank())&&Set(varError,"Error"))))));
If(ThisItem.Value="=",Set(varResultFinal,varResult)
&&Set(varResult,Blank())
&&Set(varCalc,Blank())
&&Set(varCalc2,Blank())
&&Set(varAction,Blank())
&&Set(varActionPrev,Blank())
&&Set(varEqCount,varEqCount+1));
If(ThisItem.Value="C",
Set(varCalcString,Blank())
&&Set(varCalc,Blank())
&&Set(varResult,Blank())
&&Set(varResultFinal,Blank())
&&Set(varCalc2,Blank())
&&Set(varAction,Blank())
&&Set(varActionPrev,Blank())
&&Set(varError,Blank())
&&Set(varEqCount,0))
ThisItem.Value
Text(ThisItem.Value)<>""
Comments
Post a Comment