0

ダウンロードする 20 個のレポートを選択する必要がある Web プロトコル ベースのアプリケーション フローをスクリプト化しました。ReportID はリクエストに表示されます。リクエストが EXCEL または CSV (ReportOutput) のいずれかである 20 個のレポート (ReportID) を取得し、ステータスが成功 (ReportStatus) になるように、リクエストをカスタマイズしています。Ord=All を使用して、従来の「wsrp」を介して LR パラメータを正常にキャプチャしました。これが私のロジックです。

int i;
int count=0;
char ro_buffer[25],rs_buffer[25];
lr_save_string("","R_buffer");

for(i=0;i<=atoi(lr_eval_string("{ReportID_count}");i++)
{
sprintf(RO_buffer,"%s",lr_paramarr_idx(ReportOutput,i))
sprintf(RS_buffer,"%s",lr_paramarr_idx(ReportStatus,i))
if((lr_eval_string(ro_buffer)=="EXCEL" || lr_eval_string(ro_buffer) =="CSV") && lr_eval_string(rs_buffer)=="S")
{
count++;
if(count>20) break;
lr_param_sprintf("R_buffer","%s%s%2c",lr_eval_string("{R_buffer}"),lr_paramarr_idx(ReportID,i));
 }
}

上記のコードでは、条件が満たされている場合、つまり、レポートの出力形式が「EXCEL」または「CSV」で、レポートのステータスが「S」の場合でも、vugen は if ブロック内のコードを実行していません。サーバーの応答からでも、if ブロックに従って値が正常に推測されていることがわかります。sprintf の代わりに lr_param_sprintf 構文も使用しましたが、状況はまったく同じです。しかし、役に立たない 欠けている点が何であるかを理解できません....これについて助けが必要です..

4

2 に答える 2

0

4つの問題。

  1. パフォーマンス エンジニアとして、ヒットを for ループの外に出して、文字列を整数に 1 回キャストします。他の開発者と同じように、パフォーマンスのベスト プラクティスに取り組む必要があります。

  2. sprintf() で構築している文字列には、lr_eval_string("{paramname}"); で必要な中括弧 "{%s}" が含まれていません。

  3. 評価式に ro_buffer がありますが、sprintf() 式は RO_buffer を使用します (大文字に注意してください)。C では変数は大文字と小文字を区別します

  4. 2 つの文字列を比較する式は機能しません。strcmp() - String Compare を見てください.....

于 2015-06-12T00:34:54.777 に答える