2012-12-10 2 views
3

내 그리드 값의 매개 변수에 대해 pdf 보고서를 만들고 싶습니다. 저는 아코디언 제목에서 매개 변수 번호 1로 연도를 찾고 매개 변수 번호 2에서 월 이름을 얻고 싶습니다. 그러나 나는 그것을 할 수 없습니다. 아무도 이것에 나를 도울 수 있습니까. 다음은 내 코드입니다.아코디언과 extjs의 격자에서 값 가져 오기 4

Ext.define('Ext4Example.view.attendence.Timeperiod' ,{ 
    extend: 'Ext.form.Panel', 
    alias : 'widget.timeperiod', 
    id: 'timeperiod', 
    region: 'west', 
    border: true, 
    width: 150, 
    height:395, 
    split: true, 
    defaults: { 
     // applied to each contained panel 
     //bodyStyle: 'padding:15px' 
    }, 
    layout: { 
     // layout-specific configs go here 
     type: 'accordion', 
     titleCollapse: true, 
     animate: true, 
     activeOnTop: true, 
     hideCollapseTool : true 

    }, 

    initComponent: function() { 
     var me = this; 
     me.items = me.maccord(); 
     me.callParent(arguments); 
    }, 
    mstore: function(year){ 
     var data = [ 
      [1, year, 'January' ], 
      [2, year, 'February' ], 
      [3, year, 'March' ], 
      [4, year, 'April' ], 
      [5, year, 'May'  ], 
      [6, year, 'June'  ], 
      [7, year, 'July'  ], 
      [8, year, 'August' ], 
      [9, year, 'September'], 
      [10, year, 'October' ], 
      [11, year, 'November' ], 
      [12, year, 'December' ] 
     ]; 

     var store = Ext.create('Ext.data.ArrayStore', { 
      storeId: 'mstore', 
      fields: [    
       {name: 'id', type: 'int'}, 
       {name: 'year', type: 'int'}, 
       {name: 'month', type: 'string'} 
      ], 
      data:data 
     }); 
     return store; 
    }, 
    mpanel: function(year){ 
     var me = this, 
     mpanel = new Ext.grid.Panel({ 
      border: false, 
      viewConfig: { 
       stripeRows: true 
      }, 
      hideHeaders: true, 
      columns: [ 
       { text: 'month', dataIndex: 'month', flex: 1}, 
       { menuDisabled : true, 
        sortable  : false, 
        xtype   : 'actioncolumn', 
        width   : 24, 
        items   : [{ 
          icon  : "${resource(dir: 'images', file: 'PDF01001.png')}", 
          hide  : true, 
          tooltip  : 'Print PDF Report of this Month?', 
          handler  : function(record) { 
              alert(record.data.month) 
          } 
         }] 
       } 
      ], 
      listeners:{ 
       selectionchange:function(model, records) { 
        var store = Ext.data.StoreManager.lookup('Attendences'); 
        var record = records[0]; 
        store.load({ 
         filters: [ 
          {property:'month', value:record.data.id}, 
          {property:'year', value:record.data.year} 
         ]   
        });      
       } 
      }, 
      store: me.mstore(year), 
      width: 150 
     }); 
     return mpanel; 
    }, 
    maccord: function(){   
     var year = ${(new Date()).format('yyyy')}, 
     limit = year - 5, 
     me = this, 
     maccord = []; 

     for(year; year > limit ; year--){ 
      maccord.push({ 
       title: 'Year '+ year, 
       ident: 'accordion-panel', 
       items: me.mpanel(year)    
      }); 
     } 
     return maccord; 
    } 
}); 

답변

5

월 및 연도는 기록에 있습니다. 아코디언 제목에서 1 년을 얻지 않아도됩니다. 귀하의 문제는 기록이 핸들러의 첫 번째 PARAM 아니라고이다 :

http://docs.sencha.com/ext-js/4-1/#!/api/Ext.grid.column.Action-cfg-handler

items: [{ 
    icon: 'test', 
    tooltip: 'Print PDF Report of this Month?', 
    scope: this, 
    handler: function(view, rowIndex, colIndex, item, e, record) { 
     alert(record.data.month + "/" + record.data.year); 
    } 
}] 

당신은 볼 수 있습니다 : http://jsfiddle.net/AMx6r/1279/

+0

@Kolev 너무 감사합니다. 그것은 꽤 잘 작동합니다. 모두 제일 좋다 –