1

外部 BAQ からデータセットを返す動的クエリを作成しました。動的クエリで、解析したパラメーターを満たすレコードのみが返されるようにします。

これは私がこれまでに持っているコードです:

// DynamnicQuery for BAQ
        Epicor.Mfg.Core.Session epiSession = default(Epicor.Mfg.Core.Session);
        epiSession = (Epicor.Mfg.Core.Session)POEntryForm.Session;
        DynamicQuery dynamicQuery = new Epicor.Mfg.BO.DynamicQuery(epiSession.ConnectionPool);
        //Build Data Set
        QueryExecutionDataSet executionDS = new QueryExecutionDataSet();
        //Build parametors
        QueryExecutionDataSet parameters = new QueryExecutionDataSet();
        DataRow paramRow = parameters.ExecutionParameter.NewRow();
        paramRow["ParameterName"] = "POSuggestionsView.PartNum";
        paramRow["ParameterValue"] = "10050886";
        paramRow["ValueType"] = "nvarchar(50)";
        paramRow["IsEmpty"] = "False";
        paramRow["RowIdent"] = "";
        paramRow["RowMod"] = "";
        paramRow["DBRowIdent"] = new byte[0];
        parameters.ExecutionParameter.Rows.Add(paramRow);
        // Out variable which indicates if more results are available (likely for use with topNRecords)
        bool hasMoreRecords = false;
        //Executed named BAQ with parameter...
        DataSet results = dynamicQuery.ExecuteByIDParametrized("AD-999-SB_POSuggestion", parameters, "", 0, out hasMoreRecords);
        //Message Each Description....
        MessageBox.Show("Number of rows in Results = " + results.Tables["Results"].Rows.Count.ToString());
        foreach (DataRow item in results.Tables["Results"].Rows)
        {
            MessageBox.Show("Row Value = " + item["POSuggestionsView.PartNum"].ToString());
    }      

私が作成したコードは、返される行をパラメーターの条件を満たす行に制限することなく、テーブルからすべての値を返します。なぜこれが起こっているのか、誰か助けてもらえますか?

4

1 に答える 1

1

BAQ でパラメータを作成する必要があります。

BAQ エディターを開き、[Phrase Build] タブに移動して、パラメーターを追加するテーブルを選択します。

以下のセクションの表に新しい基準を追加します。フィルター タイプは「指定されたパラメーター」になります。パラメータ名をメモします。

BAQ を保存します。

カスタマイズに戻り、paramRow["ParameterName"] = BAQ で作成したパラメーター名を変更します。

于 2013-11-25T23:51:48.940 に答える