2012-02-27 6 views
5

ईपीप्लस के साथ आने वाले नमूने को देखते हुए मैंने पिवट टेबल बनाने में कामयाब रहा है, लेकिन मैं इसके लिए सही रिपोर्ट लेआउट सेट करने में असमर्थ हूं। मैं चाहता हूं कि यह 'सारणी' हो, न कि 'रूपरेखा' या जो कुछ भी हो। मेरे लिए ऐसा लगता है कि ईपीप्लस अब इसका समर्थन नहीं करता है, लेकिन शायद मुझे कुछ याद आ रहा है?ईपीप्लस में टैबलेट को पिवोट टेबल रिपोर्ट लेआउट कैसे सेट करें?

उत्तर

6

यह मेरे विचार से कहीं अधिक आसान हो गया ... 'सबकुछ' को 'झूठी' पर सेट करके यह तालिका टैब्यूलर के रूप में प्रस्तुत की जाती है। तो मूल रूप से:

pivotTable.Compact = false; 
pivotTable.CompactData = false; 
pivotTable.Indent = 0; 
pivotTable.RowGrandTotals = false; 
pivotTable.UseAutoFormatting = true; 
pivotTable.ShowMemberPropertyTips = false; 
pivotTable.DataOnRows = false; 

field.Outline = false; 
field.Compact = false; 
field.ShowAll = false; 
field.SubtotalTop = false; 

इस तरह मुझे टैब्यूलर लेआउट के साथ पिवट तालिका मिलती है।

+0

जब मैं इसे कोशिश करता हूं तो यह ज्यादातर काम करता है, हालांकि मुझे फ़ील्ड के नाम की बजाय मेरी पंक्तियों के लिए 'पंक्ति लेबल' शीर्षलेख मिलता है। मुझे फ़ील्ड के नाम के बजाय मेरे कॉलम के लिए हेडर के रूप में 'कॉलम लेबल्स' मिलता है। क्या आप जानते हैं कि इसे सही विवरण में कैसे सेट किया जाए? – briddums

+0

क्षमा करें, कोई विचार नहीं ... – noocyte

3

यहां समाधान है। स्पष्ट रूप से सभी फ़ील्ड (छुपे हुए फ़ील्ड समेत) कॉम्पैक्ट और रूपरेखा गुणों को झूठी सेट करें।

(from pf in pivot.Fields 
      select pf).ToList().ForEach(f => 
       { 
        f.Compact = false; 
        f.Outline = false; 
       }); 

बस कुछ संदर्भ है, यहां पिवट उत्पन्न करने के लिए मेरा कोड है। यह मेटाडेटा से चलाया जाता है लेकिन अवधारणा वही है।

 var pivotTabName = "Pivot"; 
     if (tab.Form.FormTabs.Count(ft => ft.FormTabPivotFields.Any()) > 1) 
      pivotTabName = tab.DisplayName + " " + pivotTabName; 

     var sheet = package.Workbook.Worksheets.Add(pivotTabName); 

     const int pivotRow = 7; 
     const int pivotCol = 1; 

     var dataSourceRange = table.WorkSheet.Workbook.Names[table.Name + "_PivotSource"]; 
     var pivot = sheet.PivotTables.Add(sheet.Cells[pivotRow, pivotCol], dataSourceRange.Worksheet.Cells[dataSourceRange.Address], 
           pivotTabName.Replace(" ", string.Empty)); 

     const bool outline = false; 
     const bool compact = false; 
     const bool showAll = false; 

     pivot.Compact = compact; 
     pivot.CompactData = compact; 
     pivot.Outline = outline; 
     pivot.OutlineData = outline; 
     pivot.Indent = 0; 
     pivot.UseAutoFormatting = true; 
     pivot.ShowMemberPropertyTips = false; 
     pivot.DataOnRows = false; 
     pivot.RowGrandTotals = false; 
     pivot.ShowDrill = false; 
     pivot.EnableDrill = false; 
     pivot.RowGrandTotals = false; 
     pivot.ColumGrandTotals = true; 
     pivot.MultipleFieldFilters = true; 

     (from pf in tab.FormTabPivotFields 
     where pf.PivotFieldType.Name == "Page" 
     orderby pf.DisplayOrder 
     select pf.FormTabFactVcTypeDomain != null ? pf.FormTabFactVcTypeDomain.DisplayColumnName : pf.FormTabMeasureTypeColumn.DisplayColumnName).ToList().ForEach(fieldName => 
      { 
       var fld = pivot.PageFields.Add(pivot.Fields[fieldName]); 
       fld.Compact = compact; 
       fld.Outline = outline; 
       fld.ShowAll = showAll; 
       fld.SubtotalTop = false; 
       fld.SubTotalFunctions = eSubTotalFunctions.None; 
      }); 

     (from pf in tab.FormTabPivotFields 
     where pf.PivotFieldType.Name == "Row" 
     orderby pf.DisplayOrder 
     select pf.FormTabFactVcTypeDomain != null ? pf.FormTabFactVcTypeDomain.DisplayColumnName : pf.FormTabMeasureTypeColumn.DisplayColumnName).ToList().ForEach(fieldName => 
     { 
      var fld = pivot.RowFields.Add(pivot.Fields[fieldName]); 
      fld.Compact = compact; 
      fld.Outline = outline; 
      fld.ShowAll = showAll; 
      fld.SubtotalTop = false; 
      fld.SubTotalFunctions = eSubTotalFunctions.None; 
     }); 

     (from pf in tab.FormTabPivotFields 
     where pf.PivotFieldType.Name == "Column" 
     orderby pf.DisplayOrder 
     select pf.FormTabFactVcTypeDomain != null ? pf.FormTabFactVcTypeDomain.DisplayColumnName : pf.FormTabMeasureTypeColumn.DisplayColumnName).ToList().ForEach(fieldName => 
     { 
      var fld = pivot.ColumnFields.Add(pivot.Fields[fieldName]); 
      fld.Compact = compact; 
      fld.Outline = outline; 
      fld.ShowAll = showAll; 
      fld.SubtotalTop = false; 
      fld.SubTotalFunctions = eSubTotalFunctions.None; 
     }); 

     (from pf in tab.FormTabPivotFields 
     where pf.PivotFieldType.Name == "Data" 
     orderby pf.DisplayOrder 
     select new 
      { 
       FieldName = pf.FormTabFactVcTypeDomain != null ? pf.FormTabFactVcTypeDomain.DisplayColumnName : pf.FormTabMeasureTypeColumn.DisplayColumnName, 
       Format = pf.FormTabMeasureTypeColumn != null ? 
        (pf.FormTabMeasureTypeColumn.MeasureFormatIndex == 1 ? pf.FormTab.MeasureColumnExcelNumberFormat1 : pf.FormTab.MeasureColumnExcelNumberFormat2) 
        : "General" 
      }).ToList().ForEach(md => 
      { 
       var df = pivot.DataFields.Add(pivot.Fields[md.FieldName]); 
       df.Format = md.Format; 
       df.Field.Compact = compact; 
       df.Field.Outline = outline; 
      }); 

     (from pf in pivot.Fields 
      where pf.Axis == ePivotFieldAxis.None && pf.IsDataField == false 
      select pf).ToList().ForEach(f => 
       { 
        f.Compact = compact; 
        f.Outline = outline; 
       }); 

     // apply pivot table styling 
     pivot.TableStyle = TableStyles.Medium15;