<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    wuxiren123

    #

    系統(tǒng)集成方案(一).NET集成方案

         摘要: NET系統(tǒng)集成有自己獨(dú)立的登錄驗(yàn)證方式。比如,跟報(bào)表集成時(shí),不需要再使用報(bào)表內(nèi)置的登錄界面,只需要將報(bào)表默認(rèn)的參數(shù)用戶名fr_username和密碼fr_password發(fā)送給報(bào)表系統(tǒng),觸發(fā)一下報(bào)表驗(yàn)證方式就可以實(shí)現(xiàn)單點(diǎn)登錄了,以下用FineReport的.NET跨域單點(diǎn)登錄案例簡單介紹一下。 系統(tǒng)本身有獨(dú)立的登錄驗(yàn)證方式如下圖:   1.觸發(fā)報(bào)表驗(yàn)證方法 報(bào)表集成時(shí)不需要再一次...  閱讀全文

    posted @ 2016-07-27 10:27 喝水居然長肉 閱讀(100) | 評論 (0)編輯 收藏

    報(bào)表開發(fā)之自定義函數(shù)

    對于報(bào)表開發(fā),很多情況下,自帶的函數(shù)就能滿足大部分用戶的報(bào)表制作需求,F(xiàn)ineReport也不例外。但是在一些特殊領(lǐng)域,可能需要一些特殊的函數(shù),在這種情況下,F(xiàn)ineReport提供了自定義函數(shù)機(jī)制,可以由用戶根據(jù)業(yè)務(wù)需要自己來定義一些函數(shù),但這些函數(shù)必須滿足函數(shù)定義規(guī)則。

    先來了解一下FineReport的函數(shù)定義規(guī)則:Functionname(Para,Para,...),其中Functionname為函數(shù)名,Para為參數(shù)。

    每一個(gè)函數(shù)都被定義成一個(gè)類,這個(gè)類必須要實(shí)現(xiàn)Function這個(gè)接口,在運(yùn)算的時(shí)候首先通過函數(shù)名反射取得這個(gè)類,然后調(diào)用它的run(Object[] agrs)方法。下面以SUM這個(gè)函數(shù)為例。

    SUM函數(shù)原理

    由程序可以看到,SUM類用來運(yùn)算SUM函數(shù),他繼承了AbstractFunction類,而AbstractFunction實(shí)現(xiàn)了Function這個(gè)接口。

    當(dāng)函數(shù)運(yùn)算的時(shí)候,先根據(jù)函數(shù)名取得運(yùn)算該函數(shù)的類,如SUM(2,4,true)這個(gè)函數(shù)先根據(jù)函數(shù)名取得SUM這個(gè)類,然后調(diào)用SUM類的run(Object[] args)方法,args中存放的是SUM函數(shù)的參數(shù),運(yùn)算的時(shí)候可以從args中取得參數(shù)進(jìn)行運(yùn)算。如執(zhí)行結(jié)果為SUM(2,4,true)=2+4+1=7。

    SUM函數(shù)所使用代碼:

    package com.fr.report.script;
    import java.lang.reflect.Array;
    import com.fr.report.script.core.FArray;
    import com.fr.report.script.core.FunctionHelper;
    public class SUM extends AbstractFunction {
        
    public Object run(Object[] args) {
            
    double result = 0;
            
    for (int i = 0; i < args.length; i++{
                
    if (args[i] == null{
                    
    continue;
                }

                result 
    += parseObject(args[i]);
            }

            
    return FunctionHelper.parsePrimitiveDouble(result);
        }

        
    private double parseObject(Object obj) {
            
    if (obj instanceof Number) {
                
    return ((Number) obj).doubleValue();
            }
     else if (obj instanceof Boolean) {
                
    return ((Boolean) obj).booleanValue() ? 1 : 0;
            }
     else if (obj instanceof FArray) {
                FArray array 
    = (FArray) obj;
                
    double sum = 0;
                
    for (int i = 0; i < array.length(); i++{
                    sum 
    += parseObject(array.elementAt(i));
                }

                
    return sum;
            }
     else if (obj != null{
                
    try {
                    
    return Double.parseDouble(obj.toString());
                }
     catch (NumberFormatException exp) {
                    
    return 0;
                }

            }

            
    return 0;
        }

    }

    實(shí)現(xiàn)步驟

    編寫自定義函數(shù)

    下面以一個(gè)簡單的自定義函數(shù)例子來說明使用自定義函數(shù)。我們定義一個(gè)函數(shù)StringCat,他的作用是把所有的參數(shù)以字符串的形式連接起來。

    StringCat函數(shù)使用規(guī)則為StringCat(Para,Para,Para…….);

    其中Para為該函數(shù)的參數(shù),個(gè)數(shù)不限。

    由概述可知AbstractFunction實(shí)現(xiàn)了Function這個(gè)接口,因此StringCat可以直接繼承AbstractFunction類,完整代碼如下:

    package com.fr.function;

    import com.fr.script.AbstractFunction;

    public class StringCat extends AbstractFunction {
        
    public Object run(Object[] args) {
            String result 
    = "";
            Object para;
            
    for (int i = 0; i < args.length; i++{
                para 
    = args[i];
                result 
    += para.toString();
            }

            
    return result;
        }

    }

    這里要注意,使用函數(shù)StringCat(Para,Para,Para…..)時(shí),根據(jù)函數(shù)名取得運(yùn)算該函數(shù)的類StringCat,并將參數(shù)傳入類中的args對象數(shù)組中,執(zhí)行該類的run函數(shù)。

    而在run函數(shù)中即實(shí)現(xiàn)了將傳入的參數(shù)以字符串的形式連接起來。并返回最終形成的字符串。

    編譯自定義函數(shù)

    將編譯后的StringCat.class放到FineReport的安裝目錄WEB-INF下面的classes目錄下,因?yàn)镾tringCat.java屬于包c(diǎn)om.fr.function,所以StringCat.class需要放到classes\com\fr\function目錄下。

    注冊自定義函數(shù)

    生成該函數(shù)的類后需要在設(shè)計(jì)器中進(jìn)行注冊,才可以使用該函數(shù)。打開服務(wù)器|函數(shù)管理器,選擇剛剛定義好了StringCat類,如下圖


    函數(shù)名稱可以自定義,如這邊定義為StringCat;

    同時(shí)可以添加該函數(shù)的使用說明,如上圖所示的描述

    使用自定義函數(shù)

    注冊好自定義函數(shù)后,制作報(bào)表時(shí)便可直接使用了,使用方法與內(nèi)置的函數(shù)是相同的。

    新建報(bào)表,定義兩個(gè)報(bào)表參數(shù)para1、para2,類型分別為字符串型與整形,默認(rèn)值分別為空字符串與0

    在空白報(bào)表的任意單元格里寫入公式:=StringCat($para1,$para2)(注意:寫入公式的時(shí)候在參數(shù)名前加$,表明這是使用的參數(shù))

    點(diǎn)擊分頁預(yù)覽在參數(shù)控件中,寫入?yún)?shù)值如para1為:FineReport,para2為:123。

    點(diǎn)擊查詢可以看到結(jié)果


    說明StringCat公式可以正常使用啦。

    posted @ 2016-07-21 12:17 喝水居然長肉 閱讀(63) | 評論 (0)編輯 收藏

    從FineReport看開放式引擎API

    對于一款軟件或產(chǎn)品,尤其是一些企業(yè)級應(yīng)用的IT軟件,是不可能滿足所有需求的。尤其是針對業(yè)務(wù)化的產(chǎn)品需求,某些個(gè)性化的需求就要進(jìn)行二次開發(fā)。二次開發(fā)需要API接口,無論是什么樣的開發(fā),開發(fā)人員都需要對開發(fā)的產(chǎn)品大內(nèi)部結(jié)構(gòu)有所了解。在應(yīng)用廣泛的企業(yè)報(bào)表領(lǐng)域,開發(fā)在所難免,下圖展示了我在工作中開發(fā)的FineReport的內(nèi)核示意圖。

     

    這款類似于Excel的報(bào)表軟件,成為設(shè)計(jì)器。在設(shè)計(jì)器中新建一個(gè)工作薄就是建了一個(gè)WorkBook,WorkBook相當(dāng)于一個(gè)容器,里面可以放任意個(gè)WorkSheet,就相當(dāng)于在設(shè)計(jì)器的一個(gè)工作薄中新建了多個(gè)sheet。每個(gè)WorkSheet是由任意個(gè)單元格CellElement組成,因此CellElement是一個(gè)模板的最小元素。獲得WorkBook后,必須取得其中的某個(gè)WorkSheet才能對這個(gè)報(bào)表中的CellElement進(jìn)行操作,這對于模板還是結(jié)果都是一樣的,如果以模板為例,最基本的內(nèi)核結(jié)構(gòu)就是如下面這張圖


    由于每個(gè)部分各自包含了很多屬性,比如可以設(shè)置單元格的前景、背景、邊框、字體、字號等;又比如每個(gè)WorkSheet中可以添加,刪除單元格、可以設(shè)置每個(gè)sheet的頁面屬性、可以給每個(gè)sheet中添加圖表懸浮元素等;再比如可以對WorkBook進(jìn)行執(zhí)行獲得結(jié)果并導(dǎo)出成各種格式、可以進(jìn)行打印、添加工具欄等等。

    正是基于這樣,再開發(fā)時(shí)會(huì)有豐富的API接口可供調(diào)用。以下是FineReport包含的所有開放的API。


    由圖可有看出,對于這樣的開發(fā)可以從以下幾個(gè)功能點(diǎn)進(jìn)行開發(fā)。

    報(bào)表數(shù)據(jù)源

    設(shè)計(jì)器本身已經(jīng)提供了數(shù)據(jù)庫數(shù)據(jù)源、文本數(shù)據(jù)源、xml數(shù)據(jù)源等多種數(shù)據(jù)來源方式,同時(shí)還可以通過java程序自行生成數(shù)據(jù)來源,只需要實(shí)現(xiàn)TableData接口便可以了。

    輸入輸出報(bào)表

    在程序中新建一個(gè)報(bào)表對象同時(shí)也可以直接讀取一個(gè)cpt模板來生成,經(jīng)過處理的報(bào)表最終可以導(dǎo)出成多種形式,可以保存為程序網(wǎng)絡(luò)報(bào)表在web端直接訪問,也可以導(dǎo)出為excel、pdf、word、cpt等多種格式文件。    

    設(shè)置單元格屬性及報(bào)表屬性編輯

    可以對報(bào)表對象的單元格屬性、web屬性、參數(shù)、頁面設(shè)置等多個(gè)屬性進(jìn)行控制,可以自由控制單元格的顯示樣式、工具欄的按鈕、參數(shù)面板的展示、參數(shù)的賦值等等。

    自定義填報(bào)

    開放的填報(bào)api接口能夠根據(jù)自己的需要來定義填報(bào)入庫方式,通過填報(bào)接口,可以往數(shù)據(jù)庫中保存用戶操作日志、在填報(bào)成功與失敗時(shí)進(jìn)行各種處理等等。

    開發(fā)的工作雖枯燥也有意思,閑來無事時(shí)也會(huì)開發(fā)一些有趣的應(yīng)用,比如下圖把天氣集成到報(bào)表頁面。

    posted @ 2016-07-18 15:11 喝水居然長肉 閱讀(122) | 評論 (0)編輯 收藏

    如何利用excel中的數(shù)據(jù)源制作數(shù)據(jù)地圖

    關(guān)于這個(gè)問題,制作數(shù)據(jù)地圖的方法已不新奇,總體來說有這么幾類方案:

    一類方案:直接在excel里制作

    優(yōu)勢:個(gè)人小數(shù)據(jù)量應(yīng)用較為方便簡單

    缺點(diǎn):需要熟悉VBA,且更強(qiáng)大的功能對VBA水平要求較高

    1、繪制地圖圖形 + VBA宏語言

    思路:用插入圖形"任意多邊形"繪制地圖;每一個(gè)"任意多邊形"賦予正確名稱;對"任意多邊形"賦值;利用VBA"任意多邊形"的值進(jìn)行操作例如上色。

    先準(zhǔn)備一張所需要的地圖圖片,網(wǎng)上都有,可以下載

    然后利用插入繪制多邊形圖片將地圖中的區(qū)域描邊


    選定好的區(qū)域可以在左上角修改名稱


    將數(shù)據(jù)表中的數(shù)據(jù)和地圖中的地區(qū)做關(guān)聯(lián),這里就要用到VBA了。

    代碼:

    Sub ProvRefill()

      

        ActiveSheet.Shapes.Range(Array("shandong")).Select

        

        With Selection.ShapeRange.Fill

            .Visible = msoTrue

            .ForeColor.ObjectThemeColor = msoThemeColorAccent1

            .ForeColor.TintAndShade = 0

            .ForeColor.Brightness = -0.5

            .Transparency = 0

            .Solid

        End With

        

    End Sub


    這段代碼是修改地圖所選區(qū)域的顏色的,其他功能類似,懂VBA的會(huì)覺得簡單,不懂的可以自行百度。

     

    2EXCEL插件集成

    這類插件有很多,推薦Power Map for Excel 2013安裝好之后,選擇數(shù)據(jù)區(qū)域,啟動(dòng)就行



    二類方案:其他軟件

    優(yōu)勢:地圖已集成在內(nèi),可連接數(shù)據(jù)庫,已有功能強(qiáng)大大數(shù)據(jù)量處理具有優(yōu)勢

    缺點(diǎn):自定義開發(fā)對人員水平要求較高,較困難

    這一類軟件一般是數(shù)據(jù)可視化的軟件,能用到EXCEL數(shù)據(jù)源的,現(xiàn)在比較普遍的是報(bào)表工具和所謂商業(yè)智能大數(shù)據(jù)工具。

    不多說,大家可能覺得陌生,那就直接上實(shí)例。

    這里介紹FineReport(功能強(qiáng)大最實(shí)際的報(bào)表工具)

    展示數(shù)據(jù)地圖不在話下,關(guān)鍵有地圖鉆取功能。

    所謂鉆取就是:比如你點(diǎn)擊山東省,進(jìn)入山東省省地圖,顯示山東省各市的數(shù)據(jù),數(shù)據(jù)的展示方式可以使用其他圖表,比如條形圖、氣泡圖等等。



    詳細(xì)步驟:

    1、 準(zhǔn)備數(shù)據(jù)源

    excel的數(shù)據(jù)導(dǎo)入到這個(gè)報(bào)表設(shè)計(jì)器里,如果你的excel數(shù)據(jù)是取自于數(shù)據(jù)庫的話,可以直接從設(shè)計(jì)器里讀取數(shù)據(jù)庫的數(shù)據(jù)。

    2、 合并一片單元格,點(diǎn)擊菜單欄中的插入>單元格元素>插入圖表,選擇地圖,然后點(diǎn)擊確定,如下圖:(這里申明一下,這個(gè)軟件類似于EXCEL,所以一些操作術(shù)語何以類比于EXCEL


    1、 選擇地圖類型,國家地圖、省級地圖還是其他云云,或者你有自定義的SVG地圖也行。這里注意,地圖的區(qū)域名要和區(qū)域數(shù)據(jù)字段的名字對應(yīng)。


    個(gè)人覺得鉆取才是其亮點(diǎn),所以這里一定要介紹一下。

    鉆取:

    定義好地圖的類型之后,就可以為地圖定義數(shù)據(jù)來源了,選中地圖,點(diǎn)擊圖表屬性表-數(shù)據(jù),進(jìn)入數(shù)據(jù)設(shè)置面板,地圖展現(xiàn)方式選擇多層鉆取,如下圖:


    從上圖可以看到,鉆取層級下有個(gè)中國的文件夾,雙擊即可打開查看中國下面的省份,選中中國文件夾,右擊,則會(huì)跳出層級設(shè)置對話框,如下圖:



    要實(shí)現(xiàn)點(diǎn)擊山東省能出現(xiàn)一張柱狀圖,這個(gè)其實(shí)是兩張圖表關(guān)聯(lián)的,所謂“聯(lián)動(dòng)”。

    聯(lián)動(dòng):

    合并一片單元格,點(diǎn)擊插入>單元格元素>插入圖表,選擇柱形圖,點(diǎn)擊確定即可添加一張柱形圖。

    柱形圖的數(shù)據(jù)來源:(這里我都是直接用數(shù)據(jù)庫的數(shù)據(jù)源)



    在此,地圖和柱形圖都已經(jīng)設(shè)置好了,如果要實(shí)現(xiàn)聯(lián)動(dòng),需要在設(shè)置交互屬性。

    選中地圖,在圖表屬性表中選擇特效,點(diǎn)擊交互屬性,添加一個(gè)超級鏈接,即點(diǎn)擊,添加一個(gè)圖表超鏈-聯(lián)動(dòng)單元格,設(shè)置如下圖:


    到這里基本就完成了,感覺自己做得圖有些low,別毀了人家名聲,其實(shí)人家功能很強(qiáng)大,可視化很炫的。

    另附幾張圖:



     

     

    其他軟件的話,還有商業(yè)智能可視化類的tableau, FineBI,可能對大家比較陌生,就不做教程介紹了。

    總之,利用excel中的數(shù)據(jù)源制作地圖圖表方法多多,不當(dāng)之處還請指正。

    posted @ 2016-07-13 14:43 喝水居然長肉 閱讀(195) | 評論 (0)編輯 收藏

    教你禁用右鍵,也教你如何破解

    很多人會(huì)遇到這種情況,在瀏覽頁面時(shí),發(fā)現(xiàn)鼠標(biāo)右鍵不啟用了。咦?刷新刷新再刷新,并無卵用,然后怒敲鼠標(biāo)(沒錯(cuò),我就是這么暴力),更換瀏覽器,無用,最后棄之。其實(shí),這是因?yàn)樵O(shè)計(jì)人員對頁面啟用了“禁用右鍵”功能,目的是為了防止內(nèi)容被抄。

    曾經(jīng)也是受害者的我,如今作為一名小小的IT開發(fā)人員,就來告訴你如何“禁用右鍵”!

    這里列舉一個(gè)我在利用FineReport開發(fā)報(bào)表時(shí)遇到的案例。

    啟用“禁止右鍵”

    報(bào)表大家都懂吧,啟用“禁用右鍵”功能,往往是出于展示過程中的數(shù)據(jù)安全和操作上的失誤考慮(想想銀行動(dòng)輒幾千幾百萬的金額,分分鐘要長個(gè)心眼啊)

    首先在頁面中調(diào)用模板,一般是將url放在iframe中,然后通過點(diǎn)擊相應(yīng)的樹節(jié)點(diǎn)查看報(bào)表,一般報(bào)表都會(huì)設(shè)置權(quán)限,如果設(shè)置權(quán)限,登錄系統(tǒng)后可能有些用戶通過點(diǎn)擊右鍵中的屬性查看url然后訪問,這樣對系統(tǒng)來說其實(shí)是很不安全的,因此禁止用戶通過右鍵查看url,此時(shí)可以使用禁用菜單右鍵功能。

    2. 實(shí)現(xiàn)步驟

    點(diǎn)擊模板>模板web屬性>(填報(bào),數(shù)據(jù)分析,分頁預(yù)覽設(shè)置),選擇為該模板單獨(dú)設(shè)置,在下面的事件設(shè)置里面添加一個(gè)加載結(jié)束事件,完整js代碼如下:

    1.//點(diǎn)擊右鍵 無動(dòng)作
    document.oncontextmenu=new Function("return false");
    2.//點(diǎn)擊右鍵 彈出提示
    document.oncontextmenu=function(e) {
       alert(
    "提示內(nèi)容");
       
    return false;
    }


     

    這段代碼的基本原理是讓用戶的頁面右鍵點(diǎn)擊事件返回false,禁止彈出菜單。
    如果模板中有參數(shù)面板,希望一調(diào)用模板就禁用右鍵,而不是查詢之后禁用,則需要在參數(shù)面板的查詢按鈕中添加初始化事件,寫入上述js代碼。



    查詢之前就做提示和禁用


    破解“禁用右鍵”

    找到瀏覽器頂部菜單中的【工具】按鈕,在下拉菜單中,選擇【Internet選項(xiàng)】


    打開Internet選項(xiàng)后,再切換到【安全】選項(xiàng)卡,然后再點(diǎn)擊底部的【自定義級別】


    然后在打開的【安全設(shè)置-Internet區(qū)域】對話框中,找到【活動(dòng)腳本】設(shè)置選項(xiàng),然后將默認(rèn)的“啟用”更改為【禁用】,最后再一路點(diǎn)擊底部的【確定】。


    然后關(guān)閉再重啟瀏覽器,再打開剛剛的網(wǎng)頁,你就會(huì)發(fā)現(xiàn)“殘疾”的鼠標(biāo)右鍵能正常點(diǎn)擊了。

    以上就是我的方法,不足之處還請多多指點(diǎn)。


    posted @ 2016-07-06 10:46 喝水居然長肉 閱讀(141) | 評論 (0)編輯 收藏

    Java防盜鏈在報(bào)表中的應(yīng)用實(shí)例

         摘要: 今天我們來聊聊Java防盜鏈,多說無用,直接上應(yīng)用案例。 這里所用的工具是報(bào)表軟件FineReport,搭配有決策系統(tǒng)(一個(gè)web前端展示系統(tǒng),主要用于權(quán)限控制),可以采用java防盜鏈的方式來實(shí)現(xiàn)頁面權(quán)限。 瀏覽器中直接輸入報(bào)表URL的時(shí)候,它的頭文件是空的,因此,可以在訪問的時(shí)候做兩個(gè)判斷:頭文件是否為空以及以什么頁面進(jìn)行跳轉(zhuǎn),如果不符合跳到錯(cuò)誤頁面即可。 什么是Referer? 這里...  閱讀全文

    posted @ 2016-06-14 15:30 喝水居然長肉 閱讀(113) | 評論 (0)編輯 收藏

    報(bào)表軟件FineReport如何連接SAP HANA

    1. 環(huán)境搭建

    1.1 環(huán)境準(zhǔn)備

    首先確認(rèn)HANA Studio的環(huán)境是否允許工程進(jìn)行NewFile的操作,不行的話要考慮更新Studio的版本。


    HANAStudio需要依賴Java jdk1.6或者1.7的版本


    1.2 操作步驟

    需要獲取到SYSTEM賬號的權(quán)限,在SYSTEM權(quán)限下進(jìn)行操作

    Adda System


    填寫正確的主機(jī)名(如IP地址)和HANA的instance number(詢問管理員獲得)


    填寫賬號名和密碼,點(diǎn)擊finish


    Create repository

    點(diǎn)擊Repositories頁簽,Create repository Workspace


    新建一個(gè)Package或者選擇一個(gè)原有的Package

    如下圖,右鍵->New->Repository Package 新建Package,再彈出的頁面輸入包名即可創(chuàng)建


    New file XMLASrvDef.xsxmla

    在新建的包下新建文件XMLASrvDef.xsxmla


    編輯文件,輸入service{*},點(diǎn)擊激活按鈕,如下圖:


    激活后的文件狀態(tài)發(fā)生改變


    Newfile .xsapp

    同理,新建文件.xsapp,不需要輸入內(nèi)容,點(diǎn)擊激活按鈕

    Newfile . xsprivileges

    代碼:

    {"privileges":

    [{"name":"SYSTEM","description":"Administrationprivilege"}]

    }

    同理,新建文件. xsprivileges,編輯文件,輸入代碼如下:點(diǎn)擊激活按鈕

    New file .xsaccess

    同理,新建文件. xsaccess,編輯文件,輸入代碼如下:

    {

    "exposed" : true,

    "authorization" :["test::SYSTEM"]

    }

    點(diǎn)擊激活按鈕

    Newfile test.html

    用于測試環(huán)境是否新建成功,同理編輯文件,點(diǎn)擊激活按鈕


    配置必要的權(quán)限


    Analytic Privileges中添加_SYS_BI_CP_ALL


    Application Privileges中添加test::SYSTEM


    1.3 測試連接

    確保HANA 環(huán)境中至少存在一個(gè)Analytic view,假如沒有,需要自己新建用于測試

    打開瀏覽器,輸入地址,測試連接


    地址的格式:http://hostname:80[instance number]/test/XMLASrvDef.xsxmla

    輸入用戶名和密碼結(jié)果返回404,說明服務(wù)器接到了請求,給出了響應(yīng)

    保險(xiǎn)起見,可以輸入http://hostname:80[instance number]/test/test.html


    如果看到上圖,說明服務(wù)已經(jīng)開啟

    2.新建XMLA數(shù)據(jù)連接

    點(diǎn)擊服務(wù)器>定義數(shù)據(jù)連接,新建一個(gè)XMLA數(shù)據(jù)連接,數(shù)據(jù)庫類型選擇SAP HANA,填寫url與賬號密碼,選擇Catalog,測試連接,連接成功即可


    3. FAQ

    3.1

    假如以上權(quán)限配置好后仍舊出現(xiàn)問題,嘗試配置如下權(quán)限Granted Roles中添加

    sap.hana.uis.db::SITE_DESIGNER: to designapplication sites

    sap.hana.uis.db::SITE_USER: to useapplication sites

    sap.hana.xs.lm.roles::Administrator

    sap.hana.xs.ide.roles::EditorDeveloper


    Object privileges中添加

    GRANT_ACTIVATED_ROLE


    3.2 環(huán)境搭建中遇到的問題

    1.Serverreturned HTTP response code: 403 for URL

    可能是(1)用戶名密碼錯(cuò)誤 (2)用戶權(quán)限沒有配置好 (3)新建的文件如privileges沒有激活,需要檢查

    2.Serverreturned HTTP response code: Connection refused: connect

    可能是設(shè)計(jì)器中填寫的url有問題,檢查ip地址,檢查端口號,檢查xsxmla文件所在的路徑是否輸入正確

    3.新建的文件激活時(shí)遇到問題

    請聯(lián)系SAP管理員

    3.3 jdbc連接hana的注意點(diǎn)


    圖中的SQL驗(yàn)證查詢是必填的選項(xiàng),這個(gè)sql的獲取,可以通過以下途徑

    打開HANAStudio,隨便預(yù)覽一個(gè)數(shù)據(jù)源,點(diǎn)擊右上角的show log可以查看歷史查詢的SQL語句,把語句拿過來復(fù)制粘貼到此處即可


    posted @ 2016-06-12 15:15 喝水居然長肉 閱讀(139) | 評論 (0)編輯 收藏

    報(bào)表開發(fā)導(dǎo)出各種格式文件的API

         摘要: 文件輸出的多樣性,準(zhǔn)確性和穩(wěn)定性對于我們常用的報(bào)表軟件來說很重要。報(bào)表的輸入是指從報(bào)表的模板文件(XML格式的)創(chuàng)建WorkBook對象,輸出則指將報(bào)表保存為各種格式文件,比如Pdf、Excel、Word這種常見的文件格式,比如FineReport還支持cpt、Svg、Csv、Image(包含png、 jpg、gif、 bmp、wbmp)等多種文件格式。      ...  閱讀全文

    posted @ 2016-06-06 16:35 喝水居然長肉 閱讀(93) | 評論 (0)編輯 收藏

    如何利用自定義函數(shù)把陽歷轉(zhuǎn)換成陰歷

         摘要: 數(shù)據(jù)庫保存的是陽歷日期,有時(shí)候會(huì)遇到把陽歷換成陰歷的需求,在報(bào)表開發(fā)過程中,可以首先定義一個(gè)可以將陽歷轉(zhuǎn)為陰歷的類,然后自定義FineReport函數(shù),在run方法中獲取年月日參數(shù)并調(diào)用之前的類將陽歷轉(zhuǎn)為陰歷,最終返回給報(bào)表。  閱讀全文

    posted @ 2016-06-02 14:48 喝水居然長肉 閱讀(157) | 評論 (0)編輯 收藏

    報(bào)表工具如何實(shí)現(xiàn)多次導(dǎo)入Excel

         摘要: 很多人在開發(fā)報(bào)表的時(shí)候會(huì)遇到將多張表樣相同的excel導(dǎo)入到模板,然后提交至數(shù)據(jù)庫中。但問題是很多情況,在線導(dǎo)入不支持一次性選擇多個(gè)excel,一次只能選擇一個(gè)excel,也不能將多個(gè)excel中的數(shù)據(jù)在不提交入庫的前提下導(dǎo)入到模板中,即如果在導(dǎo)入excel之前,web頁面里面有數(shù)據(jù),導(dǎo)入excel之后會(huì)覆蓋之前的數(shù)據(jù).這樣的問題可以利用FineReport自定義一個(gè)excel導(dǎo)入按鈕來解決  閱讀全文

    posted @ 2016-05-27 13:25 喝水居然長肉 閱讀(119) | 評論 (0)編輯 收藏

    僅列出標(biāo)題
    共7頁: 上一頁 1 2 3 4 5 6 7 下一頁 
    主站蜘蛛池模板: 久久夜色精品国产亚洲 | 国产永久免费高清在线| 免费精品久久天干天干| 国产aⅴ无码专区亚洲av麻豆| 91天堂素人精品系列全集亚洲| 看免费毛片天天看| 1000部夫妻午夜免费| 中文字幕亚洲天堂| 亚洲AV成人无码久久WWW| 最好看最新的中文字幕免费| 久久久久亚洲精品中文字幕| 国产精品1024在线永久免费| 国产无遮挡吃胸膜奶免费看视频| 亚洲国产精品午夜电影| 野花香在线视频免费观看大全 | 亚洲av综合avav中文| 老司机午夜在线视频免费观| 国产啪精品视频网免费| 亚洲宅男永久在线| 中文字幕在线免费播放| 免费又黄又硬又爽大片| 久久乐国产综合亚洲精品| 最近中文字幕大全中文字幕免费| 亚洲免费人成视频观看| 在线免费中文字幕| 亚洲日韩中文字幕一区| 一级做a爰全过程免费视频毛片| 在线观看免费毛片| 亚洲日韩久久综合中文字幕| 国产精品免费电影| 国产婷婷成人久久Av免费高清| 亚洲第一成年人网站| 免费专区丝袜脚调教视频| 亚洲视频免费在线看| 在线免费观看视频你懂的| 国产免费黄色无码视频| 亚洲热妇无码AV在线播放| 韩国免费A级毛片久久| 亚洲特级aaaaaa毛片| 亚洲成a人片在线观看日本麻豆| 午夜在线免费视频 |