フォームをデザインし、フォームの棒グラフを使用して、特定の年(たとえば、2009年)に特定のプログラム(看護)で特定の問題(家族の問題など)を抱えている学生の数を表示しました。データベースから合計を取得して棒グラフに表示するように、他のすべてを設計しました。フォームでこれを達成することはできますが、レポートを生成し、同じ棒グラフをレポートに表示する必要があります。私の質問は、データベースに接続せずにこれを達成できるかどうかです。はいの場合、それから素晴らしいですが、どうやって?? 前もって感謝します。
以下のコードは、特定のプログラムで3年間に問題(家族の問題、麻薬中毒など)を抱えている学生の総数の棒グラフのコードです。
public void calculateStatsFor3Years(int year1, int year2, int year3)
{
//count the number of students in with intervention in particular program in a year
intervention.Classes.Programs objPrograms = new intervention.Classes.Programs();
List<int> programCodeList = objPrograms.GetProgramCode();
List<int> numStudentsYear1 = new List<int>();
List<int> numStudentsYear2 = new List<int>();
List<int> numStudentsYear3 = new List<int>();
int temp1 = 0;
int temp2 = 0;
int temp3 = 0;
for (int counter = 0; counter < programCodeList.Count; counter++)
{
temp1 = Convert.ToInt32(objControllerClass.get_students_intervention_particular_year_program(year1, programCodeList.ElementAt(counter)));
numStudentsYear1.Add(temp1);
temp2 = Convert.ToInt32(objControllerClass.get_students_intervention_particular_year_program(year2, programCodeList.ElementAt(counter)));
numStudentsYear2.Add(temp2);
temp3 = Convert.ToInt32(objControllerClass.get_students_intervention_particular_year_program(year3, programCodeList.ElementAt(counter)));
numStudentsYear3.Add(temp3);
}//for
int[] yValues0 = numStudentsYear1.ToArray();//2011-2012
int[] yValues1 = numStudentsYear2.ToArray();//2010-2011
int[] yValues2 = numStudentsYear3.ToArray();//2009-2010
string[] xNameSeries0 = { "Agent immobilier", "Mécanique du bâtiment", "Gestion des eaus ", "Soins infirmiers ", "Anglais ", "Comtabilité et gestion ", "Bureautique ", "Architecture et gestion de réseau ", "Programmeur web ", "Assurance de dommages ", "O'Bois ", "Éducation à l'enface ", "Francisation " };
myBarChart.Series[0].Points.DataBindXY(xNameSeries0, yValues0);
myBarChart.Series[1].Points.DataBindXY(xNameSeries0, yValues1);
myBarChart.Series[2].Points.DataBindXY(xNameSeries0, yValues2);
//legend text
myBarChart.Series[0].LegendText = year1.ToString();
myBarChart.Series[1].LegendText = year2.ToString();
myBarChart.Series[2].LegendText = year3.ToString();
}//calculateStatsFor3Years()
これは、CrystalReportsに表示する必要のある水平グラフのスクリーンショットです。
http://i1342.photobucket.com/albums/o765/CSharpJunior/C%20Sharp%20project/horizontalGraph.jpg