2016-02-04 8 views
7

मैं एक्सेल निर्यात के साथ एक केंडो ग्रिड बनाने की कोशिश कर रहा हूं। मेरा डेटा ठीक से दिखाया गया है जैसा कि मैं चाहता हूं और ग्रिड ठीक काम करता है। हालांकि, saveAsExcel फ़ंक्शन एक्सेल एक्सपोर्ट ईवेंट ट्रिगर करता है, लेकिन कोई फ़ाइल नहीं बनाई जाती है। पीडीएफ निर्यात के साथ एक ही समस्या।केंडो यूआई ग्रिड निर्यात एक्सेल और पीडीएफ निर्यात, कोई फ़ाइल नहीं बनाई गई

grid = $("#grid").kendoGrid({ 
     toolbar:["excel","pdf"], 
     height: 500, 
     scrollable: true, 
     groupable: true, 
     sortable: true, 
     filterable: false, 
     excel: { 
      allPages:true, 
      filterable:true 
     }, 
     excelExport: function(e) { 
      console.log('Firing Export'); 
      console.log(e.workbook); 
      console.log(e.data); 
     }, 
     pdfExport: function(e){ 
      console.log('PDF export'); 

     }, 
     columns: [ 
      { field: "date", title: "Time", template: "#= kendo.toString(kendo.parseDate(date), 'MM/dd/yyyy') #", width: '120px'}, 
      { field: "customer", title: "Customer" }, 
      { field: "amount", title: "Total", format: "{0:c}", width: '70px', aggregates: ["sum"]}, 
      { field: "paid_with", title: "Payment", width: '130px'}, 
      { field: "source", title: "Source" }, 
      { field: "sale_location", title: "Sale Location" } 
     ] 
    }).data("kendoGrid"); 

जब भी डेटा के लिए खोज मापदंडों बदल गया है यह ajax कहा जाता है: यहाँ मेरी ग्रिड विकल्प है। जहां मैं डेटासोर्स रीफ्रेश करता हूं।

 $.ajax({ 
      'url':'/POS/ajax/loadTransactionsDetailsForDay.php', 
      'data':{ 
       filters 
      }, 
      'type':'GET', 
      'dataType':'json', 
      'success':function(response) { 
       var dataSource = new kendo.data.DataSource({ 
        data: response.data.invoices, 
        pageSize: 100000, 
        schema: { 
         model: { 
          fields: { 
           date: {type: "string"}, 
           customer: { type: "string" }, 
           amount: { type: "number" }, 
           paid_with: {type: "string"}, 
           source: {type:"string"}, 
           sale_location: {type:"string" } 
          } 
         } 
        } 
       }); 
       grid.setDataSource(dataSource); 
       grid.refresh(); 
      } 

     }); 

मेरे कंसोल लॉग से आउटपुट है।

Firing Export. 

एक वर्कशीट ऑब्जेक्ट।

Object {sheets: Array[1]}sheets: Array[1]0: Objectlength: 1__proto__: Array[0]__proto__: Object 

और और ग्रिड में प्रत्येक पंक्ति के लिए इन वस्तुओं के साथ सरणी:

0: o 
    _events: Object 
    _handlers: Object 
    amount: 40.45 
    customer: "customer 1" 
    date: "2015-11-25T00:00:00-08:00" 
    dirty: false 
    employee: 23 
    paid_with: "Check" 
    parent:() 
    sale_location: "Main" 
    source: "POS" 
    uid: "70b2ba9c-15f7-4ac3-bea5-f1f2e3c800d3" 

मैं केन्डो का नवीनतम संस्करण है, मैं jszip लोड हो रहा हूँ। मैं इसे क्रोम के नवीनतम संस्करण पर चला रहा हूं। मैंने इस कोड के सभी प्रकार की विविधताओं को आजमाया है, जिसमें मैं सोच सकता हूं, जिसमें मेरी स्कीमा को हटाया जा रहा है, कॉलबैक में हर बार केंडो एन्यू शुरू करना।

किसी को भी कोई विचार नहीं आया कि यह क्यों काम नहीं करेगा?

इस पर हर उदाहरण मुझे यह बहुत आसान लग सकता है, बस ग्रिड बनाएं और निर्यात करें ... इसलिए मुझे कुछ अनदेखा करना होगा।

मैं इस बारे में किसी भी विचार के लिए आभारी हूं।

धन्यवाद।

+0

आपका कार्यान्वयन ठीक लगता है। क्या आप निश्चित रूप से जेएसजीआईपी कोन्डो से पहले लोड कर चुके हैं? –

+0

मैंने आपकी जावास्क्रिप्ट कॉपी की है और यह ठीक काम करता है (एक खाली फ़ाइल के साथ)। क्या यह अनुमतियों के साथ एक समस्या हो सकती है? मेरी फाइलें मेरे डाउनलोड फ़ोल्डर में लिखी गई हैं। – Fruitbat

+0

@The_Black_Smurf हां, यह पहले लोड हो गया है। मेरे पास समय सीमा थी इसलिए मैंने ग्रिड के सीएसवी निर्यात को लिखना समाप्त कर दिया। लेकिन इस पर वापस आ जाएगा और यह पता लगाने की कोशिश करें कि इसका क्या कारण है। – Svennisen

उत्तर

0

मेरे पास कुछ निम्नलिखित सुझाव हैं।

  1. क्या आप अपने कोड में केंडो डिफ्लेट पाको स्क्रिप्ट फ़ाइल जोड़ सकते हैं और कोशिश कर सकते हैं।
  2. फिर पीडीएफ निर्यात ईवेंट को हटा दें और टूलबार डिफ़ॉल्ट कार्यक्षमता के साथ एक पीडीएफ निर्यात करने का प्रयास करें .. जांच करें कि यह काम कर रहा है या नहीं।
  3. रीड विधि के साथ केंडो-ट्रांसपोर्ट तकनीक का उपयोग करके ग्रिड विकल्प में डेटा-स्रोत AJAX कॉल जोड़ने का प्रयास करें। http://docs.telerik.com/kendo-ui/api/javascript/data/datasource#configuration-transport
संबंधित मुद्दे