گزارش‌های سفارشی

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

مهم

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

برای ایجاد گزارش جدید وارد مسیر حسابداری ◄ پیکربندی ◄ مدیریت: گزارشات حسابداری شوید. از این قسمت می‌توانید یک گزارش ریشه‌ای یا یک گونه ایجاد کنید.

موتور گزارش حسابداری.

گزارش‌های ریشه‌ای (اصلی)

گزارش‌های ریشه‌ای همان گزارشات حسابداری عمومی و عادی هستند. این گزارش‌ها مدل‌هایی هستند که نسخه‌های حسابداری محلی بر مبنای آنها ساخته می‌شوند. اگر گزارشی دارای گزارش ریشه نباشد، خود یک گزارش ریشه محسوب می‌شود.

مثال

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

هنگام ایجاد گزارش ریشه‌ای جدید ابتدا باید یک آیتم منو برای آن ایجاد کنید. برای این کار گزارش را باز کرده و در داخل گزارش عمل ◄ ایجاد آیتم منوی جدید را کلیک کنید و صفحه را رفرش نمایید. این گزارش هم‌اکنون در بخش حسابداری ◄ گزارش در دسترس خواهد بود.

توجه

مواردی که نیازمند ایجاد گزارش ریشه‌ای جدید باشند نادر هستند؛ مثل وقتی که مقامات مالیاتی کشور نیازمند نوع جدید و خاصی از گزارش باشند.

دکمه ایجاد آیتم منو.

گونه‌ها

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

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

مثال

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

انتخاب گونه گزارش.

سطرها

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

گزینه‌های مختلف سطرهای موتور گزارش.

عبارت‌های فرمولی

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

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

توجه

با توجه به موتور مورد استفاده ممکن است تعیین زیرفرمول‌ها نیز الزامی باشد.

موتور «دامنه اودوو»

در این موتور، فرمول در حدود اشیای account.move.line در دامنه اودوو تفسیر می‌شود.

زیرفرمول‌ها امکان تعریف تطبیق سطرهای انتقال با دامنه مورد استفاده را فراهم می‌کنند که برای محاسبه مقدار عبارت استفاده می‌شوند:

sum

نتیجه برابر است با مجموعه تمام مقادیر باقی‌مانده سطرهای انتقالی منطبق.

sum_if_pos

نتیجه حاصل برابر است با مجموعه تمام باقی مانده‌های سطرهای انتقالی در صورتی که مقدار مثبت باشد. در غیر این صورت نتیجه حاصل 0 خواهد بود.

sum_if_neg

نتیجه حاصل برابر است با مجموعه تمام باقی مانده‌های سطرهای انتقالی در صورتی که مقدار منفی باشد. در غیر این صورت نتیجه حاصل 0 خواهد بود.

count_rows

نتیجه برابر است با تعداد زیرسطرهای عبارت. اگر سطر والد دارای مقدار گروه‌بندی باشد، نتیجه برابر با تعداد کلیدهای گروه‌بندی متمایز در سطرهای انتقال منطبق خواهد بود. در غیر این صورت مقدار برابر است با سطرهای انتقالی منطبق.

برای معکوس کردن علامت نتیجه حاصل می‌توانید در ابتدای زیرفرمول کاراکتر - را تایپ کنید.

سطر عبارت در یک سطر گزارش

موتور «برچسب‌های مالیات»

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

به هنگام ارزیابی فرمول، محاسبه باید تقریباً به این شکل باشد: (مقدار سطرهای انتقالی + برچسب) - (مقدار سطرهای انتقالی - برچسب).

مثال

اگر فرمول tag_name باشد موتور برچسب‌های مالیاتی +tag_name و -tag_name را تطبیق می‌دهد و در صورت لزوم آنها را ایجاد می‌کند. برای نمونه: دو برچسب توسط فرمول تطبیق داده شده‌اند. اگر فرمول A باشد، نیازمند برچسب‌های +A و -A خواهد بود و در صورت نیاز آنها را ایجاد خواهد کرد.

موتور «تجمیع سایر فرمول‌ها»

هرگاه می‌خواهید بر روی مقادیر به دست آمده از سایر عبارت‌ها عملیات‌های جبری انجام دهید از این موتور استفاده کنید. فرمول‌های این بخش ترکیبی از ارجاع‌هایی است که توسط یکی از چهار عملیات ساده جبری جدا شده‌اند (جمع +، تفریق -، تقسیم / و ضرب *). برای ارجاع به عبارت کد سطر مربوطه را تایپ کرده و بعد از آن یک نقطه . و سپس برچسب عبارت را قرار دهید (مثل کد.برچسب).

زیرفرمول‌ها می‌توانند یکی از این موارد باشند:

if_above(CUR(amount))

مقدار عبارت جبری تنها زمانی برگردانده می‌شود که مقدار آن بیشتر از حد تعریف شده باشد. در غیر این صورت مقدار 0 خواهد بود.

if_below(CUR(amount))

مقدار عبارت جبری تنها زمانی برگردانده می‌شود که مقدار آن کمتر از حد تعریف شده باشد. در غیر این صورت مقدار 0 خواهد بود.

if_between(CUR1(amount1), CUR2(amount2))

مقدار عبارت جبری زمانی برگردانده می‌شود که مقدار آن اکیداً بین حدهای مشخص شده باشد. در غیر این صورت نزدیک‌ترین حد برگردانده می‌شود.

if_other_expr_above(LINE_CODE.EXPRESSION_LABEL, CUR(amount))

مقدار عبارت جبری تنها زمانی برگردانده می‌شود که مقدار عبارت مشخص شده توسط کد سطر و برچسب عبارت بزرگ‌تر از حد مشخص شده باشد. در غیر این صورت نتیجه 0 خواهد بود.

if_other_expr_below(LINE_CODE.EXPRESSION_LABEL, CUR(amount))

مقدار عبارت جبری تنها زمانی برگردانده می‌شود که مقدار عبارت مشخص شده توسط کد سطر و برچسب عبارت کمتر از حد مشخص شده باشد. در غیر این صورت نتیجه 0 خواهد بود.

CUR کد واحد پول با حروف بزرگ و amount نیز مقدار حدود مشخص شده برای آن واحد پول است.

همچنین می‌توانید برای تطبیق عبارت موجود در گزارشی دیگر از cross_report استفاده کنید.

موتور «پیشوند کدهای حساب»

این موتور برای تطبیق حساب‌هایی استفاده می‌شود که بر مبنای حساب‌هایی ایجاد شده‌اند که از پیشوند‌های کدهای حساب به عنوان متغیری در عبارت ریاضی خود استفاده کرده‌اند.

مثال

21
به مانند این مثال، عبارت‌های ریاضی همچنین می‌توانند یک پیشوند باشند.

مثال

21 + 10 - 5
این فرمول باقی‌مانده سطرهای انتقالی انجام شده در این حساب که کدهایشان با 21 و 10 شروع می‌شوند را جمع کرده و باقی‌مانده حساب‌هایی که پیشوند 5 دارند را کسر می‌کند.

همچنین می‌توان از مجموعه‌ای از زیرپیشوندها صرف نظر کرد.

مثال

21 + 10\(101, 102) - 5\(57)
این فرمول همانند مثال قبل کار می‌کند ولی پیشوندهای 101، 102 و 57 را نادیده می‌گیرد.

می‌توانید با استفاده از پسوندهای C و D از «زیرفیلترهایی» برای بستانکاری‌ها و بدهی‌ها استفاده کنید. در این مثال حساب تنها زمانی مد نظر قرار خواهد گرفت که پیشوند آن مطابقت داشته باشد و اگر باقی‌مانده کل سطرهای انتقالی در این حساب بستانکاری/بدهکاری باشد.

مثال

حساب 210001 دارای باقی‌مانده -42 و حساب 210002 دارای باقی‌مانده 25 است. فرمول 21D تنها حساب 210002 را تطبیق می‌دهد و بنابراین نتیجه 25 را برمی‌گرداند. 210001 تطبیق داده نمی‌شود، چون باقی‌مانده آن بستانکاری است.

می‌توان حذفیات پیشوند را با پسوندهای C و D نیز ترکیب کرد.

مثال

21D + 10\(101, 102)C - 5\(57)
این فرمول باقی‌مانده سطرهای انتقالی حساب‌هایی که کد آنها با 21 شروع می‌شوذد را جمع می‌کند اگر بدهکار (D) باشد و اگر بستانکار (C) باشد، ولی پیشوندهای 101 و 102 را نادیده می‌گیرد و باقی‌مانده حساب‌هایی که پیشوند 5 را دارند تفریق می‌کند و پیشوند 57 را نادیده می‌گیرد.

برای تطبیق حرف C یا D در پیشوند و عدم استفاده از آنها به عنوان پسوند از () خالی استفاده کنید.

مثال

21D\()
این فرمول حساب‌هایی که کد آنها با 21D شروع می‌شود را تطبیق می‌دهد، صرف نظر از علامت باقی مانده‌ای که دارند.

در کنار استفاده از کدهای پیشوند برای حساب‌ها، می‌توانید با برچسب‌های حساب نیز آنها را تطبیق دهید. این کار به ویژه زمانی کاربردی است که کشور شما جدول حساب استانداردی نداشته باشد، و از یک پیشوند در شرکت‌های مختلف با اهداف مختلفی استفاده شود.

مثال

tag(25)
این فرمول حساب‌هایی که برچسب‌های آنها حاوی شناسه 25 باشد را تطبیق می‌دهد.

اگر برچسبی که ارجاع می‌دهید در فایل داده تعریف شده باشد، می‌توان به جای شناسه از xmlid نیز استفاده کرد.

مثال

tag(my_module.my_tag)
این فرمول حساب‌هایی را تطبیق می‌دهد که برچسب‌های مربوطه آنها شامل برچسبی باشد که در my_module.my_tag تعریف شده است.

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

مثال

tag(my_module.my_tag) + tag(42) + 10
باقی‌مانده حساب‌های برچسب‌خورده my_module.my_tag با حساب‌های مربوط به برچسب با شناسه 42 و حساب‌های دارای پیشوند کد 10 جمع می‌شود

پسوندهای C و D را نیز می‌توان به همان صورت با برچسب‌ها به کار برد.

مثال

tag(my_module.my_tag)C
این فرمول حساب‌هایی که دارای برچسب my_module.my_tag باشند و باقی‌مانده بستانکار را تطبیق می‌دهد.

حذف پیشوند همچنین با برچسب‌ها نیز استفاده می‌شود.

مثال

tag(my_module.my_tag)\(10)
این فرمول حساب‌های دارای برچسب my_module.my_tag که کد آنها با 10 شروع نمی‌شود را تطبیق می‌دهد.

موتور «مقدار خارجی»

موتور «مقدار خارجی» برای ارجاع به مقادیر انتقالی و دستی استفاده می‌شود. این مقادیر با استفاده از account.move.line ذخیره نمی‌شوند، بلکه ذخیره آنها با account.report.external.value است. هریک از این اشیاء مستقیماً به عبارتی که آن را تحت تأثیر قرار می‌دهد اشاره دارند، پس در خصوص نحوه انتخاب آنها کار زیادی قابل انجام نیست.

فرمول می‌تواند یکی از مقادیر زیر باشد:

sum

اگر قرار است نتیجه مجموع تمام مقادیر خارجی در بازه زمانی مشخص باشد.

most_recent

اگر نتیجه باید برابر با آخرین مقدار خارجی در بازه مشخص شده باشد.

به علاوه می‌توان به دو روش از زیرفرمول‌ها استفاده کرد:

rounding=X

اگر X با عددی جایگزین شود، گرد کردن با X رقم اعشار انجام می‌شود.

editable

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

توجه

مقادیر دستی در date_to انتخابی فعلی در گزارش ایجاد می‌شوند.

هر دو زیرفرمول را می‌توان با جدا کردن ; ترکیب کرد.

مثال

editable;rounding=2
یک زیرفرمول صحیح است که هر دو رفتار را با هم ترکیب می‌کند.

موتور «تابع سفارشی پایتون»

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

ستون‌ها

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

ستون‌های گزارش.

هرگاه از ویژگی مقایسه بازه زمانی در تب گزینه‌های گزارش حسابداری استفاده می‌شود، تمام ستون‌ها برای هر گزارش تکرار می‌شوند.