2013-06-18 2 views
0

У меня есть большой вопрос, мне нужно, чтобы в моей программе передавалось значение поля между двумя функциями для оценки, если разрешено новое значение этого поля, я вставляю код, потому что проще понимать WAHT я претендую сделать, глядя код:Передача var между функциями EXT js

beforeedit: 

     function preditar(editor, e, eOpts) { 
     var grid = Ext.getCmp('gridTabla'); // or e.grid 
     var hoy = new Date(); 

     dia = hoy.getDate(); 

     if(dia<10) 
      { 
       dia=String("0"+dia); 

      } 

     mes = hoy.getMonth(); 

     if(mes<10) 
     { 
       mes=String("0"+mes); 

     } 
     anio= hoy.getFullYear(); 
     fecha_actual = String(anio+""+mes+""+dia); 
     //alert(fecha_actual); 

     var mola = e.record.data.ESTLOT; 
     alert(mola); 

     if (e.record.data.ESTLOT === '02') { 
      if (e.record.data.FECMOD === fecha_actual) 
      { 
      e.cancel = false; //permite 
      } 
      else{ 
       e.cancel = true; //mo permite 
      } 

     } else 
     { 
      e.cancel = false; //permite 
     } 

    }, 

    edit: 

     function editar(e, context){ 
     var record = context.record; 
     var recordData = record.getData(); 

     recordData.Funcionalidad = 'Modificar'; 
     alert(JSON.stringify(recordData)); 


     Ext.Ajax.request({ 
      url: 'http://localhost:8080/MyMaver/ServletTablaLotes', 
      method: 'POST', 

      // merge row data with other params 
      params: recordData 
     }); 
    } 
    } 

Mi большая проблема, что я хочу, чтобы передать значение ESTLOT формы поля beforeedit редактировать несильно editar (контекст, е), и я не знаю, как я могу делать.

Может ли кто-нибудь помочь мне передать var ESTLOT, что является значением поля, которое я должен предварительно передать функции редактирования?

Благодаря

ответ

0

Ok я паста теперь часть моего приложения, где я проверки значения поле зависит от его предыдущего значения. Спасибо Риксо и Джоно за помощь.

  var gridTablaConsulta = Ext.create('Ext.grid.GridPanel', { 
    title:'Consulta Tabla lotes', 
    id:'gridTabla', 
    store: storeTabla, 
    columns: [ 
     Ext.create('Ext.grid.RowNumberer'), 
     {text: "NRBE", width: 60, sortable: true, dataIndex: 'NRBE'}, 
     {text: "APLIC", width: 60, sortable: true, dataIndex: 'APLIC'}, 
     {text: "FORM", width: 60, sortable: true, dataIndex: 'FORM'}, 
     {text: "VERFOR", width: 60, sortable: true, dataIndex: 'VERFOR'}, 
     {text: "FECLOT", width: 60, sortable: true, dataIndex: 'FECLOT'}, 
     {text: "HORLOT", width: 60, sortable: true, dataIndex: 'HORLOT'}, 
     {text: "TIPPAPLO", width: 60, sortable: true, dataIndex: 'TIPPAPLO'}, 
     {text: "TAMPAP", width: 60, sortable: true, dataIndex: 'TAMPAP'}, 
     {text: "FECINIIM", width: 60, sortable: true, dataIndex: 'FECINIIM'}, 
     {text: "FECINIOB", width: 60, sortable: true, dataIndex: 'FECINIOB',editor:{xtype:'textfield', allowBlank:true}}, 
     {text: "ESTLOT", width: 60, sortable: true, dataIndex:'ESTLOT',editor:{xtype:'textfield', allowBlank:true}}, 
     {text: "TOTPAGGE", width: 60, sortable: true, dataIndex: 'TOTPAGGE'}, 
     {text: "TOTPAGIM", width: 60, sortable: true, dataIndex: 'TOTPAGIM'}, 
     {text: "DESLOT", width: 60, sortable: true, dataIndex: 'DESLOT'}, 
     {text: "TIPDIF", width: 60, sortable: true, dataIndex: 'TIPDIF'}, 
     {text: "DIADIF", width: 60, sortable: true, dataIndex: 'DIADIF'}, 
     {text: "FECALT", width: 60, sortable: true, dataIndex: 'FECALT'}, 
     {text: "FECMOD", width: 60, sortable: true, dataIndex: 'FECMOD'}, 
     {text: "TERMOD", width: 60, sortable: true, dataIndex: 'TERMOD'}, 
     {text: "HORMOD", width: 60, sortable: true, dataIndex: 'HORMOD'} 
    ], 
    selType: 'rowmodel', 
    plugins: [ 
     Ext.create('Ext.grid.plugin.RowEditing', { 
      clicksToEdit: 2 
     }) 
    ], 

    listeners: { 

     beforeedit: 

      function preditar(editor, e, eOpts) { 
      var grid = Ext.getCmp('gridTabla'); // or e.grid 
      var hoy = new Date(); 
      dia = hoy.getDate(); 
      if(dia<10) 
       { 
        dia=String("0"+dia); 

       } 
      mes = hoy.getMonth(); 
      if(mes<10) 
      { 
        mes=String("0"+mes); 
      } 
      anio= hoy.getFullYear(); 
      fecha_actual = String(anio+""+mes+""+dia); 
      e.record.beforeEditESTLOT = e.record.data.ESTLOT; 
      if (e.record.data.ESTLOT === '02') { 
       if (e.record.data.FECMOD === fecha_actual) 
       { 
        e.cancel = false; //permite probar mañana con cambio fecha 
       } 
       else{ 
        e.cancel = true; //no permite 
       } 

      } else 
      { 
       e.cancel = false; //permite 
      } 

     }, 

     edit: 
      function editar(e, context){ 
      var record = context.record; 
      var recordData = record.getData(); 
      recordData.Funcionalidad = 'Modificar'; 
      var modificado = record.modified.ESTLOT; //valores anteriores 
      alert(modificado); 
      //var nuevo = recordData.ESTLOT; 
      var cadena = JSON.stringify(recordData); 
      alert(cadena); 
      var prueba = context.record.data.ESTLOT;//valores nuevos 
      alert(prueba); 
      if ((modificado==='06')||(modificado==='03')) 
      { 

       if ((prueba==='01')||(prueba==='02')||(prueba==='03')||(prueba==='06')) 
        { 
        Ext.Ajax.request({ 
         //url: 'http://localhost:8080/MyMaver/ServletTablaLotes', 
         url: 'http://lnxntf05:8080/MyMaver/ServletTablaLotes', 
         method: 'POST', 
         // merge row data with other params 
         params: recordData 
        }); 
        } 
       else 
        { 

         alert("Si el valor anterior de estado de lote es 06 o 03 solo puede pasar a valer 04 o 05"); 

        } 
      } 
      if ((modificado==='04')||(modificado==='05')) 
      { 

       if ((prueba==='02')||(prueba==='04')||(prueba==='05')||(prueba==='06')) 
        { 
        Ext.Ajax.request({ 
         //url: 'http://localhost:8080/MyMaver/ServletTablaLotes', 
         url: 'http://lnxntf05:8080/MyMaver/ServletTablaLotes', 
         method: 'POST', 
         // merge row data with other params 
         params: recordData 
        }); 
        } 
       else 
        { 

         alert("Si el valor anterior de estado de lote es 04 o 05 solo puede pasar a valer 01 o 03 o en blanco"); 

        } 
      } 

      if(modificado==='01') 
       { 
       Ext.Ajax.request({ 
        //url: 'http://localhost:8080/MyMaver/ServletTablaLotes', 
        url: 'http://lnxntf05:8080/MyMaver/ServletTablaLotes', 
        method: 'POST', 
        // merge row data with other params 
        params: recordData 
       }); 

       } 
      if(modificado===' ') 
       { 
       Ext.Ajax.request({ 
        //url: 'http://localhost:8080/MyMaver/ServletTablaLotes', 
        url: 'http://lnxntf05:8080/MyMaver/ServletTablaLotes', 
        method: 'POST', 
        // merge row data with other params 
        params: recordData 
       }); 

       } 

     } 
     } 
}); 
0

положить его в функции аргументов

function editar(e, context, ESTLOT) 
{ 
    //....rest of your operation 
} 

или

относятся к GlobalVAR

Var ESTLOT; 

function editar(e, context) 
{ 
    //....rest of your functions 
    ESTLOT = "abcd"; 
} 
function preditar(editor, e, eOpts) 
{ 
    ESTLOT = "abcd"; 
} 
1

Вы можете просто сохранить значение в настраиваемого свойства в запись:

// in beforeedit: 
e.record.beforeEditESTLOT = e.record.data.ESTLOT 

Затем, редактирования:

// your value's in there: 
alert(e.record.beforeEditESTLOT); 

Теперь, есть даже самый простой способ. Поскольку ваша запись будет изменена редактором, вы можете найти свое значение в свойстве modified записи. Таким образом, пока запись не будет commited (т.е. сохранены с использованием модели или магазина функций), вы можете получить доступ к предыдущему значению таким образом:

// if undefined, that means that the ESTLOT value has not been changed by the editrecord.modified.ESTLOT 
alert(record.modified.ESTLOT); 
+0

Привет, риксо, появляется следующий сбой, когда я пробовал первое решение: «record.beforeEditESTLOT» является нулевым или нет объектом. – Deckard27

+0

Но с этим все правильно, я думаю, alert (record.modified.ESTLOT); Еще раз спасибо jejej, вы решили mi вопрос, спасибо снова jejeje – Deckard27

+0

Последнее, что мне нужно поймать новое значение ESTLOT (значение, которое я передаю своему сервлету) – Deckard27

Смежные вопросы