Ver Mensaje Individual
  #1 (permalink)  
Antiguo 15/02/2013, 10:09
ambichol
 
Fecha de Ingreso: febrero-2013
Ubicación: Lima
Mensajes: 301
Antigüedad: 11 años, 10 meses
Puntos: 5
Conectar Json y SQL

hola, tengo un problema, estoy usando la libreria ext-js sin embargo, no estan jalando los daos dinamicos que deseo que se muestren. le comparto el codigo:
Código Javascript:
Ver original
  1. /*!
  2.  *Ag@l
  3.  */
  4. Ext.onReady(function(){
  5.  
  6.     Ext.QuickTips.init();
  7.  
  8.     var xg = Ext.grid;
  9.  
  10.     var reader = new Ext.data.JsonReader({
  11.         idProperty: 'taskid',
  12.         fields: [
  13.             {name: 'projectid', type: 'int'},
  14.             {name: 'project', type: 'string'},
  15.             {name: 'taskid', type: 'int'},
  16.             {name: 'description', type: 'string'},
  17.             {name: 'estimate', type: 'float'},
  18.             {name: 'rate', type: 'float'},
  19.             {name: 'cost', type: 'float'}
  20.             //{name: 'due', type: 'date', dateFormat:'m/d/Y'}
  21.             //{name: 'x', type: 'date', dateFormat:'m/d/Y'}
  22.         ],
  23.         // configuración adicional para el control remoto
  24.         root:'data',
  25.         remoteGroup:true,
  26.         remoteSort: true
  27.  
  28.     });
  29.  
  30.     // definir una función de resumen personalizado
  31.     Ext.ux.grid.GroupSummary.Calculations['totalCost'] = function(v, record, field){
  32.         return v + (record.data.estimate * record.data.rate);
  33.     };
  34.  
  35.     // utilizar extensión personalizada para Resumen del grupo
  36.     var summary = new Ext.ux.grid.GroupSummary();
  37.  
  38.     var grid = new xg.EditorGridPanel({
  39.         ds: new Ext.data.GroupingStore({
  40.             reader: reader,
  41.             // utilizar los datos remotos
  42.             proxy : new Ext.data.HttpProxy({
  43.                 url: 'totals-hybrid.json',
  44.                 method: 'GET'
  45.             }),
  46.             //sortInfo: {field: 'due', direction: 'ASC'},
  47.             groupField: 'project'
  48.         }),
  49.         columns: [
  50.             {
  51.                 id: 'description',
  52.                 header: 'Tareas',
  53.                 width: 80,
  54.                 sortable: true,
  55.                 dataIndex: 'description',
  56.                 summaryType: 'count',
  57.                 hideable: false,
  58.                 summaryRenderer: function(v, params, data){
  59.                     return ((v === 0 || v > 1) ? '(' + v +' Tareas)' : '(1 Tareas)');
  60.                 },
  61.                 editor: new Ext.form.TextField({
  62.                    allowBlank: false
  63.                 })
  64.             },{
  65.                 header: 'Proyecto',
  66.                 width: 20,
  67.                 sortable: true,
  68.                 dataIndex: 'project'
  69.             }/*,{
  70.                 header: 'Fecha Produccion',
  71.                 width: 25,
  72.                 sortable: true,
  73.                 dataIndex: 'x',
  74.                 summaryType: 'max',
  75.                 renderer: Ext.util.Format.dateRenderer('m/d/Y'),
  76.                 editor: new Ext.form.DateField({
  77.                     format: 'm/d/Y'
  78.                 })
  79.             },{
  80.                 header: 'Fecha Vencimiento',
  81.                 width: 25,
  82.                 sortable: true,
  83.                 dataIndex: 'due',
  84.                 summaryType: 'max',
  85.                 renderer: Ext.util.Format.dateRenderer('m/d/Y'),
  86.                 editor: new Ext.form.DateField({
  87.                     format: 'm/d/Y'
  88.                 })
  89.             }*/,{
  90.                 header: 'Duracion',
  91.                 width: 20,
  92.                 sortable: true,
  93.                 dataIndex: 'estimate',
  94.                 summaryType: 'sum',
  95.                 renderer : function(v){
  96.                     return v +' horas';
  97.                 },
  98.                 editor: new Ext.form.NumberField({
  99.                    allowBlank: false,
  100.                    allowNegative: false,
  101.                    style: 'text-align:left'
  102.                 })
  103.             },{
  104.                 header: 'Valor',
  105.                 width: 20,
  106.                 sortable: true,
  107.                 renderer: Ext.util.Format.usMoney,
  108.                 dataIndex: 'rate',
  109.                 summaryType: 'average',
  110.                 editor: new Ext.form.NumberField({
  111.                     allowBlank: false,
  112.                     allowNegative: false,
  113.                     style: 'text-align:left'
  114.                 })
  115.             },{
  116.                 id: 'Cost',
  117.                 header: 'Total',
  118.                 width: 20,
  119.                 sortable: false,
  120.                 groupable: false,
  121.                 renderer: function(v, params, record){
  122.                     return Ext.util.Format.usMoney(record.data.estimate * record.data.rate);
  123.                 },
  124.                 dataIndex: 'cost',
  125.                 summaryType: 'totalCost',
  126.                 summaryRenderer: Ext.util.Format.usMoney
  127.             }
  128.         ],
  129.  
  130.         view: new Ext.grid.GroupingView({
  131.             forceFit: true,
  132.             showGroupName: false,
  133.             enableNoGroups: false,
  134.             enableGroupingMenu: false,
  135.             hideGroupedColumn: true
  136.         }),
  137.  
  138.         plugins: summary,
  139.  
  140.         tbar : [{
  141.             text: 'Resumen',
  142.             tooltip: 'Muestra el Resumen',
  143.             iconCls: '',
  144.             handler: function(){summary.toggleSummaries();}
  145.         },'-',{
  146.             text: 'Guardar',
  147.             tooltip: 'Guarda las Modificaciones Realizadas',
  148.             iconCls: '',
  149.             handler: function(){summary.toggleSummaries();}
  150.         }],
  151.  
  152.         frame: true,
  153.         width: 800,
  154.         height: 450,
  155.         clicksToEdit: 1,
  156.         collapsible: true,
  157.         animCollapse: false,
  158.         trackMouseOver: false,
  159.         //enableColumnMove: false,
  160.         title: '::Agal::',
  161.         iconCls: 'icon-grid',
  162.         renderTo: document.body
  163.     });
  164.  
  165.     // cargar los datos remotos
  166.     grid.store.load();
  167.  
  168. });

como se vera en la url de donde saca la info es un archivo json llamado totals-hybrid.json, el cual tiene esto en su interior:
Código Javascript:
Ver original
  1. {
  2.     data: [
  3. {projectId: 1, project: 'Filtro1', taskId: 101, description: 'Sub_filtro1', estimate: 6, rate: 150},
  4. {projectId: 1, project: 'Filtro1', taskId: 102, description: 'Sub_filtro1', estimate: 4, rate: 150},
  5. {projectId: 1, project: 'Filtro1', taskId: 103, description: 'Sub_filtro1', estimate: 4, rate: 150},
  6. {projectId: 1, project: 'Filtro1', taskId: 104, description: 'Sub_filtro1', estimate: 8, rate: 0},
  7. {projectId: 1, project: 'Filtro1', taskId: 105, description: 'Sub_filtro1', estimate: 8, rate: 125},
  8. {projectId: 2, project: 'Filtro2', taskId: 106, description: 'Sub_filtro2', estimate: 6, rate: 100},
  9. {projectId: 2, project: 'Filtro2', taskId: 107, description: 'Sub_filtro2', estimate: 6, rate: 100},
  10. {projectId: 2, project: 'Filtro2', taskId: 108, description: 'Sub_filtro2', estimate: 4, rate: 100},
  11. {projectId: 2, project: 'Filtro2', taskId: 109, description: 'Sub_filtro2', estimate: 2, rate: 100},
  12. {projectId: 2, project: 'Filtro2', taskId: 110, description: 'Sub_filtro2', estimate: 6, rate: 100},
  13. {projectId: 3, project: 'Filtro3', taskId: 111, description: 'Sub_filtro3', estimate: 4, rate: 125},
  14. {projectId: 3, project: 'Filtro3', taskId: 112, description: 'Sub_filtro3', estimate: 4, rate: 125},
  15. {projectId: 3, project: 'Filtro3', taskId: 113, description: 'Sub_filtro3', estimate: 6, rate: 125},
  16. {projectId: 3, project: 'Filtro3', taskId: 114, description: 'Sub_filtro3', estimate: 4, rate: 125},
  17. {projectId: 3, project: 'Filtro3', taskId: 115, description: 'Sub_filtro3', estimate: 4, rate: 125},
  18. {projectId: 3, project: 'Filtro3', taskId: 116, description: 'Sub_filtro3', estimate: 10, rate: 125},
  19. {projectId: 3, project: 'Filtro3', taskId: 117, description: 'Sub_filtro3', estimate: 8, rate: 125}
  20.     ],
  21.    
  22.     summaryData: {
  23.         'Filtro1': {description: 14, estimate: 9, rate: 99, due: new Date(2009, 6, 29), cost: 999}
  24.     }
  25. }

lo que deseo saber es como hacer para que el archivo json se conecte con SQL server y me muestre la tabla que deseo.

gracias