وثائق HotXLS / مرجع API

Timeline‏ Pivot وحالات بيانات Slicer

متاحة منذ الإصدار 2.384.98 لجداول PivotTable المحلية غير OLAP المدعومة عبر واجهة مصنفات XLSX

إنشاء Timeline وربطه

TimelineCache := Workbook.CreatePivotTimelineCache(Pivot, 'EventDate');
if TimelineCache = nil then
  raise Exception.Create('The Timeline cache was rejected');
TimelineView := ReportSheet.Timelines.Add(TimelineCache, 2, 7, 7, 12);
if TimelineView = nil then
  raise Exception.Create('The Timeline view was rejected');
if TimelineCache.SetDateRange(EncodeDate(2026, 1, 1),
    EncodeDate(2026, 1, 31)) < 0 then
  raise Exception.Create('The Timeline selection was rejected');

ينشئ TXLSXWorkbook.CreatePivotTimelineCache(ATable: TXLSPivotTable; const AFieldName: WideString): TXLSXTimelineCache ذاكرة حقل تواريخ متحقق منها أو يعيد استخدامها مع هويات الحزمة المطلوبة لها؛ ويعيد الفشل nil قبل الالتزام بالحالة المجهزة

يعرض TXLSXWorkbook.TimelineCaches‏ TXLSXTimelineCaches مع Count وItems[Index] مبنيًا على الصفر وFindByName غير الحساسة لحالة الأحرف؛ ويمتلك المصنف هذه الذواكر

يحدد TXLSXTimelineCache.Name الـ cache وSourceName يحدد حقل مصدره وIsNonOlapPivot يحدد الارتباط المدعوم المتحقق منه؛ وتحتفظ الذواكر المستوردة غير المدعومة بـ XML الأصلي

يربط TXLSXTimelineCache.ConnectPivotTable(ATable: TXLSPivotTable): Integer عرضًا آخر مملوكًا لنفس PivotCache بحقل تواريخ متوافق؛ ويعيد 1 عند النجاح بما يشمل اتصالًا قائمًا، أو -1 عند الرفض

يستخدم TXLSXTimelineCache.SetDateRange(AStartDate, AEndDate: TDateTime): Integer طرفي أيام كاملة شاملين ويعيد 1 أو -1؛ ويجب أن يكون الطرفان تاريخين صحيحين من 1 يناير 1900 إلى 31 ديسمبر 9999 بترتيب تصاعدي

يستخدم المصنف المدعوم نظام التاريخ 1900؛ ويُرفض تأليف Date1904 وطرفا اختيار كسريان، بينما يجوز لقيم تواريخ المصدر أن تحتفظ بوقت اليوم وتبقى السجلات عبر يوم النهاية المختار مؤهلة

تعرض TXLSXTimelineCache.SelectionActive وStartDate وEndDate الحدود النشطة؛ ويمسح ClearSelection: Integer تلك الحدود دون تغيير فلاتر أخرى ويعيد 1 أو -1

تتقاطع الاختيارات مع Slicers أخرى وفلاتر يدوية أو صفحات ومسندات المستدعي؛ وهذه العمليات لا تحدّث ذاكرات مصادر ولا تعيد حساب الصيغ ولا تعيد كتابة خلايا تقرير ورقة العمل القائمة

عروض Timeline وحذفها

يعرض TXLSXWorksheet.Timelines مجموعة TXLSXTimelines المملوكة لورقة العمل مع Add وFindByName وItems[Index] مبنيًا على الصفر وCount وDelete(Index) وClear؛ ويزيل الحذف الواجهة مع الاحتفاظ بذاكرتها المشتركة واختيارها

يقبل TXLSXTimelines.Add(ACache: TXLSXTimelineCache; ARow1, ACol1, ARow2, ACol2: Integer): TXLSXTimeline ذاكرة مدعومة مملوكة ومستطيل ورقة عمل مرتبًا قائمًا على الواحد، ويعيد عرضًا مملوكًا أو nil

TXLSXTimeline.Name للقراءة فقط، وCache يحدد ذاكرته المشتركة، وCaption يغيّر التسمية المعروضة؛ ويقبل Level قيمة 0 للسنوات و1 للأرباع و2 للأشهر أو 3 للأيام

يغيّر TXLSXTimeline.SetBounds المستطيل القائم على الواحد الذي تعرضه FromRow وFromCol وToRow وToCol؛ وتُثار الهندسة غير الصالحة أو الارتباطات غير المدعومة أو هندسة رسم مجمَّعة قبل التعديل

يعيد TXLSXDrawingObject.Timeline العرض المرتبط لنوع الرسم xlsxDrawingTimeline؛ وتظل تحويلات الرسم غير المدعومة المباشرة محرسة

Status := Workbook.RemoveTimelineCache(TimelineCache,
  xlsxSlicerPreserveCurrentSelection);

يجِّئ TXLSXWorkbook.RemoveTimelineCache(ACache: TXLSXTimelineCache; AMode: TXLSXSlicerRemovalMode): Integer الفلاتر المرتبطة والواجهة والأسماء وتنظيف الحزمة معًا ويعيد 1 أو -1

يزيل xlsxSlicerClearSelection الاختيار؛ ويحتفظ xlsxSlicerPreserveCurrentSelection باختيار نشط بوصفه مقارنة تواريخ ليوم كامل فقط عندما يكون حقل التاريخ أصلًا على محور صفوف أو أعمدة في كل عرض مرتبط

حقل تاريخ غير مستخدم أو صفحة فقط يرفض الحذفَ الحافظ للاختيار ذريًا؛ واستخدم الحذف مع مسح الاختيار الصريح عندما يكون ذلك السلوك مقصودًا

لا يُطبَّع استيراد الفلاتر إلا بعد التحقق من كل اتصال ونطاق اسم موروث وأصل الفلتر المملوك التام؛ وتحتفظ سمات أو أبناء الحقل نفسه المعتمة ونطاقات الأسماء الأجنبية والارتباطات الخارجية ورسوم واجهات متعددة غير المدعومة بـ XML وترفض التعديل

يجِّئ التجسيد الأصلي اختيار Timeline الحالي مع بيانات التقرير الوصفية والخلايا، مازيلًا توقيع الفلتر المملوك المحفوظ التام فقط؛ ولقيود النداءات العشوائية تمثيل XML أصلي ولا يستطيع تحديث Excel إعادة إنتاجها

يحفظ حفظ OOXML أنواع العلاقات الأصلية والمسارات الأصلية والامتدادات غير ذات الصلة؛ ويرفض الحفص الصارم الخاص بالـ cache فقط، ويبلّغ تحويل ODS عن فقد Timeline، ويرفض مجموعة قيم وأنماط XLSB الـ Timelines

تحديث حالة بيانات Slicer الأصلية الصريح

function TXLSXSlicerCache.RefreshItemDataStates: Integer; overload;
function TXLSXSlicerCache.RefreshItemDataStates(
  AMaxEvaluationSteps: Integer; ACancelFlag: PBoolean = nil): Integer; overload;

تقيّم العملية متجه بلا بيانات الأصلي الكامل وتجهزه ثم تلتزم تحت حارس كتابة للمصنف؛ ويعيد النجاح 1 ويعيد الرفض -1 دون تغيير أعلام العناصر المسلسلة أو الاختيارات

تتجاهل اختيار هذا الـ Slicer نفسه أثناء تقاطع اختيارات Slicer وTimeline الأخرى والفلاتر اليدوية أو صفحات وفلاتر التجميع المدعومة ومسندات المستدعي؛ والتوافر هو الاتحاد عبر العروض المرتبطة المدعومة

يتسلم الأعضاء التاريخيون المختارون بلا سجلات مؤهلة علمَ بلا بيانات الأصلي مع الاحتفاظ باختيارهم؛ وتبقى معرِّفات الـ cache المستقرة وترتيب العناصر السلكي الأصلي وXML غير ذي الصلة سليمة

الحد التراكمي الافتراضي للخطوات هو 1000000؛ والصفر يعني خطوات بلا حد، والقيمة السالبة تُرفض، ويحصر FormulaArrayMemoryLimit تجهيز البيانات الوصفية وكل معاينات العروض المرتبطة تراكميًا

الإلغاء أو استثناءات النداء أو إعادة الدخول أو العروض المجمَّدة أو الارتباطات غير المدعومة أو استنفاد الميزانيات أو تغيّر حالة التقييم تُرفض قبل الالتزام بالأعلام؛ وتظل تغييرات النموذج المشترك المستقلة التي يجريها نداءات المستدعي تغييراتِ المستدعي وتتسبب في رفض التحديث

يقرأ TXLSXSlicerCache.CrossFilter إعداد الترشيح المتقاطع الجدولي الأصلي ويكتبه تحت حارس التعديل؛ ويفعّل showItemsWithDataAtTop الترتيبَ الأصلي البيانات أولًا دون إعادة كتابة الترتيب السلكي للعناصر

يبقى ItemHasData استعلامًا للقراءة فقط؛ والحفظ لا يستدعي المقيّم ولا يحدّث أعلام بلا بيانات ضمنيًا، فاستدعِ RefreshItemDataStates صراحةً قبل الحفظ عند وجوب تحديث حالة واجهة Slicer الأصلية

دلالات فلتر التواريخ المتقدمة

يطلب TXLSPivotFilter.UseWholeDay مقارنات تواريخ ليوم كامل لفلاتر التواريخ المدعومة؛ وتستخدمه الاختيارات المحفوظة المولَّدة بـ Timeline بينما تحتفظ فلاتر التواريخ العادية بسلوكها الحساس للوقت السابق

راجع إخراج Pivot الأصلي وتوافر Slicer للقراءة فقط ودورة حياة الـ cache والـ Slicer المحليين لعقود التحديث والملكية المحيطة