2016-09-19 31 views
2

私は次のようにデモに取り組んでいます接続して、私はいくつかの助けMirth:データベースリーダー、SQLクエリから返された[複数の行]を扱う方法は?

が必要マースに新しいです:

ソースがデータベースリーダー 先がドキュメントライター

です

ソース内のSQL selectクエリで複数の行が返される "これが私の必要です" 返されたすべての列の値を含むpdfドキュメント[ドキュメントライター]を生成しようとしていますが、Actua LLY、どのファイルに書かれていることは、最後の返された行は、ONLY

これは私が

<html> 
<head></head> 

<body> 
<div> 
${Target_path}\\${fileName} 
</div> 

</body> 
</html> 

を書いたHTMLテンプレートですされており、先に、私はの値をマップするタイプマッピングの変圧器を持っています文字列

に返される列は、SQLステートメントは、両方が文字列

された第1列はパスを表し、2番目の列を表し、私のデータベースから2つの列を選択し、ファイル名 SQL文から多くのファイル名が返されており、この文書にすべてのファイル名を書き込む必要があります。

クエリから返されたすべての行を処理する方法についてのヒントはありますか?

よろしく、

+0

あなたがループにテンプレートコンテンツを持っている...ちょうどあなたがデータからを得るときあなたのアイデアhttps://mirthified.wordpress.com/category/mirth-tool/ ..を取得します。このリンクをチェックDBもあなたのコンテンツをループします。 http://leakymllp.com/2010/08/17/MirthHL7ToPDF.html –

+0

私はそれを得ましたが、ここでの違いは、HL7msgから変換するのではなく、xml、データベースの選択から変換していることです。私はこの行に問題があります: 'var file_name = msg ['file_name']。toString();'、これは私にこのエラーを与えます** TypeError:未定義のメソッド "toString"を呼び出すことはできません。 JavaScriptのトランスフォーマやデータベースの読者のソースからのSQLクエリ?これを克服する方法に関するヒント? –

答えて

0

私は自分のデータを取得する代わりに、JavaScriptを使用していていますが、あらかじめごエントリをフォーマットし、ArrayListの中にそれらを挿入することができます。そこから、リストをチャンネルマップ変数にマップします。テンプレートで

var dbConn; 
var result; 
var entryList = java.util.ArrayList(); 

try { 
    dbConn = DatabaseConnectionFactory.createDatabaseConnection('DRIVER', 'ADDRESS', 'USERNAME', 'PASSWORD'); 
    result = dbConn.executeCachedQuery('YOUR QUERY'); 
    while (result.next()) { 
     var entry = result.getString(1) + "//" + result.getString(2); 
     list.add(entry); 
    } 
} finally { 
    if (dbConn) { 
     dbConn.close(); 
    } 
} 

channelMap.put('entryList', entryList); 

、あなたは動的にそのようなあなたのPDFを作成するために、あなたのHTMLテンプレートに速度を使用することができます。

<html> 
    <head/> 
    <body> 
     #foreach ($entry in ${entryList}) 
     <div> 
      $entry 
     </div> 
     #end 
    </body> 
</html> 
関連する問題