锐浪报表使用

By admin at 2018-08-28 • 0人收藏 • 3795人看过

感谢daheian提供的示例和代码。

1,打印和打印预览

示例代码里面用的是mdb数据库,这里我利用官方提供的示例数据。

import win.ui;
import reportRl;
import reportRl.path;
import reportRl.displayView;
/*DSG{{*/
mainForm = win.form(text="aardio form";right=759;bottom=469)
mainForm.add(
btnPrint={cls="button";text="打印";left=9;top=5;right=80;bottom=30;dl=1;dt=1;z=1};
btnPrintPreview={cls="button";text="打印预览";left=88;top=5;right=159;bottom=30;dl=1;dt=1;z=2};
static={cls="static";text="static";left=10;top=39;right=751;bottom=458;border=1;db=1;dl=1;dr=1;dt=1;transparent=1;z=3}
)
/*}}*/

var report,err = reportRl();
if(!report){
	mainForm.msgbox(err)
}

var fileName = reportRl.path.templatePath() + "1a.简单表格.grf";
report.LoadFromFile(fileName);
report.DetailGrid.Recordset.LoadData("http://www.gridreport.cn/demos/data/DataCenter.ashx?data=Customer")
//report.DetailGrid.Recordset.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=" + reportRl.path.dataPath() + "NorthWind.mdb;";

var displayObj,err = reportRl.displayView(mainForm.static);
if(!displayObj){
	mainForm.msgbox(err)
}

displayObj.Report = report;
displayObj.Start();

mainForm.btnPrint.oncommand = function(id,event){
	report.Print(true);
}
mainForm.btnPrintPreview.oncommand = function(id,event){
	report.PrintPreview(true);
}


mainForm.enableDpiScaling()
mainForm.show();

return win.loopMessage();

blob.png

5 个回复 | 最后更新于 2018-11-07
2018-10-14   #1

直接获取程序中的数据来显示和打印:

import win.ui;
import reportRl;
import reportRl.path;
import reportRl.displayView;
/*DSG{{*/
mainForm = win.form(text="推式提供报表数据-Grid++Report例子 for aardio";right=1085;bottom=632;border="dialog frame";max=false)
mainForm.add(
button={cls="button";text="打印预览";left=142;top=42;right=251;bottom=76;z=1};
button2={cls="button";text="退出";left=142;top=116;right=251;bottom=150;z=2};
button3={cls="button";text="打印预览";left=131;top=285;right=240;bottom=319;z=4};
static={cls="static";text="Static";left=343;top=34;right=911;bottom=484;transparent=1;z=3}
)
/*}}*/

var report = reportRl();
assert(report,"报表组件创建失败!");

var fileName = reportRl.path.templatePath() + "\ManualFillRecord.grf";
report.LoadFromFile(fileName);

report.FetchRecord = function(){
	/*在报表生成时且以推模式向报表提供数据,报表主对象请求数据时触发。*/
	var c1 = report.FieldByName("c1");
	
	var i1 = report.FieldByName("i1");
	
	var f1 = report.FieldByName("f1");
		
	
	report.DetailGrid.Recordset.Append();
	c1.AsString = "A";
	i1.AsInteger = 1;
	f1.AsFloat = 1.01;
	report.DetailGrid.Recordset.Post();
	
	report.DetailGrid.Recordset.Append();
	c1.AsString = "B";
	i1.AsInteger = 2;
	f1.AsFloat = 2.01;
	report.DetailGrid.Recordset.Post();
	
	report.DetailGrid.Recordset.Append();
	c1.AsString = "C";
	i1.AsInteger = 3;
	f1.AsFloat = 3.01;
	report.DetailGrid.Recordset.Post();
}

mainForm.button2.oncommand = function(id,event){
	//退出
	mainForm.close();
}
mainForm.button.oncommand = function(id,event){
	//打印预览
	report.PrintPreview(true);
}

mainForm.button3.oncommand = function(id,event){
	var displayObj,err = reportRl.displayView(mainForm.static);
	if(!displayObj){
		mainForm.msgbox(err)
	}
	
	displayObj.Report = report;
	displayObj.Start();	
}

mainForm.enableDpiScaling();
mainForm.show();

return win.loopMessage();

image.png

2018-10-14   #2

最简单的报表就是按照设计器的向导一步一步来:

image.png

image.png

image.png

image.png

image.png

import win.ui;
import reportRl;
import reportRl.path;
import reportRl.displayView;
/*DSG{{*/
mainForm = win.form(text="推式提供报表数据-Grid++Report例子 for aardio";right=1085;bottom=632;border="dialog frame";max=false)
mainForm.add(
button={cls="button";text="打印预览";left=0;top=40;right=109;bottom=74;z=1};
button2={cls="button";text="退出";left=0;top=114;right=109;bottom=148;z=2};
button3={cls="button";text="打印预览";left=0;top=206;right=109;bottom=240;z=4};
static={cls="static";text="Static";left=140;top=34;right=1069;bottom=484;transparent=1;z=3}
)
/*}}*/

var report = reportRl();
assert(report,"报表组件创建失败!");
 
var fileName = "C:\Users\popdes\Desktop\reportRl\reports\aarT.grf";
report.LoadFromFile(fileName);
 
report.FetchRecord = function(){
    /*在报表生成时且以推模式向报表提供数据,报表主对象请求数据时触发。*/
    var name = report.FieldByName("name");
     
    var nianling = report.FieldByName("nianling");
     
    var tizhong = report.FieldByName("tizhong");
         
    var zhuzhi = report.FieldByName("zhuzhi");
     for(i=1;50;1){
     	 report.DetailGrid.Recordset.Append();
    	name.AsString = "aaaa"++i;
    	nianling.AsInteger = i;
    	tizhong.AsFloat = 30+i;
    	zhuzhi.AsString = "shanghaishi , jinganqu . xisihutong"++i
    	report.DetailGrid.Recordset.Post();
     
     }

}
 
mainForm.button2.oncommand = function(id,event){
    //退出
    mainForm.close();
}
mainForm.button.oncommand = function(id,event){
    //打印预览
    report.PrintPreview(true);
}
 
mainForm.button3.oncommand = function(id,event){
    var displayObj,err = reportRl.displayView(mainForm.static);
    if(!displayObj){
        mainForm.msgbox(err)
    }
     
    displayObj.Report = report;
    displayObj.Start(); 
}
 
mainForm.enableDpiScaling();
mainForm.show();
 
return win.loopMessage();


2018-11-01   #3

动态添加一条数据的方法:

var ii = 1;
mainForm.button4.oncommand = function(id,event){
	var c1 = report.FieldByName("c1");
	
	var i1 = report.FieldByName("i1");
	
	var f1 = report.FieldByName("f1");
			
	report.DetailGrid.Recordset.Append();
	c1.AsString = "A"++ii;
	i1.AsInteger = ii;
	f1.AsFloat = math.random();
	report.DetailGrid.Recordset.Post();
	displayObj.QuickRefresh()
	ii++;
}

关键点在上面的: 

displayObj.QuickRefresh()

GIF.gif

2018-11-06   #4

meiy没有下载链接?

2018-11-07   #5

回复#4 @aiwen :

没上传, 代码都在上面了,

先下载 reportx的库, https://pan.baidu.com/s/1OvgukJoq3SPJboZBGGLThA

之后代码按照上面的改改就好了.

登录后方可回帖

登 录
信息栏
 私人小站

本站域名

ChengXu.XYZ

投诉联系:  popdes@126.com



快速上位机开发学习,本站主要记录了学习过程中遇到的问题和解决办法及上位机代码分享

这里主要专注于学习交流和经验分享.
纯私人站,当笔记本用的,学到哪写到哪.
如果侵权,联系 Popdes@126.com

友情链接
Aardio官方
Aardio资源网


才仁机械


网站地图SiteMap

Loading...