26-03-23, 01:17 PM
وعليكم السلام ورحمة الله وبركاته، يمكنك استخدام الكود التالي لطباعة التقرير بناءً على معرف الفاتورة (ID) عند النقر فوق زر الطباعة: قم بإنشاء معامل جديد في التقرير (XtraReport) وسمه InvoiceID على سبيل المثال. استخدم هذا المعامل في استعلام البيانات للتقرير لتحديد الفاتورة المطلوبة. بعد ذلك، قم بإضافة الكود التالي في حدث النقر على زر الطباعة:
لا تنسَ استيراد الأسماء المؤهلة للفئات المستخدمة في الكود:
الكود النهائي يعتمد على تفاصيل مشروعك الخاص. ومع ذلك، سأقدم لك مثالًا بسيطًا للتوضيح. لنفترض أن لديك شكل (Form) به قائمة (ListBox) تحتوي على معرفات الفواتير وزرًا للطباعة:
في هذا المثال، يتم تنفيذ الأمر التالي عند النقر فوق زر الطباعة: يتم استدعاء الدالة GetSelectedInvoiceID() للحصول على معرف الفاتورة المحدد في ListBox. يتم إنشاء نسخة جديدة من التقرير (InvoiceReport)، وتعيين قيمة معرف الفاتورة للمعامل InvoiceID في التقرير. يتم إظهار نافذة معاينة التقرير قبل الطباعة باستخدام ReportPrintTool. يرجى التأكد من تعديل الأمثلة حسب متطلبات مشروعك الخاص واستبدال أسماء الفئات والمتغيرات بما يناسبك. أرجو أن يكون هذا الكود مفيدًا لك.
يرجى التأكد من استبدال MyXtraReport بالاسم الفعلي للتقرير الذي قمت بإنشائه. أتمنى أن يكون هذا مفيداً لك، إذا كان لديك أي أسئلة أو توضيحات أخرى، لا تتردد في طرحها.
كود :
private void PrintButton_Click(object sender, EventArgs e)
{
int invoiceID = GetSelectedInvoiceID(); // استبدل هذا بالطريقة المناسبة لجلب معرف الفاتورة المطلوبة من واجهة المستخدم
// إنشاء نسخة جديدة من التقرير
MyXtraReport report = new MyXtraReport();
// تعيين قيمة معرف الفاتورة للمعامل في التقرير
report.Parameters["InvoiceID"].Value = invoiceID;
// إظهار نافذة معاينة التقرير قبل الطباعة
ReportPrintTool printTool = new ReportPrintTool(report);
printTool.ShowPreviewDialog();
}لا تنسَ استيراد الأسماء المؤهلة للفئات المستخدمة في الكود:
كود :
using DevExpress.XtraReports.UI;الكود النهائي يعتمد على تفاصيل مشروعك الخاص. ومع ذلك، سأقدم لك مثالًا بسيطًا للتوضيح. لنفترض أن لديك شكل (Form) به قائمة (ListBox) تحتوي على معرفات الفواتير وزرًا للطباعة:
كود :
using System;
using System.Windows.Forms;
using DevExpress.XtraReports.UI;
namespace InvoicePrintingExample
{
public partial class MainForm : Form
{
public MainForm()
{
InitializeComponent();
}
private void PrintButton_Click(object sender, EventArgs e)
{
int invoiceID = GetSelectedInvoiceID();
if (invoiceID > 0)
{
InvoiceReport report = new InvoiceReport();
// تعيين قيمة معرف الفاتورة للمعامل في التقرير
report.Parameters["InvoiceID"].Value = invoiceID;
// إظهار نافذة معاينة التقرير قبل الطباعة
ReportPrintTool printTool = new ReportPrintTool(report);
printTool.ShowPreviewDialog();
}
else
{
MessageBox.Show("الرجاء تحديد معرف الفاتورة المطلوبة.");
}
}
private int GetSelectedInvoiceID()
{
if (InvoicesListBox.SelectedItem != null)
{
return (int)InvoicesListBox.SelectedItem;
}
else
{
return -1;
}
}
}
}في هذا المثال، يتم تنفيذ الأمر التالي عند النقر فوق زر الطباعة: يتم استدعاء الدالة GetSelectedInvoiceID() للحصول على معرف الفاتورة المحدد في ListBox. يتم إنشاء نسخة جديدة من التقرير (InvoiceReport)، وتعيين قيمة معرف الفاتورة للمعامل InvoiceID في التقرير. يتم إظهار نافذة معاينة التقرير قبل الطباعة باستخدام ReportPrintTool. يرجى التأكد من تعديل الأمثلة حسب متطلبات مشروعك الخاص واستبدال أسماء الفئات والمتغيرات بما يناسبك. أرجو أن يكون هذا الكود مفيدًا لك.
يرجى التأكد من استبدال MyXtraReport بالاسم الفعلي للتقرير الذي قمت بإنشائه. أتمنى أن يكون هذا مفيداً لك، إذا كان لديك أي أسئلة أو توضيحات أخرى، لا تتردد في طرحها.
