خطا در محاسبه مانده ها در SKD و تصحیح نرم افزار آن با استفاده از مثال گزارش جهانی. محاسبه نادرست ترازها هنگام استفاده از ترازهای اولیه و نهایی skd 1s skd

یکی دیگر از اشتباهات رایج هنگام ایجاد گزارشات در مورد ACS برای سازمانی 1s این است که موجودی اولیه و نهایی در جداول مجازی رجیسترهای انباشت به اشتباه محاسبه شده است. به عنوان مثال، اجازه دهید یک گزارش ساده ایجاد کنیم که تعادل و حرکات را در رجیستر GoodsInWarehouses نشان دهد. درخواست او به این صورت خواهد بود:

ما همچنین تنظیمات نوع ساده ایجاد خواهیم کرد:

در نتیجه گزارش زیر را دریافت می کنیم:

آیا سوالی دارید، آیا به کمک مشاور نیاز دارید؟

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

واقعیت این است که SKD مکانیسم خاص خود را برای محاسبه تعادل دارد. برای عملکرد صحیح آن لازم است که محل ضبط کننده ها در محور زمان به طور واضح مشخص شود. در این حالت فقط یک مرجع در انتخاب وجود دارد، بنابراین سیستم پیوند نمی تواند این کار را انجام دهد. برای جلوگیری از چنین رفتار ACS، قسمت PeriodSecond را در درخواست انتخاب کنید. در این حالت، سیستم به درستی مانده ها را محاسبه می کند:

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

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

وقتی یک مجموعه داده SKD به طور خودکار بر اساس یک پرس و جو ایجاد می شود، معمولاً مشکلی وجود ندارد، زیرا خود پلتفرم به درستی تنظیمات فیلد را بر اساس متن درخواست پر می کند. اما شرایطی وجود دارد که تنظیمات فیلد داده به طور خودکار پر نمی شوند (به عنوان مثال، شما از یک منبع داده خارجی استفاده می کنید)، در حالی که داده های منبع حاوی حرکات با تعادل و گردش است.

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

برای حل این مشکل، لازم است تنظیمات فیلدهای مجموعه داده ACS را به درستی پر کنید - به ویژه، قسمت "نقش" که از اهمیت کلیدی برخوردار است.

SOLUTION تعاملی ( برای گزارش جهانی مناسب نیست):

طرح طرح بندی داده گزارش خود را باز کنید و به تنظیمات فیلد مجموعه داده نگاه کنید.

برای فیلدهای موجودی اولیه و نهایی برای هر یک از منابع، باید نقش را پر کنید: گروه نقش "Remainder" را انتخاب کرده و به ترتیب مقدار "Starting Balance" یا "End Balance" را در آن مشخص کنید. بنابراین ( ) این کار در سازنده SKD انجام می شود.

به طور مشابه، باید نقش "Dimension" را برای همه ابعاد مجموعه داده خود تنظیم کنید.

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

چنین تنظیماتی از فیلدهای داده ACS در بیشتر موارد امکان دستیابی به محاسبه صحیح باقیمانده ها توسط گروه بندی را فراهم می کند. با تنظیمات پیش فرضآنها اشتباه محاسبه می شوند.

راه حل نرم افزار (به عنوان مثال از گزارش فراداده جهانی):

حال بیایید ببینیم که چگونه همان خطا را در گزارش عمومی فراداده برطرف کنیم. یک گزارش جهانی با اکثر گزارش‌های دیگر تفاوت دارد زیرا طرح ترکیب داده‌ها کاملاً به‌صورت برنامه‌نویسی تولید می‌شود، بنابراین شما همچنین باید نقش‌ها را برای فیلدهای داده ACS پیکربندی کنید.

برای نقش ها موجودی اولیه و نهایی برای هر یک از منابعساده ترین راه این است که چرخ را دوباره اختراع نکنید (همه چیز قبلاً قبل از ما نوشته شده است) و از روش استاندارد استفاده کنید FillDataSetFieldRemainder() ازماژول مشترک GenericReports. شما فیلد مجموعه داده و نام منبع را به عنوان پارامتر در آنجا پاس می کنید و در نتیجه فیلد باقیمانده با نقش درست پر شده در مجموعه داده ایجاد می شود.

به طور مشابه، هنگامی که فیلدهای داده را برای ابعاد ایجاد می کنید، باید نقش Dimension را به آنها بدهید. کد چیزی شبیه به این خواهد بود:

NewDimension = GenericReports.AddDataSetField(DataCompositionSchema.DataSets, Dimension.Name, Dimension.Synonym); NewDimension.Role.Dimension = true;

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

فیلدهای دوره با رویه ماژول عمومی GenericReports.AddPeriodFieldsToDataSet()، که از رویه ماژول شیء AddDataSetFields() فراخوانی می شود، به گزارش اضافه می شوند. متأسفانه، این روش اعداد دوره را نشان نمی دهد.

علاوه بر این، فیلدهای «شماره خط» و «ثبت‌کننده» به صورت برنامه‌ریزی در هیچ کجا به گزارش اضافه نمی‌شوند. به نظر من عجیب بود، زیرا. آنها در مجموعه داده نهایی وجود دارند.

این طور که مشخص شد، فیلدهای "شماره خط" و "ثبت کننده"(ضبط کننده) توسط خود پلتفرم به صورت خودکار هنگام تنظیم اولیه تنظیمات اضافه می شود. علاوه بر این، پلتفرم نقش‌ها را برای فیلدهایی که ایجاد می‌کند پر نمی‌کند و پر کردن آنها به صورت برنامه‌ای غیرممکن است، که هنگام کار بیشتر با آنها مشکلاتی ایجاد می‌کند. اما اگر این فیلدها به صورت «دستی» ایجاد شوند و نقش‌های صحیح به صورت برنامه‌نویسی به آن‌ها اختصاص داده شود، پلتفرم سعی نمی‌کند دوباره آنها را ایجاد کند.

در زیر دستورالعملی را ارائه می‌دهم که به من کمک کرد تقریباً این مشکل پلتفرم و گزارش فراداده جهانی را حل کنم:

در اینجا قطعه کد ماژول شی است:

// فیلدهای دوره اضافه کنید If TableName = "RemaindersAnd Turnovers" OR TableName = "Turnovers" سپس GenericReports.AddPeriodFieldsToDataSet(DataCompositionScheme.DataSets); EndIf باید با موارد زیر جایگزین شود. // فیلدهای سرویس را پر کنید و دوره ها را به صورت دستی تنظیم کنید، زیرا پلتفرم آنها را پر نمی کند Field = GenericReports.AddDataSetField(DataCompositionScheme.DataSets, "LineNumber", "LineNumber"); Field.Role.PeriodNumber = 1; فیلد = GenericReports.AddDataSetField(DataCompositionSchema.DataSets, "Recorder", "Recorder"); Field.Role.PeriodNumber = 2; sc = 3; برای هر FieldPeriodFromListPeriods حلقه FieldPeriod.Value.Role.PeriodNumber = cn; اگر count > 3 سپس FieldPeriod.Value.Role.PeriodType = DataCompositionPeriodType.Optional; EndIf sc = sc + 1; چرخه پایان EndIf

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

به روز رسانی: در نظرات به من گفته شد که یک بار مقاله ای در مورد این موضوع در دیسک ITS منتشر شده است. متأسفانه، این مقاله از من گذشت، اما فقط تا حدی توانست به من در حل مشکلات با یک گزارش جهانی کمک کند. افسوس، مشکلات پلت فرم با خدمات فیلدهای SKDمانند "ضبط" نیز در آنجا توضیح داده نشده است.

در هر صورت، امیدوارم مقاله من به همه کسانی که مشکلات مشابه دارند کمک کند. من زمان زیادی را صرف این راه حل کردم ...

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

نقش فیلد SKD نشان می دهد این رشته چیه. هر نقش فیلد می تواند دارای ویژگی خاص خود باشد. به عنوان مثال، دارد مقدار عددیو در صورتی که فیلد نقطه باشد، شامل شماره دوره است. اگر مقدار ویژگی "Period" 0 (صفر) باشد، به این معنی است که این قسمت نقطه نیست. یا ویژگی "Dimension" - حاوی علامتی است که میدان یک بعد است. اگر فیلد یک بعد باشد، از این اطلاعات هنگام محاسبه مجموع فیلدهای باقی مانده استفاده می شود.

می توانید برای هر فیلد طرح ترکیبی داده، نقشی را مشخص کنید. نقش ها بر صحت محاسبه باقیمانده تأثیر می گذارد. به ویژه، تراز اولیه و نهایی برای برخی از جدول. اگر در پرس و جو جدول مجازی «موجودی و گردش مالی» انتخاب شده باشد، ترازهای اولیه و نهایی طبق یک الگوریتم پیچیده محاسبه می شوند، به خصوص اگر از برگشت های اضافی بر اساس دوره استفاده کنیم.

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

بیایید یک مجموعه داده پرس و جو اضافه کنیم. برای این کار باید عنصر ریشه "Query Builder" را فعال کنیم. بیایید به جدول مجازی «موجودی و گردش مالی» ثبت انباشت بپردازیم. ما چه می بینیم؟

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

فرض کنید در پرس و جوی مورد استفاده ما از عملگر زبان پرس و جو "SELECT" استفاده می کنیم. بیایید این شرایط را شرح دهیم:

CHOICE WHEN Remains of Goods Remains and Turnovers.Nomenclature = Value(Catalog.Nomenclature.EmptyReference) THEN Value(Directory.Nomenclature.Shampoo) ELSE باقیمانده کالاها باقیمانده و گردش مالی. نامگذاری پایان

این ورودی به این معنی است که اگر نامگذاری با یک مرجع تهی مطابقت داشته باشد (ما به مرجع مقدار تابع "Nomenclature" اشاره می کنیم، یک مرجع تهی)، آنگاه مقدار عنصر از پیش تعریف شده برگردانده می شود. بیایید فرض کنیم که در پیکربندی ما چنین عنصر از پیش تعریف شده ای وجود دارد و به آن "شامپو" می گویند. در غیر این صورت، ارزش خود مورد را برمی گردانیم. موارد زیر را دریافت می کنیم:

همانطور که می بینید، برای قسمت "Nomenclature" نقش پر نشد. اما همانطور که در تصویر می بینید، در واقع برای فیلد “Field1” مجموعه نقشی نداریم و در این صورت باقیمانده به درستی محاسبه نمی شود.

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

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

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

وقتی یک مجموعه داده SKD به طور خودکار بر اساس یک پرس و جو ایجاد می شود، معمولاً مشکلی وجود ندارد، زیرا خود پلتفرم به درستی تنظیمات فیلد را بر اساس متن درخواست پر می کند. اما شرایطی وجود دارد که تنظیمات فیلد داده به طور خودکار پر نمی شوند (به عنوان مثال، شما از یک منبع داده خارجی استفاده می کنید)، در حالی که داده های منبع حاوی حرکات با تعادل و گردش است.

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

برای حل این مشکل، لازم است تنظیمات فیلدهای مجموعه داده ACS را به درستی پر کنید - به ویژه، قسمت "نقش" که از اهمیت کلیدی برخوردار است.

SOLUTION تعاملی ( برای گزارش جهانی مناسب نیست):

طرح طرح بندی داده گزارش خود را باز کنید و به تنظیمات فیلد مجموعه داده نگاه کنید.

برای فیلدهای موجودی اولیه و نهایی برای هر یک از منابع، باید نقش را پر کنید: گروه نقش "Remainder" را انتخاب کرده و به ترتیب مقدار "Starting Balance" یا "End Balance" را در آن مشخص کنید. بنابراین ( ) این کار در سازنده SKD انجام می شود.

به طور مشابه، باید نقش "Dimension" را برای همه ابعاد مجموعه داده خود تنظیم کنید.

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

چنین تنظیماتی از فیلدهای داده ACS در بیشتر موارد امکان دستیابی به محاسبه صحیح باقیمانده ها توسط گروه بندی را فراهم می کند. با تنظیمات پیش فرضآنها اشتباه محاسبه می شوند.

راه حل نرم افزار (به عنوان مثال از گزارش فراداده جهانی):

حال بیایید ببینیم که چگونه همان خطا را در گزارش عمومی فراداده برطرف کنیم. یک گزارش جهانی با اکثر گزارش‌های دیگر تفاوت دارد زیرا طرح ترکیب داده‌ها کاملاً به‌صورت برنامه‌نویسی تولید می‌شود، بنابراین شما همچنین باید نقش‌ها را برای فیلدهای داده ACS پیکربندی کنید.

برای نقش ها موجودی اولیه و نهایی برای هر یک از منابعساده ترین راه این است که چرخ را دوباره اختراع نکنید (همه چیز قبلاً قبل از ما نوشته شده است) و از روش استاندارد استفاده کنید FillDataSetFieldRemainder() ازماژول مشترک GenericReports. شما فیلد مجموعه داده و نام منبع را به عنوان پارامتر در آنجا پاس می کنید و در نتیجه فیلد باقیمانده با نقش درست پر شده در مجموعه داده ایجاد می شود.

به طور مشابه، هنگامی که فیلدهای داده را برای ابعاد ایجاد می کنید، باید نقش Dimension را به آنها بدهید. کد چیزی شبیه به این خواهد بود:

NewDimension = GenericReports.AddDataSetField(DataCompositionSchema.DataSets, Dimension.Name, Dimension.Synonym); NewDimension.Role.Dimension = true;

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

فیلدهای دوره با رویه ماژول عمومی GenericReports.AddPeriodFieldsToDataSet()، که از رویه ماژول شیء AddDataSetFields() فراخوانی می شود، به گزارش اضافه می شوند. متأسفانه، این روش اعداد دوره را نشان نمی دهد.

علاوه بر این، فیلدهای «شماره خط» و «ثبت‌کننده» به صورت برنامه‌ریزی در هیچ کجا به گزارش اضافه نمی‌شوند. به نظر من عجیب بود، زیرا. آنها در مجموعه داده نهایی وجود دارند.

این طور که مشخص شد، فیلدهای "شماره خط" و "ثبت کننده"(ضبط کننده) توسط خود پلتفرم به صورت خودکار هنگام تنظیم اولیه تنظیمات اضافه می شود. علاوه بر این، پلتفرم نقش‌ها را برای فیلدهایی که ایجاد می‌کند پر نمی‌کند و پر کردن آنها به صورت برنامه‌ای غیرممکن است، که هنگام کار بیشتر با آنها مشکلاتی ایجاد می‌کند. اما اگر این فیلدها به صورت «دستی» ایجاد شوند و نقش‌های صحیح به صورت برنامه‌نویسی به آن‌ها اختصاص داده شود، پلتفرم سعی نمی‌کند دوباره آنها را ایجاد کند.

در زیر دستورالعملی را ارائه می‌دهم که به من کمک کرد تقریباً این مشکل پلتفرم و گزارش فراداده جهانی را حل کنم:

در اینجا قطعه کد ماژول شی است:

// فیلدهای دوره اضافه کنید If TableName = "RemaindersAnd Turnovers" OR TableName = "Turnovers" سپس GenericReports.AddPeriodFieldsToDataSet(DataCompositionScheme.DataSets); EndIf باید با موارد زیر جایگزین شود. // فیلدهای سرویس را پر کنید و دوره ها را به صورت دستی تنظیم کنید، زیرا پلتفرم آنها را پر نمی کند Field = GenericReports.AddDataSetField(DataCompositionScheme.DataSets, "LineNumber", "LineNumber"); Field.Role.PeriodNumber = 1; فیلد = GenericReports.AddDataSetField(DataCompositionSchema.DataSets, "Recorder", "Recorder"); Field.Role.PeriodNumber = 2; sc = 3; برای هر FieldPeriodFromListPeriods حلقه FieldPeriod.Value.Role.PeriodNumber = cn; اگر count > 3 سپس FieldPeriod.Value.Role.PeriodType = DataCompositionPeriodType.Optional; EndIf sc = sc + 1; چرخه پایان EndIf

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

به روز رسانی: در نظرات به من گفته شد که یک بار مقاله ای در مورد این موضوع در دیسک ITS منتشر شده است. متأسفانه، این مقاله از من گذشت، اما فقط تا حدی توانست به من در حل مشکلات با یک گزارش جهانی کمک کند. افسوس، مشکلات پلت فرم با زمینه های خدمات ACS، مانند "Recorder" نیز در آنجا توضیح داده نشده است.

در هر صورت، امیدوارم مقاله من به همه کسانی که مشکلات مشابه دارند کمک کند. من زمان زیادی را صرف این راه حل کردم ...

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