套打技巧
1) 掃描原件電子版作爲報表背景
2) 在報表上面依據背景畫出控件位置
3) 根據字段可以設計數據庫和報表的連接進行自動大批量打印
多表頭
ppt
銳浪報表使用(單數據連接)
,推模式就是由程序代碼把連接字符串、SQL
拉模式則是在明細網格中根據填好的連接字符串、SQL語句由報表自
。
GridppReport Report = new GridppReport();//1.定義一個新報表
void showreport()
//2.載入報表模板數據
//Report.LoadFromFile(GridppReportDemo.Utility.GetReportTemplatePath() +
Application.StartupPath + "\\1.grf");
//3.設置與數據源的連接串,因爲在設計時指定的數據庫路徑是絕對路徑。
;
連接報表取數事件
new _IGridppReportEvents_InitializeEventHandler(MyReport);
設定查詢顯示器要顯示的報表
void MyReport()//報表查詢條件
string startdate = dateTimePicker1.Value.ToString("yy-MM-dd 0:00:00");
string enddate = dateTimePicker2.Value.ToString("yy-MM-dd 23:59:59");
string SQL = "SELECT * FROM production_material_lose WHERE unit = '" +
"' AND unit_2 = '" + comboBox2.Text + "' AND materialtype = '" +
"' AND typedetail = '" + comboBox4.Text + "' and uploaddate >= '" +
"' and uploaddate <='" + enddate + "'";
用拉模式爲報表提供數據,將按條件生成的SQL設置到報表上
子報表意義及說明
、將多個不同的報表集中在一起打印,且每個報表的頁面設置可以不一樣,如紙張大小與紙張方向。
、希望多個報表集中導出到一個文件。
、實現在導出Excel時,將不同的報表分別導出在不同的工作表(sheet)中。設置子報表的“導出到新工作
”屬性爲“是”,這個子報表在導出Excel時將單獨產生在一個新工作表中。
多個數據連接(子報表)
,隸屬於主報表模塊(紅色部分)
獲取子報表的內部報表對象
rptCustomerList =
"srCustomerList").AsSubReport.Report;
rptTop10Customer =
"srTop10Customer").AsSubReport.Report;
rptTop10Product =
"srTop10Product").AsSubReport.Report;
設置與數據源的連接串。
.DetailGrid.Recordset.ConnectionString = “”;
.DetailGrid.Recordset.ConnectionString = “”;
.DetailGrid.Recordset.ConnectionString = “”;;
連接報表事件
new
(MyReport);
主報表子報表參數關聯
select * from Customers where City=:City
4d.子報表主子關聯.grf
excel的統計類型也是可以的,首先一般都有”明細網格”,我們把想要設置的
“自由格”,然後在自由格中插入“綜合文字框(memoBox)”,在“綜合文字框
memoBox)”完成統計。
:
666666
"Barcode1").AsBarcode.Text = "666666";
傳值
"StaticBox1").AsStaticBox.Text = "666666";
折線圖、二維碼
)
軸y軸名字(必選)
圖表標題(可選)
數據序列數(有幾種數據)
數據組數(x軸數據列數目)
軸(x軸標籤、x軸刻度間隔、最小值、最大值)
軸(y軸標籤、y軸刻度間隔、最小值、最大值)
圖表數據(所有數據)
建立圖表,設置
void myreport()
{
IGRChart pChartBar = Report.ControlByName("ChartBar").AsChart; //柱形圖
FillNormalValues(pChartBar);//填充值方法,見下
SetCustomGraphFillColor(pChartBar);//顏色方法,參見chart例子,用處不大
IGRChart pChartPie = Report.ControlByName("ChartPie").AsChart; //餅圖
FillNormalValues(pChartPie);
IGRChart pChartScatter = Report.ControlByName("ChartScatter").AsChart;
FillXYValues(pChartScatter); //隨機散點圖
IGRChart pChartScatterLine =
"ChartScatterLine").AsChart; //折線圖
FillXYValues2(pChartScatterLine);
}
向柱圖、疊加柱圖、連線圖與餅圖提供數據
protected static void FillNormalValues(IGRChart pChart)
{
//數據序列數(有幾種數據)
//數據組數(x軸數據列數目)
//pChart.XAxisMinimum = 0;
//pChart.XAxisMaximum = 60;
//pChart.XAxisSpace = 15;
pChart.set_SeriesLabel(0, "張三");
pChart.set_SeriesLabel(1, "李四");
pChart.set_SeriesLabel(2, "王五");
pChart.set_GroupLabel(0, "一");
pChart.set_GroupLabel(1, "二");
pChart.set_GroupLabel(2, "三");
pChart.set_GroupLabel(3, "四");
pChart.set_Value(0, 0, 1000);
pChart.set_Value(0, 1, 1200);
pChart.set_Value(0, 2, 1500);
pChart.set_Value(0, 3, 800);
pChart.set_Value(1, 0, 1500);
pChart.set_Value(1, 1, 1800);
pChart.set_Value(1, 2, 2000);
pChart.set_Value(1, 3, 1200);
pChart.set_Value(2, 0, 800);
pChart.set_Value(2, 1, 1000);
pChart.set_Value(2, 2, 700);
pChart.set_Value(2, 3, 500);
}
下面方法以隨機數填充折線圖,折線圖採用下面的思路,雙for循環讀取數據庫或者參數生成圖表
提供散點連線圖的數據,產生隨機座標點數據,保持X值是遞增的,並自定義XY軸刻度位置與顯示
protected static void FillXYValues2(IGRChart pChart)
{
Random MyRandom = new Random();
pChart.EmptyXYValue();
for (short i=0; i<pChart.SeriesCount; ++i)
{
double x = 0;
int DataCount = MyRandom.Next(30);
for (short j=0; j<DataCount; ++j)
{
x += MyRandom.NextDouble() * 10;
double y = MyRandom.NextDouble() * 300;
pChart.AddXYValue(i, x, y);
}
}
//設置縱座標刻度文字
pChart.EmptyYAxisText();
pChart.AddYAxisText(0, "0");
pChart.AddYAxisText(50, "50");
pChart.AddYAxisText(100, "100");
pChart.AddYAxisText(200, "200");
pChart.AddYAxisText(300, "300");
pChart.AddYAxisText(400, "400");
//設置橫座標刻度文字
pChart.EmptyXAxisText();
pChart.AddXAxisText(0, "0");
pChart.AddXAxisText(10, "10");
pChart.AddXAxisText(30, "30");
pChart.AddXAxisText(40, "40");
pChart.AddXAxisText(60, "60");
pChart.AddXAxisText(80, "80");
pChart.AddXAxisText(100, "100");
}