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

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

عبارات¶
هر خط میتواند شامل یک یا چند عبارت باشد. عبارات به عنوان زیرمتغیرهایی در نظر گرفته میشوند که برای یک خط گزارش مورد نیاز هستند. برای ایجاد یک عبارت، روی افزودن یک خط درون پنجره بازشوی یک خط کلیک کنید.
هنگام ایجاد یک عبارت، باید یک برچسب وارد کنید که برای ارجاع به آن عبارت استفاده میشود. برچسب باید در میان عبارات هر خط گزارش منحصربهفرد باشد. هر دو فیلد موتور محاسباتی و فرمول نیز باید تکمیل شوند. موتور محاسباتی تعیین میکند که فرمول(ها) و زیرفرمول(ها) چگونه تفسیر شوند. در صورت نیاز، امکان ترکیب عبارات با استفاده از موتورهای محاسباتی مختلف در یک خط وجود دارد.
توجه
بسته به موتور، زیرفرمولها نیز ممکن است مورد نیاز باشند.
موتور محاسبه دامنه اودو¶
هنگام استفاده از موتور محاسباتی دامنه اودو، یک فرمول به عنوان یک دامنه اودو که اشیاء account.move.line
را هدف قرار میدهد، تفسیر میشود.
زیر فرمول به شما امکان میدهد تعیین کنید که خطوط حرکت مطابق با دامنه چگونه برای محاسبه مقدار عبارت استفاده میشوند:
- جمع
نتیجه جمع تمام ماندههای خطوط حرکت تطبیق داده شده است.
جمع_اگر_مثبت
نتیجه جمع تمام ماندههای خطوط حرکت تطبیق داده شده است، اگر این مقدار مثبت باشد. در غیر این صورت، مقدار
0
است.جمع اگر منفی
نتیجه مجموع تمام ماندههای خطوط حرکت تطبیق داده شده است، اگر این مقدار منفی باشد. در غیر این صورت، مقدار
0
خواهد بود.تعداد_ردیفها
نتیجه تعداد زیرخطهای این عبارت است. اگر خط اصلی دارای مقدار گروهبندی باشد، این مقدار با تعداد کلیدهای گروهبندی متمایز در خطوط حرکت تطبیق داده شده مطابقت خواهد داشت. در غیر این صورت، این مقدار برابر با تعداد خطوط حرکت تطبیق داده شده خواهد بود.
نکته
برای معکوس کردن علامت نتیجه، یک علامت -
را در ابتدای زیرفرمول قرار دهید.

موتور محاسبه فرمولهای ترکیبی دیگر¶
موتور محاسباتی جمع سایر فرمولها عملیاتهای ریاضی را بر روی مقادیر بهدستآمده از سایر عبارات انجام میدهد. فرمولها در اینجا شامل ارجاعات به عبارات هستند که با یکی از چهار عملگر اصلی ریاضی (جمع +
، تفریق -
، تقسیم /
و ضرب *
) جدا شدهاند. برای ارجاع به یک عبارت، کد خط والد آن را تایپ کنید و سپس یک نقطه .
و برچسب عبارت را وارد کنید (مثلاً code.label).
زیر فرمولها میتوانند یکی از موارد زیر باشند:
اگر_بیشتر(فعلی(مقدار))
مقدار عبارت حسابی تنها در صورتی بازگردانده میشود که از حد تعیینشده بیشتر باشد. در غیر این صورت، نتیجه
0
خواهد بود.اگر_کمتر(فعلی(مقدار))
مقدار عبارت حسابی تنها در صورتی بازگردانده میشود که کمتر از حد تعیینشده باشد. در غیر این صورت، نتیجه
0
خواهد بود.اگر_بین(ارز1(مقدار1)، ارز2(مقدار2))
مقدار عبارت ریاضی تنها در صورتی بازگردانده میشود که به طور دقیق بین حدود مشخص شده باشد. در غیر این صورت، به نزدیکترین حد بازگردانده میشود.
اگر_عبارت_دیگر_بالاتر(کد_خط.برچسب_عبارت، فعلی(مقدار))
مقدار عبارت حسابی تنها در صورتی بازگردانده میشود که مقدار عبارت مشخصشده توسط کد خط و برچسب عبارت ارائهشده بیشتر از حد تعیینشده باشد. در غیر این صورت، نتیجه
0
خواهد بود.اگر_عبارت_دیگر_کمتر(کد_خط.برچسب_عبارت، مقدار_فعلی(مقدار))
مقدار عبارت حسابی تنها در صورتی بازگردانده میشود که مقدار عبارت مشخصشده توسط کد خط و برچسب عبارت ارائهشده کمتر از حد تعیینشده باشد. در غیر این صورت، نتیجه
0
خواهد بود.
CUR
کد ارز به صورت حروف بزرگ است و amount
مقدار تعهدی است که به آن ارز بیان شده است.
شما همچنین میتوانید از زیرفرمول cross_report
برای تطبیق یک عبارت موجود در گزارش دیگر استفاده کنید.
موتور محاسبه پیشوند کدهای حساب¶
موتور محاسباتی پیشوند کدهای حساب برای مطابقت دادن مبالغ انجام شده در حسابها با استفاده از پیشوندهای کدهای این حسابها به عنوان متغیر در یک عبارت ریاضی استفاده میشود.
Example
Example
۲۱ + ۱۰ - ۵
21
و 10
شروع میشوند، جمع میکند و مانده حسابهایی با پیشوند 5
را کسر میکند.همچنین امکان نادیده گرفتن انتخابی از زیر پیشوندها وجود دارد.
Example
۲۱ + ۱۰\(۱۰۱، ۱۰۲) - ۵\(۵۷)
101
، 102
و 57
را نادیده میگیرد.شما میتوانید از «زیر فیلترگذاری» بر روی اعتبارات و بدهیها با استفاده از پسوندهای C
و D
استفاده کنید. در این حالت، یک حساب فقط در نظر گرفته میشود اگر پیشوند آن مطابقت داشته باشد و اگر مجموع مانده خطوط حرکت انجام شده در این حساب اعتبار/بدهی باشد.
Example
حساب 210001
دارای مانده -42 و حساب 210002
دارای مانده 25 است. فرمول 21D
فقط با حساب 210002
مطابقت دارد و بنابراین مقدار 25 را برمیگرداند. حساب 210001
مطابقت ندارد، زیرا مانده آن بدهکار است.
پیشوندهای استثنا میتوانند با پسوندهای C
و D
ترکیب شوند.
Example
۲۱D + ۱۰\(۱۰۱, ۱۰۲)C - ۵\(۵۷)
21
ثبت شدهاند در صورتی که بدهکار (D
) باشند و کد 10
در صورتی که بستانکار (C
) باشند، جمع میکند، اما پیشوندهای 101
، 102
را نادیده میگیرد و مانده حسابهایی با پیشوند 5
را کم میکند، در حالی که پیشوند 57
را نادیده میگیرد.برای مطابقت با حرف C
یا D
در یک پیشوند و استفاده نکردن از آن به عنوان پسوند، از یک استثنای خالی ()
استفاده کنید.
Example
۲۱D\()
21D
شروع میشود، بدون توجه به علامت مانده آنها مطابقت میدهد.علاوه بر استفاده از پیشوندهای کد برای شامل کردن حسابها، میتوانید آنها را با برچسبهای حساب نیز مطابقت دهید. این امر بهویژه زمانی مفید است که کشور شما فاقد یک جدول حساب استاندارد باشد، جایی که ممکن است از یک پیشوند برای اهداف مختلف در شرکتهای مختلف استفاده شود.
Example
برچسب(25)
اگر برچسبی که به آن اشاره میکنید در یک فایل داده تعریف شده باشد، میتوان به جای شناسه از XMLID استفاده کرد.
Example
برچسب(my_module.my_tag)
شما همچنین میتوانید از عبارات ریاضی با برچسبها استفاده کنید و احتمالاً آنها را با انتخابهای پیشوند ترکیب کنید.
Example
برچسب(my_module.my_tag) + برچسب(42) + 10
10
است، جمع خواهند شد.پسوندهای C
و D
میتوانند به همان روش با برچسبها استفاده شوند.
Example
برچسب(my_module.my_tag)C
حذف پیشوند همچنین با برچسبها کار میکند.
Example
برچسب(my_module.my_tag)\(10)
10
شروع نمیشود، مطابقت میدهد.موتور محاسبه ارزش خارجی¶
موتور محاسبه ارزش خارجی برای ارجاع به مقادیر دستی و مقادیر انتقالی استفاده میشود. این مقادیر با استفاده از account.move.line
ذخیره نمیشوند، بلکه با account.report.external.value
ذخیره میشوند. هر یک از این اشیاء مستقیماً به عبارتی که تحت تأثیر قرار میدهد اشاره میکنند، بنابراین نیاز بسیار کمی به انتخاب آنها در اینجا وجود دارد.
فرمولها میتوانند یکی از موارد زیر باشند:
- جمع
اگر نتیجه باید مجموع تمام مقادیر خارجی در دوره باشد.
- جدیدترین
اگر نتیجه باید مقدار آخرین مقدار خارجی در دوره باشد.
علاوه بر این، زیر فرمولها میتوانند به دو روش استفاده شوند:
گرد کردن=X
جایگزینی
X
با یک عدد دستور میدهد که مقدار را به X رقم اعشار گرد کنید.- قابل ویرایش
نشان میدهد که این عبارت میتواند به صورت دستی ویرایش شود و با نمایش یک آیکون در گزارش، به کاربر اجازه میدهد این اقدام را انجام دهد.
توجه
مقادیر دستی در تاریخ date_to
که در حال حاضر در گزارش انتخاب شده است، ایجاد میشوند.
هر دو زیر فرمول را میتوان با جدا کردن آنها با ;
ترکیب کرد.
Example
قابل ویرایش؛گرد کردن=۲
موتور محاسباتی تابع سفارشی پایتون¶
موتور محاسباتی Custom Python Function ابزاری برای توسعهدهندگان است تا محاسبات سفارشی عبارات را به صورت موردی معرفی کنند. Formula نام یک تابع پایتون برای فراخوانی است و Subformula یک کلید برای بازیابی از دیکشنری بازگشتی این تابع است. از این موتور محاسباتی تنها در صورت ایجاد یک ماژول سفارشی استفاده کنید.
ستونها¶
گزارشها میتوانند تعداد نامحدودی از ستونها برای نمایش داشته باشند. هر ستون مقادیر خود را از عبارات تعریفشده در خطوط دریافت میکند. فیلد expression_label ستون، برچسب عبارات را که مقدار آن نمایش داده میشود، مشخص میکند. اگر یک خط در آن فیلد عبارتی نداشته باشد، در این ستون چیزی برای آن نمایش داده نمیشود. اگر به چندین ستون نیاز باشد، باید از برچسبهای عبارت متفاوت استفاده کنید.

هنگام استفاده از ویژگی مقایسه دوره که در زیر برگه گزینهها یک گزارش حسابداری قرار دارد، تمام ستونها در هر دوره تکرار میشوند.
گروهبندی خطوط¶
گروهبندی غیر استاندارد با افزودن یا استفاده از فیلدهای موجود در مدل آیتم دفتر روزنامه امکانپذیر است، به شرطی که فیلدها مرتبط و غیر ذخیرهشده باشند.
توجه
گروهبندی خطوط نیازمند گزارشهایی است که خطوط گزارش صریح داشته باشند و قابل ویرایش باشند. به عنوان مثال، گزارشهای معوق از گروهبندی خطوط پشتیبانی نمیکنند زیرا از خطوط پویا که تولید میشوند استفاده میکنند.
ایجاد یک فیلد جدید در آیتم دفتر روزنامه¶
برای ایجاد یک فیلد مرتبط و غیر ذخیرهشده در مدل آیتمهای ژورنال، ابتدا به مسیر (باگ) کلیک کنید، سپس روی فیلدها کلیک کنید. روی جدید کلیک کنید تا یک فیلد جدید ایجاد شود و فیلدهای زیر را تکمیل کنید:
بروید و روی آیکوننام فیلد: یک نام فنی برای فیلد
برچسب فیلد: برچسبی که برای فیلد نمایش داده میشود
نوع فیلد: نوع فیلدی که این فیلد مرتبط باید به آن اشاره کند
ذخیرهشده: این فیلد را بدون علامت بگذارید زیرا تنها فیلدهای غیرذخیرهشده میتوانند برای گروهبندی خطوط استفاده شوند.
مدل مرتبط: اگر نوع فیلد one2many، many2many یا many2one باشد، مدل فیلد اصلی را برای گروهبندی انتخاب کنید.
تعریف فیلد مرتبط: مسیر فنی به فیلدی که میخواهید بر اساس آن گروهبندی کنید
Example
برای گروهبندی بر اساس تیم فروش شریک تجاری، تعریف فیلد مرتبط را به
move_id.team_id
تنظیم کنید.
گروهبندی خطوط¶
برای گروهبندی خطوط، به زبانه خطوط گزارش مورد نظر بروید، روی خطی که میخواهید گروهبندی کنید کلیک کنید و فیلد گروهبندی بر اساس را ویرایش کنید. نام فنی (نام فیلد) فیلدی که میخواهید به عنوان کلید گروهبندی استفاده کنید را وارد کنید.
نکته
برای مشاهده فهرستی از تمام فیلدهای مدل و نامهای فنی آنها، به مسیر (باگ) کلیک کنید، سپس روی فیلدها کلیک کنید. نام فنی هر فیلد در ستون نام فیلد فهرست شده است.
بروید و روی آیکونهمچنین ببینید