3

に基づいて生成する必要がある一連の Crystal レポートがありますpropertyID。これらのレポートには 2 つのパラメーター (PropertyIDおよびdate) が必要です。Crystal Reports exporter を使用して、これらを PDF に変換して電子メールで送信します。

特定のプロパティごとにこの変換を実行するバッチ ファイルを作成する必要があります。の列を含む isql で txt ファイルを作成しましたpropertyIDs。列のリストの最初の行を読み取り、残りの ID を反復処理するループを作成する必要があります。

バッチファイルを扱うのはこれが初めてなので、助けていただければ幸いです:)ありがとう!

更新:これにもう少し取り組んでいます。そして今、私は自分のパラメータに問題があると思います. 今のところ、これを把握できるようになるまで、1 つのパラメーター (PropertyID) から始めます。ここに私のコードがあります..これは、レポートをpdfに変換するバッチファイルです。

c:
cd c:\y46\crexport #navigating to proper folder
crexport.exe -U username -P password -S server -D dbname -F "C:\y46\crexport\rs_Ardent_Owner_Stmtsputesting.rpt" -O "C:\y46\crexport\output.pdf" -E pdf -a "curr_month:11/01/2012 00:00:00" -a "pscode:%A"

ご覧のとおり、ここでは 2 つのパラメーターが定義されていますが、pscode(PropertyID) は A に設定されています (おそらく、パラメーターのしくみを理解できていないためです)。しかし、バッチファイルを呼び出すために使用するコードは次のとおりです。

FOR %A IN ("C:\y46\crexport\output.txt") DO "C:\y46\crexport\batch.bat" %A

これは機能しますが、正しいパラメーター値がバッチ ファイルに送信されないため、出力レポートは生成されません。また、パラメーターの問題を解決したら、これが各レコードを正しくループするかどうかもわかりません。

テキスト ファイル ソースの別のサンプルを次に示します。以下に示すように、1 つの列だけです。各行はプロパティ ID です。3 桁のものもあれば、8 桁のものもあります。

010     
057     
152     
197     
21210721  
21210722    
22090461  
22090462  
22090781  
22090782  
22093561  
22093562  
23180051  
23180052  
23220781  
23220782  
257     
324     
350     
352     
354     
355     
367     
400     
401     
402        
4

1 に答える 1

1

もう少し変更が必要です

cd C:\y46\crexport
for /f %%a in (file.txt) do (
crexport.exe -U username -P password -S server -D dbname -F "C:\y46\crexport\rs_Ardent_Owner_Stmtsputesting.rpt" -O "C:\y46\crexport\output.pdf" -E pdf -a "curr_month:11/01/2012 00:00:00" -a "pscode:%%a"
)

ループに一致するように%A最後の を変更しました(これは、ループによって現在処理されているファイルの名前であると仮定します。%%afor

つまり、このバッチ ファイルはディレクトリ内のすべてのファイルを処理しC:\y46\crexport、それぞれのファイルcrexportに対して、質問で指定したコマンドを実行します。

これらが適切なパラメーターでない場合はcrexport、詳細をお知らせください。微調整します。

于 2012-12-18T19:04:44.983 に答える