الدروس · الدرس 5 من 5
نقرة واحدة وثلاثة ملفات قد تتخالف
ماذا تنتج قائمة التصدير فعلاً، ومتى يكفّ الجدول والمطبوع عن التطابق، وماذا يسجّل سجلّ التنزيل وماذا لا يسجّل.
الدرس 5 من 5 · 24 د
لماذا هذا هو الدرس الأخير
يصير التقرير حقيقياً حين يغادر المبنى. وقبل ذلك هو شاشة نظر إليها أحد. ولحظة يصير ملفّاً في بريد يصير دليلاً. وسيتصرّف أحدهم بناءً عليه دون أن يرى الشاشة التي جاء منها قطّ. وهذا الدرس عن تلك الفجوة. وهو قصير، وهو الدرس الذي يُحفظ.
كل تقرير مبنيّ في Deduru Apparel يحمل زرّ التصدير نفسه، وخلفه الخيارات الثلاثة نفسها.
الخيارات الثلاثة
| الخيار | ماذا يحدث | ممّ يُصنع |
|---|---|---|
| Excel | تُفتح معاينة ثم يُنزَّل الملفّ | الجدول الذي بناه الخادم |
| CSV | تُفتح معاينة ثم يُنزَّل الملفّ | الجدول الذي بناه الخادم |
| PDF عبر الطباعة | يُفتح حوار الطباعة في المتصفّح | الصفحة التي أمامك |
ومعاينة Excel وCSV معاينة حقيقية: العناوين والصفوف في صندوق تستطيع تمريره، وفوقها عدّ الصفوف. تعرض أول خمسين صفّاً. فإن كان ثمّة مزيد، قال سطر واحد تحتها كم بقي، وأن المجموعة الكاملة في التنزيل. وتستطيع الإلغاء من هناك فلا يُكتب شيء.
أما خيار PDF فلا معاينة خاصّة له، لأن حوار الطباعة هو المعاينة. وشريط الأدوات ورابط الرجوع وصندوق البحث كلها موسومة بألّا تُطبع. فالذي يبلغ الورق هو كتلة الترويسة والأرقام الرئيسة والرسم البياني والجدول.
صندوق البحث وأين لا يصل
لكل شبكة تقرير بحث سريع فوقها وعناوين أعمدة تستطيع الفرز بها. وهي جيّدة، وهي دقيقة.
- اكتب في البحث فيقرأ عدّ الصفوف بجانبه كم صفّاً ترى من كم.
- ويُعاد حساب صفّ المجموع في الأسفل على الصفوف التي تراها. فيكون مجموعاً جزئياً صادقاً لا بقيّة قديمة.
- ويكسب عنوانه كلمة مصفّى بين قوسين، فلا يظنّه أحد الكلّ.
- ولا يُعاد جمع مجموع نسبة مئوية أبداً، لأن جمع النسب بعضها إلى بعض ليس شيئاً.
- والفرز يعرف ما يحمله العمود، والقيم الغائبة تُفرز أخيراً لا بوصفها أصفاراً.
ولا شيء من ذلك يبلغ Excel أو CSV. فهذان يُبنيان من كائن الجدول الذي أنتجه الخادم، وقد ذهب إلى قائمة التصدير قبل أن تعمل الشبكة أصلاً. والبحث والفرز يسكنان داخل الشبكة.
وPDF هو العكس، لأنه المتصفّح يطبع الصفحة. فما على الصفحة هو ما في الملفّ.
فثمّة إذاً حال تتخالف فيها الثلاثة. تفتح Ishara متابعة التوريد، وتكتب اسم مورّد في البحث، فترى أربعة صفوف من أربعين. تأخذ PDF فتحصل على أربعة صفوف. وتأخذ CSV فتحصل على أربعين صفّاً ومجموع.
وليس أيّ من الملفَّين خاطئاً بالنسبة لما هو. الخاطئ هو الجملة على المعاينة. فهي تقول لها إن الملفّ هو بالضبط ما على الشاشة. والملفّ هو بالضبط ما أرسله الخادم، وليست الدعويان واحدة.
التقرير الذي يُغفل جدولُه رقمَه الرئيس
تقرير الأداء هو أحدّ الأمثلة، وهو يذهب في الاتجاه المعاكس.
لجدوله القابل للتصدير أربعة أعمدة: المشتري، والعيوب، والمنتَج، ومعدّل العيوب. وكل ما عدا ذلك على تلك الصفحة يجلس تحت الجدول محتوىً إضافياً للصفحة. وهو نسبة التسليم في موعده، وعدّا ما في الموعد والمتأخّر، والشحنات بلا تاريخ، والصورة الحيّة لما هو معرَّض للخطر، ورسم إنتاج الأشهر الستة.
وكلّه يُطبع. ولا شيء منه في الجدول المصدَّر.
فالزميل الذي يطلب تقرير التسليم في موعده ويأخذ ملفّ Excel يتلقّى جدول معدّل عيوب لا رقم تسليم فيه في أي مكان. ولا شيء يحذّره. والملفّ مسمّى باسم التقرير، ويحوي جزءاً صادقاً منه.
ماذا يسجّل سجلّ التنزيل
كل توليد يكتب صفّاً واحداً. لا صفّاً لكل سجلّ في التقرير. بل صفّاً واحداً لفعل أخذه.
| المخزَّن | مثال في Deduru |
|---|---|
| أي تقرير | دفتر الطلبيات |
| النطاق | كل المشترين |
| المرشِّحات | قيم المرشِّح التي مرّرتها الصفحة، نصّاً قصيراً |
| الصيغة | Excel أو CSV أو PDF أو الشاشة |
| عدّ الصفوف | عدد صفوف كائن الجدول |
| مَن | الحساب الداخل |
| متى | اللحظة التي سُجّل فيها |
وثلاثة أشياء عن ذلك الصفّ تستحقّ دقّة.
عدّ الصفوف يشمل صفّ المجموع. فتقرير دفتر الطلبيات يعدّ مشتريه، ويترك المجموع الذي يضيفه في آخره خارج ذلك العدّ عن قصد. أما السجلّ فيأخذ طول الجدول بدلاً منه. فعلى تقرير فيه صفّ مجموع، يقرأ السجلّ أعلى بواحد ممّا يقوله التقرير.
وPDF يُسجَّل قبل فتح الحوار. يُكتب السجلّ، ثم يُطلب من المتصفّح أن يطبع. ألغِ الحوار فيبقى في السجلّ توليد PDF لم ينتج ملفّاً. أما Excel وCSV فيُسجَّلان بعد بدء التنزيل.
والإخفاق صامت. فالكتابة تمرّ بإجراء على الخادم فيه أربعة رفوض. لا جلسة، أو حساب مورّد، أو مفتاح تقرير مجهول، أو تقرير لا يراه دورك. وكل واحد منها يعيد رفضاً هادئاً بدل أن يرفع خطأً. والصفحة لا تنتظر الجواب، ولا تعرضه.
السجلّ الذي لا يستطيع أحد قراءته
له جدول، وعليه فهرس على مفتاح التقرير. وله دالّة تكتب فيه، ودالّة تقرأه إمّا مصفّىً بتقرير وإمّا كاملاً.
ولا شاشة في التطبيق تستدعي القارئة. والشيء الوحيد في المستودع الذي يستدعيها اختبار.
قاعدتان تأخذهما معك
الملفّ ليس الشاشة، والسجلّ ليس الملفّ. تنتج النقرة الواحدة ثلاثة أشياء مختلفة، وكل واحد منها قد يكون محقّاً في شيء مختلف. فقبل أن ترسل شيئاً، اعرف أيّ الثلاثة تحمل.
والتصدير فعل يستطيع أحد أن يسألك عنه. يُسجَّل باسمك، ويبقى السجلّ طويلاً بعد أن تنسى أي مرشِّح كان في الصندوق. وذلك شيء حسن، ويستحقّ أن تتصرّف كأنه مرئي، لأنه سيصير كذلك يوماً.
اختبر فهمكتفرز Dilhani تقرير حال الطلبيات بتاريخ الشحن، وتبحث عن مشترٍ واحد، وتصدّر CSV وترسله. ماذا يتلقّى المشتري، وأيّ جزء من التطبيق ضلّلها؟أظهر الإجابة
يتلقّى المشتري كل طلبية نشطة في مساحة العمل، بترتيب التقرير نفسه الأكثر إلحاحاً أولاً. لا المشتري الواحد الذي بحثت عنه، ولا فرزها هي. فالبحث والفرز سلوك الشبكة ولا يبلغان الجدول أبداً. والذي ضلّلها هو السطر الفرعي في المعاينة. فهو يصف الملفّ بأنه بالضبط ما على الشاشة، بينما يعرض عليها صفوفاً كانت الشاشة تخفيها. والعلاج شريط مرشِّحات التقرير الذي يطيعه الخادم، أو مسح البحث أولاً.
موجّه · افحص تصهذهراً قبل أن يغادر المبنى
كلما أوشكت أن ترفق تقريراً ببريد يخرج من فريقك.
أجرِ معي فحصاً قصيراً على ملفّ تقرير قبل أن أرسله. سأقول لك أي تقرير هو، وأي صيغة أخذت، وهل كتبت شيئاً في صندوق البحث، وهل فرزت عموداً، ومَن يستلمه. أولاً، قل لي ماذا في الملفّ فعلاً. فملفّ الجدول مبنيّ ممّا أنتجه الخادم، فالبحث الذي كتبته والعمود الذي فرزته ليسا فيه. أما الملفّ المطبوع فهو الصفحة كما تركتها، فكلاهما فيه. قل أيّ الاثنين أحمل وماذا يعني ذلك للصفوف. ثانياً، اسألني هل يوجد شيء مهمّ على ذلك التقرير خارج الجدول. فبعض التقارير تحمل أرقاماً رئيسة ورسماً بيانياً فوق الشبكة أو تحتها، وتلك تُطبع ولا تكون في الجدول المصدَّر. فإن قلت لا أعرف، فقل لي أن أنظر إلى الصفحة وأعدّ ما ليس في صفّ. ثالثاً، اسأل عن التكلفة. هل يحمل هذا التقرير سعراً أو هاليساً أو قيمة خطّ أنابيب، وهل المقصود أن يراها المستلِم. رابعاً، اكتب لي جملة الغلاف. يجب أن تسمّي التقرير، والنطاق الحقيقي للملفّ، والمدّة، بكلماتي البسيطة لا بالعنوان الذي على الصفحة. وأخيراً، ذكّرني بأن التنزيل سُجّل باسمي علماذا. اسألني هل سأكون مرتاحاً لشرح هذا الإرسال بعد ستة أشهر، وإن لم أكن، فقل لي ماذا أغيّر.
قد يخطئ الذكاء الاصطناعي — تحقّق من أي شيء ستتصرّف بناءً عليه.