sapui5

2017-03-14 18 views
0

私はのODataサービスを消費マスター・ディテール・アプリケーションを持って動作しないフォームを作成します。sapui5

私はまた、通知を作成することになっています「DetailCreateMode.fragment.xml」という名前のフラグメントで作成フォームを持っています。残念なことに、それはそれらを作成しません。

<core:FragmentDefinition height="100%" width="100%" xmlns="sap.m" xmlns:core="sap.ui.core" xmlns:l="sap.ui.layout"  xmlns:f="sap.ui.layout.form"> 
<Panel> 
<content> 
<f:SimpleForm id="iconTabFilter1form" minWidth="1024" editable="false" layout="ResponsiveGridLayout" labelSpanL="3" labelSpanM="3" 
      emptySpanL="4" emptySpanM="4" columnsL="1"> 
      <f:content> 
       <Label text="Equipement" required="false"/> 
       <Input name="Equnr" id="Equnr_id" valueLiveUpdate="true" liveChange="_validateSaveEnablement" 
       enabled="false" visible="true" 
       value="{ path: 'Eqktx', type: 'sap.ui.model.odata.type.String' , constraints:{ maxLength:18, nullable:false } }"/> 

       <Label text="Désignation" required="true"/> 
       <Input name="Qmtxt" id="Qmtxt_id"  valueLiveUpdate="true" liveChange="_validateSaveEnablement" 
       enabled="true" visible="true" 
       value="{ path: 'Qmtxt', type: 'sap.ui.model.odata.type.String' , constraints:{ maxLength:40, nullable:false } }"/> 

       <Label text="Date Avis" required="true"/> 
       <DatePicker id="Qmdat" displayFormat="short" change="_validateSaveEnablement" 
       value="{ path: 'Qmdat', type: 'sap.ui.model.type.Date', formatOptions: { style : 'long' } }"/>  

      </f:content> 
     </f:SimpleForm> 
    </content> 
</Panel> 
ここ

を保存し、作成ボタンです:ここで

は私の断片だ

<Button id="saveButton" press="saveChanges" icon="sap-icon://save"></Button> 

そして最後にではなく、少なくともを、ここでは詳細コントローラ内の機能があります

saveChanges: function() { 
    var oModel = this.getView().getModel(); 
    var mNewEntry = {}; 

    mNewEntry.Equnr = sap.ui.getCore().byId("Equnr_id"); 
    mNewEntry.Qmtxt = sap.ui.getCore().byId("Qmtxt_id"); 
    mNewEntry.Qmdat = sap.ui.getCore().byId("Date Avis"); 
    oModel.create("/avisSet", mNewEntry, null, function(oData){ 
     MessageBox.show(
      "Created succesfully",{ 
      icon : sap.m.MessageBox.Icon.SUCCESS, 
      title : "Dear User", 
      styleClass : "sapUiSizeCompact" 
      } 
      ); 
    }, function(err){ 
     MessageBox.show(
      "ERROR",{ 
      icon : sap.m.MessageBox.Icon.ERROR, 
      title : "Dear User", 
      styleClass : "sapUiSizeCompact" 
      } 
      ); 
    } 
    ); 
     oModel.refresh(); 
    }, 

私は推測を取る場合、私はこの、値がmNewEntry.Equnrは、...未定義

答えて

0

してくださいと言う変更したい:これまで

mNewEntry.Equnr = sap.ui.getCore().byId("Equnr_id"); 
mNewEntry.Qmtxt = sap.ui.getCore().byId("Qmtxt_id"); 
mNewEntry.Qmdat = sap.ui.getCore().byId("Date Avis"); 

mNewEntry.Equnr = this.byId("Equnr_id"); 
mNewEntry.Qmtxt = this.byId("Qmtxt_id"); 
mNewEntry.Qmdat = this.byId("Date Avis"); 

を編集午前17時10 140317:

例:

https://sapui5.hana.ondemand.com/explored.html#/sample/sap.ui.layout.sample.SimpleForm480_Trial/preview

+0

はあなたの応答JAROしていただきありがとうございます。 残念ながらそれはまだ未定義として変数(mNewEntry.Equnr、mNewEntry.Qmtxt、mNewEntry.Qmdat)を認識します。 –

+0

Anas、あなたは関数のsaveChangesに使用されたフラグメントの過去のインスタンスを渡す必要があります。それ以外の場合は未定義です。それが正しく渡されるなら、this.byId( "Equnr_id")などで見つけることができます。 – Jaro

+0

私に例を挙げていただければ幸いです。 –

0

あなたはそのような入力の値を取得する必要があります。

mNewEntry.Equnr = sap.ui.getCore().byId("Equnr_id").getValue(); 
mNewEntry.Qmtxt = sap.ui.getCore().byId("Qmtxt_id").getValue(); 
mNewEntry.Qmdat = sap.ui.getCore().byId("Date Avis").getValue();