Quantcast
Channel: SAPUI5 Developer Center
Viewing all articles
Browse latest Browse all 789

Displaying Database Table Contents Dynamically using SAPUI5(SAP PORTAL APPLICATION)

$
0
0

In this blog, I want to explain you how you can display dynamic  table content and table layout from database table with SAPUI5. But I will not share java code, i will only share json data which i prepare in java code. First,  we’ll read the table names and fill into the combobox; then, we’ll show the table content of the selected table name from combobox.

We have Servlet that returns table names and table content as json format.

  • Table Names json :
{"tables":[{"id":"-1","name":"Select Table"},{"id":"ZDTY_CUSTOMER","name":"ZDTY_CUSTOMER"},{"id":"ZDTY_PERSON","name":"ZDTY_PERSON"},{"id":"ZHVL_REQUIREMENT","name":"ZHVL_REQUIREMENT"},{"id":"Z_IZINTALEPLERI","name":"Z_IZINTALEPLERI"},{"id":"Z_IZIN_FORM","name":"Z_IZIN_FORM"},{"id":"Z_IZIN_FORM_TABLE","name":"Z_IZIN_FORM_TABLE"},{"id":"Z_USERINFO","name":"Z_USERINFO"},{"id":"Z_USER_DETAIL","name":"Z_USER_DETAIL"},{"id":"Z_USER_INFO","name":"Z_USER_INFO"},{"id":"Z_USER_INFO_2","name":"Z_USER_INFO_2"},{"id":"Z_USER_INFO_3","name":"Z_USER_INFO_3"}]}
  • Table Content json :
{"message":"Success","content":[{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"1"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"2"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"3"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"4"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"5"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"6"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"7"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"8"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"9"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"10"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"11"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"12"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"13"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"14"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"15"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"16"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"17"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"18"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"19"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"20"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"21"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"22"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"23"},{"CUSTNAME":"deneme1","CUSTTEL":"deneme2","CUSTID":"24"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"25"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"26"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"27"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"28"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"29"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"30"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"31"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"32"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"33"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"34"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"35"},{"CUSTNAME":"Deneme","CUSTTEL":"Deneme","CUSTID":"36"}],"columns":[{"name":"CUSTID"},{"name":"CUSTNAME"},{"name":"CUSTTEL"}],"tname":"ZDTY_CUSTOMER"}

We have index.jsp and our code is here :

<%@pagelanguage="java"contentType="text/html; charset=UTF-8"

    pageEncoding="UTF-8"%>

<!DOCTYPEhtmlPUBLIC"-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<metahttp-equiv="Content-Type"content="text/html; charset=UTF-8">

<title>SAPUI 5</title>

<metahttp-equiv="X-UA-Compatible"content="IE=edge">

<script         src='/sapui5latest/resources/sap-ui-core.js'

                        type="text/javascript"

                        id="sap-ui-bootstrap"

                        data-sap-ui-theme="sap_bluecrystal"

data-sap-ui-libs="sap.ui.commons,sap.ui.table,sap.m">

</script>

<script>

                        var tablesModel = new sap.ui.model.json.JSONModel("/irj/servlet/prt/portal/prtroot/demo.sap.com~ui5~omer~tables.ReadTableServlet");

                        var tableContent = new sap.ui.model.json.JSONModel();                       

                        jQuery.sap.registerModulePath("ui5code", "/demo.sap.com~ui5~omer~tables/ui5code");

                        var app = new sap.m.App("myApp");

                        app.setInitialPage("idEklePage");

                        var view = sap.ui.view(

                                   { id:"idEklePage",

                                     viewName:"ui5code.appview",

                                     type:sap.ui.core.mvc.ViewType.JS

                                    });

                        view.placeAt("area");                   

</script>

</head>

<body>

<divid="area"></div>

</body>

</html>





 


We have two javascript file (view and controller files) appview.view.js and appview.controller.js. They are in ui5code folder.

 

appview.view.js file code :

sap.ui.jsview("ui5code.appview", {      /** Specifies the Controller belonging to this View.      * In the case that it is not implemented, or that "null" is returned, this View does not have a Controller.      * @memberOf ui5desk.appview      */      getControllerName : function() {            return "ui5code.appview";      },      /** Is initially called once after the Controller has been instantiated. It is the place where the UI is constructed.      * Since the Controller is given to this method, its event handlers can be attached right away.      * @memberOf ui5desk.appview      */      createContent : function(oController) {                        var mainFormLayout = new sap.ui.commons.layout.MatrixLayout();              mainFormLayout.setLayoutFixed(false);             var selectionLayout = new sap.ui.commons.layout.MatrixLayout();             selectionLayout.setLayoutFixed(false);             var sel_tables = new sap.m.Select("tablesId", {                    change : oController.getContent                });             sel_tables.setModel(tablesModel);             var item_sel_table = new sap.ui.core.Item({ key: "{id}", text: "{name}" });             sel_tables.bindItems("/tables", item_sel_table);             sel_tables.setSelectedKey(-1);              selectionLayout.createRow(                        new sap.m.Label({ text: "Table Name", width: "220px", required: true }),                        sel_tables);             mainFormLayout.createRow(selectionLayout);                       var table = new sap.m.Table("idTable",{                      growing: true,                    growingThreshold: 5,                    headerToolbar : new sap.m.Toolbar({                        content : [ new sap.m.Label({                            text : "{/tname}"                        })                        ]                    }),                    columns : [ new sap.m.Column({                        width : "2em",                        header : new sap.m.Label({                            text : "Column Name"                        })                    })                    ]                });                        table.setModel(tableContent);             mainFormLayout.createRow(table);                    return mainFormLayout;                   }    
});

appview.controller.js File code:

 

sap.ui.controller("ui5code.appview", {
/**
* Called when a controller is instantiated and its View controls (if available) are already created.
* Can be used to modify the View before it is displayed, to bind event handlers and do other one-time initialization.
* @memberOf ui5desk.appview
*/      onInit: function() {                },      getContent : function(oEvent) {                 var table = sap.ui.getCore().byId("idTable");            table.removeAllColumns();            var colitems = new sap.m.ColumnListItem();            var tablename = oEvent.getParameters().selectedItem.getText();            $.ajax({                type: 'get',                url: '/irj/servlet/prt/portal/prtroot/demo.sap.com~ui5~omer~tables.ReadTableServlet',                dataType: 'json',                data: {                              tablename: tablename                  },                 success: function(data) {                                      tableContent.setData(data);                                      for(var i = 0 ; i < data.columns.length ; i++)                    {                          var column = new sap.m.Column({                                    header : new sap.m.Label({                                        text : data.columns[i].name                                    })                                });                          table.addColumn(column);                          colitems.addCell(new sap.m.Text({                                    text : '{'+data.columns[i].name+'}'                                                            }));                                            }                    table.bindItems("/content", colitems);                                                                       },                error: function(data) {                    alert('fail');                }            });          
} 
/**
* Similar to onAfterRendering, but this hook is invoked before the controller's View is re-rendered
* (NOT before the first rendering! onInit() is used for that one!).
* @memberOf ui5desk.appview
*/
//    onBeforeRendering: function() {
//
//    },
/**
* Called when the View has been rendered (so its HTML is part of the document). Post-rendering manipulations of the HTML could be done here.
* This hook is the same one that SAPUI5 controls get after being rendered.
* @memberOf ui5desk.appview
*/
//    onAfterRendering: function() {
//
//    },
/**
* Called when the Controller is destroyed. Use this one to free resources and finalize activities.
* @memberOf ui5desk.appview
*/
//    onExit: function() {
//
//    }
});

Then we deploy the project to portal. And we can see result as below :

 

TableViewer1.png

TableViewer2.png


Viewing all articles
Browse latest Browse all 789

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>