2017-10-20 155 views
0

jqgrid、ShopID、NetSalesに2つの列があり、計算された列になるContribution Columnを追加したいと思います。 NetSalesをTotalで割った数式です。例えば画像を見てください。 enter image description herejqgridの列の合計を取得する方法

getColを使って合計を取得する方法を知っていますが、これはvar sumtotal = grid.jqGrid('getCol', 'NetSales', false, 'sum');のようになりますが、これをさらに分割する方法はわかりません。私は試しましたが、それは仕事をしませんでした。助けてください。一般

+1

どのデータ型にグリッドがありますか?計算された列を使用しないことをお勧めします。直接データを持つ合計を計算するのは非常に簡単です。合計を持つと、列の合計とNetSalesに基づいて寄与列のデータを記入することができます。 – Oleg

+0

@Oleg、私はローカルのデータ型を持っています。 – davidb

答えて

2

ノートに述べたように、あなたはグリッドにデータを配置する前に、列の合計を計算する必要があります問題

  1. を解決するには、2つの方法があります。この値がある場合は、カスタムのFomatterを使用してパーセンテージを計算することができます。この場合、計算された合計はスコープ内でグローバルとして定義する必要があります。任意のjqGridの方法を使用せずに、このの

  2. 直接計算 -

下記参照この

mydata = [ 
    {ShipId: 1, NetSales: 150000}, 
    {ShipId: 2, NetSales: 200000}, 
    ... 
] 

などのローカルデータを持っていると仮定あなたは簡単に行うことができます(何をチェックし、それはただのアイデアではありません)

var sum = 0; 
$.each(mydata, function(i, row) { 
    sum += parseFloat(row.NetSales); 
} 
$.each(mydata, function(i, row) { 
    if (sum > 0) { 
     row.Contribution = parseFloat(row.NetSales)/sum*100; 
    } 
} 

次に、計算を行わずに直接mydataをjqGridに配置しますseカスタムフォーマッタを使用してパーセンテージを表示します。

+0

ありがとうございました、私はすぐにこの方法を試しています、すぐに更新されます。 – davidb

+0

私はあなたの例に従って2番目のメソッドを適用しました。それは働いています。ありがとうございます。 – davidb

関連する問題