在CSS中的javascript中执行简单的计算

时间:2019-01-31 15:08:41

标签: javascript html css

我正在尝试在CSS代码中使用脚本来计算小计。不幸的是,JSON / XML提要并没有给我我想要的小计。

<MetaData>
<labor currency="CAD">0</labor>
<parts currency="CAD">1234</parts>
<discount currency="CAD">246.8</discount>
<tax currency="CAD">147.8332</tax>
<total currency="CAD">1135.0332</total>
</MetaData>

我要计算PARTS-DISCOUNT,需要将元数据的内容解析为浮点数以进行计算,然后将其转换为字符串以显示它。

<script>

var subtotalbeforediscount = parseFloat(Workorder.MetaData.parts, 10);
var discounttotal = parseFloat(Workorder.MetaData.discount, 10);
var subtotalfinal = subtotalbeforediscount - discounttotal;
var subtotalfinaltxt = subtotalfinal.toString();

</script>

当然,此脚本不起作用,因为未解析MetaData,仅解析字母。

如何在显示之前进行这样的计算?

这是CSS部分,我只想显示计算结果:

              <tr>

                    <td>Sub-total final</td>

                    <td id="subtotalfinal" class="amount">

                        {{subtotalfinaltxt|money}}

                    </td>

                </tr>

谢谢。

2 个答案:

答案 0 :(得分:0)

我想您需要向LightSpeedHQ寻求支持-如果不支持,那么JavaScript / jQuery可以做到这一点:

var WorkorderString = `<MetaData>
<labor currency="CAD">0</labor>
<parts currency="CAD">1234</parts>
<discount currency="CAD">246.8</discount>
<tax currency="CAD">147.8332</tax>
<total currency="CAD">1135.0332</total>
</MetaData>`

var oParser = new DOMParser();
var $Workorder = $(oParser.parseFromString(WorkorderString, "application/xml")).find("MetaData");
var subtotalbeforediscount = parseFloat($Workorder.find("parts").text(), 10);
var discounttotal = parseFloat($Workorder.find("discount").text(), 10);
var subtotalfinal = (subtotalbeforediscount - discounttotal).toFixed(2);
var subtotalfinaltxt = subtotalfinal.toString();
$("#subtotalfinal").text(subtotalfinaltxt);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
  <tr>
    <td>Sub-total final</td>
    <td id="subtotalfinal" class="amount">
      
    </td>
  </tr>
</table>

答案 1 :(得分:0)

最后,Lightspeed非常友善,可以花一些时间来找到解决方案。

这是脚本中计算字段的最后部分。该脚本中还有更多条件,但基本上,它们能够使用元数据并执行计算。

sub notset() 
dim ws as worksheet  
set ws = thisworkbook.sheets("master sheet")
with ws
.range("Z2:Z" & range("Z" & row.count).end(xlup).row).formula =_
"=if((Z2 = '0'),"NOT SET"")"
end sub

希望可以帮助别人。