سریعترین گزارش گیری

kerberos2023

عضو جدید
سلام
در برنامه های تحت ویندوز که برای فروشگاهها نوشته میشه وقتی دکمه چاپ رو میزنیم بلافاصله مثلا فاکتور فروش رو چاپ میکنه در حالی که برنامه های گزارش گیری مثل کریستال ریپورت مدت زمانی برای لود شدن صرف میکنه
چجوری میشه یه گزارش سریع واسه این کار نوشت؟
سریعترین راه گزارش گیری در برنامه های دات نت چیه؟
آیا راهی هست که اطلاعات بدون نمایش داده شدن در گزارش مستقیما به پرینتر فرستاده بشن؟
 

golemaryam_1983

عضو جدید
کاربر ممتاز
سلام
در برنامه های تحت ویندوز که برای فروشگاهها نوشته میشه وقتی دکمه چاپ رو میزنیم بلافاصله مثلا فاکتور فروش رو چاپ میکنه در حالی که برنامه های گزارش گیری مثل کریستال ریپورت مدت زمانی برای لود شدن صرف میکنه
چجوری میشه یه گزارش سریع واسه این کار نوشت؟
سریعترین راه گزارش گیری در برنامه های دات نت چیه؟
آیا راهی هست که اطلاعات بدون نمایش داده شدن در گزارش مستقیما به پرینتر فرستاده بشن؟

سلام دوست عزیز از ابزار printdialog استفاده کنید ببنید چطور جواب میده.


با تشکر
 

kerberos2023

عضو جدید
ممنون از توجهتون
ولی printdialog فقط لیست پرینتر هارو نشون میده و تنظیماتشون ولی چیزی به پرینتر نمی فرسته
 

kerberos2023

عضو جدید
یه چیزایی پیدا کردم ولی مشکلاتی داره
کد:
private void btnPrintFactor_Click(object sender, EventArgs e)
        {
            SqlConnection con1 = new SqlConnection(@"Integrated Security=SSPI;Persist Security Info=False;User ID=sa;Initial Catalog=Store;Data Source=.");
            SqlCommand com1 = new SqlCommand("Select count(*) from V_FactorDetails where factorno=1", con1);
            con1.Open();
            count = (int)com1.ExecuteScalar();
            int index = 0;
            com1.CommandText = "Select cast(Row as char(4))+'  '+GoodName+'  '+cast(TotalPrice as char(10)) from V_FactorDetails where factorno=1";
            PrintText = new string[count];
            SqlDataReader dr1 = com1.ExecuteReader();
            while (dr1.Read() && index <= count)
            {
                PrintText[index] = dr1[index].ToString();
                index++;
            }
            dr1.Close();
            con1.Close();
            printFont = new Font("B Zar", 10);
            PrintDocument pd = new PrintDocument();
            pd.PrintPage += new PrintPageEventHandler(this.pd_PrintFactor);
            pd.Print();
        }
کد:
private void pd_PrintFactor(object sender, PrintPageEventArgs ev)
        {
            float yPos = 0;
            float leftMargin = ev.MarginBounds.Left;
            float topMargin = ev.MarginBounds.Top;
            ///
            int index = 0;
            while (index < count)
            {
                yPos = topMargin + (index * printFont.GetHeight(ev.Graphics));
                ev.Graphics.DrawString(PrintText[index], printFont, Brushes.Black, leftMargin, yPos, new StringFormat());
                index++;
            }

            // If more lines exist, print another page.
            //if (line != null)
            //    ev.HasMorePages = true;
            //else
            //    ev.HasMorePages = false;
        }
اولا که با فارسی مشکل داره و نمیدونم چجوری حلش کنم:(
بعدشم فقط ردیف آخر از فاکتور رو چاپ می کنه
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
مطمئناً از ابزارهای گزارشگیری مانند Crystal و FastReport و ... استفاده می کنند :gol:
 

kerberos2023

عضو جدید
مطمئناً از ابزارهای گزارشگیری مانند Crystal و FastReport و ... استفاده می کنند :gol:
ممنون
شما فکر میکنید کدومش سریعتره؟
آخه فرض کنید توی یک فروشگاه که ممکنه صف خرید داشته باشه اگه هر کسی بخواد مدتی رو واسه پرینت فاکتورش صبر کنه چی میشه؟
 

negin17h

مدیر تالارهای مهندسی کامپیوتر و رباتیکمتخصص #C
مدیر تالار
ممنون
شما فکر میکنید کدومش سریعتره؟
آخه فرض کنید توی یک فروشگاه که ممکنه صف خرید داشته باشه اگه هر کسی بخواد مدتی رو واسه پرینت فاکتورش صبر کنه چی میشه؟

بحث پرینت فاکتور زمانی نمیبره. مثلاً کریستا زمانی کند هست که دیتایی سنگین لود شه مثلاً من محاسبات 100 مخزن رو به صورت ساعت به ساعت (24 ساعت) در بازه تاریخی 5 روزه که بخوام بگیرم یه گزارش سنگین محاسباتیه اما خب بعد از 2-3 دقیقه باز میشه. از طرفی گزارشی در حد فاکتور رو هم داریم که وقتی دیتا ثبت شده باشه سریع باز میشه. تمامی این ها به دیتای شما و سرعت پرس و جو بر می گرده و ابزار سربار کمی داره معمولاً :gol:
 

Similar threads

بالا