کارهای منتخب · ۰۲ / ویژوالهای سفارشی
نمودارهایی که باید میساختیم.
Power BI با مجموعهای ثابت از نمودارها میآید. آنچه لازم داشتیم میانشان نبود؛ بخشی را خودم ساختم و برای بقیه تیم را فنی هدایت کردم. تا اینجا شش ویژوالِ سفارشی: یک نقشهٔ حرارتیِ بدن، یک ویژوالِ میلهای، یک گِیج، یک ستونِ تغییرِ انباشته و کارتهای KPI، همه در TypeScript. پایینتر، زنده، بازسازی شدهاند.
توضیح دربارهٔ دادههای نمایشی. همهٔ مقادیر، تاریخها، شمارِ آسیبها، درصدها، روندها و مقایسههای این صفحه دادهٔ نمونهٔ ساختگیاند و فقط برای نشاندادنِ ویژوالها ساخته شدهاند. معرفِ افراد، رویدادها، سازمانها یا عملکردِ واقعیِ کسبوکار نیستند.
دموی تعاملییک بازهٔ زمانی انتخاب کن. ببین الگو چطور تغییر میکند.
بهاختصار
یک ویژوالِ سفارشی، برنامهٔ کوچکی است که Power BI درون گزارش اجرا میکند: داده و اندازهٔ کادر را به کدت میدهد، و کدِ تو پیکسلها را میکشد.
کد است، نه یک قالب
یک کلاسِ TypeScript که یک اینترفیس را پیاده میکند. نه کشیدنورهاکردن؛ هر پیکسل بهعمد کشیده شده.
۰۱ · IVisual · TypeScriptPower BI داده را به آن میدهد
فیلدهایی را که میپذیری اعلام میکنی؛ میزبان داده را شکل میدهد و در هر تغییر میفرستد.
۰۲ · capabilities · dataViewتو پیکسلها را میکشی
با داده و viewport، کد چیدمانِ SVG را میسازد: میلهها، مسیرها، برچسبها، یک پنلِ کاملِ آمار.
03 · SVG · چیدمانِ توبهصورت یک فایل منتشر میشود
در یک .pbiviz واحد بسته میشود: کد، استایل و آیکون با هم zip شده، آمادهٔ import در هر گزارشی.
چطور کار میکند
Power BI میگوید. کدِ تو میکشد.
یکبار ساخته میشود. بعد update() در هر تغییرِ داده، اندازه یا تنظیم فراخوانده میشود. حلقه را اجرا کن
constructor
میزبان ویژوال را میسازد و المانِ DOM را تحویل میدهد. تو <svg>ات را برپا میکنی.
تغییرِ داده / اندازه / تنظیم
کسی فیلتر میکند، اندازه را عوض میکند، یا یک کنترلِ قالب را تنظیم میکند.
update(options)
میزبان update()ات را با optionsِ تازه فرا میخواند.
options.dataViews[0]
دادهٔ بازچیدهشده و تنظیماتِ فعلی را بیرون میکشی.
render() → SVG
بوم را پاک کن، در اندازهٔ تازه دوباره بکِش.
گروهبندی bodyRegion + سنجهٔ injuryCount dataView دستهای SVG طراحیشده برای همین کار.
categories[] + values[]
ویژوالِ یک · نقشهٔ آسیبِ بدندادهٔ نمونه
آسیبها، روی بدن نقشهبرداریشده.
دو فیلد به داخل: یک ناحیهٔ بدن و یک شمارِ آسیب. هر ناحیه روی مقیاسی پنجباندی رنگ میگیرد؛ پنل آنها را گروه میکند و بدترینها را برجسته میکند. روی یک ناحیه کلیک کن تا رویش تمرکز کنی
آسیبها بر پایهٔ گروهِ بدن
باندها: 1–5 · 6–15 · 16–40 · 41+، همه رنگهای پنلِ قالب. این نمونهٔ اولیه است. دوقلوی منتشرشدهاش bodyInjuryHeatmap باندها را با یک گرادیانِ نرمِ min→max جایگزین میکند، چپ را از راست تشخیص میدهد، و انتخابِ Power BI، همبرجستهسازی و تولتیپها را وصل میکند.
دادهای که پشتش است
دو فیلد به داخل. یک تصویر به بیرون.
اعلام میکند چه میپذیرد: یک گروهبندی، یک سنجه. Power BI گزارش را به یک dataViewِ categorical بازشکل میدهد. یک ردیف را روشن/خاموش کن، dataView را ببین
dataViewآنچه update() دریافت میکند: categorical
ویژوالِ دو · ویژوالِ میلهایدادهٔ نمونه
نمودارِ میلهایای که کاری میکند که نمونهٔ داخلی نمیکند.
جزئیاتی که نمودارِ میلهایِ داخلی نادیده میگیرد، هرکدام یک کنترل در پنلِ قالب. پنل را عوض کن. نمودار دنبال میکند
پنل از کجا میآید
یک کنترل اعلام کن. Power BI پنل را میکشد.
پنل را هرگز با دست نمیسازی. typeِ هر ویژگی را اعلام میکنی و میزبان کنترل را رندر میکند. یک type انتخاب کن
یک بولی (boolean) در پنل کلیدِ روشن/خاموش میشود و در مدلِ تنظیماتت بهصورتِ true / false میآید.
ویژوالِ سه · گِیجِ نیمدایرهدادهٔ نمونه
روی هدف، در یک نگاه.
یک مقدار، سه وضعیت. کمان، عدد و وضعیت با هم بهروز میشوند. مقدار را بکِش
کمینه/بیشینه، ناحیهها و نشانگرها همه کنترلهای پنلِ قالباند.دادهٔ نمونه
باقیِ قفسهدادهٔ نمونه
همان غریزه، چند بارِ دیگر.
دو تای دیگر: یک ستونِ انباشته که تغییرِ خودش را میان دورهها یادداشت میکند، و رشتهای از کارتهای KPI. تکانشان بده
ستونِ انباشته + تغییر
v3.5.8 · راهنما · دریلداون · دلتاهای تغییرMultiCard
v1.3.2 · کارتهای KPI · ردیف یا ستونتکرار
یک نسخهٔ خوب در واقع شش تاست.
هر انتشار یک چیز را که گزارشی میخواست افزود. بستهٔ قدیمی هرگز بازنویسی نشد، فقط جایگزین شد. نسخهها را مرور کن
نقشِ Values هم معیار (measure) میگیرد هم گروهبندی؛ با «جمع نزن»، مقادیرِ خامِ هر دسته میآید، نه یک جمعِ اجباری.
در قالبِ اعداد
خانواده، شمردهشده.
هر دو با SVGِ خام روی APIِ powerbi-visuals کشیده شدهاند. نه کمککنندهٔ نمودارِ D3، نه چارتسازیِ شخصِثالث. هر رنگ، فونت و کادر یک کنترلِ پنلِ قالب است.