JSON オブジェクトをトラバースして、事前定義されたヘッダー項目をテーブル データに入力します。
(この前の質問への回答からのコード)
var stories = {};
for (var i=0; i<QueryResults.Results.length; i++) {
var result = QueryResults.Results[i],
name = result.StoryName
if (!(name in stories))
stories[name] = {};
stories[name][result.Name] = result.State;
}
var keys = ['QA Cycle 1', 'QA Cycle 2', 'Development - GUI', 'Development - Backend'];
var data = "<table><tr><th>Story Name</th><th colspan='2'>Quality Assuance</th><th colspan='2'>Development</th></tr><tr><td> </td>";
for (var i=0; i<keys.length; i++)
data += "<th>"+keys[i]+"</th>";
data += "</tr>";
for (var storyname in stories) {
data += "<tr><th>"+storyname+"</th>";
for (var i=0; i<keys.length; i++)
data += "<td>"+(stories[storyname][keys[i]] || "n.a.")+"</td>";
data += "</tr>";
}
data += "</table>";
$('body').append(data);
現在、すべてのタスクには「定義済み」、「進行中」、「完了」、「該当なし」などの状態があります。
ここで、2 つのサブタスク「開発 - GUI」と「開発 - バックエンド」を 1 つのメイン タスク「開発」にマージし、次のルールで計算して累積状態を挿入します。
- 開発タスクの下で、最初のサブタスクの状態が「完了」で、2 番目のサブタスクの状態が「定義済み」の場合、結果は「進行中」になります。
- サブタスクのいずれかが「NA」状態で、累積結果が「NA」になる場合
これにより、2 行目 [サブタスク] がテーブルから削除され、累積結果がメイン タスク列に表示されます。
JSFiddle: http://jsfiddle.net/ylokesh/a5HRu/4/
どんな提案や助けも素晴らしいでしょう。前もって感謝します。