0

私のアプリケーションには、レコードが異なる3つのreport.rdlcファイルがあり、オプションボタン、チェックボックス、およびコンボボックス値を含むフォームでクエリを作成しています

string qry = "";
SqlCeConnection cnn = new 

SqlCeConnection(Properties.Settings.Default.ConnectionString.ToString());
    SqlCeCommand cmd = new SqlCeCommand();

    if (radioButton1.Checked == true)
    {
        qry = @"Select Did,Cid,Source,Destination,Sid,cost,sdate,Driver.fname+' '+Driver.lname as driver,payed from Service,Driver where Service.Did=Driver.id";
    }
    else if (radioButton2.Checked == true)
    {
        button3.Enabled = true;
        qry = @"Select Did,Cid,Source,Destination,Sid,cost,sdate,Driver.fname+' '+Driver.lname as driver,payed from Service,Driver where Service.Did=Driver.id and Did=@param ";

        cmd.Parameters.Add("@param", CmbDriver.SelectedValue);
    }

    if (payedRB.Checked == true)
    {
        qry += @" and Service.payed=1";
    }
    else if (notpayedRB.Checked == true)
    {
        qry += @" and Service.payed=0";
    }

    if (txtDate1.Text != "" && txtDate2.Text != "")
    {
        qry += @" and Service.sdate between @pdate1 AND @pdate2";
        cmd.Parameters.Add("@pdate1", SqlDbType.NVarChar, 20).Value = txtDate1.Text.Trim();
        cmd.Parameters.Add("@pdate2", SqlDbType.NVarChar, 20).Value = txtDate2.Text.Trim();
        state = 3;
    }
    else if (txtDate1.Text != "")
    {
        qry += @" and Service.sdate >= @pdate1";
        cmd.Parameters.Add("@pdate1", SqlDbType.NVarChar, 20).Value = txtDate1.Text.Trim();
        state = 1;
    }
    else if (txtDate2.Text != "")
    {
        qry += @" and Service.sdate <= @pdate2";
        cmd.Parameters.Add("@pdate2", SqlDbType.NVarChar, 20).Value = txtDate2.Text.Trim();
        state = 2;
    }

    if (activdr.Checked == true)
    {
        qry += @" and Driver.isActive=1";
    }
    else
    {
        qry += @" and Driver.isActive=0";
    }

    qry += @" ORDER BY Service.sdate desc,Service.Sid desc";

    cmd.Connection = cnn;
    cmd.CommandText = qry;
    SqlCeDataAdapter adapter = new SqlCeDataAdapter(cmd);


                cnn.Open();

                adapter.Fill(dt);......

オプション ボタン イベントで reporttype 変数を使用して、レポート ビューアーに表示されるレポートを確認しました。選択したレコードをデータ グリッド ビューアーに設定する

私のレポートは、レコードのフィールドと互換性のある一時テーブルからデータを取得します。この前に、すべてのレコード (レポート ビューアーに出力される) を一時テーブルに挿入します。

一時テーブルなしでレコードをレポートに転送するにはどうすればよいですか?

4

1 に答える 1

0

ローカル レポートでは、レポート自体にデータベースへのクエリを実行させることはできません。アプリケーションは、データベースに対してクエリを実行し、結果をデータ ソースとしてレポートに渡す必要があります。

DataSourceここでデータ セットを入力し、これを としてレポートに渡す必要があります。レポートは、フィールドに値を提供するために、それぞれのデータ ソースを定義する必要があります。

于 2014-02-27T07:56:44.047 に答える