وثائق HotXLS

تحديد Slicer‏ Pivot غير OLAP

يضيف الإصدار 2.384.88 اختيار الأعضاء محدد النوع إلى ذاكرات Slicer‏ Pivot غير OLAP المستوردة القابلة للربط بحقول cache المحلية العادية وعروض PivotTable المرتبطة بها

فحص تحديد وتغييره

SlicerCache := Workbook.SlicerCaches.FindByName('SlicerCategory');
if (SlicerCache = nil) or not SlicerCache.IsNonOlapPivot then
  raise Exception.Create('A non-OLAP Pivot Slicer cache is required');
if SlicerCache.SetSelectedItems([1]) <> 1 then
  raise Exception.Create('Slicer selection could not be changed');

يحدد TXLSXSlicerCache.IsNonOlapPivot شكل Pivot الجدولي؛ وتعرض TXLSXSlicerCache.ItemCount وTXLSXSlicerCache.ItemCacheIndex وTXLSXSlicerCache.ItemSelected قائمة الأعضاء المفككة والاختيار

مواضع قائمة الأعضاء مبنية على الصفر؛ ويحدد كل ItemCacheIndex عضوًا مشتركًا في حقل الـ cache المرتبط، فتحتفظ أعضاء الأعداد والنص والقيم المنطقية والتواريخ والفارغ والأخطاء بهويات متمايزة حتى عند تطابق نصها المعروض

يخزن TXLSXSlicerCacheItem‏ CacheItemIndex: Integer وSelected: Boolean؛ وTXLSXSlicerCacheItems هو نوع مصفوفته الديناميكية، بينما تعرض الـ cache الاختيار عبر خصائص مفهرسة للقراءة فقط

تأخذ TXLSXSlicerCache.SetSelectedItems فهارس الأعضاء المشتركين وتعيد 1 عند النجاح أو -1 للاارتباطات غير المدعومة أو غير الصالحة أو غير الآمنة؛ ويُرفض الاختيار الفارغ لأن تنسيق الملف يتطلب عضوًا مختارًا واحدًا على الأقل

تعيد TXLSXSlicerCache.ClearSelection اصطلاح الحالة نفسه وتختار كل الأعضاء؛ وهي تزيل قيد هذا الـ Slicer مع الاحتفاظ بالقيود المستقلة على الحقول الأخرى

العروض المشتركة والفلاتر القائمة

يشكل الأعضاء المختارون داخل cache‏ Slicer واحد اتحادًا؛ وتتقاطع ذاكرات Slicer المطبقة لكل عرض مرتبط صراحةً، بما في ذلك حين يغيب الحقل المختار عن محاور العرض المعروضة؛ وتتشارك عروض واجهة Slicer المتعددة لـ cache واحد الاختيارَ نفسه

استدعِ TXLSPivotTable.Make بكاتب نتائج التطبيق لحساب النتائج الحالية؛ وتغييرات اختيار الـ cache لا تعيد كتابة خلايا ورقة العمل ولا تعيد توليد كل تخطيط أصلي مستورد

يخزن Excel اختيارات Slicer غير OLAP بوصفها إخفاء أعضاء Pivot واختيار صفحات عاديين؛ والتنسيق لا يسجل أي عملية أنشأت علم إخفاء بعينه

قبل تعديل ارتباط مستورد يتحقق HotXLS من تطابق أقنعة الإخفاء والصفحة القديمة للحقل نفسه مع اختيار Slicer القديم الفعلي؛ وتُعامل الأقنعة المطابقة بوصفها مُدارة بالـ Slicer، بينما تُرفض الأقنعة غير المتسقة أو الملتبسة دون تخمين؛ وتبقى الفلاتر اليدوية وفلاتر الصفحات والمتقدمة لحقول غير ذات صلة نشطة

الحفظ وتحديث المصدر

يحدّث الحفظ اختيار الـ Slicer وأقنعة أعضاء Pivot المرتبطة معًا، ويحفظ نطاقات أسماء XML المستوردة والامتدادات غير المعروفة، ويعيد تعيين اتصالات الأوراق إلى هوياتها المحفوظة؛ وتبقى معرِّفات cache‏ Slicer الموسعة متمايزة عن معرِّفات cache‏ Pivot العادية للمصنف

يحتفظ تحديث Pivot cache المحلي بفهارس الأعضاء المشتركين المختارين؛ وتستثني المجموعات الفرعية الصريحة الأعضاء الجدد، بينما تتيح الاختيارات الممسوحة النطاقَ المحدَّث كاملًا

الحدود وسلوك الفشل

يتحقق تغيير الاختيار من كل العروض والأعضاء المرتبطين قبل الالتزام ويستخدم حارس تعديل المصنف؛ والفشل يحفظ الاختيار القائم وقيود العرض وXML الأصلي

تستخدم إضافة ذاكرات Slicer وحذفها ومسحها كذلك حارس الكتابة للمصنف؛ ولا يستطيع عرض مصنف مجمَّد تغيير نتائج Pivot المرتبطة عبر تعديل المجموعات

حذف cache‏ Pivot غير OLAP مرتبط، أو مسح مجموعة تحتوي واحدًا، يُرفض قبل التعديل؛ وتزيل عملية دورة الحياة الصريحة RemoveSlicerCache عروضها الأصلية وتمسح اختيارها أو تنقله إلى أقنعة Pivot العادية

يظل اختيار OLAP وcache الجداول وحقول المصادر المجمَّعة أو المحسوبة والاتصالات المفقودة والنطاقات غير المتسقة وأقنعة الحقل نفسه المستوردة الملتبسة خارج هذه العملية؛ ويحتفظ محتوى الـ cache غير المدعوم بتمثيله الأصلي

يتعامل API الاختيار هذا مع ذاكرات Slicer‏ Pivot المستوردة والمؤلَّفة المدعومة؛ وتأليف العروض المشتركة والحذف الصريح للـ cache متاح في 2.384.94؛ ويستطيع التجسيد الآمن لورقة العمل استبدال الإخراج المحسوب المدعوم، بينما يبقى تقييم عرض بلا بيانات للترشيح المتقاطع عملًا منفصلًا

حذف آخر عرض واجهة لـ cache غير OLAP مرتبط يُرفض قبل تغيير رسمه أو عرضه أو ذاكرته؛ وحذف واحد من عدة عروض واجهة يحتفظ بذاكرتها المشتركة واختيارها

يفحص مسح عروض Slicer لورقة عمل كل cache متأثرًا قبل إزالة أي عرض؛ ويتسبب عرض نهائي مرتبط في رفض ذري، بينما تحتفظ العروض المشتركة مع أوراق عمل أخرى بذاكرتها واختيارها

مرشحات سجلات إضافية

TlxPivotRecordFilter = function(ATable: TXLSPivotTable;
  ARecordIndex: Integer): Boolean of object;
procedure TXLSPivotTable.SetRecordFilter(AOwner: TObject;
  AFilter: TlxPivotRecordFilter);
procedure TXLSPivotTable.ClearRecordFilter(AOwner: TObject);
property TXLSPivotTable.ExternalRecordFilter: TlxPivotRecordFilter;

يسجل TXLSPivotTable.SetRecordFilter نداءً عكسيًا واحدًا لكل مالك غير nil أو يستبدله، ويزيل TXLSPivotTable.ClearRecordFilter نداء ذلك المالك؛ وتمرير نداء nil إلى SetRecordFilter يزيله كذلك

تتقاطع النداءات المسجلة وTXLSPivotTable.ExternalRecordFilter الاختياري قبل فلاتر الجدول وتجميعه الخاصين به؛ ويسجل المصنف نداء Slicer الخاص به استقلالًا فلا يكتب فوق مسند المستدعي

تتسلم النداءات فهارس سجلات مبنية على الصفر، وتُلتقط لقطةً لكل استدعاء Make، ولا تُسلسل ولا تُنسخ بـ AssignPivotOnly؛ ومالكو النداءات وأهدافها تبقى مملوكة للمستدعي ويجب أن تطول عمرها عمر التسجيل