گزارشهای سفارشی¶
سازمانیار مجهز به چهارچوب گزارشگیری قدرتمند و آسانی است. موتور سازمانیار امکان ایجاد گزارشهای جدیدی را فراهم کرده است، از جمله گزارشهای مالیاتی یا صورت وضعیت مالی و اظهارنامه درآمد با گروهبندیها و طرحهای تعریف شده.
مهم
برای دسترسی به رابط کاربری ایجاد گزارش حسابداری حالت توسعهدهنده را فعال کنید.
برای ایجاد گزارش جدید وارد مسیر گزارش ریشهای یا یک گونه ایجاد کنید.
شوید. از این قسمت میتوانید یک
گزارشهای ریشهای (اصلی)¶
گزارشهای ریشهای همان گزارشات حسابداری عمومی و عادی هستند. این گزارشها مدلهایی هستند که نسخههای حسابداری محلی بر مبنای آنها ساخته میشوند. اگر گزارشی دارای گزارش ریشه نباشد، خود یک گزارش ریشه محسوب میشود.
مثال
ممکن است گزارشهای مالیاتی بلژیک و ایران هر دو از یک نسخه اصلی به عنوان مبنا استفاده کنند و مطابق با قوانین محلی وفق داده شوند.
هنگام ایجاد گزارش ریشهای جدید ابتدا باید یک آیتم منو برای آن ایجاد کنید. برای این کار گزارش را باز کرده و در داخل گزارش
را کلیک کنید و صفحه را رفرش نمایید. این گزارش هماکنون در بخش در دسترس خواهد بود.توجه
مواردی که نیازمند ایجاد گزارش ریشهای جدید باشند نادر هستند؛ مثل وقتی که مقامات مالیاتی کشور نیازمند نوع جدید و خاصی از گزارش باشند.

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

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

عبارتهای فرمولی¶
هر سطر میتواند شامل یک یا چند فرمول باشد. این عبارتها در واقع زیرگونههایی هستند که برای سطر گزارش لازم هستند. برای ایجاد فرمول جدید در داخل سطر گزارش افزودن سطر را کلیک کنید.
به هنگام ایجاد عبارت جدید باید برای ارجاع به آن یک برچسب تعریف کنید. بنابراین این مقدار باید در میان عبارتهای هر سطر منحصر به فرد باشد. موتور محاسبه و فرمول هر دو باید مشخص شده باشند. موتور مشخص میکند که فرمولها و زیرفرمولها چگونه تفسیر میشوند. میتوان در صورت نیاز در یک سطر از موتورهای محاسبه مختلف استفاده کرد.
توجه
با توجه به موتور مورد استفاده ممکن است تعیین زیرفرمولها نیز الزامی باشد.
موتور «دامنه اودوو»¶
در این موتور، فرمول در حدود اشیای account.move.line
در دامنه اودوو تفسیر میشود.
زیرفرمولها امکان تعریف تطبیق سطرهای انتقال با دامنه مورد استفاده را فراهم میکنند که برای محاسبه مقدار عبارت استفاده میشوند:
sum
نتیجه برابر است با مجموعه تمام مقادیر باقیمانده سطرهای انتقالی منطبق.
sum_if_pos
نتیجه حاصل برابر است با مجموعه تمام باقی ماندههای سطرهای انتقالی در صورتی که مقدار مثبت باشد. در غیر این صورت نتیجه حاصل
0
خواهد بود.sum_if_neg
نتیجه حاصل برابر است با مجموعه تمام باقی ماندههای سطرهای انتقالی در صورتی که مقدار منفی باشد. در غیر این صورت نتیجه حاصل
0
خواهد بود.count_rows
نتیجه برابر است با تعداد زیرسطرهای عبارت. اگر سطر والد دارای مقدار گروهبندی باشد، نتیجه برابر با تعداد کلیدهای گروهبندی متمایز در سطرهای انتقال منطبق خواهد بود. در غیر این صورت مقدار برابر است با سطرهای انتقالی منطبق.
برای معکوس کردن علامت نتیجه حاصل میتوانید در ابتدای زیرفرمول کاراکتر -
را تایپ کنید.

موتور «تجمیع سایر فرمولها»¶
هرگاه میخواهید بر روی مقادیر به دست آمده از سایر عبارتها عملیاتهای جبری انجام دهید از این موتور استفاده کنید. فرمولهای این بخش ترکیبی از ارجاعهایی است که توسط یکی از چهار عملیات ساده جبری جدا شدهاند (جمع +
، تفریق -
، تقسیم /
و ضرب *
). برای ارجاع به عبارت کد سطر مربوطه را تایپ کرده و بعد از آن یک نقطه .
و سپس برچسب عبارت را قرار دهید (مثل کد.برچسب
).
زیرفرمولها میتوانند یکی از این موارد باشند:
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)
اگر برچسبی که ارجاع میدهید در فایل داده تعریف شده باشد، میتوان به جای شناسه از xmlid نیز استفاده کرد.
مثال
tag(my_module.my_tag)
همچنین میتوانید از برچسبها در عبارتهای جبری نیز استفاده کنید، و آنها را با مجموعه انتخابهای پیشوند ترکیب کنید.
مثال
tag(my_module.my_tag) + tag(42) + 10
10
جمع میشودپسوندهای C
و D
را نیز میتوان به همان صورت با برچسبها به کار برد.
مثال
tag(my_module.my_tag)C
حذف پیشوند همچنین با برچسبها نیز استفاده میشود.
مثال
tag(my_module.my_tag)\(10)
10
شروع نمیشود را تطبیق میدهد.موتور «مقدار خارجی»¶
موتور «مقدار خارجی» برای ارجاع به مقادیر انتقالی و دستی استفاده میشود. این مقادیر با استفاده از account.move.line
ذخیره نمیشوند، بلکه ذخیره آنها با account.report.external.value
است. هریک از این اشیاء مستقیماً به عبارتی که آن را تحت تأثیر قرار میدهد اشاره دارند، پس در خصوص نحوه انتخاب آنها کار زیادی قابل انجام نیست.
فرمول میتواند یکی از مقادیر زیر باشد:
sum
اگر قرار است نتیجه مجموع تمام مقادیر خارجی در بازه زمانی مشخص باشد.
most_recent
اگر نتیجه باید برابر با آخرین مقدار خارجی در بازه مشخص شده باشد.
به علاوه میتوان به دو روش از زیرفرمولها استفاده کرد:
rounding=X
اگر
X
با عددی جایگزین شود، گرد کردن با X رقم اعشار انجام میشود.editable
مشخص میکند که این عبارت به صورت دستی قابل ویرایش است و موجب نمایش یک آیکون در گزارش شده و به کاربر اجازه میدهد این کار را انجام دهد.
توجه
مقادیر دستی در date_to
انتخابی فعلی در گزارش ایجاد میشوند.
هر دو زیرفرمول را میتوان با جدا کردن ;
ترکیب کرد.
مثال
editable;rounding=2
موتور «تابع سفارشی پایتون»¶
این موتور برای توسعهدهندگان ساخته شده است که بتوانند محاسبات سفارشی عبارتها را به صورت موردی معرفی کنند. این فرمول در واقع نام تابع پایتون برای فراخوانی است، و زیرفرمول آن نیز کلید دریافت دیکشنری است که توسط این تابع برگردانده شده است. از این موتور تنها زمانی استفاده کنید که در حال ایجاد یک ماژول اختصاصی هستید.
ستونها¶
گزارشها میتوانند تعداد بینهایت ستون نمایش دهند. هر ستون مقدار خود را از عبارتهای تعریف شده در سطرها دریافت میکند. فیلد expression_label در ستون برچسب عبارتهایی که مقدار آنها در حال نمایش است را مشخص میکند. اگر سطری دارای عبارتی در این فیلد نباشد، پس در این ستون چیزی برای آن نمایش داده نخواهد شد. اگر چند ستون مورد نیاز باشد باید از برچسبهای عبارت مختلف استفاده کنید.

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