2012-04-04 22 views
1

Telerikをダウンロードしただけで、インターネット上で多くのヘルプを見つけることができません。私は派手なレポートを生成できるようにしたい、Telerikは行く方法のように見えます。つまり、私はすべてのウィザードとジャンクを使ってレポートを作成したくないということです。レポートが読み込まれたときに使用できる「report_load」関数はありませんか?構成可能な接続文字列を持つことができるようにする必要があります。ユーザーにレポートを生成するいくつかの値を入力させます。Visual StudioのC#Telerikのレポート

private void GenerateReport() 
    { 
     DBaseConn.Open(); 
     SqlCommand = new SqlCommand("SELECT Gate, Weight, Date_Created FROM Backrib_Manifest " + 
            "WHERE Date_Created >= '" + fromddate + "'" + 
            "AND Date_Created <= '" + todate + "'", DBaseConn); 
     DataReader = SqlCommand.ExecuteReader(); 

     while (DataReader.Read()) 
     { 
      switch (Convert.ToInt32(DataReader["Gate"])) 
      { 
       case 1: 
        gatecount[0]++; 
        gate1weight += double.Parse(DataReader["Weight"].ToString()); 
        break; 
       case 2: 
        gatecount[1]++; 
        gate2weight += double.Parse(DataReader["Weight"].ToString()); 
        break; 
       case 3: 
        gatecount[2]++; 
        gate3weight += double.Parse(DataReader["Weight"].ToString()); 
        break; 
       case 4: 
        gatecount[3]++; 
        gate4weight += double.Parse(DataReader["Weight"].ToString()); 
        break; 
       case 5: 
        gatecount[4]++; 
        gate5weight += double.Parse(DataReader["Weight"].ToString()); 
        break; 
       case 6: 
        gatecount[5]++; 
        gate6weight += double.Parse(DataReader["Weight"].ToString()); 
        break; 
       case 7: 
        gatecount[6]++; 
        gate7weight += double.Parse(DataReader["Weight"].ToString()); 
        break; 
       case 8: 
        gatecount[7]++; 
        gate8weight += double.Parse(DataReader["Weight"].ToString()); 
        break; 
       case 0: 
        gatecount[8]++; 
        gate0weight += double.Parse(DataReader["Weight"].ToString()); 
        break; 
       default: 
        break; 
      } 
     } 
     DBaseConn.Close(); 

     int totalcount = gatecount[0] + gatecount[1] + gatecount[2] + gatecount[3] + gatecount[4] + 
         gatecount[5] + gatecount[6] + gatecount[7] + gatecount[8]; 

     lblCount1.Text = gatecount[0].ToString(); 
     lblCount2.Text = gatecount[1].ToString(); 
     lblCount3.Text = gatecount[2].ToString(); 
     lblCount4.Text = gatecount[3].ToString(); 
     lblCount5.Text = gatecount[4].ToString(); 
     lblCount6.Text = gatecount[5].ToString(); 
     lblCount7.Text = gatecount[6].ToString(); 
     lblCount8.Text = gatecount[7].ToString(); 
     //lblCount0.Text = gatecount[8].ToString(); 
     if (totalcount != 0) 
     { 
      lblPct1.Text = (gatecount[0]/totalcount).ToString("P2"); 
      lblPct2.Text = (gatecount[1]/totalcount).ToString("P2"); 
      lblPct3.Text = (gatecount[2]/totalcount).ToString("P2"); 
      lblPct4.Text = (gatecount[3]/totalcount).ToString("P2"); 
      lblPct5.Text = (gatecount[4]/totalcount).ToString("P2"); 
      lblPct6.Text = (gatecount[5]/totalcount).ToString("P2"); 
      lblPct7.Text = (gatecount[6]/totalcount).ToString("P2"); 
      lblPct8.Text = (gatecount[7]/totalcount).ToString("P2"); 
      //lblPct0.Text = (gatecount[8]/totalcount).ToString("P2"); 
     } 

     lblWeight1.Text = (gate1weight/gatecount[0]).ToString(); 
     lblWeight2.Text = (gate2weight/gatecount[1]).ToString(); 
     lblWeight3.Text = (gate3weight/gatecount[2]).ToString(); 
     lblWeight4.Text = (gate4weight/gatecount[3]).ToString(); 
     lblWeight5.Text = (gate5weight/gatecount[4]).ToString(); 
     lblWeight6.Text = (gate6weight/gatecount[5]).ToString(); 
     lblWeight7.Text = (gate7weight/gatecount[6]).ToString(); 
     lblWeight8.Text = (gate8weight/gatecount[7]).ToString(); 
     //lblWeight0.Text = (gate0weight/gatecount[8]).ToString(); 
    } 

レポート自体にこれを行う方法があります:ここで

は、レポートを生成するコードのですか?もちろん、私は実際にレポート上の定義された場所に値を置いています。

+0

どのTelerik製品について話していますか? WinForms、WPF、Silverlight、ASP.Net? –

+0

私はTelerik Winformsを持っていますが、私はTelerik Reportingを使用しています – CSharpDev

答えて

0

レポートクラスのプロパティ(またはプロパティ)を作成し、テーブル、チャート、およびバインドする(または値を設定する)その他の要素などの値をNeedDataSourceに設定しますあなたが尋ねている "report_load")イベントハンドラ。これらの内部プロパティー値を使用して、レポートに値をバインドまたは設定することができます。この方法では、接続文字列はレポートクラスには無関係です。プロパティを設定するだけで(たとえばDataSourceと考える)、レポートクラスは内部でコントロール値を設定する必要があります。

注:Telerikレポートには2つのクラスが関連付けられています。すべてのレポートコントロールなどを持つデザイナーの部分クラスと、レポートクラス(独自のカスタムサブクラス)です。後者は、NeedDataSourceが行く場所です。

関連する問題