<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="fa">
	<id>https://wiki.hesabix.ir/index.php?action=history&amp;feed=atom&amp;title=%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%DA%A9%D8%A7%D9%85%D9%84_Hscript_%D8%8C_%D8%B2%D8%A8%D8%A7%D9%86_%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%AD%D8%B3%D8%A7%D8%A8%DB%8C%DA%A9%D8%B3</id>
	<title>راهنمای کامل Hscript ، زبان گزارش سازی حسابیکس - تاریخچهٔ نسخه‌ها</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.hesabix.ir/index.php?action=history&amp;feed=atom&amp;title=%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%DA%A9%D8%A7%D9%85%D9%84_Hscript_%D8%8C_%D8%B2%D8%A8%D8%A7%D9%86_%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%AD%D8%B3%D8%A7%D8%A8%DB%8C%DA%A9%D8%B3"/>
	<link rel="alternate" type="text/html" href="https://wiki.hesabix.ir/index.php?title=%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%DA%A9%D8%A7%D9%85%D9%84_Hscript_%D8%8C_%D8%B2%D8%A8%D8%A7%D9%86_%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%AD%D8%B3%D8%A7%D8%A8%DB%8C%DA%A9%D8%B3&amp;action=history"/>
	<updated>2026-08-24T03:55:48Z</updated>
	<subtitle>تاریخچهٔ نسخه‌ها برای این صفحه در ویکی</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://wiki.hesabix.ir/index.php?title=%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%DA%A9%D8%A7%D9%85%D9%84_Hscript_%D8%8C_%D8%B2%D8%A8%D8%A7%D9%86_%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%AD%D8%B3%D8%A7%D8%A8%DB%8C%DA%A9%D8%B3&amp;diff=50&amp;oldid=prev</id>
		<title>Alizadeh.babak: صفحه‌ای تازه حاوی «این راهنما برای &#039;&#039;&#039;کاربران عادی و گزارش‌نویسان&#039;&#039;&#039; نوشته شده است. هدف آن توضیح ساده و کامل سیستم گزارش‌ساز اسکریپتی حسابیکس است؛ از ورود به صفحه تا ساخت داشبورد، قالب‌بندی عدد/تاریخ، خروجی PDF/Excel و کار با هوش مصنوعی. {| class=&quot;wikitable&quot; style=&quot;background-color:#f8f9fa;...» ایجاد کرد</title>
		<link rel="alternate" type="text/html" href="https://wiki.hesabix.ir/index.php?title=%D8%B1%D8%A7%D9%87%D9%86%D9%85%D8%A7%DB%8C_%DA%A9%D8%A7%D9%85%D9%84_Hscript_%D8%8C_%D8%B2%D8%A8%D8%A7%D9%86_%DA%AF%D8%B2%D8%A7%D8%B1%D8%B4_%D8%B3%D8%A7%D8%B2%DB%8C_%D8%AD%D8%B3%D8%A7%D8%A8%DB%8C%DA%A9%D8%B3&amp;diff=50&amp;oldid=prev"/>
		<updated>2026-07-20T23:13:15Z</updated>

		<summary type="html">&lt;p&gt;صفحه‌ای تازه حاوی «این راهنما برای &amp;#039;&amp;#039;&amp;#039;کاربران عادی و گزارش‌نویسان&amp;#039;&amp;#039;&amp;#039; نوشته شده است. هدف آن توضیح ساده و کامل سیستم گزارش‌ساز اسکریپتی حسابیکس است؛ از ورود به صفحه تا ساخت داشبورد، قالب‌بندی عدد/تاریخ، خروجی PDF/Excel و کار با هوش مصنوعی. {| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#f8f9fa;...» ایجاد کرد&lt;/p&gt;
&lt;p&gt;&lt;b&gt;صفحهٔ تازه&lt;/b&gt;&lt;/p&gt;&lt;div&gt;این راهنما برای &amp;#039;&amp;#039;&amp;#039;کاربران عادی و گزارش‌نویسان&amp;#039;&amp;#039;&amp;#039; نوشته شده است. هدف آن توضیح ساده و کامل سیستم گزارش‌ساز اسکریپتی حسابیکس است؛ از ورود به صفحه تا ساخت داشبورد، قالب‌بندی عدد/تاریخ، خروجی PDF/Excel و کار با هوش مصنوعی.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#f8f9fa; border-left:4px solid #3366cc;&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;HScript چیست؟&amp;#039;&amp;#039;&amp;#039; یک زبان ساده شبیه پایتون است که داخل حسابیکس اجرا می‌شود. با آن می‌توانید داده بگیرید، محاسبه کنید و گزارش/داشبورد بسازید — بدون دسترسی مستقیم به دیتابیس و بدون خطر اجرای کد ناامن.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ۱) از کجا شروع کنیم؟ ==&lt;br /&gt;
&lt;br /&gt;
=== مسیر دسترسی ===&lt;br /&gt;
&lt;br /&gt;
# وارد &amp;#039;&amp;#039;&amp;#039;پنل کسب‌وکار&amp;#039;&amp;#039;&amp;#039; شوید.&lt;br /&gt;
# از منوی راست، بخش &amp;#039;&amp;#039;&amp;#039;سرویس‌ها و افزونه‌ها&amp;#039;&amp;#039;&amp;#039;، گزینه &amp;#039;&amp;#039;&amp;#039;گزارش‌ساز اسکریپتی&amp;#039;&amp;#039;&amp;#039; را باز کنید.&lt;br /&gt;
# یا از صفحه &amp;#039;&amp;#039;&amp;#039;گزارش‌ها&amp;#039;&amp;#039;&amp;#039; کارت &amp;#039;&amp;#039;&amp;#039;گزارش‌ساز اسکریپتی&amp;#039;&amp;#039;&amp;#039; را انتخاب کنید.&lt;br /&gt;
# آدرس مستقیم: &amp;lt;code&amp;gt;/business/{شناسه-کسب‌وکار}/hscript&amp;lt;/code&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== دسترسی لازم ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!کار&lt;br /&gt;
!دسترسی موردنیاز&lt;br /&gt;
|-&lt;br /&gt;
|دیدن/اجرا/ذخیره گزارش&lt;br /&gt;
|&amp;lt;code&amp;gt;reports&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;view&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|خروجی PDF و Excel&lt;br /&gt;
|&amp;lt;code&amp;gt;reports&amp;lt;/code&amp;gt; → &amp;lt;code&amp;gt;export&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
اگر دسترسی ندارید، از مدیر کسب‌وکار بخواهید مجوز گزارش‌ها را برای شما فعال کند.&lt;br /&gt;
&lt;br /&gt;
=== افزونه و سقف استفاده ===&lt;br /&gt;
&lt;br /&gt;
* بدون خرید افزونه هم می‌توانید کار کنید (پلن رایگان با سقف محدود).&lt;br /&gt;
* با فعال‌سازی افزونه &amp;#039;&amp;#039;&amp;#039;گزارش‌ساز اسکریپتی (HScript)&amp;#039;&amp;#039;&amp;#039; از بازار افزونه‌ها، سقف تعداد گزارش ذخیره‌شده و تعداد اجرا بالاتر می‌رود.&lt;br /&gt;
* در بالای صفحه، در صورت نیاز بنر ارتقا نمایش داده می‌شود.&lt;br /&gt;
&lt;br /&gt;
== ۲) آشنایی با صفحه استودیو ==&lt;br /&gt;
وقتی گزارش جدید می‌سازید یا یکی را ویرایش می‌کنید، وارد &amp;#039;&amp;#039;&amp;#039;استودیو HScript&amp;#039;&amp;#039;&amp;#039; می‌شوید.&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!بخش&lt;br /&gt;
!کاربرد&lt;br /&gt;
|-&lt;br /&gt;
|عنوان گزارش&lt;br /&gt;
|نامی که در فهرست گزارش‌ها دیده می‌شود&lt;br /&gt;
|-&lt;br /&gt;
|ادیتور اسکریپت (چپ‌چین)&lt;br /&gt;
|محل نوشتن کد HScript&lt;br /&gt;
|-&lt;br /&gt;
|پارامترها (JSON)&lt;br /&gt;
|مقادیر متغیر مثل بازه تاریخ؛ اختیاری&lt;br /&gt;
|-&lt;br /&gt;
|پیش‌نمایش&lt;br /&gt;
|نتیجه KPI، جدول و نمودار بعد از اجرا&lt;br /&gt;
|-&lt;br /&gt;
|اعتبارسنجی&lt;br /&gt;
|فقط بررسی نحو اسکریپت (بدون گرفتن داده)&lt;br /&gt;
|-&lt;br /&gt;
|اجرا&lt;br /&gt;
|اجرای واقعی و ساخت پیش‌نمایش&lt;br /&gt;
|-&lt;br /&gt;
|ذخیره / انتشار&lt;br /&gt;
|ذخیره پیش‌نویس یا انتشار برای استفاده&lt;br /&gt;
|-&lt;br /&gt;
|PDF / Excel&lt;br /&gt;
|خروجی فایل (نیازمند دسترسی export)&lt;br /&gt;
|-&lt;br /&gt;
|از AI بساز&lt;br /&gt;
|کمک گرفتن از هوش مصنوعی برای نوشتن/اصلاح اسکریپت&lt;br /&gt;
|}&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#fff8e1; border-left:4px solid #ff9800;&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;نکته:&amp;#039;&amp;#039;&amp;#039; ادیتور کد همیشه &amp;#039;&amp;#039;&amp;#039;چپ‌چین (LTR)&amp;#039;&amp;#039;&amp;#039; است تا خواندن کد راحت باشد؛ حتی اگر پنل شما راست‌چین باشد.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ۳) اولین گزارش در ۳۰ ثانیه ==&lt;br /&gt;
اسکریپت نمونه زیر را در استودیو بگذارید و دکمه &amp;#039;&amp;#039;&amp;#039;اجرا&amp;#039;&amp;#039;&amp;#039; را بزنید:&amp;lt;pre&amp;gt;&lt;br /&gt;
report.calendar(&amp;quot;jalali&amp;quot;)&lt;br /&gt;
report.number_format(style=&amp;quot;western&amp;quot;)&lt;br /&gt;
report.dashboard(columns=12)&lt;br /&gt;
report.title(&amp;quot;داشبورد فروش&amp;quot;)&lt;br /&gt;
rows = invoices.all(limit=50)&lt;br /&gt;
report.kpi(&amp;quot;تعداد فاکتور&amp;quot;, rows.count(), format=&amp;quot;integer&amp;quot;, span=4)&lt;br /&gt;
report.kpi(&amp;quot;جمع بدهکار&amp;quot;, rows.sum(&amp;quot;total_debit&amp;quot;), format=&amp;quot;currency&amp;quot;, span=4)&lt;br /&gt;
report.card(&amp;quot;وضعیت&amp;quot;, &amp;quot;آماده&amp;quot;, subtitle=&amp;quot;پیش‌نمایش&amp;quot;, span=4)&lt;br /&gt;
report.row_break()&lt;br /&gt;
top_rows = rows.top(10, by=&amp;quot;total_debit&amp;quot;)&lt;br /&gt;
report.bar_chart(top_rows, x=&amp;quot;code&amp;quot;, y=&amp;quot;total_debit&amp;quot;, title=&amp;quot;بیشترین بدهکار&amp;quot;, span=6)&lt;br /&gt;
report.table(&lt;br /&gt;
  rows.limit(15),&lt;br /&gt;
  columns=[&amp;quot;code&amp;quot;, &amp;quot;document_date&amp;quot;, &amp;quot;total_debit&amp;quot;, &amp;quot;total_credit&amp;quot;],&lt;br /&gt;
  formats={&amp;quot;total_debit&amp;quot;: &amp;quot;currency&amp;quot;, &amp;quot;total_credit&amp;quot;: &amp;quot;currency&amp;quot;},&lt;br /&gt;
  title=&amp;quot;آخرین فاکتورها&amp;quot;,&lt;br /&gt;
  span=6&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;اگر داده فاکتور داشته باشید، KPI، نمودار و جدول را در پیش‌نمایش می‌بینید.&lt;br /&gt;
&lt;br /&gt;
== ۴) مفاهیم پایه به زبان ساده ==&lt;br /&gt;
&lt;br /&gt;
=== داده از کجا می‌آید؟ ===&lt;br /&gt;
شما SQL نمی‌نویسید. فقط از &amp;#039;&amp;#039;&amp;#039;درگاه‌های مجاز&amp;#039;&amp;#039;&amp;#039; استفاده می‌کنید:&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!ماژول&lt;br /&gt;
!معنی ساده&lt;br /&gt;
!مثال&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;invoices&amp;lt;/code&amp;gt;&lt;br /&gt;
|فاکتورها/اسناد فروش و مشابه&lt;br /&gt;
|&amp;lt;code&amp;gt;invoices.all(limit=50)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;customers&amp;lt;/code&amp;gt;&lt;br /&gt;
|مشتریان&lt;br /&gt;
|&amp;lt;code&amp;gt;customers.all(limit=100)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;products&amp;lt;/code&amp;gt;&lt;br /&gt;
|کالا/خدمات&lt;br /&gt;
|&amp;lt;code&amp;gt;products.all(limit=100)&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;payments&amp;lt;/code&amp;gt;&lt;br /&gt;
|دریافت/پرداخت&lt;br /&gt;
|&amp;lt;code&amp;gt;payments.this_month()&amp;lt;/code&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
همیشه فقط دادهٔ &amp;#039;&amp;#039;&amp;#039;همین کسب‌وکار&amp;#039;&amp;#039;&amp;#039; برمی‌گردد؛ نمی‌توانید به کسب‌وکار دیگر دسترسی پیدا کنید.&lt;br /&gt;
&lt;br /&gt;
=== نتیجه گزارش چیست؟ ===&lt;br /&gt;
خروجی یک &amp;#039;&amp;#039;&amp;#039;Report Spec&amp;#039;&amp;#039;&amp;#039; است: ساختار استاندارد شامل عنوان، کارت‌های آماری (KPI)، جدول، نمودار و تنظیمات. همین ساختار در پنل، PDF و Excel استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
=== چه چیزهایی ممنوع است؟ ===&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;import&amp;lt;/code&amp;gt; و دسترسی به فایل/شبکه&lt;br /&gt;
* SQL خام و دستورات سیستم‌عامل&lt;br /&gt;
* تغییر &amp;lt;code&amp;gt;business_id&amp;lt;/code&amp;gt; یا دور زدن امنیت&lt;br /&gt;
&lt;br /&gt;
این محدودیت‌ها عمدی است تا گزارش‌نویسی امن بماند.&lt;br /&gt;
&lt;br /&gt;
== ۵) بلوک‌های گزارش (report.*) ==&lt;br /&gt;
&lt;br /&gt;
=== عنوان و متن ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.title(&amp;quot;گزارش فروش ماه&amp;quot;)&lt;br /&gt;
report.heading(&amp;quot;خلاصه&amp;quot;, level=2)&lt;br /&gt;
report.text(&amp;quot;این گزارش به‌صورت خودکار ساخته شده است.&amp;quot;)&lt;br /&gt;
report.section(&amp;quot;جزئیات&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== KPI و کارت ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.kpi(&amp;quot;تعداد&amp;quot;, 120, format=&amp;quot;integer&amp;quot;)&lt;br /&gt;
report.kpi(&amp;quot;مبلغ&amp;quot;, 15000000, format=&amp;quot;currency&amp;quot;, hint=&amp;quot;ریال&amp;quot;)&lt;br /&gt;
report.card(&amp;quot;وضعیت&amp;quot;, &amp;quot;فعال&amp;quot;, subtitle=&amp;quot;تا امروز&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== جدول ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
rows = invoices.all(limit=30)&lt;br /&gt;
report.table(&lt;br /&gt;
  rows,&lt;br /&gt;
  columns=[&amp;quot;code&amp;quot;, &amp;quot;document_date&amp;quot;, &amp;quot;total_debit&amp;quot;],&lt;br /&gt;
  formats={&amp;quot;total_debit&amp;quot;: &amp;quot;currency&amp;quot;},&lt;br /&gt;
  title=&amp;quot;فاکتورها&amp;quot;&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== نمودار ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
data = rows.top(8, by=&amp;quot;total_debit&amp;quot;)&lt;br /&gt;
report.bar_chart(data, x=&amp;quot;code&amp;quot;, y=&amp;quot;total_debit&amp;quot;, title=&amp;quot;بیشترین‌ها&amp;quot;)&lt;br /&gt;
report.line_chart(data, x=&amp;quot;code&amp;quot;, y=&amp;quot;total_debit&amp;quot;, title=&amp;quot;روند&amp;quot;)&lt;br /&gt;
report.pie_chart(data, label=&amp;quot;code&amp;quot;, value=&amp;quot;total_debit&amp;quot;, title=&amp;quot;سهم&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== داشبورد و چیدمان ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.dashboard(columns=12)&lt;br /&gt;
report.kpi(&amp;quot;A&amp;quot;, 1, span=4)&lt;br /&gt;
report.kpi(&amp;quot;B&amp;quot;, 2, span=4)&lt;br /&gt;
report.kpi(&amp;quot;C&amp;quot;, 3, span=4)&lt;br /&gt;
report.row_break()&lt;br /&gt;
report.table(rows, span=12)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
* &amp;lt;code&amp;gt;columns&amp;lt;/code&amp;gt;: شبکه ۶ یا ۱۲ یا ۲۴ ستونه&lt;br /&gt;
* &amp;lt;code&amp;gt;span&amp;lt;/code&amp;gt;: عرض هر بلوک در شبکه&lt;br /&gt;
* &amp;lt;code&amp;gt;row_break()&amp;lt;/code&amp;gt;: رفتن به ردیف بعد&lt;br /&gt;
&lt;br /&gt;
== ۶) قالب‌بندی اعداد (جداکننده هزارگان و بیشتر) ==&lt;br /&gt;
&lt;br /&gt;
=== تنظیم پیش‌فرض گزارش ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
# سبک غربی: 1,234,567.50&lt;br /&gt;
report.number_format(style=&amp;quot;western&amp;quot;)&lt;br /&gt;
&lt;br /&gt;
# سبک فارسی (جداکننده فارسی): 1٬234٬567٫50&lt;br /&gt;
report.number_format(style=&amp;quot;fa&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;یا دستی:&amp;lt;pre&amp;gt;&lt;br /&gt;
report.number_format(thousands_sep=&amp;quot;,&amp;quot;, decimal_sep=&amp;quot;.&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== قالب‌های آماده ===&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!مقدار format&lt;br /&gt;
!نتیجه نمونه برای ۱۲۳۴۵۶۷٫۵&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;integer&amp;lt;/code&amp;gt;&lt;br /&gt;
|1,234,568 (گرد شده بدون اعشار)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;number&amp;lt;/code&amp;gt;&lt;br /&gt;
|با جداکننده هزارگان&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;number:2&amp;lt;/code&amp;gt;&lt;br /&gt;
|1,234,567.50&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;currency&amp;lt;/code&amp;gt; یا &amp;lt;code&amp;gt;money&amp;lt;/code&amp;gt;&lt;br /&gt;
|1,234,568 (پیش‌فرض بدون اعشار)&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;currency:0&amp;lt;/code&amp;gt;&lt;br /&gt;
|1,234,568&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;decimal:3&amp;lt;/code&amp;gt;&lt;br /&gt;
|1,234,567.500&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;percent&amp;lt;/code&amp;gt;&lt;br /&gt;
|۱۲٫۵٪ برای مقدار ۱۲٫۵&lt;br /&gt;
|-&lt;br /&gt;
|&amp;lt;code&amp;gt;raw&amp;lt;/code&amp;gt;&lt;br /&gt;
|بدون قالب (همان عدد خام)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
=== در KPI ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.kpi(&amp;quot;فروش&amp;quot;, 12500000, format=&amp;quot;currency&amp;quot;)&lt;br /&gt;
report.kpi(&amp;quot;رشد&amp;quot;, 12.5, format=&amp;quot;percent&amp;quot;)&lt;br /&gt;
report.kpi(&amp;quot;نرخ&amp;quot;, 0.3567, format=&amp;quot;number:4&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== در جدول (برای هر ستون) ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.table(&lt;br /&gt;
  rows,&lt;br /&gt;
  columns=[&amp;quot;code&amp;quot;, &amp;quot;total_debit&amp;quot;, &amp;quot;total_credit&amp;quot;],&lt;br /&gt;
  formats={&lt;br /&gt;
    &amp;quot;total_debit&amp;quot;: &amp;quot;currency&amp;quot;,&lt;br /&gt;
    &amp;quot;total_credit&amp;quot;: &amp;quot;currency&amp;quot;&lt;br /&gt;
  }&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== قالب‌بندی دستی داخل متن ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
msg = &amp;quot;جمع کل: &amp;quot; + format_number(2500000, &amp;quot;currency&amp;quot;)&lt;br /&gt;
report.text(msg)&lt;br /&gt;
&lt;br /&gt;
# معادل:&lt;br /&gt;
report.text(&amp;quot;جمع: &amp;quot; + numbers.format(2500000, &amp;quot;currency&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ۷) تقویم شمسی و میلادی ==&lt;br /&gt;
حسابیکس دو تقویم دارد: &amp;#039;&amp;#039;&amp;#039;جلالی (شمسی)&amp;#039;&amp;#039;&amp;#039; و &amp;#039;&amp;#039;&amp;#039;میلادی&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
=== تنظیم تقویم گزارش ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.calendar(&amp;quot;jalali&amp;quot;)      # شمسی&lt;br /&gt;
# یا&lt;br /&gt;
report.calendar(&amp;quot;gregorian&amp;quot;)  # میلادی&lt;br /&gt;
&amp;lt;/pre&amp;gt;با این کار:&lt;br /&gt;
&lt;br /&gt;
* تاریخ‌های جدول با همان تقویم نمایش داده می‌شوند&lt;br /&gt;
* فیلترهای تاریخی می‌توانند با همان تقویم نوشته شوند&lt;br /&gt;
&lt;br /&gt;
اگر &amp;lt;code&amp;gt;report.calendar&amp;lt;/code&amp;gt; ننویسید، معمولاً همان تقویم پنل شما (هدر &amp;lt;code&amp;gt;X-Calendar-Type&amp;lt;/code&amp;gt;) استفاده می‌شود.&lt;br /&gt;
&lt;br /&gt;
=== قالب‌بندی تاریخ ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.calendar(&amp;quot;jalali&amp;quot;)&lt;br /&gt;
report.kpi(&amp;quot;امروز&amp;quot;, format_date(&amp;quot;2026-07-20&amp;quot;))&lt;br /&gt;
report.text(dates.format(&amp;quot;2026-07-20&amp;quot;, calendar=&amp;quot;gregorian&amp;quot;))&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== فیلتر با تاریخ شمسی ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.calendar(&amp;quot;jalali&amp;quot;)&lt;br /&gt;
rows = invoices.filter(&lt;br /&gt;
  from_date=&amp;quot;1404/01/01&amp;quot;,&lt;br /&gt;
  to_date=&amp;quot;1404/12/29&amp;quot;,&lt;br /&gt;
  limit=200&lt;br /&gt;
)&lt;br /&gt;
report.table(rows, columns=[&amp;quot;code&amp;quot;, &amp;quot;document_date&amp;quot;, &amp;quot;total_debit&amp;quot;], formats={&amp;quot;total_debit&amp;quot;: &amp;quot;currency&amp;quot;})&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#e8f5e9; border-left:4px solid #2e7d32;&amp;quot;&lt;br /&gt;
|اگر سال بین حدود ۱۲۰۰ تا ۱۵۰۰ باشد و با &amp;lt;code&amp;gt;/&amp;lt;/code&amp;gt; نوشته شود، سیستم آن را &amp;#039;&amp;#039;&amp;#039;شمسی&amp;#039;&amp;#039;&amp;#039; می‌فهمد و برای جستجو به میلادی تبدیل می‌کند.&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ۸) کار با جدول داده (HTable) ==&lt;br /&gt;
وقتی از &amp;lt;code&amp;gt;invoices.all()&amp;lt;/code&amp;gt; یا مشابه استفاده می‌کنید، یک جدول در حافظه می‌گیرید:&amp;lt;pre&amp;gt;&lt;br /&gt;
rows = invoices.all(limit=100)&lt;br /&gt;
n = rows.count()&lt;br /&gt;
s = rows.sum(&amp;quot;total_debit&amp;quot;)&lt;br /&gt;
avg = rows.avg(&amp;quot;total_debit&amp;quot;)&lt;br /&gt;
top10 = rows.top(10, by=&amp;quot;total_debit&amp;quot;)&lt;br /&gt;
few = rows.limit(20)&lt;br /&gt;
sorted_rows = rows.sort(&amp;quot;document_date&amp;quot;, desc=True)&lt;br /&gt;
&amp;lt;/pre&amp;gt;ساخت جدول دستی:&amp;lt;pre&amp;gt;&lt;br /&gt;
demo = table([&lt;br /&gt;
  {&amp;quot;name&amp;quot;: &amp;quot;علی&amp;quot;, &amp;quot;amount&amp;quot;: 1000},&lt;br /&gt;
  {&amp;quot;name&amp;quot;: &amp;quot;سارا&amp;quot;, &amp;quot;amount&amp;quot;: 2500}&lt;br /&gt;
])&lt;br /&gt;
report.table(demo, formats={&amp;quot;amount&amp;quot;: &amp;quot;currency&amp;quot;})&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ۹) مثال‌های کاربردی بیشتر ==&lt;br /&gt;
&lt;br /&gt;
=== مثال ۱: فروش ماه جاری ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.calendar(&amp;quot;jalali&amp;quot;)&lt;br /&gt;
report.number_format(style=&amp;quot;western&amp;quot;)&lt;br /&gt;
report.title(&amp;quot;فروش این ماه&amp;quot;)&lt;br /&gt;
rows = invoices.this_month(limit=500)&lt;br /&gt;
report.kpi(&amp;quot;تعداد&amp;quot;, rows.count(), format=&amp;quot;integer&amp;quot;)&lt;br /&gt;
report.kpi(&amp;quot;جمع بدهکار&amp;quot;, rows.sum(&amp;quot;total_debit&amp;quot;), format=&amp;quot;currency&amp;quot;)&lt;br /&gt;
report.table(&lt;br /&gt;
  rows.limit(50),&lt;br /&gt;
  columns=[&amp;quot;code&amp;quot;, &amp;quot;document_date&amp;quot;, &amp;quot;total_debit&amp;quot;],&lt;br /&gt;
  formats={&amp;quot;total_debit&amp;quot;: &amp;quot;currency&amp;quot;}&lt;br /&gt;
)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== مثال ۲: مقایسه ماه قبل ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.calendar(&amp;quot;jalali&amp;quot;)&lt;br /&gt;
cur = invoices.this_month(limit=1000)&lt;br /&gt;
prev = invoices.last_month(limit=1000)&lt;br /&gt;
report.kpi(&amp;quot;این ماه&amp;quot;, cur.sum(&amp;quot;total_debit&amp;quot;), format=&amp;quot;currency&amp;quot;)&lt;br /&gt;
report.kpi(&amp;quot;ماه قبل&amp;quot;, prev.sum(&amp;quot;total_debit&amp;quot;), format=&amp;quot;currency&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== مثال ۳: فیلتر سفارشی ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.calendar(&amp;quot;jalali&amp;quot;)&lt;br /&gt;
rows = invoices.filter(&lt;br /&gt;
  document_type=&amp;quot;invoice_sales&amp;quot;,&lt;br /&gt;
  from_date=&amp;quot;1404/04/01&amp;quot;,&lt;br /&gt;
  to_date=&amp;quot;1404/04/31&amp;quot;,&lt;br /&gt;
  limit=300&lt;br /&gt;
)&lt;br /&gt;
report.bar_chart(rows.top(10, by=&amp;quot;total_debit&amp;quot;), x=&amp;quot;code&amp;quot;, y=&amp;quot;total_debit&amp;quot;, title=&amp;quot;۱۰ فاکتور برتر تیر&amp;quot;)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== مثال ۴: داشبورد دو ستونه ===&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
report.dashboard(columns=12)&lt;br /&gt;
report.title(&amp;quot;نمای کلی&amp;quot;)&lt;br /&gt;
rows = invoices.all(limit=80)&lt;br /&gt;
report.kpi(&amp;quot;تعداد&amp;quot;, rows.count(), format=&amp;quot;integer&amp;quot;, span=6)&lt;br /&gt;
report.kpi(&amp;quot;جمع&amp;quot;, rows.sum(&amp;quot;total_debit&amp;quot;), format=&amp;quot;currency&amp;quot;, span=6)&lt;br /&gt;
report.row_break()&lt;br /&gt;
report.pie_chart(rows.top(5, by=&amp;quot;total_debit&amp;quot;), label=&amp;quot;code&amp;quot;, value=&amp;quot;total_debit&amp;quot;, title=&amp;quot;سهم ۵ تای برتر&amp;quot;, span=6)&lt;br /&gt;
report.table(rows.limit(10), columns=[&amp;quot;code&amp;quot;, &amp;quot;total_debit&amp;quot;], formats={&amp;quot;total_debit&amp;quot;: &amp;quot;currency&amp;quot;}, span=6)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
=== مثال ۵: پارامتر ورودی ===&lt;br /&gt;
در کادر پارامترها:&amp;lt;pre&amp;gt;&lt;br /&gt;
{&lt;br /&gt;
  &amp;quot;min_amount&amp;quot;: 1000000&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/pre&amp;gt;در اسکریپت:&amp;lt;pre&amp;gt;&lt;br /&gt;
min_amount = param[&amp;quot;min_amount&amp;quot;]&lt;br /&gt;
rows = invoices.all(limit=200)&lt;br /&gt;
# فقط نمایش مبلغ حداقل (نمونه ساده با فیلتر جدول)&lt;br /&gt;
report.kpi(&amp;quot;آستانه&amp;quot;, min_amount, format=&amp;quot;currency&amp;quot;)&lt;br /&gt;
report.table(rows.limit(30), columns=[&amp;quot;code&amp;quot;, &amp;quot;total_debit&amp;quot;], formats={&amp;quot;total_debit&amp;quot;: &amp;quot;currency&amp;quot;})&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== ۱۰) ذخیره، انتشار و خروجی ==&lt;br /&gt;
&lt;br /&gt;
=== ذخیره و انتشار ===&lt;br /&gt;
&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;ذخیره&amp;#039;&amp;#039;&amp;#039;: گزارش به‌صورت پیش‌نویس نگه داشته می‌شود.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;انتشار&amp;#039;&amp;#039;&amp;#039;: گزارش برای استفاده/اجرای بعدی در وضعیت منتشرشده قرار می‌گیرد.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;بایگانی&amp;#039;&amp;#039;&amp;#039;: گزارش از فهرست فعال خارج می‌شود (حذف نرم).&lt;br /&gt;
&lt;br /&gt;
=== PDF ===&lt;br /&gt;
از دکمه PDF در استودیو (نیازمند &amp;lt;code&amp;gt;reports.export&amp;lt;/code&amp;gt;). خروجی همان Spec را به PDF امن تبدیل می‌کند.&lt;br /&gt;
&lt;br /&gt;
=== Excel ===&lt;br /&gt;
از دکمه Excel. معمولاً شامل:&lt;br /&gt;
&lt;br /&gt;
* شیت خلاصه (KPIها)&lt;br /&gt;
* یک شیت برای هر جدول&lt;br /&gt;
* شیت داده نمودارها&lt;br /&gt;
&lt;br /&gt;
== ۱۱) کمک گرفتن از هوش مصنوعی ==&lt;br /&gt;
&lt;br /&gt;
# در استودیو روی &amp;#039;&amp;#039;&amp;#039;از AI بساز&amp;#039;&amp;#039;&amp;#039; کلیک کنید.&lt;br /&gt;
# درخواست خود را بنویسید؛ مثلاً: «گزارش فروش ماه با KPI و نمودار میله‌ای».&lt;br /&gt;
# AI با ابزارهای HScript و مستندات کمک می‌کند.&lt;br /&gt;
# در منوی پیام پاسخ، می‌توانید &amp;#039;&amp;#039;&amp;#039;اعمال به استودیو HScript&amp;#039;&amp;#039;&amp;#039; را بزنید تا اسکریپت مستقیم وارد ادیتور شود.&lt;br /&gt;
# همیشه قبل از اتکا، &amp;#039;&amp;#039;&amp;#039;اجرا&amp;#039;&amp;#039;&amp;#039; و در صورت نیاز &amp;#039;&amp;#039;&amp;#039;اعتبارسنجی&amp;#039;&amp;#039;&amp;#039; کنید.&lt;br /&gt;
&lt;br /&gt;
== ۱۲) خطاهای رایج و راه حل = ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!مشکل&lt;br /&gt;
!علت محتمل&lt;br /&gt;
!راه حل&lt;br /&gt;
|-&lt;br /&gt;
|خطای نحوی&lt;br /&gt;
|پرانتز/کوتیشن ناقص یا دستور چندخطی نامعتبر&lt;br /&gt;
|پیام خطا خط را نشان می‌دهد؛ ساده کنید و دوباره اعتبارسنجی کنید&lt;br /&gt;
|-&lt;br /&gt;
|داده خالی&lt;br /&gt;
|بازه تاریخ یا نوع سند اشتباه&lt;br /&gt;
|از &amp;lt;code&amp;gt;all&amp;lt;/code&amp;gt; یا بازه وسیع‌تر شروع کنید&lt;br /&gt;
|-&lt;br /&gt;
|تاریخ اشتباه دیده می‌شود&lt;br /&gt;
|تقویم تنظیم نشده&lt;br /&gt;
|&amp;lt;code&amp;gt;report.calendar(&amp;quot;jalali&amp;quot;)&amp;lt;/code&amp;gt; بگذارید&lt;br /&gt;
|-&lt;br /&gt;
|عدد بدون جداکننده&lt;br /&gt;
|قالب مشخص نشده&lt;br /&gt;
|&amp;lt;code&amp;gt;format=&amp;quot;currency&amp;quot;&amp;lt;/code&amp;gt; یا &amp;lt;code&amp;gt;formats={...}&amp;lt;/code&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|دسترسی ندارید&lt;br /&gt;
|مجوز گزارش&lt;br /&gt;
|از مدیر دسترسی &amp;lt;code&amp;gt;view/export&amp;lt;/code&amp;gt; بگیرید&lt;br /&gt;
|-&lt;br /&gt;
|سقف گزارش پر شده&lt;br /&gt;
|پلن رایگان&lt;br /&gt;
|افزونه را فعال کنید یا گزارش‌های قدیمی را حذف/بایگانی کنید&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ۱۳) نکات امنیتی و محدودیت‌ها (به زبان ساده) ==&lt;br /&gt;
&lt;br /&gt;
* اسکریپت فقط داده همان کسب‌وکار را می‌بیند.&lt;br /&gt;
* تعداد فراخوانی داده، حجم خروجی و زمان اجرا سقف دارد.&lt;br /&gt;
* تعداد اجرای زیاد در دقیقه محدود است (برای جلوگیری از فشار به سرور).&lt;br /&gt;
* کد خطرناک (فایل، شبکه، import) اجرا نمی‌شود.&lt;br /&gt;
&lt;br /&gt;
== ۱۴) واژه‌نامه کوتاه ==&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot;&lt;br /&gt;
!واژه&lt;br /&gt;
!معنی&lt;br /&gt;
|-&lt;br /&gt;
|HScript&lt;br /&gt;
|زبان امن گزارش‌نویسی حسابیکس&lt;br /&gt;
|-&lt;br /&gt;
|Spec&lt;br /&gt;
|ساختار خروجی گزارش (JSON)&lt;br /&gt;
|-&lt;br /&gt;
|KPI&lt;br /&gt;
|کارت آماری (عدد مهم)&lt;br /&gt;
|-&lt;br /&gt;
|Gateway&lt;br /&gt;
|درگاه مجاز دریافت داده&lt;br /&gt;
|-&lt;br /&gt;
|Studio&lt;br /&gt;
|صفحه نوشتن و اجرای اسکریپت&lt;br /&gt;
|-&lt;br /&gt;
|span&lt;br /&gt;
|عرض بلوک در داشبورد&lt;br /&gt;
|-&lt;br /&gt;
|format&lt;br /&gt;
|قالب نمایش عدد/مقدار&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ۱۵) چک‌لیست شروع سریع ==&lt;br /&gt;
&lt;br /&gt;
# منوی &amp;#039;&amp;#039;&amp;#039;گزارش‌ساز اسکریپتی&amp;#039;&amp;#039;&amp;#039; را باز کنید&lt;br /&gt;
# گزارش جدید بسازید&lt;br /&gt;
# اسکریپت نمونه را اجرا کنید&lt;br /&gt;
# &amp;lt;code&amp;gt;report.calendar&amp;lt;/code&amp;gt; و &amp;lt;code&amp;gt;report.number_format&amp;lt;/code&amp;gt; را مطابق نیاز تنظیم کنید&lt;br /&gt;
# جدول/نمودار را شخصی‌سازی کنید&lt;br /&gt;
# ذخیره و در صورت نیاز PDF/Excel بگیرید&lt;br /&gt;
# برای گزارش‌های پیچیده‌تر از AI کمک بگیرید و نتیجه را بازبینی کنید&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; style=&amp;quot;background-color:#e3f2fd; border-left:4px solid #1565c0;&amp;quot;&lt;br /&gt;
|&amp;#039;&amp;#039;&amp;#039;جمع‌بندی:&amp;#039;&amp;#039;&amp;#039; HScript ابزاری برای ساخت گزارش سفارشی است؛ داده را از درگاه‌های امن می‌گیرد، با دستورات ساده محاسبه می‌کند، و خروجی را به‌صورت داشبورد، PDF یا Excel نشان می‌دهد. با تنظیم تقویم و قالب عدد، گزارش‌ها دقیقاً به سبک کسب‌وکار شما نمایش داده می‌شوند.&lt;br /&gt;
|}&lt;/div&gt;</summary>
		<author><name>Alizadeh.babak</name></author>
	</entry>
</feed>