XML views in 8.1.7?

Can we create views on XML datatypes in Oracle 8.1.7?

There is no native XML data types in 8i.

Similar Messages

  • BI Publisher Report Build - XML view

    Hi Experts,
    I am trying to build the BI publisher report. During the process, I am defining the SQL query structure in the 'Query Builder' once after that I have saved the report.
    As part of the next step , I have clicked on 'view' link to view the report structure as mentioned in the OBE.
    I could only see the 'Data' view but not the 'XML' view. Is there any way I can see the 'XML' view.
    Any help would be appreciated
    Siva

    Data means look at the xml data that you have created.

  • Binding Data from OfflineStore to List in XML view

    Hi Experts,
    I am developing an application using SAP WebIDE. While loading a page, I want to read some data from an offlineStore and show it in a listview.
    Following is my code for xml view:
    <sap.ui.core.mvc:View xmlns="sap.m" xmlns:sap.ui.core="sap.ui.core" xmlns:sap.ui.core.mvc="sap.ui.core.mvc" controllerName="com.arteria.view.CustomerList">
        <Page title="Customers" showNavButton="true">
       </Page>
    </sap.ui.core.mvc:View>
    And my js code is as follows:
    onInit: function() {
      this.getView().addEventDelegate({
       onBeforeShow: function(evt) {
        sap.ui.getCore().byId("idCustomerList").getController().read();
    read:function() {
                    oList = new sap.m.List();
                    oList.removeAllItems();
                    var uri = window.localStorage.getItem("ApplicationEndpointURL");
                    var user = window.localStorage.getItem("User");
                    var password = window.localStorage.getItem("Password");
                    var headers = { "X-SMP-APPCID" : window.localStorage.getItem("ApplicationConnectionId") };
                    // Create OData model from URL
                    var oModel = new sap.ui.model.odata.ODataModel(uri, true, user, password, headers);
                    var iOS = (navigator.userAgent.match(/(iPad|iPhone|iPod)/g) ? true : false );
                    if (iOS) {
                        oModel = new sap.ui.model.odata.ODataModel(uri, true, user, password, headers);
                    var oTemplate = new sap.m.StandardListItem({
                                                               title: "{CustomerNumber}", description: "{CustomerName}", tap:"handleProductListItemPress", type:"Navigation"    
                    oList.setModel(oModel);
                    oList.bindItems("/Customers", oTemplate, null, null);
                    var custListPage = sap.ui.getCore().byId("idCustomerList");
                    custListPage.addCustomData(oList);
       handleProductListItemPress: function(oEvent) {
            sap.ui.getCore().getEventBus().publish("nav", "to", {
                id : "idCustomerDetail",
                context: oEvent.getSource().getBindingContext()
    The problem is I am getting a blank page. The list is not getting attached to the page.
    Waiting for your reply.
    Regards,
    Dhani

    why not move List definitiaon to XML 
    <sap.ui.core.mvc:View xmlns="sap.m" xmlns:sap.ui.core="sap.ui.core" xmlns:sap.ui.core.mvc="sap.ui.core.mvc" controllerName="com.arteria.view.CustomerList"> 
        <Page title="Customers" showNavButton="true"> 
    <List id="CustomerList"/>
       </Page> 
    </sap.ui.core.mvc:View> 
    so
    oList = this.byId("CustomerList");
    oList.setModel(oModel); 
                    oList.bindItems("/Customers", oTemplate, null, null); 
                    var custListPage = sap.ui.getCore().byId("idCustomerList"); 
                    custListPage.addCustomData(oList); 

  • Dynamic binding of items in sap.m.Table using XML views

    Dear SAPUI5 guru's,
    Let's start by saying I'm an ABAP developer who's exploring SAPUI5, so I'm still a rookie at the time of writing. I challenged myself by developing a simple UI5 app that shows information about my colleagues like name, a pic, address data and their skills. The app uses the sap.m library and most of the views are XML based which I prefer.
    The data is stored on an ABAP system and exposed via a gateway service. This service has 2 entities: Employee and Skill. Each employee can have 0..n skills and association/navigation between these 2 entities is set up correctly in the service. The data of this service is fetched from within the app using a sap.ui.model.odata.ODataModel model.
    The app uses the splitApp control which shows the list of employees on the left side (master view). If a user taps an employee, the corresponding details of the employee entity are shown on the right (detail view).
    Up till here everything is fine but I've been struggling with my latest requirement which is: show the skills of the selected employee in a separate XML view when the user performs an action (for the time being, I just created a button on the detail view to perform the action). After some hours I actually got it working but I doubt if my solution is the right way to go. And that's why I'm asking for your opinion here.
    Let's explain how I got things working. First of all I created a new XML view called 'Skills'. The content on this view is currently just a Table with 2 columns:
    <core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m"
      controllerName="com.pyramid.Skills" xmlns:html="http://www.w3.org/1999/xhtml">
      <Page title="Skills"
           showNavButton="true"
           navButtonPress="handleNavButtonPress">
      <content>
      <Table
       id="skillsTable">
      <columns>
      <Column>
      <Label text="Name"/>
      </Column>
      <Column>
      <Label text="Rating"/>
      </Column>
      </columns>
      </Table>
      </content>
      </Page>
    </core:View>
    The button on the Detail view calls function showSkills:
    showSkills: function(evt) {
      var context = evt.getSource().getBindingContext();
      this.nav.to("Skills", context);
      var skillsController = this.nav.getView().app.getPage("Skills").getController();
      skillsController.updateTableBinding();
    Within 'this.nav.to("Skills", context);' I add the Skills view to the splitApp and set its bindingContext to the current binding context (e.g. "EmployeeSet('000001')"). Then I call function updateTableBinding in the controller of the Skills view which dynamically binds the items in the table based on the selected employee. So, when the ID of the selected employee is '000001', the path of the table's item binding should be "/EmployeeSet('000001')/Skills"
    updateTableBinding: function(){
      var oTemplate = new sap.m.ColumnListItem(
      {cells: [
              new sap.m.Text({text : "{Name}"}),
              new sap.m.Text({text : "{Rating}"})
      var oView = this.getView();
      var oTable = oView.byId("skillsTable");
      var oContext = oView.getBindingContext();
      var path = oContext.sPath + "/Skills";
      oTable.bindItems(path, oTemplate);
    Allthough it works fine, this is where I have my first doubt. Is this the correct way to bind the items? I tried to change the context that is passed to this.nav.to and wanted it to 'drill-down' one level, from Employee to Skills, but I couldn't manage to do that.
    I also tried to bind using the items aggregation of the table within the XML declaration (<Table id="skillsTable" items="{/EmployeeSet('000001')/Skills}">). This works fine if I hard-code the employee ID but off course this ID needs to be dynamic.
    Any better suggestions?
    The second doubt is about the template parameter passed to the bindItems method. This template is declared in the controller via javascript. But I'm using XML views! So why should I declare any content in javascript?? I tried to declare the template in the XML view itself by adding an items tag with a ColumnListItem that has an ID:
                    <items>
                        <ColumnListItem
                        id="defaultItem">
                        <cells>
                            <Text text="{Name}"/>
                            </cells>
                            <cells>
                            <Text text="{Rating}"/>
                            </cells>
                        </ColumnListItem>
                    </items>
    Then, in the updateTableBinding function, I fetched this control (by ID), and passed it as the template parameter to the bindItems method. In this case the table shows a few lines but they don't contain any data and their height is only like 1 mm! Does anyone know where this strange behaviour comes from or what I'm doing wrong?
    I hope I explained my doubts clearly enough. If not, let me know which additional info is required.
    Looking forward to your opinions/suggestions,
    Rudy Clement.

    Hi everybody,
    I found this post by searching for a dynamic binding for well acutally not the same situation but it's similar to it. I'm trying to do the following. I'm having a list where you can create an order. On the bottom of the page you'll find a button with which you're able to create another order. All the fields are set to the same data binding ... so the problem is if you've filled in the values for the first order and you'll press the button you'll get the same values in the second order. Is it possible to generate a dynamic binding?
    I'm going to post you a short code of what I'm meaning:
    <Input type="Text" value="{path: 'MyModel>/Order/0/Field1'}" id="field1">
         <layoutData>
                    <l:GridData span="L11 M7 S3"></l:GridData>
               </layoutData>
    </Input>
    As you can see I need to set the point of "0" to a dynamic number. Is there any possibility to reach this???
    Hope you can help
    Greetings
    Stef

  • Passing parameter to the i18n text from xml view in fiori app

    Hi,
    Could somebody let me know how to pass parameter to get the i18n text inside xml view of a Fiori app.
    For e.g. inside my i18n properties file i have a entry like:
    PEC_ISSUE={0}issues of total{1}
    inside xml i use it like {i18n>PEC_ISSUE}
    but now how do i pass those 2 parameters to this ??
    i know in javascript it works with , (comma) but does not work in xml. Any help...
    Thanks,
    Ashish

    Hi Michele,
    I found it. Below is the example from my coding.
    <Text      text="{parts: [{path: 'i18n>PEC_to'}, {path: 'promoprocsteps>RetailPromotionSalesFromDate_E'},
                                                           {path:'promoprocsteps>RetailPromotionSalesToDate_E'}],
                                                           formatter: 'retail.promn.promotioncockpit.utils.Formatter.formatDatesString'}"  />
    So you have to create a formatter and pass all the strings to the formatter and then do it inside JS.
    In JS you do it in this way:
    i18n.getText(i18String, [newString, string2]);
    i hope this helps.
    Regards,
    Ashish

  • In XML view, how to set sap.ui.core.CSSSize array for property "widths" of MatrixLayout Control?

    As SAPUI5 prefer XML views, I'm rewriting JS view into XML views.
    When I translate the statements below, I can not set sap.ui.core.CSSSize array for property "widths" of Control MatrixLayout.
    JS version:
    var oLayout = new sap.ui.commons.layout.MatrixLayout({
        id : 'matrix3'
        columns : 3,
        width : '600px',
        widths : ['100px', '200px', '300px']
    XML version:
    <l:MatrixLayout
        id="matrix3"
        columns="3"
        width="600px"
        widths="['100px', '200px', '300px']">
    <l:MatrixLayout>
    The error says: Uncaught Error: "[100px, 200px, 300px]" is of type object, expected sap.ui.core.CSSSize[] for property "widths" of Element sap.ui.commons.layout.MatrixLayout.
    Same problem with property `backgroundDesign` of MatrixLayoutCell, I can only use a workaround to use String "Fill1" not the Class "sap.ui.commons.layout.BackgroundDesign.Fill1".
    When we meet a property which need a Class object as value, we can not set it in String Format for XML views. That's a pity or I did not find the right way to set NON-String values as property for XML Controls.

    Hi,
    any settings that are not possible in the XML, need to be set in the controller instead.
    Using the string value of an enum is fine, though.
    Regards
    Andreas

  • XML View & Model, Tree & binding

    Hi there,
    i'm trying to do some stuff with XML models, XML Views and Trees.
    Here is my xml model file :
    <objectSet version="1.2.3.4">
        <aRoot code="testCode" reference="0123456789" description="TestDescription" owner="Tester">
                <component name="MyCompo1" type="MyCompo1Type">
                  <component name="MyCompo2" type="MyCompo2Type">
                   <property name="myProperty2-1" type="string" value="null"/>
                  </component>
                  <component name="MyCompo3" type="MyCompo3Type">
                   <property name="myProperty3-1" type="string" value="null"/>
                  </component>
                </component>
        </aRoot>
    </objectSet>
    My XML View file :
    <core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" xmlns:cmn="sap.ui.commons"
            controllerName="cleanproject.TreeTest" xmlns:html="http://www.w3.org/1999/xhtml">
                    <cmn:Tree nodes="{/aRoot}">
                    <cmn:TreeNode text="{@name} TagNameHere?"></cmn:TreeNode>
                    </cmn:Tree>
    </core:View>
    My Js Controller file :
    sap.ui.controller("cleanproject.TreeTest", {
    onInit: function() {
    var xmlModel =  new sap.ui.model.xml.XMLModel("cleanproject/"+xmlPath3);
    xmlModel.setXML("the full xml document here"); // bad trick
    this.getView'().setModel(xmlModel);
    I have multiples questions :
    What is the way to wait the xml file to be loaded, because when i'm not using setXML function in my controller, the view is instantiated too fast  and an error is raised as the model is not accessible ( Error message : "N is null" )
    Is it possible to display in a TreeNode the tagName of an element? ( e.g : "component", "property" )
    Is it possible to build the tree only with "component" TreeNodes ?
    4. Is it possible to bind a part of the datas , eg : bind with a deepth of 1,2,...n ?
    Thanks for helping,
    Regards,
    Marc
    Edit :
    1. In the onInit function, use attachRequestCompleted method. In my case :
    var thus= this;
            xmlModel.attachRequestCompleted(function(event){
                thus.getView().setModel(xmlModel);
    2.
    tree.bindNodes("/",function(sId, oContext){
                    var tagName = oContext.getObject().tagName;
                    var name = oContext.getObject().getAttribute("name");
                    var sText = tagName;
                    if(name){
                        sText+=" "+name;
                    return new cleanproject.custom.ComplexTreeNode({text:sText});
                },null,[oFilter]);
    3. It does not seem possible even with filters
    4. Can be done using javascript and a custom method

    Hi all,
    I just tested again and now it's working...
    <Label xmlns="sap.m" design="Standard" text="{/MAIN_OBJECTSet('1')/PROPERTY_NAME}"
      visible="true" textAlign="Begin" textDirection="Inherit" width="200px"
      required="false" labelFor="">
      </Label>
    The relative path syntax depends on the used model!
    Strange - but ok.
    Thanks.
    Best regards,
    Christoph

  • Setting valueAxis for makit chart in XML view

    Dear Experts,
    I am trying to set a valueAxis limit on value 0,5.
    My XML looks like this. I couldnt add valueAxis in ma:Chart successfully.
    <ma:Chart id="idChart" height="100%" width="100%" type="Line"
      rows="{/entries}" showRangeSelector="true" showTableView="false"
      showTotalValue="false">
      <ma:category>
      <ma:Category column="date" displayName="Date" />
      </ma:category>
      <ma:values>
      <ma:Value expression="value" displayName="Value" type="number"/>
      </ma:values>
      <ma:rows>
      <ma:Row>
      <ma:cells>
      <ma:Column name="date" value="{date}" />
      <ma:Column name="value" value="{value}"
      type="number" />
      </ma:cells>
      </ma:Row>
      </ma:rows>
      <ma:columns>
      <ma:Column name="date" value="{date}" />
      <ma:Column name="value" value="{value}" type="number"  />
      </ma:columns>
      </ma:Chart>
    The error was: Uncaught Error: valueAxis property must be of type sap.makit.ValueAxis
    Basically I cant create a new instance of ValueAxis in XML.
    I tried in the controller js something like this:
    var oChart = this.getView().byId("idChart");
    oChart.valueAxis =  new sap.makit.ValueAxis({min : "0.5"});
    This also didnt work.
    So I  have two questions:
    1.) How can I set valueAxis in XML view staticly?
    2.) How can I set valueAxis in controller dynamicly according to the values I get from my json service.
    Thanks for any help!
    Regards,
    Koray

    Try doing,
    oChart.setValueAxis(new sap.makit.ValueAxis({min : "0.5"}));

  • Data Modeling for controls using XML views(SAPUI5)

    Hello ,
    I am trying to create Table control using XML view and binding data to it through controller onInit method.
    XML View Code is as follows :
    <core:View xmlns="sap.m" xmlns:l="sap.ui.layout" xmlns:core="sap.ui.core">
        <l:VerticalLayout width="100%">
            <l:content>
                <Text id="description" class="marginAll" />
                <Table id="idProductsTable" items="{       
                    path:'/businessData'
                }">
                    <headerToolbar>
                        <Toolbar>
                            <Label text="Products"></Label>
                        </Toolbar>
                    </headerToolbar>
                    <columns>
                        <Column>
                            <Label text="Product" />
                        </Column>
                        <Column>
                            <Label text="Supplier" />
                        </Column>
                        <Column>
                            <Label text="Dimensions" />
                        </Column>
                    </columns>
                    <items>
                        <ColumnListItem>
                            <cells>
                                <ObjectIdentifier title="{COUNTRY}" text="{COUNTRY}" />
                            </cells>
                            <Text text="{REGION}"></Text>
                            <Text text="{CITY}"></Text>
                        </ColumnListItem>
                    </items>
                </Table>
            </l:content>
        </l:VerticalLayout>
    </core:View>
    Controller onInit method Code is as follows :
    var oData = {
                businessData : [ {
                    'COUNTRY' : "Canada",
                    'CITY' : "Toronto",
                    'REGION' : "US",
                    'LANGUAGE' : "English"
                    'COUNTRY' : "China",
                    'CITY' : "Bejeing",
                    'REGION' : "Ashia",
                    'LANGUAGE' : "Chinese"
            var demoJSONModel = new sap.ui.model.json.JSONModel();
            demoJSONModel.setData(oData);
            sap.ui.getCore().getElementById("idProductsTable").setModel(
                    demoJSONModel);
    Same thing when i tried with JS views , it worked however through XML view , I am getting empty table.
    Is the data modeling correct for XML views?
    Thanks,
    Mahesh.

    I've got it ! The reason for that is you bind items as below,
         <Table id="idProductsTable" items="{    
                    path:'/businessData'
                }">
    This pattern is followed if you wanna add a formatter/sorter/grouping.
    As you don't do any of those you can bind items as below &  it doesn't require  data-sap-ui-xx-bindingSyntax="complex".
    <Table id="idProductsTable" items="{/businessData}">

  • Read value of DateTimeInput XML View in YYYYMMDD format

    Dear Experts,
    I am using DateTimeInput in my XML view as:
    <DateTimeInput id="FromDate" type= "Date" placeholder="Enter Date ..."  />
    And reading the value in the controller as:
    var oParameters = { "fdate" : sap.ui.getCore().getElementById('FromDate').getValue() };
    Now,  the date value I get is 8/7/14 from iPhone and 07/08/2014 for Android devices for date 07, Aug 2014.
    I want the date value in YYYYMMDD format like 20140807.  I have tried using the parameter displayFormat and locale, but the display format changes and the value remains the same.
    Request you to please suggest on how can I get the date value in YYYYMMDD format.
    Warm regards,
    Upendra Agrawal

    So, the display value is ok, but you want the actual value to be YYYYMMDD as well (i.e. regardless of the display value)?
    Have you tried using both valueFormat="yyyyMMdd" displayFormat="yyyyMMdd" ?
    First convert your dates to yyyyMMdd format, and then using both valueFormat and displayFormat it then correctly expects the date to be supplied in format yyyyMMdd

  • Schema Based XML View Question

    Hi,
    Is there a way to use the OBJECT ID value in the view's WHERE clause?
    For example:
    create or replace view xml_view of XMLTYPE
    XMLSCHEMA "http://yo.orf/sample.xsd" ELEMENT "el"
    WITH OBJECT ID ( extract('/el/@id').getNumberVal())
    FROM columns( l.id)
    AS
    SELECT XMLElement( "el", ....)
    FROM liner_tbl l
    WHERE l.id = ?? extracted object id value ??
    Can I replace ?? extracted object id value ?? with a some sort of xmldata qualifier?
    Ciao
    Stefano

    Mark,
    Basically we have an XML view that generates undesirable query execution plans for queries on the object id:
    select value(x) from xml_view x
    where existsNode( value(x), '/el[@id="4"') = 1;
    Whereas if I just take the query statement that defines the view alone, and add to it a simple where clause with the value of the object id, the execution plans it generates become optimal.
    select XMLElement( ...)
    from liner_tbl l
    where l.id = 4;
    Ciao
    Stefano

  • How to add .xml, .js and .css files to a xml viewer?

    Hi,
    I have a xml viewer in a web part to display a moving txt message. 
    I created a doc. library called XmlWebParts and in it 3 files with the same name. I am referring the xml file in the doc library with no issues. 
     WarningMessage.xml
    <script type="text/javascript" src="http://icare/sites/IT/tst/XmlWebParts/WarningMessage/WarningMessage.js"></script>
    <div class="marquee">jQuery marquee is the best marquee plugin in the world</div>
    <br/>
    <a class='p' href='#'>Pause</a> | <a class='r' href='#'>Resume</a>
    <link rel="stylesheet" type="text/css" href="http://icare/sites/IT/tst/XmlWebParts/WarningMessage/WarningMessage.css"/>
    WarningMessage.js
    var $mq = $('.marquee').marquee();
    //Pause
    $('.p').click(function(){
      $mq.marquee('pause');
    //Resume
    $('.r').click(function(){
      $mq.marquee('resume');
    and 
    WarningMessage.css
    .marquee {
      width: 300px;
      border: 1px solid #ccc;
      background: #ccc;
    The issue I am having is that the txt display with the formatting but is not moving, is just display the txt.
    I followed this: http://social.technet.microsoft.com/wiki/contents/articles/20764.sharepoint-2013-build-a-webpart-using-html-javascript-and-the-xml-viewer-web-part.aspx
    What I am doing wrong?

    Is not working for me.
    I have the
    WarningMessage.xml
    <script type="text/javascript" src="http://icare/sites/IT/tst/XmlWebParts/WarningMessage/WarningMessage.js"></script>
    WarningMessage.js
    <script type="text/javascript">
    <
    //set the marquee parameters
    function init() { rtl_marquee.start(); }
    var rtl_marquee_Text = 'JavaScript scrolling text';
    var rtl_marquee_Direction = 'left';
    var rtl_marquee_Contents='<span style="font-family:Comic Sans MS;font-size:12pt;white-space:nowrap;">' + rtl_marquee_Text + '</span>';
    rtl_marquee = new xbMarquee('rtl_marquee', '19px', '90%', 6, 100, rtl_marquee_Direction, 'scroll', rtl_marquee_Contents);
    window.setTimeout( init, 200);
    </script>
    xbMarquee.js
    document.writeln('<style type="text/css">');
    document.writeln(' div.marqueecenter1 { text-align: center; }');
    document.writeln(' div.marqueecenter2 { margin- margin-right: auto; }');
    document.writeln(' div.marqueeleft1 { text-align: left; }');
    document.writeln(' div.marqueeleft2 { margin- margin-right: auto; }');
    document.writeln(' div.marqueeright1 { text-align: right; }');
    document.writeln(' div.marqueeright2 { margin- margin-right: 0; }');
    document.writeln('</style>');
    function xbMarquee(id, height, width, scrollAmount, scrollDelay, direction, behavior, html)
      this.id            = id;
      this.scrollAmount  = scrollAmount ? scrollAmount : 6;
      this.scrollDelay   = scrollDelay ? scrollDelay : 85;
      this.direction     = direction ? direction.toLowerCase() : 'left';  
      this.behavior      = behavior ? behavior.toLowerCase() : 'scroll';  
    //  this.name          = 'xbMarquee_' + (++xbMarquee._name);
      this.name          = id;
      this.runId         = null;
      this.html          = html;
      this.isHorizontal = ('up,down'.indexOf(this.direction) == -1);
      if (typeof(height) == 'number')
        this.height = height;
        this.heightUnit = 'px';
      else if (typeof(height) == 'string')
        this.height = parseInt('0' + height, 10);
        this.heightUnit = height.toLowerCase().replace(/^[0-9]+/, '');
      else
        this.height = 100;
        this.heightUnit = 'px';
      if (typeof(width) == 'number')
        this.width = width;
        this.widthUnit = 'px';
      else if (typeof(width) == 'string')
        this.width = parseInt('0' + width, 10);
        this.widthUnit = width.toLowerCase().replace(/^[0-9]+/, '');
      else
        this.width = 100;
        this.widthUnit = 'px';
      // xbMarquee UI events
      this.onmouseover   = null;
      this.onmouseout    = null;
      this.onclick       = null;
      // xbMarquee state events
      this.onstart       = null;
      this.onbounce      = null;
      var markup = '';
      if (document.layers)
        markup = '<ilayer id="' + this.id + 'container" name="' + this.id + 'container" ' +
                 'height="' + height + '" ' +
                 'width="' + width + '"  ' +
                 'clip="' + width + ', ' + height + '" ' +
                 '>' + 
                 '<\/ilayer>';            
      else if (document.body && typeof(document.body.innerHTML) != 'string')
        markup = '<div id="' + this.id + 'container" name="' + this.id + 'container" ' +
                 'style=" ' + 
                 'height: ' + this.height + this.heightUnit + '; ' +
                 'width: ' + this.width + this.widthUnit + '; ' +
                 'clip: rect(0px, ' + this.width + this.widthUnit + ', ' + this.height + this.heightUnit + ', 0px); ' +
                 '">' + 
                 '<div id="' + this.id + '" style="' + 
                 (this.isHorizontal ? 'width:0px;' : '') + // if we scroll horizontally, make the text container as small as possible
                 '">' +
                 (this.isHorizontal ? '<nobr>' : '') +
                 this.html +
                 (this.isHorizontal ? '<\/nobr>' : '') +
                 '<\/div>' +
                 '<\/div>';             
      else 
        markup = '<div id="' + this.id + 'container" name="' + 
                 this.id + 'container" ' +
                 'style=" overflowY: visible; ' + 
                 'height: ' + this.height + this.heightUnit + '; ' +
                 'width: ' + this.width + this.widthUnit + '; ' +
                 'clip: rect(0px, ' + this.width + this.widthUnit + ', ' + this.height + this.heightUnit + ', 0px); ' +
                '">' + 
                 '<\/div>';             
      document.write(markup);  
      window[this.name] = this;
    // Class Properties/Methods
    xbMarquee._name = -1;
    xbMarquee._getInnerSize = function(elm, propName)
      var val = 0;
      if (document.layers)
        // navigator 4
        val = elm.document[propName];    
      else if (elm.style && typeof(elm.style[propName]) == 'number')
        // opera
        // bug in Opera 6 width/offsetWidth. Use clientWidth
        if (propName == 'width' && typeof(elm.clientWidth) == 'number')
          val = elm.clientWidth;
        else
          val =  elm.style[propName];
      else
        //mozilla and IE
        switch (propName)
        case 'height':
           if (typeof(elm.offsetHeight) == 'number')
             val =  elm.offsetHeight;
           break;
        case 'width':
           if (typeof(elm.offsetWidth) == 'number')
             val = elm.offsetWidth;                  
           break;
      return val;
    xbMarquee.getElm = function(id)
      var elm = null;
      if (document.getElementById)
        elm = document.getElementById(id);
      else
        elm = document.all[id];
      return elm;
    xbMarquee.dispatchUIEvent = function (event, marqueeName, eventName)
      var marquee = window[marqueeName];
      var eventAttr = 'on' + eventName;
      if (!marquee)
        return false;
      if (!event && window.event)
        event = window.event;
      switch (eventName)
      case 'mouseover':
      case 'mouseout':
      case 'click':
        if (marquee[eventAttr])
          return marquee['on' + eventName](event);
      return false;
    xbMarquee.createDispatchEventAttr = function (marqueeName, eventName)
      return 'on' + eventName + '="xbMarquee.dispatchUIEvent(event, \'' + marqueeName + '\', \'' + eventName + '\')" ';
    // Instance properties/methods
    xbMarquee.prototype.start = function ()
      var markup = '';
      this.stop();
      if (!this.dirsign)
        if (!document.layers)
          this.containerDiv = xbMarquee.getElm(this.id + 'container')
          if (typeof(this.containerDiv.innerHTML) != 'string')
            return;
          // adjust the container size before inner div is filled in
          // so IE will not hork the size of percentage units 
          var parentNode    = null;
          if (this.containerDiv.parentNode)
            parentNode = this.containerDiv.parentNode;
          else if (this.containerDiv.parentElement)
            parentNode = this.containerDiv.parentElement;
          if (parentNode && 
              typeof(parentNode.offsetHeight) == 'number' && 
              typeof(parentNode.offsetWidth) == 'number')
            if (this.heightUnit == '%')
              this.containerDiv.style.height = 
              parentNode.offsetHeight * (this.height/100) + 'px';
            if (this.widthUnit == '%')
              this.containerDiv.style.width = 
              parentNode.offsetWidth * (this.width/100) + 'px';
          markup += '<div id="' + this.id + '" name="' + this.id + '" ' +
            'style=" ' +
            //(this.isHorizontal ? 'width:0px;' : '') + // if we scroll horizontally, make the text container as small as possible
            '" ' +
            xbMarquee.createDispatchEventAttr(this.name, 'mouseover') +
            xbMarquee.createDispatchEventAttr(this.name, 'mouseout') +
            xbMarquee.createDispatchEventAttr(this.name, 'click') +
            '>' +
            (this.isHorizontal ? '<nobr>' : '') +
            this.html +
            (this.isHorizontal ? '<\/nobr>' : '') +
            '<\/div>';
          this.containerDiv.innerHTML = markup;
          this.div                    = xbMarquee.getElm(this.id);
          this.styleObj     = this.div.style;      
        else /* if (document.layers) */
          this.containerDiv = document.layers[this.id + 'container'];
          markup = 
            '<layer id="' + this.id + '" name="' + this.id + '" top="0" left="0" ' +
            xbMarquee.createDispatchEventAttr(this.name, 'mouseover') +
            xbMarquee.createDispatchEventAttr(this.name, 'mouseout') +
            xbMarquee.createDispatchEventAttr(this.name, 'click') +
            '>' +
            (this.isHorizontal ? '<nobr>' : '') + 
            this.html +
            (this.isHorizontal ? '<\/nobr>' : '') +
            '<\/layer>';
          this.containerDiv.document.write(markup);
          this.containerDiv.document.close();
          this.div          = this.containerDiv.document.layers[this.id];
          this.styleObj     = this.div;
        if (this.isHorizontal && this.height < xbMarquee._getInnerSize(this.div, 'height') )
          this.height = xbMarquee._getInnerSize(this.div, 'height')
          this.containerDiv.style.height = this.height + this.heightUnit;
          this.containerDiv.style.clip = 'rect(0px, ' + this.width + this.widthUnit + ', ' + this.height + this.heightUnit + ', 0px)';
        // Start must not run until the page load event has fired
        // due to Internet Explorer not setting the height and width of 
        // the dynamically written content until then
        switch (this.direction)
        case 'down':
          this.dirsign = 1;
          this.startAt = -xbMarquee._getInnerSize(this.div, 'height');
          this._setTop(this.startAt);
          if (this.heightUnit == '%')
            this.stopAt = this.height * xbMarquee._getInnerSize(this.containerDiv, 'height') / 100;
          else
            this.stopAt  = this.height;
          break;
        case 'up':
          this.dirsign = -1;
          if (this.heightUnit == '%')
            this.startAt = this.height * xbMarquee._getInnerSize(this.containerDiv, 'height') / 100;
          else     
            this.startAt = this.height;
          this._setTop(this.startAt);
          this.stopAt  = -xbMarquee._getInnerSize(this.div, 'height');      
          break;
        case 'right':
          this.dirsign = 1;
          this.startAt = -xbMarquee._getInnerSize(this.div, 'width');
          this._setLeft(this.startAt);
          if (this.widthUnit == '%')
            this.stopAt = this.width * xbMarquee._getInnerSize(this.containerDiv, 'width') / 100;
          else    
            this.stopAt  = this.width;
          break;
        case 'left':
        default:
          this.dirsign = -1;
    if (this.widthUnit == '%')
    this.startAt = this.width * xbMarquee._getInnerSize(this.containerDiv, 'width') / 100;
    else  
    this.startAt = this.width        
    this._setLeft(this.startAt);
    // this.stopAt  = -xbMarquee._getInnerSize(this.div,'width')*2;
    // this method does not work very well with FireFox.  offsetWidth property used in this function returns the absolute width of the div container
    // instead of the new offsetWidth when innerHTML is added or when the div becomes wider. To overcome this a new span element is added to 
    // the document body to measure the new offsetwidth and then it is removed.
    var temp_span = document.createElement('span');     
    temp_span.id = 'span_' + this.div.id;
    temp_span.innerHTML = this.html;
    document.body.appendChild(temp_span);                
    this.stopAt = - temp_span.firstChild.firstChild.offsetWidth;
    document.body.removeChild(temp_span);            
          break;
        this.newPosition          = this.startAt;
        this.styleObj.visibility = 'visible'; 
      this.newPosition += this.dirsign * this.scrollAmount;
      if ( (this.dirsign == 1  && this.newPosition > this.stopAt) ||
           (this.dirsign == -1 && this.newPosition < this.stopAt) )
        if (this.behavior == 'alternate')
          if (this.onbounce)
            // fire bounce when alternate changes directions
            this.onbounce();
          this.dirsign = -this.dirsign;
          var temp     = this.stopAt;
          this.stopAt  = this.startAt;
          this.startAt = temp;
        else
          // fire start when position is a start
          if (this.onstart)
            this.onstart();
          this.newPosition = this.startAt;
      switch(this.direction)
        case 'up': 
        case 'down':
          this._setTop(this.newPosition);
          break;
        case 'left': 
        case 'right':
        default:
          this._setLeft(this.newPosition);
          break;
      this.runId = setTimeout(this.name + '.start()', this.scrollDelay);
    xbMarquee.prototype.stop = function ()
      if (this.runId)
        clearTimeout(this.runId);
      this.runId = null;
    xbMarquee.prototype.setInnerHTML = function (html)
      if (typeof(this.div.innerHTML) != 'string')
        return;
      var running = false;
      if (this.runId)
        running = true;
        this.stop();
      this.html = html;
      this.dirsign = null;
      if (running)
        this.start();
    // fixes standards mode in gecko
    // since units are required
    if (document.layers)
      xbMarquee.prototype._setLeft = function (left)
        this.styleObj.left = left;    
      xbMarquee.prototype._setTop = function (top)
        this.styleObj.top = top;    
    else
      xbMarquee.prototype._setLeft = function (left)
        this.styleObj.left = left + 'px';    
      xbMarquee.prototype._setTop = function (top)
        this.styleObj.top = top + 'px';    
    Still not working. Nothing will display on my web part xml viewer.

  • SAPUI - XML View - complex type information

    Hi,
    I have some issues to express my type information in XML views.
    The JS view would look like:
    new sap.m.Text({
         text: {
              path:"/number",
              type: new sap.ui.model.type.Integer({groupingEnabled: true, groupingSeparator: '.'})
    My current XML view looks like this:
    <Text text="{path:'/number', type:'sap.ui.model.type.Integer', constraints:{groupingEnabled: true, groupingSeparator: '.'}}" />
    or
    <Text text="{path:'/number', type:'sap.ui.model.type.Integer({groupingEnabled: true, groupingSeparator: '.'})'}" />
    or several other ideas, e.g. escpaing of the additional '.
    But nothing worked. And I could not find any documentation of how it might work.
    The diagnostic tool translates JS to XML, yes, but it ignores the complicated case. :-(
    I could use a formatter to group myself, but there are several cases, where I need such complicated XML views.
    E.g. if I want to use multiply paths as an array.
    In my index.html I added data-sap-ui-xx-bindingSyntax="complex".
    Hope you can help me out.
    Thanks and bests
    -Ben

    Hi Ben,
              This should work
    <!DOCTYPE html>
    <html><head>
      <meta http-equiv='X-UA-Compatible' content='IE=edge' />
      <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>
      <title>Mobile App with XML View with JSON Data</title>
    <script id='sap-ui-bootstrap' type='text/javascript'
       src='/sapui5-internal/resources/sap-ui-core.js'
       data-sap-ui-theme='sap_bluecrystal'
       data-sap-ui-libs='sap.m'
       data-sap-ui-xx-bindingSyntax='complex'></script>
      <script id="myXml" type="text/xmldata">
       <mvc:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m" controllerName="myController" displayBlock="true">
       <App>
      <Page title="Hello">
      <Text text="{path:'/1/r', type:'sap.ui.model.type.Integer', formatOptions:{groupingEnabled: true , groupingSeperator : '.'}}" />
      <Button text="{/1/name}" press= "doSomething"/>
      </Page>
       </App>
       </mvc:View>
      </script>
    <script>
      sap.ui.controller("myController", {
      onInit: function() {
      var model = new sap.ui.model.json.JSONModel();
      model.setData([
      {lastName: "Dente", name: "Al", r  : 1232323.221212,checked: true, linkText: "www.sap.com", href: "http://www.sap.com", rating: 4},
      {lastName: "Friese", name: "Andy", r  : 111222.221212, checked: true, linkText: "www.spiegel.de", href: "http://www.spiegel.de", rating: 2},
      {lastName: "Mann", name: "Anita",  r  : 1.221212,checked: false, linkText: "www.kicker.de", href: "http://www.kicker.de", rating: 3}
      this.getView().setModel(model);
      doSomething: function() {
      alert("Hello World!");
      sap.ui.view({ viewContent: jQuery('#myXml').html(), type:sap.ui.core.mvc.ViewType.XML }).placeAt("content")
    </script>
    </head>
       <body class='sapUiBody'>
       <div id='content'></div>
    </body>
    </html>
    Thank you.
    Regards,
                   Pruthvi.

  • How to add styles to image in XML view ?

    Is it possible to add styles to Images in XML view ?
    <Image alt="alternate text " src = " " />
    I tried adding sytle= "align : right " but its not working. I just want to align this element in the view to the right.

    Hi Micheal,
    Pleas see the below code.
    View:
    <core:View xmlns:core="sap.ui.core" xmlns:mvc="sap.ui.core.mvc" xmlns="sap.m"
      controllerName="testing.imageXml" xmlns:html="http://www.w3.org/1999/xhtml">
      <Page title="Image">
      <content>
      <Image id="img1" alt="alttextimage" src="images/img1.jpg" />
      </content>
      </Page>
    </core:View>
    Controller:
    onBeforeRendering: function() {
      this.getView().byId("img1").addStyleClass("myimage");
    Index.html :
    <!DOCTYPE HTML>
    <html>
      <head>
      <meta http-equiv="X-UA-Compatible" content="IE=edge">
      <meta http-equiv='Content-Type' content='text/html;charset=UTF-8'/>
      <script src="resources/sap-ui-core.js"
      id="sap-ui-bootstrap"
      data-sap-ui-libs="sap.m,sap.ui.commons"
      data-sap-ui-theme="sap_bluecrystal">
      </script>
      <script>
      sap.ui.localResources("testing");
      var app = new sap.m.App({initialPage:"idhome1"});
      var page = sap.ui.view({id:"idhome1", viewName:"testing.imageXml", type:sap.ui.core.mvc.ViewType.XML});
      app.addPage(page);
      app.placeAt("content");
      </script>
      <style>
      .myimage{float:right !important; width:300px; height:200px;}
      </style>
      </head>
      <body class="sapUiBody" role="application">
      <div id="content"></div>
      </body>
    </html>
    Output :
    Regards,
    KK

  • Code completion for XML Views

    Hi,
    Can anybody confirm if we have the code completion feature available for XML views? I am using eclipse kepler with most updated UI5 plugins.
    Thanks
    Jayant

    Hi Jayant,
    You can try the following:
    -Create and open an XML View in Eclipse (Kepler, or Indigo)
    -Type the name of the UI5 control, e.g. List and click Ctrl-Space
    -From the list of provided templates, select the name of the UI5 control you want to include
    -Supply attributes you need, remove the unnecessary attributes and format the text (Ctrl-Shift-F).
    To check, if your Eclipse UI5 addon has XML templates, you can go to Window->Preferences->search for "templates"->scroll down to XML>XML Files>Editor>Templates and you will find all available XML templates for UI5 controls.
    hope it helps,
    Vlad

  • WebPart error when using XML Viewer WebPart with _vti_bin/owssvr.dll in SharePoint 2010

    Hello.
    When I view the XML URL I can see it fine but when I use it as the "XML Link" in an "XML Viewer" I get an error.
    The URL I used (with GUID removed):
    http://www.company.com/sites/SPSite/_vti_bin/owssvr.dll?Cmd=Display&List={...}&View={...}&XMLDATA=TRUE
    The error:
    Cannot retrieve the URL specified in the XML Link property. For more assistance, contact your site administrator.
    I cannot figure it out. Any ideas?

    To get access to SharePoint Web Service – owssrv.dll, You need to -
    Provide anonymous access for the web application and list & libraries section at the site collection
    Web application pool account should be a part of WSS_WPG, ISS_WPG and WSS_ADMIN_WPG
    Please check -
    http://sharepointknowledgebase.blogspot.ru/2011/11/cannot-retrieve-url-specified-in-xml.html#.VQJ8xvmUeAk
    Thanks
    Ganesh Jat [My Blog |
    LinkedIn | Twitter ]
    Please click 'Mark As Answer' if a post solves your problem or 'Vote As Helpful' if it was useful.

Maybe you are looking for

  • Error while loading data in data storage object(ODS)

    Hi, I am extracting data from data base with help of DB connect.I can see number of records are added into ODS.but when I try to activate data in ODS, its going to red.When I see error message as followes.Its is saying invalid char,when i see data in

  • Workflow does not start automatically on create item (yet another time)

    The topic has been discussed broadly throughout different forums, but I didn't find the solution to my issue yet and hope you can help me out with ideas to sidestep the difficulties created by Microsoft. I have one list 1 in Site Collection A, and on

  • WebDynpro, Table, selected rows, multiselect

    Hi together, I've got a problem with my "table-control" in WebDynpro. I just want to read the selected rows in the tablecontrol. To read one row is no problem: wdContext.currentnode..... But if there are more selected rows I don't know how to handle.

  • Inapropriate apps appear after updates are done

    I need help! I was looking through my son's (11) iPod touch recently and there were apps on there that were not purchased. My kids don't know the iTunes password, so all purchases have to be approved by me or my husband. These apps seemed to appear a

  • Video template not working in simulator

    Man, I am really sorry to have to bring this up...again. I have searched the forums, and I cannot find an answer to this. I am still working in DVD SP 2. I have found that when using a menu template based on a .mov (video) file - for example the Thea