0

を実行しており、 ID のSSRS rptWeb プロジェクトでこれを複製する必要があります。sqldatasource

パラメーターはssrs rpt、入力される限り完全に機能しますが、Web バージョンで同じことを実行しようとすると、2 番目のパラメーター リストが入力されません。

パラメータは、パラメータShipで何が選択されているかによって異なりCruiseLineます。

Web版のパラメータは次のとおりです。

<tr>
                <td>
                    Select a CruiseLine:
                    <telerik:radcombobox id="RadComboBox1" runat="server" checkboxes="True" enablecheckallitemscheckbox="False"
                        skin="Web20" sort="Ascending" allowcustomtext="True" datasourceid="SqlDataSource1"
                        datatextfield="CruiseLine" datavaluefield="CruiseLine">
                    </telerik:radcombobox>
                    <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator3" ValidationGroup="A"
                        ControlToValidate="RadComboBox1" ErrorMessage="Choose a CruiseLine!"></asp:RequiredFieldValidator>
                </td>
                <td>
                    Select a Ship:
                    <telerik:radcombobox id="RadComboBox2" runat="server" checkboxes="True" enablecheckallitemscheckbox="False"
                        skin="Web20" sort="Ascending" allowcustomtext="True" datasourceid="SqlDataSource2"
                        datatextfield="Ship" datavaluefield="Ship">
                    </telerik:radcombobox>
                    <asp:RequiredFieldValidator runat="server" ID="RequiredFieldValidator2" ValidationGroup="A"
                        ControlToValidate="RadComboBox2" ErrorMessage="Choose a Ship!"></asp:RequiredFieldValidator>
                </td>
            </tr>

対応する SQL データ ソースは次のとおりです。

<asp:SqlDataSource ID="SqlDataSource1" runat="server" ConnectionString="<%$ ConnectionStrings:PrepaidConnectionString %>"
            SelectCommand="SelectCruiseLine" DataSourceMode="DataSet" EnableCaching="true"
            SelectCommandType="StoredProcedure"></asp:SqlDataSource>
        <asp:SqlDataSource ID="SqlDataSource2" runat="server" ConnectionString="<%$ ConnectionStrings:PrepaidConnectionString %>"
            SelectCommand="SelectShip" DataSourceMode="DataSet" EnableCaching="true" SelectCommandType="StoredProcedure">
            <SelectParameters>
                <asp:Parameter Name="CruiseLine" Type="String" />
            </SelectParameters>
        </asp:SqlDataSource>

最初の sqldatasource は、(ストアド プロシージャから) 次の SQL を実行し、リストに問題なく入力します。

SELECT DISTINCT CruiseLine
        FROM dbo.ShipProductPrices
        ORDER BY CruiseLine

2 番目sqldatasourceは、次の sql を実行します (これもストアド プロシージャから)。

ALTER PROCEDURE [dbo].[SelectShip] 
@CruiseLine NVARCHAR(MAX)
AS
BEGIN
    SET NOCOUNT ON;

    SELECT DISTINCT Ship
        FROM dbo.ShipProductPrices
        WHERE CruiseLine IN (SELECT * FROM dbo.SplitParameterValues(@CruiseLine, ','))
        ORDER BY Ship
END

今のところ、クルーズラインを 1 つだけ選択しています。2 番目のコンボボックスのドロップダウン リストをプルダウンすると、次のようなクエリが実行され、Ship コンボボックスが入力されるはずです。

SELECT DISTINCT Ship
        FROM dbo.ShipProductPrices
        WHERE CruiseLine IN (SELECT * FROM dbo.SplitParameterValues('CCL', ','))
        ORDER BY Ship

Ship のパラメータ タイプと の タイプに注意しcomboboxSelectParameterくださいSelectShip datasource。それらは少し異なります。これが違いを生むかどうかはわかりません。

上記で手動でSelectShip SPROC実行した のUDF一部である を実行sprocし、SQL Management Studio でデータを取得します。

2 番目の値を入力するにはどうすればよいcomboboxですか?

4

0 に答える 0