2016-07-21 15 views
0

私はAという名前のテンプレートとサーバーに保存されているテストJsonを持っています。 jsreportの通常のセットアップを使用して、サーバーでPDFの動作に不思議を描画します。クライアントとサーバーからレンダリングするとJsreportの結果が異なる

今、Jsreport_client.jsを使用してレンダリングします。私はAJAXを呼び出して他のサーバーにgetJSONを呼び出し、jsclientを使ってレンダリングします。しかし、データは正しく送信/処理されません。 JSONオブジェクトのルートの近くにあるキーは正しいですが、残りのキーは正しくありません。非常に同じJSONがサーバー上でレンダリングすることに注意してください正しく

EDIT:以下 はコール以下

$.getJSON(AJAXurl).success(function (people) { 
jsreport.serverUrl = 'http://localhost:5488'; 
var request = { 
    template: { 
    shortid:"rJPUhdmv" 
    }, 
    data: people 
    };         
    jsreport.render('_blank', request); 
}) 

は返さリクエスト構造

{ 
    "responseHeader":{ 
    "status":0, 
    "params":{ 
     "fq":"{!frange l=0.80 }query($q)", 
     "q":"{!percentage}etco~", 
     "group.field":"ent_id" 
}}, 

    "grouped":{ 
    "ent_id":{ 
     "ngroups":3, 
     "groups":[{ 
      "groupValue":"214493", 
      "doclist":{"numFound":1,"docs":[ 
       { 

       "add_city":"London", 
       "add_street":"Devonshire Street", 
       "nam_comp_name":"ETCO INTERNATIONAL COMMODITIES LTD.", 
       "add_country":"GB",    
       "add_id":"668638", 
       "score":1.0}] 
      }},OTHER GROUP.....]}}}, 

    "highlighting":{ 
    "C":{ 
     "nam_comp_name":["<span class=\"highlight\">ETO</span>"]} 
}} 

されており、以下のサーバ

でハンドラです
// Can not read any parameters 
</thead> 
      {{#each grouped.ent_id.groups}} 
      </tr> 
      <td>{{offsetIndex @index}}</td> 
      {{#each doclist.docs}} 
      <td>{{this.nam_comp_name}}</td> 
      <td>{{convertScore this.score}}</td> 
      <td>{{this.add_country}} {{this.add_city}} {{this.add_street}}</td> 
      <td>{{lis_name}}</td> 
      {{/each}}     
      </tr> 
      {{/each}} 

もう1つのハンドラは、正しくない/読めないデータ

{{#responseHeader.params}} 
    <tr> 
    <th>Search term</th> 
    <td>{{sanitizeQuery this.q}}</td> // Read correctly 
    </tr> 
    <tr> 
    <th>Sanction List: </th> 
    <td>{{sanitizeQuery this.fq.[0]}}</td> // Incorrectly 
    </tr> 
    <tr> 
    <th>Countries:</th> 
    <td>{{sanitizeQuery this.fq.[1]}}</td> // Incorrectly 
    </tr> 
    {{/responseHeader.params}} 
    <tr> 
    <th>Search by:</th> 
    <td>"Method of searching"</td> // Incorrectly 
    </tr> 
    <tr> 
    <th>Found total:</th> 
    <td>{{grouped.ent_id.ngroups}}</td> // Read correctly 

ヘルパー

function offsetIndex(index) { 
    return index+1; 
} 

function convertScore(score) { 
    a = parseFloat(score); 
    return a*100; 
} 
function sanitizeQuery(query) { 
    a =query 
     .replace(/{+.*?}+/g, "") 
     .replace(/\[\[|\]\]/g, "") 
     .replace(/<.*?>/g, "") 
     .replace(/add_country:/,"") 
     .replace(/program_number:/,"") 
     .replace(/~/,""); 
    return a; 
} 
+0

でそれを見つけることができます全体jsreportを更新してください、あなたのintputデータを共有してください。 –

+0

@JanBlaha:データ構造とハンドラを追加しました。私は本当にこれがjsreportのバグではないが、私の愚かなミスのどこかで –

答えて

1

これはjsreportブラウザクライアントでの配列の直列化とバグでした。今それは修正されています。

[email protected]に更新するか、またはあなたはまた、これはバグのように見える[email protected]

関連する問題