41
من اخیراً گزارشی با تعداد ستونهای تعریف نشده تهیه کردم. من تمایلی به خراب کردن کد نداشتم ، تصمیم گرفتم این کار را در ACS انجام دهم. مشکلی در این مورد وجود نداشت ، لازم بود که نتیجه را بر روی یک طرح دلخواه قرار دهید (عنوان خود شما + ... 27
اگرچه زبان آموزان ACS در روز اول یا دوم با این مسئله روبرو می شوند ، اما این باید در بخش سQالات متداول باشد. یک مثال ساده از خروجی برنامه ای گزارش مربوط به یک طرح با استفاده از تنظیمات پیش فرض. // طرحواره را از ... 18
هنگام تولید گزارش در ACS ، به طور پیش فرض ، همه گروه بندی ها گسترش می یابد ، اما اتفاق می افتد که لازم است بلافاصله پس از تولید گزارش با گروه های فروپاشیده نشان داده شود! این کد در ماژول گزارش به شما امکان می دهد تا سقوط کنید ... 10
در این برگه ، می توانید مشخص کنید که کدام ارتباطات بین دو یا چند مجموعه داده ایجاد می شود ، با توجه به چه پارامترها و شرایطی..png 1. "منبع ارتباطی" - اولین مجموعه داده را نشان می دهد ، از ... 9
اینکه هنگام تهیه گزارشات ، لازم است که برای کاربری با حقوق محدود ، گزارش بدون بررسی حقوق کاملاً تولید شود! به خصوص اگر RLS پیکربندی شده باشد. روشهای مختلفی برای انجام این کار وجود دارد: 1. نصب ...

گاهی اوقات اتفاق می افتد که داده های یک گزارش با استفاده از یک پرس و جو یا ترکیبی از سeriesالات قابل بازیابی نیستند. برای جمع آوری داده ها باید از نوعی رویه استفاده کنید و داده ها در جدول مقادیر قرار می گیرند. این سال مطرح می شود - آیا می توان از این داده ها در طرح ترکیب داده استفاده کرد؟ از این گذشته ، SKD ابزاری قدرتمند و راحت است. به نظر می رسد که استفاده از داده های یک جدول مقادیر به عنوان منبع داده برای گزارش در ACS امکان پذیر است و به هیچ وجه دشوار نیست. این مقاله به شما نحوه ایجاد چنین گزارشی برای فرمهای منظم را نشان می دهد.
بنابراین چگونه می توان با استفاده از داده های جدول مقادیر ، گزارش ACS ایجاد کرد؟ همه چیز به ترتیب.
اول از همه ، تنظیم کننده را باز کنید و یک گزارش خارجی جدید ایجاد کنید.

ماژول شی را باز کرده و روی OnCompositionResult یک رویه از پیش تعریف شده ایجاد کنید (ResultDocument ، DecodingData ، StandardProcessing)

در این روش ، ما داده ها را جمع آوری می کنیم و گزارش تهیه می کنیم.
در روش OnCompositionResult ، پردازش استاندارد را غیرفعال کنید. پردازش استاندارد \u003d نادرست ؛
سپس یک جدول از مقادیر را به روشی دلخواه تشکیل می دهیم. نام ستون های جدول مقدار باید با زمینه های آینده مجموعه داده در ACS مطابقت داشته باشند:


بیایید سه خط داده را به عنوان مثال اضافه کنیم. بعد ، گام به گام ، یک خروجی گزارش ایجاد کنید.

  • از نمودار ، تنظیمات پیش فرض را دریافت می کنیم.

  • ما داده های رمزگشایی را به متغیر مربوطه ارسال می کنیم.

  • ما با استفاده از سازنده طرح ، طرح را شکل می دهیم.

  • ما طرح ، تنظیمات و داده های رمزگشایی را به طرح بندی طرح منتقل می کنیم.

  • ما با استفاده از پردازنده کامپوزیت آهنگ سازی می کنیم. برای انجام این کار ، ما روش Initialize پردازنده ترکیب داده را اجرا می کنیم. به عنوان پارامتر ، ما از الگوی ترکیب داده ، مجموعه داده های خارجی (نوع: ساختار ، کلید ساختار باید با نام شی در طرح ترکیب داده مطابقت داشته باشد ، مقدار جدول تولید شده از مقادیر است) ، داده های رمزگشایی.

  • قسمت سند صفحه گسترده را پاک می کنیم.

  • ما نتیجه را در یک سند صفحه گسترده نمایش می دهیم.
نتیجه کد زیر است:
DataCompositionSchema \u003d GetLayout ( "BasicDataCompositionSchema"); // تنظیمات \u003d DataCompositionSchema.Default تنظیمات؛ // - اگر همانطور که در بالا نشان داده شده انجام دهید (در برخی منابع توصیه می شود) ، پس هنگام تغییر تنظیمات در حالت مشتری // این تغییرات را مشاهده نخواهید کرد ، زیرا تنظیمات همیشه به صورت پیش فرض انجام می شوند. نحوه انجام صحیح آن - گزینه زیر تنظیمات \u003d تنظیمات پیوند دهنده. GetSettings () ؛ DecryptionData \u003d داده NewDataCompositionDecryption؛ Layout Composer \u003d New DataComposition Layout Composer؛ LayoutLayout \u003d طرح بندی. اجرا (طرح ترکیب داده ، تنظیمات ، رمزگشایی داده ها) ؛ ExternalDataset \u003d ساختار جدید ( جدول مثالها، TZVyvod) ؛ DataCompositionProcessor \u003d New DataCompositionProcessor؛ پردازشگر ترکیب داده مقداردهی اولیه (LayoutDataset، ExternalDataSet، Decryption Data)؛ نتیجه گیری پاک کردن ()؛ OutputProcessor \u003d New OutputProcessorDataCompositionResultInTableDocument؛ پردازنده خروجی InstallDocument (DocumentResult) ؛ پردازنده خروجی خروجی (پردازشگر DataComposition) ؛ طرح نمودار طرح را اضافه کنید. می توانیم نام را به عنوان پیش فرض بگذاریم.

ما یک مجموعه داده ایجاد می کنیم. برای انجام این کار ، یک مجموعه داده جدید از نوع Object اضافه کنید. در قسمت Name از شی containing حاوی داده ها ، نامی را که هنگام ایجاد ساختار ExternalDataSet به عنوان کلید تعیین کردیم قرار دهید. سپس فیلدها را اضافه می کنیم. نام ها باید دقیقاً با نام ستون ها در جدول مقدار مطابقت داشته باشند. بعد ، ما می توانیم مقادیر ، قالب ها و غیره معتبر را تعیین کنیم.

در صورت نیاز منابع را اضافه کنید. نتایج بر روی آنها در نظر گرفته خواهد شد. در مورد ما ، این قسمتها مقدار و مقدار هستند.

در برگه تنظیمات ، با استفاده از طراح تنظیمات ، یک نسخه پیش فرض از گزارش ایجاد کنید

ما گزارش خود را ذخیره می کنیم. ما آن را در مشتری راه اندازی می کنیم و شکل می دهیم. نمونه ای از اجرای گزارش ACS با استفاده از داده های جدول مقادیر در تصویر نشان داده شده است.


همین. به اندازه کافی ساده است ، نه؟

گزارش حاصل به عنوان مثال می تواند بارگیری شود

هنگام باز کردن شعب جدید شرکت ، برای محاسبه بار در سرور 1C: Enterprise و سایر وظایف ، ممکن است لازم باشد که پویایی کار کاربر را در infobase به صورت نمودار مشاهده کنید.

پویایی باید برای دوره انتخاب شده توسط کاربر نشان داده شود. داده های نمایش داده شده تعداد اقدامات این کاربران در چهار ساعت است. اطلاعات مربوط به چنین گزارشی را می توان از دفترچه یادداشت بدست آورد.

بیایید ایجاد گام به گام چنین گزارشی را در نظر بگیریم و از یک مجموعه داده خارجی برای ساخت آن بر روی سیستم ترکیب داده استفاده کنیم.

ما ثبت نام را می خوانیم

بنابراین ، ما گزارش مربوط به SKD را خواهیم ساخت. ما داده ها را نه با استفاده از درخواستی از پایگاه داده ، بلکه از طریق گزارش دریافت خواهیم کرد. من در مورد نحوه ذخیره سازی log توسط سیستم عامل در مقاله قبلی نوشتم.

مطابق با دوره مشخص شده در گزارش ، ما باید تمام اقدامات کاربر را با اطلاعات infobase بدست آوریم. جدول حاصل را بر اساس کاربر گروه بندی کرده و آن را به صورت نمودار نمایش دهید (به تصویر بالا مراجعه کنید).

برای به دست آوردن اطلاعات از ثبت نام ، ما از روش جهانی "UnloadLogRegister ()" استفاده خواهیم کرد. در رویداد "OnCompositionResult" گزارش تولید شده ، کد برنامه زیر را اضافه کنید:

رویه OnCompositionResult (ResultDocument ، DecodeData ، StandardProcessing) StandardProcessing \u003d False؛ // خروجی استاندارد گزارش را غیرفعال کنید - ما به صورت برنامه ریزی خروجی خواهیم گرفت // تنظیمات گزارش را دریافت کنید ، از جمله دوره زمانی تنظیمات \u003d تنظیمات پیوند دهنده. GetSettings () ؛ // تنظیمات گزارش را دریافت کنید ParameterPeriod \u003d آهنگساز تنظیمات. GetSettings (). پارامترهای داده عناصر. پیدا کردن ("دوره"). مقدار؛ ZhurTab \u003d جدول جدید ارزشها؛ انتخاب مجله \u003d قاب جدید؛ // ساختاری برای انتخاب دفترچه ثبت ایجاد کنید // انتخاب را براساس دوره پر کنید انتخاب مجله. درج ("تاریخ شروع" ، ParameterPeriod. تاریخ شروع) ؛ انتخاب مجله. درج ("تاریخ پایان" ، ParameterPeriod. پایان تاریخ)؛ // انتخاب رویدادها را تنظیم کنید آرایه رویدادها \u003d آرایه جدید؛ مجموعه ای از رویدادها افزودن ("_ $ Data $ _ ... حذف... جدید") ؛ آرایه ای از رویدادها. افزودن (" _ $ Data $ _ ... پست") ؛ آرایه ای از رویدادها. افزودن (" _ $ Data $ _ ... TotalsPeriodUpdate") ؛ آرایه ای از رویدادها. افزودن (" _ $ Data $ _ ... ارسال مجدد") ؛ آرایه ای از رویدادها. افزودن (" _ $ Data $ _ ... به روز رسانی")؛ SelectLog. درج (" رویداد "، آرایه ای از رویدادها)؛ // گزارش را بارگیری کنید UnloadRegisterJ Journal (ZhurTab ، مجموعه ای از رویدادها) ؛ // داده ها را برای خروجی به گزارش ایجاد و پر کنید ZhurTab ستون ها. افزودن ("زمان") ؛ ZhurTab ستون ها. اضافه کردن (" تعداد رویدادها") ؛ برای هر صفحه از چرخه LogTabs زمان صفحه \u003d ساعت (تاریخ صفحه) ؛ تعداد صفحه از رویدادها \u003d 1 ؛ پایان چرخه // نتیجه را گروه بندی کنید ZhurTab سقوط - فروپاشی (" نام کاربری ، زمان" , " تعداد رویدادها" ) ; // ..............

اولین پارامتر روش "UnloadLogRegister" جدول مقادیری را تنظیم می کند که نتیجه انتخاب از دفتر ورود به سیستم بارگیری می شود. پارامتر دوم تنظیم فیلتر بر روی سوابق انتخاب شده است. فیلتر یک ساختار است ، کلیدهایی که در آن فیلدهایی هستند که فیلتر توسط آنها تنظیم می شود. ما برای تنظیم دوره تجزیه و تحلیل ورود به سیستم ، از قسمتهای "تاریخ شروع" و "تاریخ پایان" و همچنین قسمت "رویداد" استفاده می کنیم ، که یک آرایه از رشته ها (نام رویدادها) را به آن منتقل می کنیم. وقایع اضافه شده به آرایه مربوط به عملکردهای داده های موجود در پایگاه داده است.

می توانید اطلاعات بیشتر در مورد استفاده از روش "UnloadLogRegister" را در راهنمای نحو مطالعه کنید.

ما جدول مقادیر را به ACS منتقل می کنیم

برای اینکه ACS بتواند با جدول مقادیر بدست آمده کار کند ، باید موارد زیر را انجام دهید:

1) یک مجموعه داده در طرح طرح ایجاد کرده و قسمتهای آن را تنظیم کنید.
2) در کد برنامه ماژول "AtCompositionResult" ، انتقال جدول مقادیر به ACS را بنویسید.

// نتیجه را گروه بندی کنید ZhurTab سقوط - فروپاشی (" نام کاربری ، زمان" , " تعداد رویدادها")؛ DecryptionData \u003d NewDataCompositionDecryptionData؛ // داده های رمزگشایی ایجاد کنید Layout Composer \u003d New DataComposition Layout Composer؛ // یک آهنگساز طرح بندی ایجاد کنید // با استفاده از طرح ترکیب داده ها ، طرح را اولیه کنید // و تنظیمات و داده های رمزگشایی قبلاً ایجاد شده DataCompositionSchema \u003d GetLayout (" طرح بندی BasicData") ؛ LayoutComposer \u003d LayoutComposer. اجرا (DataCompositionSchema ، تنظیمات ، ExpansionData)؛ // نتیجه را بسازید پردازنده ترکیب \u003d پردازنده جدید ترکیب داده چیدمان پردازنده. مقداردهی اولیه (طرح بندی طرح ، // !!! ما جدول "ZhurTab" را به پردازنده چیدمان منتقل می کنیم !!! ساختار جدید (" ثبت نام"، ZhurTab) ، داده های رمزگشایی)؛ DocumentResult. پاک کردن ()؛ // نتیجه را در یک سند صفحه گسترده صادر کنید OutputProcessor \u003d NewDataCompositionOutputResultProcessor در یک سند جدولی؛ پردازنده خروجی InstallDocument (DocumentResult) ؛ پردازنده خروجی خروجی (پردازنده چیدمان) ؛ پایان رویه

3) منابع و ساختار گزارش را تنظیم کنید (برای جزئیات بیشتر ، به گزارش گزارش مراجعه کنید ، پیوند آن در انتهای مقاله آورده شده است).

این تنظیمات گزارش را کامل می کند و می توانیم آن را در حالت سازمانی اجرا کنیم.

نتیجه

یک منبع داده خارجی در ACS به ما امکان می دهد از داده ها در گزارشات تقریباً از هر منبعی استفاده کنیم ، از جمله منابعی که نمی توانیم داده هایشان را با درخواست دریافت کنیم.

با استفاده از ACS برای چنین منابعی امکان ایجاد گزارش با سیستم انعطاف پذیر تنظیمات فراهم می شود و همچنین به کاربر اجازه می دهد خروجی گزارش ، ساختار آن را تغییر دهد. تمام قابلیت های سیستم ترکیب داده ها به طور کامل برای چنین منابعی مورد استفاده قرار خواهد گرفت.

می توانید گزارش را از مثال بارگیری کنید با لینک زیر.

سلام!
امروز می خواهم موضوعی را توصیف کنم که بدون چرخ دنده نمی توانید متوجه شوید :)؛)

غواصی به این معنی است که غواصی کاملا عمیق است. در ادبیات ، منابع کمی به این موضوع اشاره شده است و تا زمانی که "خارش" نداشته باشید ، آن را درک نخواهید کرد. حتی پیامی برای چنین اقدامی وجود نخواهد داشت ؛) اتفاقاً ، اسناد بسیار بد و ناسازگار در این باره می گوید ، شما باید به ادبیات شخص ثالث مراجعه کنید.

به عنوان مثال ، من "تهیه گزارشات پیچیده در" 1C: Enterprise 8.2 "را بسیار توصیه می کنم. سیستم ترکیب داده "، (به طور خاص ، به صفحات 224 ، 267 و 473 مراجعه کنید)

در ACS 2 نوع منبع داده وجود دارد: پرس و جو ، شی و اتحاد (این مورد حساب نمی شود ، منبع داده نیست ، بلکه یک کنترل کننده برای داده های موجود است). به عکس 1 مراجعه کنید:


بنابراین ، اگر کم و بیش نحوه کار با یک منبع (مجموعه) داده از نوع "درخواست" را بفهمیم ، مشکلاتی در رابطه با مجموعه داده های "شی" وجود دارد.

ابتدا آنچه را که می خواهیم در خروجی بدست آوریم شرح خواهم داد:

گزارش ، کاربر بر روی " شکل دادن”و لیست موارد نمایش داده شد (شکل 2 را ببینید):

بله ، من یک عدم دقت درست کردم ، یعنی: هیچ دکمه ای وجود ندارد " شکل دادن"، اما یک دکمه وجود دارد" اقدام جدید"(کمی بعد توضیح می دهم که چرا این اتفاق افتاده است.)

بله بله! نکته دیگر: این کل لیست از مجموعه داده "Object" مشتق شده است:

تصمیم:

  1. ما یک گزارش خارجی ایجاد می کنیم.
  2. طرح ACS را اضافه کنید ، بیایید نام آن را "طرح اصلی MainData" بگذاریم.
  3. مجموعه داده "Object" را به آن اضافه کنید ، نام آن را "NomenclatureList" بگذارید (باید همان شکل شکل 3 باشد) ؛
  4. ما در تنظیمات گزارش آزمایش زیادی نمی کنیم ، اجازه دهید آن را ساده نگه داریم (شکل 4 را ببینید)

خوب ، نیمی از کار تمام شده است؛)

حالا بیایید فرم اصلی گزارش را تولید کنیم (بله ، یک لحظه دیگر! پیکربندی من روی یک رابط معمولی کار می کند ، اما من فکر می کنم شما یک راه حل برای فرم های مدیریت شده خواهید یافت ؛) بنابراین ، فرم:

اینجاست که مشکل پیش می آید! اگر بر روی دکمه "تولید" کلیک کنیم (شکل 5) ، خطایی مشاهده خواهیم کرد!


من این مقاله را به حل این مشکل اختصاص دادم!

رهگیری رویداد دکمه "تولید" امکان پذیر نبود ، بنابراین تصمیم گرفتم از عصا استفاده کنم. من پیکربندی را در حالت اشکال زدایی شروع کردم و سعی کردم همان دکمه "تولید" را پیدا کنم.

من روش "ایجاد" را در فرم وارد کردم ، اما هیچ فراخوانی در آن وجود ندارد ، من مجبور شدم قبل از باز کردن فرم ، عملکرد دکمه "تولید" را دوباره تعریف کنم:


در شکل 8 ، علاوه بر تغییر عملکرد فرم ، یک مثال از درخواست ، پردازش و انتقال داده های تولید شده به ACS آورده شده است. بیایید با دقت بیشتری آن را بررسی کنیم:

  1. ما داده های ورودی را برای ACS تولید می کنیم.
  2. ما ACS را مقدار دهی می کنیم.
  3. ما نتیجه را روی فرم نمایش می دهیم (به این نیز توجه کنید!)

بیایید طرح تعامل اشیا of سیستم ترکیب داده را بیاد آوریم:

طرح ترکیب داده ها در یک گزارش خارجی به عنوان یک شی a جهانی در یک روش در دسترس است طرح ترکیب داده.همچنین می توانید با نام به آن رجوع کنید و آن را به روش منتقل کنید طرح بندی را دریافت کنید(شکل 8 را ببینید)

قطعه اصلی کد در زیر نشان داده شده است:

درخواست \u003d درخواست جدید؛ Request.Text \u003d "SELECT | Nomenclature.Name as Nomenclature | FROM | Reference.Nomenclature AS Nomenclature"؛ NomenclatureList \u003d Query.Run () بارگیری ()؛ مجموعه داده ها \u003d ساختار جدید ("NomenclatureList"، NomenclatureList)؛ // ACS \u003d GetLayout ("MainDataCompositionSchema")؛ ACS \u003d طرح ترکیب داده ها ؛ LayoutComp \u003d LayoutComposerDataComposition جدید؛ layoutComp \u003d LayoutComp.Run (SKD ، SKD. تنظیمات پیش فرض) ؛ پردازشگر DataComposition \u003d پردازشگر جدید DataComposition؛ پردازندهCompData. آغازگر (layoutComp ، مجموعه داده ها) ؛ خروجی \u003d newDataCompositionOutputProcessorI در TabularDocument؛ output.SetDocument (FormElement.Result)؛ خروجی پیشنهاد (پردازندهCompData ، درست است) ؛

آره! این هم یک لحظه خوب دیگر !!!

در این مثال ، همانطور که مشاهده می کنید (شکل 2 را ببینید) ، خروجی به شکل انجام می شود و نه در جدول. سند! و این بسیار خوب است ، زیرا ما می توانیم با فرم کار کنیم (برنامه نویسی وقایع عنصر فرم را انجام دهیم ، انواع ترفندهای کشیدن و رها کردن ، و غیره را انجام دهیم.)

در یک سند صفحه گسترده ، ما به راحتی می توانیم داده های پردازش شده را بر روی صفحه نمایش داده و کنترل سند را به کاربر منتقل کنیم و به هیچ وجه نمی توانیم بر روند بعدی ویرایش این محتوا تأثیر بگذاریم!

سیستم راهنما را ببینید " قسمت سند صفحه گسترده "، و من فقط یک گزیده از مستندات داخلی سیستم 1c Enterprise 8.2 ارائه خواهم داد:

"فیلد یک سند صفحه گسترده یک سند صفحه گسترده است که در فرم قرار داده شده است. همراه با تنوع امکانات طراحی سند صفحه گسترده ، این امکان را برای شما فراهم می کند تا پردازش رویدادهایی را که هنگام انتخاب سلول ها ، تصاویر و سایر کنترل های واقع در قسمت سند صفحه گسترده اتفاق می افتد ، سازمان دهید. "

خوب ، همانطور که می گویند ، موفقیت در نبرد ؛)

در آخرین مقاله من قبلا نوشتم که 1C یک سیستم عامل متناقض است. سیستم چیدمان داده یکی از این پارادوکس هاست. ACS برای ساخت گزارش های پیچیده در نظر گرفته شده است و شامل جایگزینی برنامه "دستی" گزارش ها با ساخت ابزارهای چند منظوره است. توانایی استفاده از ACS در نسخه هشتم ظاهر شد ، اما مدت زیادی طول کشید تا نسخه 8.2 ظاهر شود تا 1C بتواند از آن در محصولات استاندارد خود استفاده کند. از یک طرف ، ACS یک مجموعه ابزار چند منظوره است که با استفاده از آن می توانید گزارش های بسیار پیچیده و بدون یک خط کد را ایجاد کنید. با این حال ، ACS آستانه ورود نسبتاً بالایی دارد ، مطالعه و شروع استفاده از آن در یک لحظه بسیار دشوار است ، زیرا رابط کاربری کاملاً شهودی نیست و کاملترین راهنماهای استفاده فقط در قالب ادبیات پولی در دسترس است.

در طی مطالعه من درباره ACS ، مشکلی بوجود آمد. لازم است داده ها را از جدول مقادیر شخص ثالث با استفاده از زبان پرس و جو بدست آورید و سپس با این داده ها مانند داده های مشابه از جداول پایگاه داده (عملیات خلاصه ، گروه بندی و غیره) کار کنید. در قالب کلاسیک ، ما یک پرس و جو می سازیم که اطلاعات را از جدول منتقل شده به درخواست به عنوان یک پارامتر ide دریافت می کند.

درخواست \u003d درخواست جدید (
"انتخاب کنید
| جدول. نامگذاری ،
| جدول انبار
| از
| & TK AS Table ") ؛
Request.SetParameter ("TK"، TK)؛

اما با ACS ، این خیلی ساده نیست. افسوس ، عملیاتی که در بالا توضیح داده شد نمی تواند در سیستم مرحله بندی داده انجام شود. با این وجود ، توانایی بارگذاری جداول خارجی مقادیر در سیستم پیاده سازی شده است.

ارزش آن را دارد که یک انحراف غنایی کوچک در اینجا ایجاد کنید و در مورد مجموعه داده صحبت کنید. مجموعه داده ها منابع اطلاعاتی هستند که ACS از آنها داده دریافت می کند و بعداً آنها را در یک گزارش جمع می کند. مجموعه های داده به انواع تقسیم می شوند ، عمدتا با استفاده از نوع "Request" ، که در متن آن برنامه نویس یک کوئری برای پایگاه داده می نویسد. از نوع "Object" برای بارگذاری داده ها از اشیا external خارجی استفاده می شود. در هر دو حالت ، در خروجی ، مجموعه مشخصی از فیلدها را داریم که در نتیجه اجرای درخواست یا بارگیری یک شی خارجی به دست می آیند. بعداً ، می توان این فیلدها را در برگه "تنظیمات" همراه با پیکربندی دقیق ساختار گزارش ، کار کرد. برای ارتباط مجموعه های مختلف در ACS ، می توان پیوندهای مجموعه داده ها را در برگه ای به همین نام مشخص کرد. این پیوندها یک آنالوگ مستقیم از پیوستن چپ به پرسش کلاسیک است. با این حال ، به خاطر داشته باشید که پرس و جوهای موجود در هر مجموعه داده "درباره" وجود مجموعه های داده دیگر "نمی دانند" ؛ در نهایت ، پیوندهای مجموعه داده بر اساس ساختار مشخص شده در برگه "تنظیمات" بر ترکیب داده ها تأثیر می گذارند.

بیایید وظیفه را به عنوان مثال شرح دهیم. یک گزارش استاندارد وجود دارد که گزاره های محاسبات مربوط به سازمان پیکربندی ZiK 8 وجود دارد. لازم است انواع محاسبات موجود در گزارش به برخی گروه ها تقسیم شود. مکاتبات نوع گروه تسویه حساب در یک جدول خارجی از مقادیر ذخیره می شوند. برای بارگذاری آن در طرح اصلی ترکیب داده ، یک "شی dataset مجموعه داده" به نام "گروهها" ایجاد کنید (شکل 2). اتصال با "مجموعه داده های پرس و جو" - "اقلام تعهدی" با توجه به نوع محاسبه انجام می شود (شکل 3). در "مجموعه داده های پرس و جو" - "اقلام تعهدی" اطلاعات مربوط به گروه ها وجود دارد ، ما همه موارد را حذف می کنیم. بعد از آن ، در برگه "تنظیمات" می توانیم از قسمت "گروه" استفاده کنیم ، مقدار آن از یک منبع داده خارجی بارگیری می شود (شکل 4). در عملکرد تولید گزارش ، ما بارگیری داده های خارجی را تکمیل می کنیم.

عملکرد GenerateReport (نتیجه \u003d تعریف نشده ، رمزگشایی داده ها \u003d تعریف نشده ، OutputToReportForm \u003d درست) صادرات

// گرفتن یا شکل گیری جدول مورد نیاز مقادیر "Group" و نوشتن آن در متغیر به همین نام

ExternalData \u003d ساختار جدید ()؛ // ساختار داده خارجی را ایجاد و پر کنید
ExternalData.Insert (گروه ها) ؛

UserPanelValue \u003d Sample Reports.GetUserPanelSettingsObjectObject (ThisObject)؛
تنظیمات پیش فرض \u003d تنظیمات Linker.GetSettings ()؛
TypicalReport.GetAppliedSetting (ThisObject) ؛
گزارش های معمولی. یک گزارش معمولی تهیه کنید (ThisObject، Result، Decoding Data، Output to the Report Report، ExternalData)؛
تنظیمات Linker.LoadSettings (تنظیم پیش فرض) ؛
نتیجه بازگشت ؛

عملکرد نهایی

اگر بخواهیم گزارشی را "از ابتدا" ایجاد کنیم ، کد برای شروع تولید گزارش به این شکل است:

ExternalDatasets \u003d ساختار جدید؛
ExternalDatasets.Insert ("گروهها" ، گروهها)؛ // Groups - جدول مقادیر مورد نظر
DataCompositionSchema \u003d GetLayout ("MainDataCompositionSchema")؛ // طرح ما با طرح تنظیم داده ها
تنظیمات \u003d DataCompositionScheme.Default تنظیمات؛
Layout Composer \u003d New DataComposition Layout Composer؛
LayoutComposition \u003d LayoutComposer.Run (DataCompositionSchema ، تنظیمات)؛
DataCompositionProcessor \u003d New DataCompositionProcessor؛
DataCompositionProcessor.Initialize (LayoutDataSets)؛
TabDoc \u003d TabularDocument جدید؛
OutputProcessor \u003d NewDataCompositionOutputResultProcessorTo TabularDocument؛
ProcessorOutput.InstallDocument (TabDok) ؛
OutputProcessor.Oput (پردازشگر داده)

خواندن 9660 زمان