• <menu id="w2i4a"></menu>
  • logo FastReport.Net教程2019

    文檔首頁>>FastReport.Net教程2019>>如何在PHP應(yīng)用程序中使用FastReport報(bào)表|第3部分

    如何在PHP應(yīng)用程序中使用FastReport報(bào)表|第3部分


    這是關(guān)于結(jié)合使用FastReport.NetPHP應(yīng)用程序的文章的最后一部分。

    在以前的文章(查看第1部分、第2部分)中,我們研究了在ASP.Net Core上創(chuàng)建服務(wù)器部件的方法。讓我提醒您,它使您可以獲取報(bào)表顯示,將報(bào)表加載到其中以進(jìn)行編輯的報(bào)表設(shè)計(jì)器顯示,以給定格式下載報(bào)表。

    現(xiàn)在我們必須實(shí)現(xiàn)一個(gè)php應(yīng)用程序。為此,您必須安裝Web服務(wù)器,例如,在其上安裝了Apache和PHP。

    在本文中,我們將不重復(fù)贅述創(chuàng)建php應(yīng)用程序的原理。

    讓我們確定頁面的結(jié)構(gòu)。我們需要3個(gè)網(wǎng)頁模板:

    • 主頁——顯示網(wǎng)絡(luò)報(bào)表;

    • 設(shè)計(jì)器——顯示報(bào)表設(shè)計(jì)器;

    • 下載——按鈕以下載報(bào)表。

    每個(gè)頁面的菜單標(biāo)題都相同。因此,將其放在單獨(dú)的文件header.php中是有意義的。讓我們在預(yù)安裝的Apache目錄的htdocs文件夾中創(chuàng)建它。

    <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>

    同樣,在每個(gè)頁面上,將有一個(gè)包含報(bào)表和操作按鈕的下拉列表。此模塊也移至單獨(dú)的文件——報(bào)表列表:

    <?php
    $info = file_get_contents('https://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>

    這使用內(nèi)容檢索方法以json格式加載報(bào)表列表。該鏈接指向本地調(diào)試iis文件,在該文件中“引發(fā)”了我們的服務(wù)器部分。接下來,使用php代碼,我們使用從服務(wù)器接收到的數(shù)據(jù)填寫下拉列表。獲取“Get”按鈕啟動選定的()函數(shù),該函數(shù)在每個(gè)頁面上都是唯一的。

    眾所周知,通常index.php文件用于網(wǎng)站的主頁。讓我們來創(chuàng)建它。

    <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="https://localhost:44346/api/reports/ShowReport?name='+name+'" width="1000" height="1000" />';
     };
     </script>
     <div id="forFrame"></div>
     </div>
    </body>
    </html>

    該頁面模板包括標(biāo)題和正文。通常,標(biāo)題包括標(biāo)題、元數(shù)據(jù)、樣式鏈接。在頁面的正文中,我們包含了帶有標(biāo)題和下拉列表的文件。請記住,reportslist.php模塊中的獲取“Get”按鈕調(diào)用了Get ()函數(shù)。

    讓我們考慮在javascript中實(shí)現(xiàn)此功能。首先,您需要獲取所選報(bào)表的名稱,然后在后端調(diào)用ShowReport方法時(shí)將其作為參數(shù)傳遞。要加載外部對象(WebReport),我們將使用iframe標(biāo)簽。JavaScript再次幫助我們在<div>標(biāo)簽內(nèi)動態(tài)插入ifame。在到源的鏈接中,我們使用了一個(gè)變量——報(bào)表的名稱。

    樣式表也是相當(dāng)簡單的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服務(wù)器并查看索引頁面:

    如何在PHP應(yīng)用程序中使用FastReport報(bào)表|第3部分

    我們有一個(gè)下拉列表和一個(gè)按鈕。選擇報(bào)表并按下按鈕:

    如何在PHP應(yīng)用程序中使用FastReport報(bào)表|第3部分

    結(jié)果,我們得到一個(gè)Web報(bào)表對象。此外,工具欄上的按鈕沒有丟失功能,您可以導(dǎo)出為所需的格式并進(jìn)行打印。

    現(xiàn)在,我們實(shí)現(xiàn)Dedigner.php頁面。使用index.php在同一目錄中創(chuàng)建它:

    <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="https://localhost:44346/api/reports/Design?name='+name+'" width="1000" height="1000" />';
     };
    </script>
    <div id="forFrame"></div>
    </div>
    </body>
    </html>

    如您所見,html頁面模板與index.php沒什么不同。唯一的區(qū)別在于Get ()方法。我們從下拉列表中選擇報(bào)表的名稱。然后,在后端插入帶參考設(shè)計(jì)方法的iframe。在參數(shù)中,我們傳遞報(bào)表的名稱。結(jié)果,我們將看到類似于index的頁面:

    如何在PHP應(yīng)用程序中使用FastReport報(bào)表|第3部分

    但是,如果我們單擊Get ()按鈕:

    如何在PHP應(yīng)用程序中使用FastReport報(bào)表|第3部分

    我們得到了一個(gè)帶有已加載報(bào)表模板的設(shè)計(jì)器。我們可以對其進(jìn)行編輯并保存:

    如何在PHP應(yīng)用程序中使用FastReport報(bào)表|第3部分

    綠色框中保存的消息將告訴我們報(bào)表已保存。

    仍然需要執(zhí)行第三頁——下載。創(chuàng)建文件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','https://localhost:44346/api/reports/'+number+'?format='+type);
     elem.setAttribute('download', 'download');
     elem.click();
     }
    }
    </script>
    </div>
    </body>
    </html>

    除下拉列表外,頁面模板還包含兩個(gè)單選按鈕:pdf、html。這是我們在后端實(shí)現(xiàn)的兩種導(dǎo)出類型。這次的Get ()方法有很大的不同。我們將使用下拉列表中選擇的報(bào)表的索引代替名稱。在腳本中,我們創(chuàng)建<a>標(biāo)記并將鏈接設(shè)置為后端,在此處使用WebApi以指定的格式獲取索引報(bào)表。形成鏈接后,我們立即以編程方式單擊它。因此,我們下載了文件。運(yùn)作方式如下:

    如何在PHP應(yīng)用程序中使用FastReport報(bào)表|第3部分

    單擊獲取按鈕。然后我們得到文件:

    如何在PHP應(yīng)用程序中使用FastReport報(bào)表|第3部分

    您可以像在第一頁上那樣在WebReport對象中顯示報(bào)表,然后進(jìn)行導(dǎo)出。下載“Downloads”頁面顯示了一種直接從服務(wù)器獲取報(bào)表導(dǎo)出的替代方法。

    本文總結(jié)了由PHP應(yīng)用程序處理FastReport.Net報(bào)表的三個(gè)部分。

    點(diǎn)擊查看第1部分。

    點(diǎn)擊查看第2部分。



    產(chǎn)品介紹 | 下載試用 | 優(yōu)惠活動 | 在線客服

    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();