Quantcast
Channel: SCN: Message List
Viewing all articles
Browse latest Browse all 3132

Re: Routing and Naivgation issue

$
0
0

Hi Jamie.. Please find the Code below: Detail view shows the data.. Detail2 view doesnt show the data.. I am provigind four scripts...

 

Detail Controller :

sap.ui.core.mvc.Controller.extend("zfin.view.Detail", {

 

 

  onInit: function() {

  this.oInitialLoadFinishedDeferred = jQuery.Deferred();

 

 

  if (sap.ui.Device.system.phone) {

  //Do not wait for the master2 when in mobile phone resolution

  this.oInitialLoadFinishedDeferred.resolve();

  } else {

  var oEventBus = this.getEventBus();

  oEventBus.subscribe("Master2", "LoadFinished", this.onMasterLoaded, this);

  }

 

 

  this.getRouter().attachRouteMatched(this.onRouteMatched, this);

 

 

  },

 

 

  onMasterLoaded: function(sChannel, sEvent, oData) {

  if (oData.oListItem) {

  this.bindView(oData.oListItem.getBindingContext().getPath());

  this.oInitialLoadFinishedDeferred.resolve();

  }

  },

  // Manoj.new

 

 

  onRoutePatternMatched: function(oEvent) {

  var sName = oEvent.getParameter("name");

 

 

  if (sName !== "detail2") {

  return;

  }

 

 

  // Load the detail view in desktop

  this.getRouter().myNavToWithoutHash({

  currentView: this.getView(),

  targetViewName: "zfin.view.Detail2",

  targetViewType: "XML"

  });

  },

  // manoj

 

 

  onRouteMatched: function(oEvent) {

  var oParameters = oEvent.getParameters();

 

 

  jQuery.when(this.oInitialLoadFinishedDeferred).then(jQuery.proxy(function() {

 

 

  // When navigating in the Detail page, update the binding context

  if (oParameters.name === "detail") {

  var sEntityPath = "/" + oParameters.arguments.entity;

  this.bindView(sEntityPath);

  } else {

  return;

  }

  }, this));

 

 

  if (oParameters.name === "detail" && jQuery.device.is.phone) {

  this.getRouter().myNavToWithoutHash({

  currentView: this.getView(),

  targetViewName: "zfin.view.Detail2",

  targetViewType: "XML",

  transition: "slide"

  });

  }

  },

 

 

  bindView: function(sEntityPath) {

  var oView = this.getView();

  oView.bindElement(sEntityPath);

  // Oview.byID("ITEMDetails").setModel(sEntityPath);

 

 

  //Check if the data is already on the client

  if (!oView.getModel().getData(sEntityPath)) {

 

 

  // Check that the entity specified was found

  var oData = oView.getModel().getData(sEntityPath);

  if (!oData) {

  this.showEmptyView();

  this.fireDetailNotFound();

  } else {

  //   this.getView().byId("idProductsTable").setModel(demoJSONModel);

 

 

  //   this.getView().byID("ITEMDetails").setModel();

  this.fireDetailChanged(sEntityPath);

  }

 

 

  } else {

  this.fireDetailChanged(sEntityPath);

  }

 

 

  },

 

 

  showEmptyView: function() {

  this.getRouter().myNavToWithoutHash({

  currentView: this.getView(),

  targetViewName: "zfin.view.NotFound",

  targetViewType: "XML"

  });

  },

 

 

  fireDetailChanged: function(sEntityPath) {

  this.getEventBus().publish("Detail", "Changed", {

  sEntityPath: sEntityPath

  });

  },

 

 

  fireDetailNotFound: function() {

  this.getEventBus().publish("Detail", "NotFound");

  },

 

 

  onNavBack: function() {

  // This is only relevant when running on phone devices

  this.getRouter().myNavBack("main");

  },

 

 

  onDetailSelect: function(oEvent) {

  sap.ui.core.UIComponent.getRouterFor(this).navTo("detail", {

  entity: oEvent.getSource().getBindingContext().getPath().slice(1)

  }, true);

  },

 

 

  onSelect: function(oEvent) {

 

 

  sap.ui.core.UIComponent.getRouterFor(this).navTo("detail", {

  entity: oEvent.getSource().getBindingContext().getPath().slice(1)

  }, true);

  },

 

 

  onClick: function(oEvent) {

 

 

  sap.ui.core.UIComponent.getRouterFor(this).navTo("detail", {

  entity: oEvent.getSource().getBindingContext().getPath().slice(1)

  }, true);

  },

 

 

  // rowSelectionChanged: function(oControlEvent)

  // {

  //     var selectedRowContext = oControlEvent.getParameter("detail");

  //     // var link = oControlEvent.getSource().getBindingContext();

  //     // var fr = oControlEvent.getBindingContext();

  //     // var ctx = oControlEvent.getBindingContext();

  //     sap.m.alert(selectedRowContext);

  // },

  onLineItemPressed: function(oEvent) {

 

 

  alert(" I am clicked");

 

 

  // begin of manu 07/20

  // var context = oEvent.getParameter("master2").getBindingContext();

  // var odata = context.getPath();

  // this.oHasher = sap.ui.core.routing.HashChanger.getInstance();

  // console.log(this.oHasher);

  // this.oHasher.setHash(context);

  // var sViewID = this.oHasher.getHash().split("/")[2];

  // this._oRouter.navTo("Detail2",{contextPath:sViewID});

 

 

  // this._oRouter.navTo("Detail2");

  // console.log ("after navigation"+context);

 

 

  // end of manu 07/20// TODO:

  var selected = oEvent.getParameter("key");

  var view = sap.ui.getCore().byId(selected);

// alert(view);

 

 

  // if(view === undefined) {

  //     view  = new sap.ui.view({

  //         id: selected,

  //          viewname: "zfin.view.detail2",

  //          type : sap.ui.core.mvc.ViewType.XML});

// sap.ui.getCore().byId("zfin.view.Detail2").getController();

  this.getView().getController("zfin.view.Detail2");

// this.getView().

  this.getRouter().myNavToWithoutHash({

  currentView: this.getView(),

  targetViewName: "zfin.view.detail2",

  targetViewType: "XML"

  });

  // console.log(selected);

  //     var bReplace = jQuery.device.is.phone ? false : true;

  // this.getRouter().navTo("detail2", {

  // from: "Detail",

  // entity: oItem.getBindingContext().getPath().substr(1)

  // }, bReplace);

 

 

  //         var bReplace = jQuery.device.is.phone ? false : true;

  // this._oRouter.navTo("detail2", {

  // from: "detail",

  // entity: oEvent.getSource().getBindingContext().getPath().substr(1),

  // tab: null

  // }, bReplace);

 

 

  //     sap.ui.core.UIComponent.getRouterFor(this).navTo("detail2",{

  // entity : oEvent.getSource().getBindingContext().getPath().slice(1)

  // }, true);

  },

 

 

  getEventBus: function() {

  return sap.ui.getCore().getEventBus();

  },

 

 

  getRouter: function() {

  return sap.ui.core.UIComponent.getRouterFor(this);

  }

 

 

});

 

Detail View

<mvc:View

  controllerName="zfin.view.Detail"

  xmlns:mvc="sap.ui.core.mvc"

  xmlns:l="sap.ui.layout"

  xmlns:f="sap.ui.layout.form"

  xmlns:core="sap.ui.core"

  xmlns:table="sap.ui.table"

  xmlns="sap.m">

  <Page

     id="detailPage"

  navButtonPress="onNavBack"

  class="sapUiFioriObjectPage"

  title="{i18n>detailTitle}">

  <content>

 

 

  <ObjectHeader

  title="{Invoicedocnumber}"

  select="onSelect"

  number="{ItemAmount}" >

  <attributes>

  <ObjectAttribute

  text="{InvoiceDocItem}"/>

  </attributes>

  <firstStatus>

  <ObjectStatus

  text="{FISCYEAR}"/>

  </firstStatus>

  </ObjectHeader>

 

 

 

 

  <IconTabBar

  select="onDetailSelect"

  id="idIconTabBar">

  <items>

  <IconTabFilter

  key="Details"

  icon="sap-icon://hint">

  <content>

                        <l:Grid

                           id="detailGrid"

                        defaultSpan="L12 M12 S12"

                        width="auto">

                        <l:content>

                        <f:SimpleForm

                           id="detailForm"

                        minWidth="1024"

                        maxContainerCols="2"

                        editable="false"

                        layout="ResponsiveGridLayout"

                        labelSpanL="3"

                        labelSpanM="3"

                        emptySpanL="4"

                        emptySpanM="4"

                        columnsL="1"

                        columnsM="1">

                        <f:content>

 

 

<!-- Manu Begin -->

  <Label id="label3" text="Invoice Document"/>

  <Text id="text3" text="{Invoicedocnumber}" />

 

  <Label id="label4" text="Invoice Itemno."/>

  <Text id="text4" text="{InvoiceDocItem}"/>

 

 

 

 

  <Label id="label5" text="YEAR"/>

  <Text id="text5" text="{FISCYEAR}"/>

 

 

  <Label id="label6" text="Serial No"/>

  <Text id="text6" text="{SerialNo}"/>

 

 

  <Label id="label1" text="PoNumber"/>

  <Text id="text1" text="{PoNumber}"/>

  <Label id="label2" text="PoItem"/>

  <Text id="text2" text="{PoItem}"/>

 

  <Label id="label7" text="Ref Doc. No"/>

  <Text id="text7" text="{RefDoc}"/>

 

 

                                            <Label id="label8" text="RefDoc Item"/>

  <Text id="text8" text="{RefDocIt}"/>

 

  <Label id="label9" text="RefDoc Year"/>

  <Text id="text9" text="{RefDocYear}"/>

 

 

  <Label id="label10" text="Debit/Credit"/>

  <Text id="text10" text="{DeCreInd}"/>

 

 

  <Label id="label11" text="Tax Code"/>

  <Text id="text11" text="{TaxCode}"/>

 

 

  <Label id="label12" text="Taxjur code"/>

  <Text id="text12" text="{Taxjurcode}"/>

 

 

  <Label id="label13" text="Item Amount"/>

  <Text id="text13" text="{ItemAmount}"/>

 

 

  <Label id="label14" text="Quantity"/>

  <Text id="text14" text="{Quantity}"/>

 

                    </f:content>

                        </f:SimpleForm>

                  

                        </l:content>

                        </l:Grid>

  </content>

  </IconTabFilter>

  </items>

  </IconTabBar>

 

 

                <Table  id="ITEMDetails" class="navTableControlLayout"

                growing="true" growingScrollToLoad="true"> 

                                            <columns> 

                                        <Column  width="10%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top">

                                   

                                            <Label text="Invoice Document"/> 

                                            </Column> 

                                            <Column width="5%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="Itemno"/> 

                                            </Column> 

                                            <Column width="4%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="Year"/> 

                                            </Column> 

                                            <Column width="10%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="Serial No."/> 

                                            </Column> 

                                            <Column width="10%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="PO No."/> 

                                            </Column> 

                                            <Column width="5%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="PO ITEM"/> 

                                            </Column> 

                                            <Column width="10%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="Ref. Doc"/> 

                                            </Column>                                             

                                           

                                            <Column width="10%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="Ref. Doc. ITEM"/> 

                                            </Column>                

                                           

                                            <Column width="10%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="Ref. Doc Year"/> 

                                            </Column>                                             

                                           

                                            <Column width="10%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="Tax Code"/> 

                                            </Column>                                             

                                           

                                            <Column width="10%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top">          

                                            <Label text="Tax. Jur. Code"/> 

                                            </Column>                                             

 

 

                                            <Column width="10%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="ITEM Amount"/> 

                                            </Column>                                             

                                           

                                            <Column width="10%" minScreenWidth="Tablet" demandPopin="true"  hAlign="Left" vAlign="Top"> 

                                            <Label text="Quantity"/> 

                                            </Column>                                                                                         

                                           

                                            </columns> 

                                           

  <ColumnListItem id="navigationListItem" type="Navigation" press="onLineItemPressed">

  <cells id="cells">

  <Text id="cells_cell1" text="{Invoicedocnumber}" />

  <Text id="cell2" text="{InvoiceDocItem}" />

  <Text id="cell3" text="{FISCYEAR}" />

  <Text id="cell4" text="{SerialNo}" />

  <Text id="cell5" text="{PoNumber}" />

  <Text id="cell6" text="{PoItem}" />

  <Text id="cell7" text="{RefDoc}" />

  <Text id="cell8" text="{RefDocIt}" />

  <Text id="cell9" text="{RefDocYear}" />

  <!--<Text id="cell10" text="{DeCreInd}" /> -->

  <Text id="cell11" text="{TaxCode}" />

                        <Text id="cell12" text="{Taxjurcode}" />

                        <Text id="cell13" text="{ItemAmount}" />

                        <Text id="cell14" text="{Quantity}" />

 

 

  <!--<Text id="navigationListItem_cells_cell_3" text="{InvoiceDate}" /> -->

  </cells>

  </ColumnListItem>                                           

                                            </Table> 

  </content>

 

  <footer>

  <Toolbar>

  </Toolbar>

  </footer>

  </Page>

</mvc:View>

 

Detail2 View

 

<mvc:View

  controllerName="zfin.view.detail2"

  xmlns:mvc="sap.ui.core.mvc"

  xmlns:l="sap.ui.layout"

  xmlns:f="sap.ui.layout.form"

  xmlns:core="sap.ui.core"

  xmlns:table="sap.ui.table"

  xmlns="sap.m">

  <Page

     id="detailPage"

  navButtonPress="onNavBack"

  class="sapUiFioriObjectPage"

  title="{i18n>detailTitle}">

  <content>

  <ObjectHeader

  title="{Invoicedocnumber}"

  select="onSelect"

  number="{ItemAmount}" >

  <attributes>

  <ObjectAttribute

  text="{InvoiceDocItem}"/>

  </attributes>

  <firstStatus>

  <ObjectStatus

  text="{FISCYEAR}"/>

  </firstStatus>

  </ObjectHeader>

  <IconTabBar

  select="onDetailSelect"

  id="idIconTabBar">

  <items>

  <IconTabFilter

  key="Details"

  icon="sap-icon://hint">

  <content>

                        <l:Grid

                           id="detailGrid"

                        defaultSpan="L12 M12 S12"

                        width="auto">

                        <l:content>

                        <f:SimpleForm

                           id="detailForm"

                        minWidth="1024"

                        maxContainerCols="2"

                        editable="false"

                        layout="ResponsiveGridLayout"

                        labelSpanL="3"

                        labelSpanM="3"

                        emptySpanL="4"

                        emptySpanM="4"

                        columnsL="1"

                        columnsM="1">

                        <f:content>

 

 

<!-- Manu Begin -->

  <Label id="label3" text="Invoice Document22ss"/>

  <Text id="text3" text="{Invoicedocnumber}" />

 

  <Label id="label4" text="Invoice Itemno1111."/>

  <Text id="text4" text="{InvoiceDocItem}"/>

 

 

  <Label id="label5" text="YEAR"/>

  <Text id="text5" text="{FISCYEAR}"/>

 

 

  <Label id="label6" text="Serial No"/>

  <Text id="text6" text="{SerialNo}"/>

 

 

  <Label id="label1" text="PoNumber"/>

  <Text id="text1" text="{PoNumber}"/>

  <Label id="label2" text="PoItem"/>

  <Text id="text2" text="{PoItem}"/>

 

  <Label id="label7" text="Ref Doc. No"/>

  <Text id="text7" text="{RefDoc}"/>

 

 

                                            <Label id="label8" text="RefDoc Item"/>

  <Text id="text8" text="{RefDocIt}"/>

 

  <Label id="label9" text="RefDoc Year"/>

  <Text id="text9" text="{RefDocYear}"/>

 

 

  <Label id="label10" text="Debit/Credit"/>

  <Text id="text10" text="{DeCreInd}"/>

 

 

  <Label id="label11" text="Tax Code"/>

  <Text id="text11" text="{TaxCode}"/>

 

 

  <Label id="label12" text="Taxjur code"/>

  <Text id="text12" text="{Taxjurcode}"/>

 

 

  <Label id="label13" text="Item Amount"/>

  <Text id="text13" text="{ItemAmount}"/>

 

 

  <Label id="label14" text="Quantity"/>

  <Text id="text14" text="{Quantity}"/>

 

                    </f:content>

                        </f:SimpleForm>

                  

                        </l:content>

                        </l:Grid>

  </content>

  </IconTabFilter>

  </items>

  </IconTabBar>

</content>

 

  <footer>

  <Toolbar>

  </Toolbar>

  </footer>

  </Page>

</mvc:View>

 

Detail2 Contorller...

 

sap.ui.core.mvc.Controller.extend("zfin.view.detail2", {
onInit : function ( ) {
this.oInitialLoadFinishedDeferred = jQuery.Deferred();

 

 

if(sap.ui.Device.system.phone) {
//Do not wait for the master2 when in mobile phone resolution
this.oInitialLoadFinishedDeferred.resolve();
} else {

            var oEventBus = this.getEventBus();

oEventBus.subscribe("Detail", "LoadFinished", this.onMasterLoaded, this);
}

 

 

this.getRouter().attachRouteMatched(this.onRouteMatched, this);

    // this.getView().byId("detail2").getBinding("items");

},

 

 

onMasterLoaded :  function (sChannel, sEvent, oData) {
if(oData.oListItem){
this.bindView(oData.oListItem.getBindingContext().getPath());
this.oInitialLoadFinishedDeferred.resolve();
}
},

 

 

onRouteMatched: function(oEvent) {
var oParameters = oEvent.getParameters();

 

 

jQuery.when(this.oInitialLoadFinishedDeferred).then(jQuery.proxy(function() {

 

 

// When navigating in the Detail page, update the binding context
if (oParameters.name === "detail2") {
var sEntityPath = "/" + oParameters.arguments.entity;
this.bindView(sEntityPath);
} else {
return;
}
}, this));

 

 

if (oParameters.name === "detail2" && jQuery.device.is.phone) {
this.getRouter().myNavToWithoutHash({
currentView: this.getView(),
targetViewName: "zfin.view.Detail2",
targetViewType: "XML",
transition: "slide"
});
}
},
//    showDetail : function(oItem) {
//// If we're on a phone device, include nav in history
//var bReplace = jQuery.device.is.phone ? false : true;
//this.getRouter().navTo("detail2", {
//from: "detail",
//entity: oItem.getBindingContext().getPath().substr(1)
//}, bReplace);
//},

 

 

bindView : function (sEntityPath) {
var oView = this.getView();
//oView.bindElement(sEntityPath);
oView.byID("ITEMDetails").setModel(sEntityPath);

 

 

//Check if the data is already on the client
if(!oView.getModel().getData(sEntityPath)) {

 

 

// Check that the entity specified was found
var oData = oView.getModel().getData(sEntityPath);
if (!oData) {
this.showEmptyView();
this.fireDetailNotFound();
} else {
//   this.getView().byId("idProductsTable").setModel(demoJSONModel);

 

 

    this.getView().byID("ITEMDetails").setModel();
this.fireDetailChanged(sEntityPath);
}

 

 

} else {
this.fireDetailChanged(sEntityPath);
}

 

 

},

 

 

showEmptyView : function () {
this.getRouter().myNavToWithoutHash({
currentView : this.getView(),
targetViewName : "zfin.view.NotFound",
targetViewType : "XML"
});
},

 

 

fireDetailChanged : function (sEntityPath) {
this.getEventBus().publish("Detail2", "Changed", { sEntityPath : sEntityPath });
},

 

 

fireDetailNotFound : function () {
this.getEventBus().publish("Detail2", "NotFound");
},

 

 

onNavBack : function() {
// This is only relevant when running on phone devices
this.getRouter().myNavBack("main");
},

 

 

onDetailSelect : function(oEvent) {
sap.ui.core.UIComponent.getRouterFor(this).navTo("detail2",{
entity : oEvent.getSource().getBindingContext().getPath().slice(1)
}, true);
},
onSelect : function(oEvent) {
sap.ui.core.UIComponent.getRouterFor(this).navTo("detail2",{
entity : oEvent.getSource().getBindingContext().getPath().slice(1)
}, true);
},
//onClick : function(oEvent) {
//sap.ui.core.UIComponent.getRouterFor(this).navTo("detail",{
//entity : oEvent.getSource().getBindingContext().getPath().slice(1)
//}, true);
//},
//rowSelectionChanged: function(oControlEvent)

// {

//     var selectedRowContext = oControlEvent.getParameter("detail");

//     // var link = oControlEvent.getSource().getBindingContext();

//     // var fr = oControlEvent.getBindingContext();

//     // var ctx = oControlEvent.getBindingContext();

//     sap.m.alert(selectedRowContext);

// },

    // onLineItemPressed: function(oEvent) {

 

 

//     sap.ui.core.UIComponent.getRouterFor(this).navTo("detail2",{

//entity : oEvent.getSource().getBindingContext().getPath().slice(1)
//}, true);

    // },

getEventBus : function () {
return sap.ui.getCore().getEventBus();
},

 

 

getRouter : function () {
return sap.ui.core.UIComponent.getRouterFor(this);
}

 

 

});

 

Thanks in advance.

 

Manoj


Viewing all articles
Browse latest Browse all 3132

Trending Articles



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