PDA

View Full Version : مبتدی: فيلتر بانك در كريستال



dab_hrd
چهارشنبه 16 فروردین 1391, 13:12 عصر
با سلام و خسته نباشيد خدمت شما دوستان عزيز
من يك مبتدي مي باشم و داراي سوالات زير مي باشم لطفا" مرا راهنمايي كنيد خيلي هم قبلا" سرچ كردم اما به نتيجه اي نرسيدم .
1- مي خواهم بدانم چگونه زماني كه مثلا" مي خواهم يك شماره فاكتور را چاپ كنم من ابتدا شماره فاكتور را به صورت پارامتر به كريستال مي فرستم من فقط مي خواهم بدانم چگونه مي توانم بر اساس پارامتر دريافتي بانك خودم را فيلتر و بر اساس آن شماره فاكتور مورد نظرم را چاپ كنم
2- فيلد تاريخ من بر اساس ميلادي است و در برنامه آن را تبديل به شمسي و نمايش مي دهم مي خواستم بدانم زماني كه بخواهم كل جدول را كريستال چاپ كنم چگونه مي توانم فيلد تاريخ ميلادي را به صورت شمسي چاپ كنم
3- چگونه مي توان يك فيلد مثلا" قيمت بين فيلدهاي جدولم اضافه كنم كه مقدار آن از حاصلضرب 2 فيلد مقدار و في باشد
4-بهترين روش براي كشيدن جدول كدام است
در ضمن من از C#‎ استفاده مي كنم
با تشكر

dab_hrd
پنج شنبه 17 فروردین 1391, 08:12 صبح
لطفا" راهنمايي بفرماييد

dab_hrd
پنج شنبه 17 فروردین 1391, 12:11 عصر
لطفا" راهنمايي بفرماييد

Mahmoud Zaad
پنج شنبه 17 فروردین 1391, 12:22 عصر
سلام
1- اینجا (http://www.codeproject.com/Articles/205398/Crystal-Report-Filtering-Using-Selection-Parameter)رو ببینید.
2-همونطوری که یکیش رو نمایش می دی بقیه رو هم نمایش بده.
3-از فرمولا فیلد ها استفاده کنید. (Formula Fields) توی تالارهای ابزارهای گزارش سازی و گزارش سازی با کریستال ریپورت نمونه زیاد هست.
4- دقیقتر باید بپرسید ولی به طور کلی میشه از آبجکتها خط و جعبه استفاده کنید!

dab_hrd
پنج شنبه 17 فروردین 1391, 12:27 عصر
ضمن تشكر از شما دوست عزيز در خصوص سوال 1 هنوز جوابي بدست نياوردم لطفا" من را بيشتر و به صورت ساده راهنمايي بفرماييد
با تشكر

Mahmoud Zaad
پنج شنبه 17 فروردین 1391, 13:06 عصر
ضمن تشكر از شما دوست عزيز در خصوص سوال 1 هنوز جوابي بدست نياوردم لطفا" من را بيشتر و به صورت ساده راهنمايي بفرماييد
با تشكر



crystalReportViewer1.SelectionFormula = "{tb1.id}=7";

در کد بالا رکورد (رکوردهایی) از جدول tb1 که idشون مساوی هفت هست در گزارش آورده میشه. این کد رو بعد از کدی که برای ارسال پارامتر نوشتید، بنویسید.

dab_hrd
شنبه 19 فروردین 1391, 09:18 صبح
ضمن تشكر از شما دوست عزيز
خوب حالا اگر بخواهم چند شرط مثلا" فاصله بين دو تاريخ و ساير شرطها هم داشته باشم بايد چه كار كنم
با تشكر

Mahmoud Zaad
شنبه 19 فروردین 1391, 12:32 عصر
در قسمت سمت راست عبارت بالا همونطور كه مشخصه داريم با فرمول (اسكريپت ) هاي كريستال ريپورت كار مي كنيم بنابراين بايد از قواعد فرمول (اسكريپت) نويسي كريستال ريپورت پيروي كنيم. براي آشنايي با اين قواعد مي تونيد اينجا (http://barnamenevis.org/showthread.php?148950-فرمول-نویسی-در-کریستال-ریپورت)رو ببينيد. اما براي اين مورد خاص مي تونيد اينجا (http://forums.asp.net/t/1567115.aspx/1)رو ببينيد.

dab_hrd
یک شنبه 20 فروردین 1391, 11:10 صبح
ضمن تشكر از شما دوست عزير مي خواستم در خصوص چاپ فاكتور اطلاعات بيشتري به زبان فارسي و ساده داشته باشم
با تشكر

dab_hrd
یک شنبه 20 فروردین 1391, 13:33 عصر
لطفا" يك نفر جواب بده

dab_hrd
دوشنبه 21 فروردین 1391, 10:45 صبح
يعني واقعا" هخيچ كس بلد نيست

Mahmoud Zaad
دوشنبه 21 فروردین 1391, 11:59 صبح
دوست عزیز سوالتون خیلی کلی هست.
فاکتور هم یک گزارشه که یکسری فیلدهاش از جدول خونده میشه و احتمالا یکسری از فیلدهاش به صورت پارامتر ارسال میشه. در اینجا یک ردیف از جدول فروشندگان/خریداران خونده میشه و یک یا چند ردیف از جدول کالاها(بستگی به نوع طراحی بانک اطلاعاتی داره). بسته به نوع فعالیت، شما ابتدا مشخصات اون واحد(فروشگاه، شرکت و ...) رو درج می کنید مشخصات خریدار/فروشنده رو درج می کنید کالاها یا خدمات خریداری شده و قیمت های کل رو در مکان های مناسب قرار می دید. و ... برای نمونه می تونید به چند تا فاکتور فروش که احتمالا در منزل دارید نگاه کنید. حالا اگه دقیقتر بفرمایید منظور چی هست بهتر هم میشه راهنمایی کرد.

dab_hrd
دوشنبه 21 فروردین 1391, 14:16 عصر
ضمن تشكر از شما دوست عزيز
فرض كنيد من 2 جدول شامل اطلاعات مشتريان و ديگري شامل اطلاعات حساب معين آنها مي باشد و من مي خواهم اطلاعات حساب معين مشتري را چاپ كنم خوب من با استفاده از يك كوئري در برنامه اطلاعات مورد نظر را جمع آوري مي كنم و من تنها نمي دانم جدولي را كه اطلاعات حاصل از اجراي كوئري داخل آن ريخته مي شود چگونه در محيط طراحي كريستال نمايش دهم (مطابق كد زير) البته اين جدول بنام _VASET مي باشد و در بانك اطلاعاتي من موجود نميباشد آيا بر اساس كد من زماني كه كوئري اجرا مي شود آيا اطلاعات من داخل جدول ريخته مي شود (يعني همزمان ساخته و اطلاعات داخل آن ريخته شود) ثانيا" چگونه اطلاعات اين جدول واسط را در محيط كريستال ببينم همانند ساير جداولي كه در خود بانك موجود مي باشند
من واقعا" چندين روز است كه با اين مشكل دست و پنجه نرم مي كنم ممنون مي شوم كمكم كنيد


private void Form2_Load(object sender, EventArgs e)
{
// crystalReportViewer1.ReportSource = "E:\\c#\\print3\\print3\\1.rpt";
SqlConnection con = new SqlConnection("Data Source=.;Initial Catalog=almas;Integrated Security=True");
DataSet _ds = new DataSet();
SqlDataAdapter _data_adapter = new SqlDataAdapter();
DataTable _vaset = new DataTable();
_data_adapter.SelectCommand = new SqlCommand();
_data_adapter.SelectCommand.Connection = con;
_data_adapter.SelectCommand.CommandText = "SELECT moin.code, moin.bed, moin.bes, moin.sharh, moin.date, inform.code AS Expr1, inform.fname, inform.lname, inform.father FROM inform CROSS JOIN moin WHERE (moin.code = inform .code)";
con.Open();
_data_adapter.Fill(_ds, "_vaset");

ReportDocument RepDoc = new ReportDocument();
RepDoc.Load("E:\\c#\\print3\\print3\\1.rpt");

RepDoc.SetDataSource(_ds);

//RepDoc.SetParameterValue("date", txtdate.Text);
//RepDoc.SetParameterValue("sherkat", Settings.Name);
//Form2 _form2 = new Form2();
// _form2.Show();

crystalReportViewer1.ReportSource = RepDoc;
//_form2.ShowDialog();



_data_adapter = null;
con.Close();

}

Mahmoud Zaad
دوشنبه 21 فروردین 1391, 15:12 عصر
شما باید یه دیتاست بسازید (توی solution explorer: کلیک بر روی نام پروژه add new item و ...) بعد یه جدول به نام _vaset بسازید و توی گزارشتون از فیلدهای همین جدول استفاده کنید.

dab_hrd
سه شنبه 22 فروردین 1391, 10:46 صبح
ضمن تشكر از شما دوست عزيز
يعني من براي هر يك از گزارشگيريهايم كه احتياج به كوئري و در نتيجه جداولي جهت ذخيره اطلاعات دارم بايد در solution explorer ديتا ست بسازم و جدولهاي واسطم را طراحي كنم آيا درست متوجه شدم

Mahmoud Zaad
سه شنبه 22 فروردین 1391, 11:02 صبح
ضمن تشكر از شما دوست عزيز
يعني من براي هر يك از گزارشگيريهايم كه احتياج به كوئري و در نتيجه جداولي جهت ذخيره اطلاعات دارم بايد در solution explorer ديتا ست بسازم و جدولهاي واسطم را طراحي كنم آيا درست متوجه شدم
نه، کلا یه دیتاست می سازید بعد داخلش دیتاتیبل با فیلدهای مورد نظر رو می سازید. یه نمونه اینجا (http://barnamenevis.org/showthread.php?323878-ارسال-چند-پارامتر-به-کریستال-رپورت-ویژوال-استودیو-2010)گذاشتم بد نیست ببینیدش.