PDA

View Full Version : سوال: خطای چاپ کریستال ریپورت



Ali0Boy
جمعه 09 تیر 1391, 10:25 صبح
باسلام
فایلی که در آدرس زیر ضمیمه شده قسمتی از پروژه ام می باشد که برای چاپ فاکتور نوشته ام. پروژه ام تمام مراحلش را به پایان برده ولی فقط در این قسمت یعنی چاپ دچار مشکل شده است.

!!! خیلی خیلی واجب هست !!!

برای بانک نیز script اون را براتون فرستادم، داخل فایل در کنار پروژه می باشد.

آدرس دانلود پروژه: اینجا کلیک کنید (http://amini89.persiangig.com/other/prj-Error.rar)

نیازمندی ها: Visual Studio 2010 , Microsoft SQL Server 2008 R2

ma.rad
جمعه 09 تیر 1391, 10:36 صبح
لطف کنید اون قسمت از کد که خظا میگیره یا متن خطا هنگام چاپ رو اینجا بزارید تا زود تر کمک تون کنیم

Ali0Boy
سه شنبه 13 تیر 1391, 09:36 صبح
دوست عزیز اون مشکل حل شد. من از 2010 استفاده می کردم که اون مشکل داشت ولی حالا همان برنامه را بردم روی 2008 اون مشکل حل شد ولی مشکل جدیدی بوجود اومد، اگر امکان دارد یک سر به این پست مطلب بزنید:
http://barnamenevis.org/showthread.php?348958-%D9%86%D9%85%D8%A7%DB%8C%D8%B4-%D9%86%D8%AF%D8%A7%D8%AF%D9%86-%D8%A7%D8%B7%D9%84%D8%A7%D8%B9%D8%A7%D8%AA-%D8%AF%D8%B1-%DA%86%D8%A7%D9%BE-%DA%A9%D8%B1%DB%8C%D8%B3%D8%AA%D8%A7%D9%84-%D8%B1%DB%8C%D9%BE%D9%88%D8%B1%D8%AA

veniz2008
سه شنبه 13 تیر 1391, 10:56 صبح
سلام،قبلش اینو بگم که ظاهرا فیلدها جدول رو درست تنظیم نکردید،مثلا زیر عنوان قیمت واحد، روزهای هفته رو نشون میده،بگذریم.
ابتدا using های زیر رو به بالای فرم اضافه کن:

using System.Data.SqlClient;
using CrystalDecisions.CrystalReports.Engine;

حالا درون formload کدهای زیر رو بذار (من نام فیلد تعداد رو نمیدونم چی بود، آخه تعداد قاعدتا باید از نوع عددی باشه ولی تو جدول شما فقط کد کالا از نوع عددی بود، دستور select رو خودتون تصحیح کنید و فیلدهای درست رو بهش بدید):

SqlConnection con = new SqlConnection("Data Source = .;Initial Catalog = shop_db;integrated security = True");
SqlDataAdapter da = new SqlDataAdapter("select crpcode,crpname,prcone,crpcash from tbl_crop", con);
con.Open();
DataTable dt = new DataTable();
da.Fill(dt);
ReportDocument rd = new ReportDocument();
rd.Load("D:\\Management-Shop\\Management-Shop ver 1.0\\crpLstPrd.rpt");
rd.SetDataSource(dt);
crystalReportViewer1.ReportSource = rd;
crystalReportViewer1.Show();
من پوشه برنامه رو داخل درایو D کپی کردم و فایل کریستال رو هم جابه جا نکردم(هرچند بهتره که اونو به داخل پوشه debug منتقل کنید تا در سیستم های دیگه با مشکل مواجه نشید).
موفق باشی.

Ali0Boy
سه شنبه 13 تیر 1391, 11:28 صبح
جناب آقای mohammaddou (http://barnamenevis.org/member.php?155296-mohammaddou) واقعا خیلی خیلی ممنون. مشکلم حل شد. اگه می شد 1000 بار دکمه تشکر را زد حتما می زدم.
آقا محمد واقعا ممنون از شما.

Ali0Boy
پنج شنبه 15 تیر 1391, 14:30 عصر
دوستان، اون سوال قبلی در داخل چاپ فقط از یک جدول استفاده شده بود و نمایش می داد.
ولی در این مثال پایین من از Join نیز در سلکت کردن جداول نیز استفاده کرده ام ولی باز هم مشکل نمایش اطلاعات رو دارد و هیچ چیز نمایش نمی دهد.
من در فایل ضمیمه شد هم پروژه رو گذاشتم و هم فایل کد کوری بانک را.
برای اجرای کد کوری بانک قبل از Execute کردن آن حتما دیتابیسی با نام db_sangshop بسازید و سپس کد را Execute کنید.

کد برای سلکت جداول:


frmChap f1=new frmChap();
crpFact cp=new crpFact();
da.SelectCommand.CommandText = "SELECT dbo.tbl_client.id, dbo.tbl_client.address, " +
" dbo.tbl_lstFact.idfact, dbo.tbl_lstFact.clientCode, dbo.tbl_lstFact.clientName, dbo.tbl_lstFact.prcKol, dbo.tbl_lstFact.bestankar, dbo.tbl_lstFact.bedehkar AS Expr1, " +
" dbo.tbl_lstFact.datetime, dbo.tblRecFactor.idfact AS Expr2, dbo.tblRecFactor.codprd, dbo.tblRecFactor.nameprd, dbo.tblRecFactor.ghaimatp, dbo.tblRecFactor.metraj, " +
" dbo.tblRecFactor.gheimatmg, dbo.tblRecFactor.memo " +
"FROM dbo.tbl_client CROSS JOIN " +
" dbo.tbl_lstFact CROSS JOIN " +
" dbo.tblRecFactor " +
"WHERE (dbo.tbl_client.id = 1) AND (dbo.tbl_lstFact.idfact = 1) AND (dbo.tblRecFactor.idfact = 1)";
con.Close(); con.Open();
DataTable dt = new DataTable();
da.Fill(dt); con.Close();
ReportDocument rd = new ReportDocument();
rd.Load("crpFact.rpt");
rd.SetDataSource(dt);
f1.crpViewChap.ReportSource = rd;
f1.crpViewChap.Show();
cp.SetDataSource(ds);
f1.crpViewChap.ReportSource = cp;


پروژه را نیز به همراه کوری بانک از لینک زیر دانلود کنید:
http://amini89.persiangig.com/sng-Error.rar (http://amini89.persiangig.com/sng-Error.rar)

از همه ی دوستان و اساتید کمک فوری می طلبم !!! :افسرده:

veniz2008
پنج شنبه 15 تیر 1391, 16:01 عصر
دوست عزیز شما هیچ ارتباطی بین 3 جدول برقرار نکردی،طبیعیه کدی که نوشتید کار نکنه،درون sql یک ارتباط منطقی بین 3 جدول ایجاد کن.

Ali0Boy
پنج شنبه 15 تیر 1391, 16:55 عصر
آقا محمد باید منو ببخشید سر شما رو هم درد آوردم با این سوال هام ، ولی چه کنیم از قدیم گفتند سوال کردن و دانستن بهتر از ندانستن هست.
اگه درست منظورتون رو فهمیده باشم باید داخل Database Diagram مانند شکل زیر یک ارتباط برقرار کنم و ذخیره کنم. خب من اینکار رو انجام دادم اگر امکان دارد مرحله به مرحله پیش برویم تا هم مشکل من حل بشه و هم اگر دیگر دوستان به چنین مشکلی روبرو شدند نیز با این تاپیک به راحتی بتوانند مشکل خود را حل کنند.
89247

veniz2008
پنج شنبه 15 تیر 1391, 17:02 عصر
خواهش میکنم دوست عزیز. خوب ببینید الان یه فیلد مشترک بین دو جدول tbl_lstFact و tbl_RecFactor قرار دادید( یعنی idfact) بین این دو تا innerjoin میزنی،حالا حاصل این چطوری میخواد با جدول tbl_client ارتباط برقرار کنه؟

Ali0Boy
پنج شنبه 15 تیر 1391, 17:06 عصر
ببینید چون در جدول tbl_lsfFact فیلدی به اسم ClientCode وجود دارد که مقدار آن از جدول tbl_client استخراج شده و چون من می خوام اطلاعاتی را از جدول tbl_client با توجه به کدی که در فیلد ClientCode ذخیره شده استخراج کنم، اون کد بالا رو نوشتم ولی خودم نیز در اجرای این کد شک داشتم که دیدیم کد اجرا نشد. اگه امکان دارد و شما کدی برای اینکار پیشنهاد می کنید، لطفا اینجا قرار دهید.

veniz2008
پنج شنبه 15 تیر 1391, 17:10 عصر
این فیلد clientcode رو از کدوم فیلد جدول tbl_client استخراج کردید؟

Ali0Boy
پنج شنبه 15 تیر 1391, 17:12 عصر
این فیلد clientcode رو از کدوم فیلد جدول tbl_client استخراج کردید؟

از فیلد id، اگر در تصویر صفحه ی قبل ببینید اومد جای اتصالات رو درست کردم که مشخص باشد از کدوم فیلد گرفته شده است.

veniz2008
پنج شنبه 15 تیر 1391, 17:15 عصر
اوکی(بهتره که فیلدهای خارجی رو همنام با فیلد اصلی در نظر میگرفتی تا خوانایی بالاتر بره، یعنی اگه تو جدول اول گذاشتی id توی جدول دومم هم میذاشتی id)،چند لحظه صبر کن تا دستورش رو بنویسم و توی پست بعدی میزارم.

veniz2008
پنج شنبه 15 تیر 1391, 17:25 عصر
دوست عزیز این کد رو امتحان کن و نتیجه رو اعلام کن.

SqlDataAdapter da = new SqlDataAdapter("select tbl_client.id,tbl_client.address,tbl_lstFact.datet ime,tbl_lstFact.idfact, tbl_lstFact.clientCode, tbl_lstFact.clientName, tbl_lstFact.prcKol, tbl_lstFact.bestankar, tbl_lstFact.bedehkar AS Expr1,tbl_lstFact.datetime, tblRecFactor.idfact AS Expr2,tblRecFactor.codprd, tblRecFactor.nameprd,tblRecFactor.ghaimatp,tblRecF actor.metraj,tblRecFactor.gheimatmg,tblRecFactor.m emo FROM tbl_client inner JOIN tbl_lstFact on tbl_client.id = tbl_lstFact.clientcode inner join tblRecFactor on tbllstFact.idfact = tblRecFactor.idfact WHERE (tbl_client.id = 1) AND (tbl_lstFact.idfact = 1)", con);

Ali0Boy
پنج شنبه 15 تیر 1391, 17:25 عصر
اوکی(بهتره که فیلدهای خارجی رو همنام با فیلد اصلی در نظر میگرفتی تا خوانایی بالاتر بره، یعنی اگه تو جدول اول گذاشتی id توی جدول دومم هم میذاشتی id)،چند لحظه صبر کن تا دستورش رو بنویسم و توی پست بعدی میزارم.

آقا محمد ببخشید، این ساده لوحی و کم تجربه بودن من بود. خدا خیرتون.

veniz2008
پنج شنبه 15 تیر 1391, 17:29 عصر
کد رو توی پست 14 گذاشتم. ( دو پست بالاتر گذاشتم، بین نوشتن من و نوشتن شما که همزمان بود جابه جایی صورت گرفت)،من کد رو طبق همون جدولی که خودتون طراحی کرده بودید نوشتم و تغییراتی ایجاد نکردم.تست کنید و نتیجه رو اعلام کنید.

Ali0Boy
پنج شنبه 15 تیر 1391, 17:31 عصر
آقا بازم جواب نداد البته یه جاهایی از کدی که در بالا گذاشتید فاصله افتاده بود ولی وقتی اونها رو نیز درست کردم باز هم چیزی نمایش نداد.


da.SelectCommand.CommandText = "select tbl_client.id,tbl_client.address,tbl_lstFact.datet ime,tbl_lstFact.idfact, tbl_lstFact.clientCode, tbl_lstFact.clientName, tbl_lstFact.prcKol, tbl_lstFact.bestankar, tbl_lstFact.bedehkar AS Expr1,tbl_lstFact.datetime, tblRecFactor.idfact AS Expr2,tblRecFactor.codprd, tblRecFactor.nameprd,tblRecFactor.ghaimatp,tblRecF actor.metraj,tblRecFactor.gheimatmg,tblRecFactor.m emo FROM tbl_client inner JOIN tbl_lstFact on tbl_client.id = tbl_lstFact.clientcode inner join tblRecFactor on tbl_lstFact.idfact = tblRecFactor.idfact WHERE (tbl_client.id = 1) AND (tbl_lstFact.idfact = 1)";

veniz2008
پنج شنبه 15 تیر 1391, 17:34 عصر
با اون شرط هایی که گذاشتید مطمئنید رکوردی وجود داره؟،بدون شرط ها چک کنید( کلا where رو بردارید و تست کنید)

Ali0Boy
پنج شنبه 15 تیر 1391, 17:41 عصر
با اون شرط هایی که گذاشتید مطمئنید رکوردی وجود داره؟،بدون شرط ها چک کنید( کلا where رو بردارید و تست کنید)
آقا، چه با شرط و چه بی شرط وقتی داخل sql server در قسمت کوری می نویسم بهم اطلاعات نشون می دهد ولی نمی دانم چرا داخل کریستال ریپورت چیزی بهم نمی دهد، کد کامل اتصال به کریستال ریپورت(شاید نخواسته جایی رو اشتباه کرده ام):


frmChap f1=new frmChap();
crpFact cp=new crpFact();
da.SelectCommand.CommandText = "select tbl_client.id,tbl_client.address,tbl_lstFact.datet ime,tbl_lstFact.idfact, tbl_lstFact.clientCode, tbl_lstFact.clientName, tbl_lstFact.prcKol, tbl_lstFact.bestankar, tbl_lstFact.bedehkar,tbl_lstFact.datetime,tblRecFa ctor.codprd, tblRecFactor.nameprd,tblRecFactor.ghaimatp,tblRecF actor.metraj,tblRecFactor.gheimatmg,tblRecFactor.m emo FROM tbl_client inner JOIN tbl_lstFact on tbl_client.id = tbl_lstFact.clientcode inner join tblRecFactor on tbl_lstFact.idfact = tblRecFactor.idfact WHERE (tbl_client.id = " + clientCodeTextBox.Text + ") AND (tbl_lstFact.idfact = " + idfactTextBox.Text + ")";
con.Close(); con.Open();
DataTable dt = new DataTable();
da.Fill(dt); con.Close();
ReportDocument rd = new ReportDocument();
rd.Load("crpFact.rpt");
rd.SetDataSource(dt);
f1.crpViewChap.ReportSource = rd;
f1.crpViewChap.Show();
cp.SetDataSource(ds);
f1.crpViewChap.ReportSource = cp;
this.Hide(); f1.ShowDialog(); f1.Dispose(); this.Show();

veniz2008
پنج شنبه 15 تیر 1391, 17:46 عصر
با این کانکشن زبون بسته چکار دارید؟؟؟(خوب معلومه ناراحت میشه و چیزی رو نشون نمیده):

rmChap f1=new frmChap(); crpFact cp=new crpFact();
da.SelectCommand.CommandText = "select tbl_client.id,tbl_client.address,tbl_lstFact.datet ime,tbl_lstFact.idfact, tbl_lstFact.clientCode, tbl_lstFact.clientName, tbl_lstFact.prcKol, tbl_lstFact.bestankar, tbl_lstFact.bedehkar,tbl_lstFact.datetime,tblRecFa ctor.codprd, tblRecFactor.nameprd,tblRecFactor.ghaimatp,tblRecF actor.metraj,tblRecFactor.gheimatmg,tblRecFactor.m emo FROM tbl_client inner JOIN tbl_lstFact on tbl_client.id = tbl_lstFact.clientcode inner join tblRecFactor on tbl_lstFact.idfact = tblRecFactor.idfact WHERE (tbl_client.id = " + clientCodeTextBox.Text + ") AND (tbl_lstFact.idfact = " + idfactTextBox.Text + ")";
con.Open();
DataTable dt = new DataTable();
da.Fill(dt);

ReportDocument rd = new ReportDocument();
rd.Load("crpFact.rpt");
rd.SetDataSource(dt);
f1.crpViewChap.ReportSource = rd;
f1.crpViewChap.Show();
cp.SetDataSource(ds);
f1.crpViewChap.ReportSource = cp;
this.Hide(); f1.ShowDialog(); f1.Dispose(); this.Show();

Ali0Boy
پنج شنبه 15 تیر 1391, 17:52 عصر
با این کانکشن زبون بسته چکار دارید؟؟؟(خوب معلومه ناراحت میشه و چیزی رو نشون نمیده):

rmChap f1=new frmChap(); crpFact cp=new crpFact();
da.SelectCommand.CommandText = "select tbl_client.id,tbl_client.address,tbl_lstFact.datet ime,tbl_lstFact.idfact, tbl_lstFact.clientCode, tbl_lstFact.clientName, tbl_lstFact.prcKol, tbl_lstFact.bestankar, tbl_lstFact.bedehkar,tbl_lstFact.datetime,tblRecFa ctor.codprd, tblRecFactor.nameprd,tblRecFactor.ghaimatp,tblRecF actor.metraj,tblRecFactor.gheimatmg,tblRecFactor.m emo FROM tbl_client inner JOIN tbl_lstFact on tbl_client.id = tbl_lstFact.clientcode inner join tblRecFactor on tbl_lstFact.idfact = tblRecFactor.idfact WHERE (tbl_client.id = " + clientCodeTextBox.Text + ") AND (tbl_lstFact.idfact = " + idfactTextBox.Text + ")";
con.Open();
DataTable dt = new DataTable();
da.Fill(dt);

ReportDocument rd = new ReportDocument();
rd.Load("crpFact.rpt");
rd.SetDataSource(dt);
f1.crpViewChap.ReportSource = rd;
f1.crpViewChap.Show();
cp.SetDataSource(ds);
f1.crpViewChap.ReportSource = cp;
this.Hide(); f1.ShowDialog(); f1.Dispose(); this.Show();


چه کنیم دیگه مریضیم، خدا شفامون بدهد.
خوب حالا یعنی با این کد که نوشتید درست می شود؟
تست کردم باز هم همونی بود که هست. هیچ نمایش نمی دهد!

veniz2008
پنج شنبه 15 تیر 1391, 17:57 عصر
اینو یک خط قبل از دستور select بذارید:

da.SelectCommand.Connection = con;

Ali0Boy
پنج شنبه 15 تیر 1391, 18:01 عصر
اینو یک خط قبل از دستور select بذارید:

da.SelectCommand.Connection = con;

آقا، این مشکل مثل زیگیل چسبیده به ما، ولکنم نیست!
آقا این رو هم گذاشتم جواب نداد که نداد. اگر امکان دارد برنامه رو بهمراه بانک در صفحه اول که سوال رو پرسیدم قراردادم: http://amini89.persiangig.com/sng-Error.rar
دانلود کنید ببینید می تونید کاری بکنید. البته در اون برنامه هنوز این تغییرات که داده ایم اجرا نشده است. بانکش هم نیاز به ایجاد یک Diagram دارد.

veniz2008
پنج شنبه 15 تیر 1391, 18:04 عصر
بذارید من کدی رو که نوشتید به سبک کدنویسی خودم بنویسم و در پست بعدی قرار میدم.

veniz2008
پنج شنبه 15 تیر 1391, 18:19 عصر
این کدها رو جایگزین کدهای خودتون کنید.

SqlConnection con = new SqlConnection("Data Source = (local);Initial Catalog = db_sangshop;Integrated Security = True");
SqlDataAdapter da = new SqlDataAdapter("select tbl_client.id,tbl_client.address,tbl_lstFact.datet ime,tbl_lstFact.idfact, tbl_lstFact.clientCode, tbl_lstFact.clientName, tbl_lstFact.prcKol,tbl_lstFact.bestankar,tbl_lstFa ct.bedehkar,tbl_lstFact.datetime,tblRecFactor.codp rd,tblRecFactor.nameprd,tblRecFactor.ghaimatp,tblR ecFactor.metraj,tblRecFactor.gheimatmg,tblRecFacto r.memo FROM tbl_client inner JOIN tbl_lstFact on tbl_client.id = tbl_lstFact.clientcode inner join tblRecFactor on tbl_lstFact.idfact = tblRecFactor.idfact WHERE tbl_client.id = " + Convert.ToInt32(clientCodeTextBox.Text.Trim()) + " AND tbl_lstFact.idfact = " + Convert.ToInt32(idfactTextBox.Text.Trim()), con);
con.Open();
DataTable dt = new DataTable();
da.Fill(dt);
ReportDocument rd = new ReportDocument();
rd.Load("crpFact.rpt");
rd.SetDataSource(dt);
crpViewChap.ReportSource = rd;
crpViewChap.Show();
con.Close();

Ali0Boy
پنج شنبه 15 تیر 1391, 18:27 عصر
این کدها رو جایگزین کدهای خودتون کنید.

SqlConnection con = new SqlConnection("Data Source = (local);Initial Catalog = db_sangshop;Integrated Security = True");
SqlDataAdapter da = new SqlDataAdapter("select tbl_client.id,tbl_client.address,tbl_lstFact.datet ime,tbl_lstFact.idfact, tbl_lstFact.clientCode, tbl_lstFact.clientName, tbl_lstFact.prcKol,tbl_lstFact.bestankar,tbl_lstFa ct.bedehkar,tbl_lstFact.datetime,tblRecFactor.codp rd,tblRecFactor.nameprd,tblRecFactor.ghaimatp,tblR ecFactor.metraj,tblRecFactor.gheimatmg,tblRecFacto r.memo FROM tbl_client inner JOIN tbl_lstFact on tbl_client.id = tbl_lstFact.clientcode inner join tblRecFactor on tbl_lstFact.idfact = tblRecFactor.idfact WHERE tbl_client.id = " + Convert.ToInt32(clientCodeTextBox.Text.Trim()) + " AND tbl_lstFact.idfact = " + Convert.ToInt32(idfactTextBox.Text.Trim()), con);
con.Open();
DataTable dt = new DataTable();
da.Fill(dt);
ReportDocument rd = new ReportDocument();
rd.Load("crpFact.rpt");
rd.SetDataSource(dt);
crpViewChap.ReportSource = rd;
crpViewChap.Show();
con.Close();

آقا، جازگزین کردم ولی بازهم جواب نمی دهد.

veniz2008
پنج شنبه 15 تیر 1391, 18:35 عصر
دوست عزیز من خودم میخوام فرم گزارشت رو طارحی کنم و کدنویسی کنم( امان از وقتی که آدم وقتش زیادی میشه)،سعی میکنم تا 1 ساعت دیگه آمادش کنم.

Ali0Boy
پنج شنبه 15 تیر 1391, 18:42 عصر
دوست عزیز من خودم میخوام فرم گزارشت رو طارحی کنم و کدنویسی کنم( امان از وقتی که آدم وقتش زیادی میشه)،سعی میکنم تا 1 ساعت دیگه آمادش کنم.

آقا محمد دست شما دردنکند، آقا خداوکیلی ببخشید، شرمندم کردین. انشاء الله بتوانم جبران کنم. آقا پس من چون دوتا پروژه دارم درست می کنم فعلا میرم نیم ساعت یا یک ساعت دیگه میام. خدا هرچی می خواهید در این روز مبارک و پاک بهتون بدهد.

veniz2008
پنج شنبه 15 تیر 1391, 18:46 عصر
قبلش یه چیز دیگه ای به ذهنم اومد که به احتمال زیاد مشکل از اونجا باشه،شما زمانیکه گزارش رو توی کریستال طراحی کردید جدول هاتون ارتباط نداشتند و بعدا اومدید ارتباط ها رو ایجاد کردید( اما کریستال همون جدول های قدیمی رو تو حافظه خودش نگه داشته)،دلیل اینکه توی sql جواب میده ولی داخل ویژوال جواب نمیده به احتمال زیاد همینه.یه بار از نو فرم گزارش و اضافه کردن جدول ها رو به کریستال انجام بده.

Ali0Boy
پنج شنبه 15 تیر 1391, 20:15 عصر
قبلش یه چیز دیگه ای به ذهنم اومد که به احتمال زیاد مشکل از اونجا باشه،شما زمانیکه گزارش رو توی کریستال طراحی کردید جدول هاتون ارتباط نداشتند و بعدا اومدید ارتباط ها رو ایجاد کردید( اما کریستال همون جدول های قدیمی رو تو حافظه خودش نگه داشته)،دلیل اینکه توی sql جواب میده ولی داخل ویژوال جواب نمیده به احتمال زیاد همینه.یه بار از نو فرم گزارش و اضافه کردن جدول ها رو به کریستال انجام بده.

آقا ببخشید من گفتم حتما شما دیگه رفتین و یادم نبود آیکون سبز رنگ آنلاین بودنتون رو ببینم وگرنه منتظر می ماند تا جواب این رو هم بهتون بدهم.
من الان این کاری که شما گفتید را انجام دادم ولی بازم تغییر نکرد و همان صورت که بود، ماند.

veniz2008
پنج شنبه 15 تیر 1391, 20:39 عصر
ببین باید این مراحل رو انجام بدی:
1. ساخت یک دیتاست جدید که در واقع جدول های جدیدت رو شامل میشه (جدول هایی که ارتباط بینشون هست)
2. اضافه کردن کریستال ریپورت به فرم (کریستال قبلی رو بی خیال شو و یک کریستال جدید اضافه کن)
3.اضافه کردن کریستال ریپورت ویوور به فرمت (قبلی رو از روی فرمت حذف کن و یه دونه جدید بزار)
4. کدنویسی که کدهاشو در اختیارت گذاشتم.
تست کن ان شا اله کار میکنه.

Ali0Boy
پنج شنبه 15 تیر 1391, 20:57 عصر
قسمت اول که گفتید می شود یکم توضیح دهید چون من فکر کردن یعنی وقتی داری دیتاست رو میسازی باید قسمتی به اسم دیاگرام نیز داشته باشد ولی وقتی خواستم بسازم قسمتی به این نام ندیدم.
89262

veniz2008
پنج شنبه 15 تیر 1391, 21:01 عصر
منظورم همین بوده که عکسشو گذاشتی،الان تیک tables رو بزن تا هر 3 جدول رو داشته باشی. این مرحله اول بود، حالا شی کریستال رو اضافه کن و هر 3 جدول رو بهش معرفی کن و فیلدهایی که میخوای تو گزارش بیاد رو بهش بده.

Ali0Boy
پنج شنبه 15 تیر 1391, 21:13 عصر
منظورم همین بوده که عکسشو گذاشتی،الان تیک tables رو بزن تا هر 3 جدول رو داشته باشی. این مرحله اول بود، حالا شی کریستال رو اضافه کن و هر 3 جدول رو بهش معرفی کن و فیلدهایی که میخوای تو گزارش بیاد رو بهش بده.
من دوباره همه ی اون کارایی که گفتین رو کردم ولی بازهم نشد. شما تست کردین ببینید که آیا جواب داده یا نه ؟

veniz2008
پنج شنبه 15 تیر 1391, 21:26 عصر
متاسفانه ویژوال 2010 که روی سیستم نصبه مشکل داره و فقط ویژوال 2005 دارم.برنامه هیچ خطایی نمیده؟،فقط داده ها رو نشون نمیده؟

Ali0Boy
پنج شنبه 15 تیر 1391, 23:42 عصر
بله، هیچ خطایی نمی دهد و فقط مشکلش نمایش داده ها می باشد. برنامه ای که من نوشتم 2008 هست. ببخشید نتونستم زودتر جواب بدهم کار برام پیش اومد.
89267

barnamenevisforme
جمعه 16 تیر 1391, 09:33 صبح
سلام
دوست عزیز شما در طراحی crystal report از چندین جدول استفاده کردید.موقع کد نویسی یک جدول به crystal report پاس داده میشه.
به هر حال چون من sqlserver 2008 نداشتم،خود کد پروژه رو واستون تصحیح نکردم.
سعی کردم یه روش جدید به روایت تصویر واستون شرح بدم.امیدوارم که موثر باشه.
در ضمن قبل از انجام تغییرات روی پروژه اصلی حتما از اون backup بگیرید.همچنین قبل از امتحان کردن روشی که بنده عرض کردم،در تصویر شماره 20 موجود در help2 خط مربوط به refreshreport رو به پروژه فعلی اضافه کنید.اگه درست شد که این همه راه رو نرید.
البته یاد گرفتنشون خالی از لطف نیست.

Ali0Boy
جمعه 16 تیر 1391, 14:17 عصر
سلام
دوست عزیز شما در طراحی crystal report از چندین جدول استفاده کردید.موقع کد نویسی یک جدول به crystal report پاس داده میشه.
به هر حال چون من sqlserver 2008 نداشتم،خود کد پروژه رو واستون تصحیح نکردم.
سعی کردم یه روش جدید به روایت تصویر واستون شرح بدم.امیدوارم که موثر باشه.
در ضمن قبل از انجام تغییرات روی پروژه اصلی حتما از اون backup بگیرید.همچنین قبل از امتحان کردن روشی که بنده عرض کردم،در تصویر شماره 20 موجود در help2 خط مربوط به refreshreport رو به پروژه فعلی اضافه کنید.اگه درست شد که این همه راه رو نرید.
البته یاد گرفتنشون خالی از لطف نیست.

باتشکر از تمامی دوستان و اساتید گرامی مخصوصا mohammaddou (http://barnamenevis.org/member.php?155296-mohammaddou) و barnamenevisforme (http://barnamenevis.org/member.php?242915-barnamenevisforme) که بسیار مرا راهنمایی کرده و به سر منزل پاسخ سوال خویش رساندند.
جناب barnamenevisforme (http://barnamenevis.org/member.php?242915-barnamenevisforme) اونجا که گفتین فقط تصویر 20 رو عملی کنم و تست کنم جواب نداد ولی در آموزش تصویر بسیار جامع و آموزنده ی شما من توانستم هم چیز جدیدی را یاد بگیرم و هم مشکل چاپ را حل کنم البته شما حل کردین و من کپی برداری ولی برای من خیلی خیلی آموزنده و قابل سپاس بود.

آقا محمد از شما هم بخاطر این همه صبوری و یاری دادن در این تاپیک بسیار بسیار سپاس گذارم.

باتشکر از تمامی عزیزان