没有找到合适的产品?
联系客服协助选型:023-68661681
提供3000多款全球软件/控件产品
针对软件研发的各个阶段提供专业培训与技术咨询
根据客户需求提供定制化的软件开发服务
全球知名设计软件,显著提升设计质量
打造以经营为中心,实现生产过程透明化管理
帮助企业合理产能分配,提高资源利用率
快速打造数字化生产线,实现全流程追溯
生产过程精准追溯,满足企业合规要求
以六西格玛为理论基础,实现产品质量全数字化管理
通过大屏电子看板,实现车间透明化管理
对设备进行全生命周期管理,提高设备综合利用率
实现设备数据的实时采集与监控
利用数字化技术提升油气勘探的效率和成功率
钻井计划优化、实时监控和风险评估
提供业务洞察与决策支持实现数据驱动决策
原创|使用教程|编辑:郑恭琳|2019-10-17 15:37:06.277|阅读 301 次
概述:这是关于结合使用FastReport.Net和PHP应用程序的文章的最后一部分。 在以前的文章(查看第1部分、第2部分)中,我们研究了在ASP.Net Core上创建服务器部件的方法。让我提醒您,它使您可以获取报表显示,将报表加载到其中以进行编辑的报表设计器显示,以给定格式下载报表。 现在我们必须实现一个php应用程序。
# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>
相关链接:
这是关于结合使用FastReport.Net和PHP应用程序的文章的最后一部分。
在以前的文章(查看第1部分、第2部分)中,我们研究了在ASP.Net Core上创建服务器部件的方法。让我提醒您,它使您可以获取报表显示,将报表加载到其中以进行编辑的报表设计器显示,以给定格式下载报表。
现在我们必须实现一个php应用程序。为此,您必须安装Web服务器,例如,在其上安装了Apache和PHP。
在本文中,我们将不重复赘述创建php应用程序的原理。
让我们确定页面的结构。我们需要3个网页模板:
主页——显示网络报表;
设计器——显示报表设计器;
下载——按钮以下载报表。
每个页面的菜单标题都相同。因此,将其放在单独的文件header.php中是有意义的。让我们在预安装的Apache目录的htdocs文件夹中创建它。
<div id="header"> <div > <h1>FastReports</h1> <ul > <li><a href="index.php">Home</a></li> <li ><a href="designer.php">Designer</a></li> <li ><a href="downloads.php">Downloads</a></li> </ul> </div> </div>
同样,在每个页面上,将有一个包含报表和操作按钮的下拉列表。此模块也移至单独的文件——报表列表:
<?php
$info = file_get_contents('//localhost:44346/api/reports/');
$res = json_decode($info, true);
?>
<div id="dropdown">
<select name="reports" id="reports" >
<?php
foreach ($res as $key => $value) {
echo '<option value='.$key.'>'.$value['reportName'].'</option>';
}
?>
<input type="button" name="submit" value="Get" onclick=get()'>
</div>这使用内容检索方法以json格式加载报表列表。该链接指向本地调试iis文件,在该文件中“引发”了我们的服务器部分。接下来,使用php代码,我们使用从服务器接收到的数据填写下拉列表。获取“Get”按钮启动选定的()函数,该函数在每个页面上都是唯一的。
众所周知,通常index.php文件用于网站的主页。让我们来创建它。
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>FastReports</title>
<meta name="title" content="FastReports" />
<link rel="stylesheet" href="stylesite.css" type="text/css" media="screen, projection" />
</head>
<body>
<div id="main">
<?php
include ("header.php");
?>
<?php
include ("reportslist.php");
?>
<script type="text/javascript" language="javascript">
function get(){
var name = document.getElementById('reports').options[document.getElementById('reports').value].text
document.getElementById('forFrame').innerHTML = '<iframe id="frame" src="//localhost:44346/api/reports/ShowReport?name='+name+'" width="1000" height="1000" />';
};
</script>
<div id="forFrame"></div>
</div>
</body>
</html>该页面模板包括标题和正文。通常,标题包括标题、元数据、样式链接。在页面的正文中,我们包含了带有标题和下拉列表的文件。请记住,reportslist.php模块中的获取“Get”按钮调用了Get ()函数。
让我们考虑在javascript中实现此功能。首先,您需要获取所选报表的名称,然后在后端调用ShowReport方法时将其作为参数传递。要加载外部对象(WebReport),我们将使用iframe标签。JavaScript再次帮助我们在<div>标签内动态插入ifame。在到源的链接中,我们使用了一个变量——报表的名称。
样式表也是相当简单的stylesite.css:
* {
margin: 0;
padding: 0;
}
#main{
background-color:#fff;
width: 1000px;
margin:0 auto;
overflow:hidden;
}
#header {
height:70px;
background-color: #FFCC33;
text-align: center;
}
#header li {
list-style: none;
display: inline;
padding: 10px 20px 0px 10px;
}
#header li a {
padding:3px;
text-decoration: none;
color: #000;
}
#header li a:hover {
text-decoration: none;
padding:3px;
text-decoration: none;
color: red;
}
#header H1 {
font-family: Times, Tahoma, Arial,Verdana, sans-serif;
}
#dropdown {
padding: 5px;
}让我们启动我们的Web服务器并查看索引页面:

我们有一个下拉列表和一个按钮。选择报表并按下按钮:

结果,我们得到一个Web报表对象。此外,工具栏上的按钮没有丢失功能,您可以导出为所需的格式并进行打印。
现在,我们实现Dedigner.php页面。使用index.php在同一目录中创建它:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>FastReports</title>
<meta name="title" content="FastReports" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" href="stylesite.css" type="text/css" media="screen, projection" />
</head>
<body>
<div id="main">
<?php
include ("header.php");
?>
<?php
include ("reportslist.php");
?>
<script type="text/javascript" language="javascript">
function get(){
var name = document.getElementById('reports').options[document.getElementById('reports').value].text
document.getElementById('forFrame').innerHTML = '<iframe id="frame" src="//localhost:44346/api/reports/Design?name='+name+'" width="1000" height="1000" />';
};
</script>
<div id="forFrame"></div>
</div>
</body>
</html>如您所见,html页面模板与index.php没什么不同。唯一的区别在于Get ()方法。我们从下拉列表中选择报表的名称。然后,在后端插入带参考设计方法的iframe。在参数中,我们传递报表的名称。结果,我们将看到类似于index的页面:

但是,如果我们单击Get ()按钮:

我们得到了一个带有已加载报表模板的设计器。我们可以对其进行编辑并保存:

绿色框中保存的消息将告诉我们报表已保存。
仍然需要执行第三页——下载。创建文件downloads.php:
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>FastReports</title>
<meta name="title" content="FastReports" />
<meta name="keywords" content="" />
<meta name="description" content="" />
<link rel="stylesheet" href="stylesite.css" type="text/css" media="screen, projection" />
</head>
<body>
<div id="main">
<?php
include("header.php");
?>
<?php
include("reportslist.php");
?>
<p>Please select report format:</p>
<div>
<input type="radio" id="pdf"
name="r" value="pdf">
<label for="pdf">pdf</label>
<input type="radio" id="html"
name="r" value="html">
<label for="html">html</label>
</div>
<script type="text/javascript" language="javascript">
function get(){
var number = document.getElementById('reports').value;
number++
var type = '';
if (number > 0)
{
var inp = document.getElementsByName('r');
for (var i = 0; i < inp.length; i++) {
if (inp[i].type == "radio" && inp[i].checked) {
type = inp[i].value;
}
}
var elem = document.createElement('a');
elem.setAttribute('href','//localhost:44346/api/reports/'+number+'?format='+type);
elem.setAttribute('download', 'download');
elem.click();
}
}
</script>
</div>
</body>
</html>除下拉列表外,页面模板还包含两个单选按钮:pdf、html。这是我们在后端实现的两种导出类型。这次的Get ()方法有很大的不同。我们将使用下拉列表中选择的报表的索引代替名称。在脚本中,我们创建<a>标记并将链接设置为后端,在此处使用WebApi以指定的格式获取索引报表。形成链接后,我们立即以编程方式单击它。因此,我们下载了文件。运作方式如下:

单击获取按钮。然后我们得到文件:

您可以像在第一页上那样在WebReport对象中显示报表,然后进行导出。下载“Downloads”页面显示了一种直接从服务器获取报表导出的替代方法。
本文总结了由PHP应用程序处理FastReport.Net报表的三个部分。
本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@ke049m.cn




大型SaaS系统的自动化测试常常受制于界面变化快、结构复杂、加载机制多变等因素。从元素识别到脚本管理,SmartBear TestComplete帮助Salesforce建了可靠的自动化测试体系。
BarTender 标签管理系统,正是帮助企业轻松实现 GS1 标准化标签设计、编码生成与信息联动的强大工具。
Parasoft C/C++test 是一款功能强大的 C/C++ 软件测试工具,集成了静态代码分析、单元测试、集成测试和覆盖率分析等功能,单元测试作为其关键功能之一,为了适配多样化的目标部署环境,C/C++test 设计了灵活的测试结果收集机制。通过Socket通讯方式来收集单元测试结果,从而扩展其测试覆盖范围与应用场景。
Parasoft C/C++test作为一款功能全面的自动化代码质量保障工具,为C/C++开发者提供了静态分析、单元测试和运行时错误检测等核心功能。通过将其与轻量级且广受欢迎的VScode编辑器集成,开发团队可以在熟悉的编码环境中实时获得代码质量反馈,有效提升开发效率与代码可靠性。
相关产品
一款全功能的Windows Forms、ASP.NET和MVC报表分析解决方案。
FastReport Online Designer一个跨平台的可视化Web报表设计器
最新文章 MORE
半岛外围网上直营相关的文章 MORE
服务电话
重庆/ 023-68661681
华东/ 13452821722
华南/ 18100878085
华北/ 17347785263
客户支持
技术支持咨询服务
服务热线:400-700-1020
邮箱:sales@ke049m.cn
关注我们
地址 : 重庆市九龙坡区火炬大道69号6幢
半岛外围网上直营