PDA

View Full Version : مشکل با fast reporter هنگام کوئری از چند جدول



mohsen.nsb44
دوشنبه 25 دی 1391, 09:55 صبح
زمانی که میخوام از یک جدول کوئری بگیرم و بتونم چاپش کنم از کد زیر استفاده میکنم و هیچ مشکلی ندارم

کد در fastReaporter


private void Table1_ManualBuild(object sender, EventArgs e)
{
// get the data source by its name
DataSourceBase rowData = Report.GetDataSource("IDtb");
// initialize it
rowData.Init();
// printing the table header
Table1.PrintRow(0);
Table1.PrintColumns();
// loop through the data source rows
while (rowData.HasMoreRows)
{
// printing the table row
Table1.PrintRow(1);
Table1.PrintColumns();
// select the next data row
rowData.Next();
}
}

و در صفحه ای که میخوام گزارش رو ببینم کد زیر رو مینویسم
در در C#


DataAccess da1 = new DataAccess();
string connStr = da1.DBName;
OleDbConnection conn = new OleDbConnection(connStr);
DataTable dt = new DataTable("dt");
OleDbDataAdapter da = new OleDbDataAdapter("select * from IDtb", connStr);
conn.Open();
da.Fill(dt);
conn.Close();
report1.Load("test.frx");
report1.Show();

مشکلم اینجاست که من از چند جدول کوئری میگیریم از یک جدول شماره ملی از یک جدول مشخصات و از جدول دیگر اطلاعات دیگر
در صورتی که اگر مشاهده نمایید در قسمت کد بالا کد fastReaporter نام جدول باید مشخص شود
لطفا راهنمایی بکنید چطور باید انجامش بدهم

mohsen.nsb44
دوشنبه 25 دی 1391, 11:35 صبح
مسئله اینه که تو هر اموزشی که دیدم فقط از یک جدول عمل گزارشگیری انجام شده اما من میخوام محتویات چند جدول رو در یک برگ چاپ کنم لطفا راهنمایی بکنین زمان ندارم

alias136790
دوشنبه 25 دی 1391, 21:57 عصر
سلام برای اینکه از چند تا جدول پرینت بگیری تو برنامه FastReport از ویزارد استفاده کن به این صورت: قسمت منو file و سپس new رو انتخاب کن و سپس تو فرم جدید حالت StandardReprtWizard رو انتخاب کن و سپس تو قسمت ویزارد در یکی از قسمت ها، باید Query
رو اضافه کنی، تو اون قسمت میتونی از کوئری چند جدول استفاده کنی.

mohsen.nsb44
سه شنبه 26 دی 1391, 15:00 عصر
سلام برای اینکه از چند تا جدول پرینت بگیری تو برنامه FastReport از ویزارد استفاده کن به این صورت: قسمت منو file و سپس new رو انتخاب کن و سپس تو فرم جدید حالت StandardReprtWizard رو انتخاب کن و سپس تو قسمت ویزارد در یکی از قسمت ها، باید Query
رو اضافه کنی، تو اون قسمت میتونی از کوئری چند جدول استفاده کنی.
دوست عزیز متاسفانه نتونستم انجام بدم
مشکل اینجاست که اجازه انتخاب چند جدول رو نمیده و فقط باید یک جدول رو انتخاب کرد در ضمن قسمتی که کوئری بخوام وارد کنم مشاهده نکردم
اگر لطف کنین شفاف تر توضیح بدین ممنون میشم

mohsen.nsb44
سه شنبه 26 دی 1391, 15:11 عصر
ایا کنترلی سبک برای گزارش گیری وجود دارد که چنین مشکلاتیو نداشته باشه؟
سبک بودن خیلی مهمه چون سیستمی که قراره برنامه روش نصب بشه رم 256 و پردازنده سلرون و قدیمی

mohsen.nsb44
سه شنبه 26 دی 1391, 19:21 عصر
زمانی که میخوام از یک جدول کوئری بگیرم و بتونم چاپش کنم از کد زیر استفاده میکنم و هیچ مشکلی ندارم

کد در fastReaporter


private void Table1_ManualBuild(object sender, EventArgs e)
{
// get the data source by its name
DataSourceBase rowData = Report.GetDataSource("IDtb");
// initialize it
rowData.Init();
// printing the table header
Table1.PrintRow(0);
Table1.PrintColumns();
// loop through the data source rows
while (rowData.HasMoreRows)
{
// printing the table row
Table1.PrintRow(1);
Table1.PrintColumns();
// select the next data row
rowData.Next();
}
}

و در صفحه ای که میخوام گزارش رو ببینم کد زیر رو مینویسم
در در C#‎


DataAccess da1 = new DataAccess();
string connStr = da1.DBName;
OleDbConnection conn = new OleDbConnection(connStr);
DataTable dt = new DataTable("dt");
OleDbDataAdapter da = new OleDbDataAdapter("select * from IDtb", connStr);
conn.Open();
da.Fill(dt);
conn.Close();
report1.Load("test.frx");
report1.Show();

مشکلم اینجاست که من از چند جدول کوئری میگیریم از یک جدول شماره ملی از یک جدول مشخصات و از جدول دیگر اطلاعات دیگر
در صورتی که اگر مشاهده نمایید در قسمت کد بالا کد fastReaporter نام جدول باید مشخص شود
لطفا راهنمایی بکنید چطور باید انجامش بدهم
یکی از دوستان گفت که باید views بسازم و کوئری رو در اون بنویسم و بجای نام جدول اسم views رو بنویسم ایا چنین کاری عملیه؟
راستی تو اکسس چطوری views میسازن تو اسکیو ال کار کردم اما تو اکسس نمیدونم چطوریه

alias136790
سه شنبه 26 دی 1391, 20:28 عصر
من از نسخه 1.2.45 FastReport.net استفاده میکنم.
تو فرم DataWizard بعد از اینکه تو ChooseDatabase، دیتابیس رو انتخاب کردین، در قسمت ChooseTable ، جدولهای مورنظر رو انتخاب میکنین،بعد روی دکمه
AddSqlQuery کلیک کنین،بعد تو فرم QueryWizard، کوئری موردنظر رو وارد میکنین، اینم نمونه کوئری که من وارد کردم:

SELECT NeedPart.DateLastEdit, [Group].Name, NeedPart.Name AS Expr2, G_U_NeedPart.Count, Unit.Name AS Expr1, NeedPart.Comment
FROM G_U_NeedPart INNER JOIN
[Group] ON G_U_NeedPart.Group_Code = [Group].G_Code INNER JOIN
NeedPart ON G_U_NeedPart.NPart_Code = NeedPart.NP_Code AND [Group].G_Code = NeedPart.Group_Code INNER JOIN
Unit ON G_U_NeedPart.Unit_Code = Unit.U_Code
ORDER BY [Group].Name, Expr2
 
//// Query For FastReport.Net
SELECT N.DateLastEdit, G.Name, N.Name, G1.Count, U.Name, N.Comment
FROM "Unit" U, "NeedPart" N, "Group" G, "G_U_NeedPart" G1
WHERE N.NP_Code = G1.NPart_Code AND G.G_Code = G1.Group_Code AND U.U_Code = G1.Unit_Code
AND G.G_Code = N.Group_Code
ORDER BY N.DateLastEdit Desc

ali.mansoori66
جمعه 11 اسفند 1391, 12:05 عصر
با سلام خدمت دوستان
من یه مشکل کوچیک داشتم در مورد گزارش گیری با fast report و اطلاعاتی که از یه view خونده میشه
من گزارشمو آماده کردم , یعنی توی گرید نمایش میدم و کلا با گزارش گرفتنش مشکل ندارم
مشکل اصلی من پاس دادنش به fast reporte و از اونجایی که اصلا با این نرم افزار کار نکردم به کلی گیج شدم
اگه دوستان کمکی کنند و مراحل رو به صورت کامل بزارن ممنون میشم (خصوصا قسمت ویزارد fastreport)
یه مثال زده شه که اطلاعات رو از view بخونه و توسط query که به گرید پاس داده شده اطلاعات رو نمایش بده
هم اکنون نیازمند یاری سبزتان هستیم D'- :لبخند:

mahdad sepah
جمعه 11 اسفند 1391, 13:40 عصر
سلام خدمت دوستان عزیز
شما میتونید داخل fast report چندتا data source بسازید هر data source برای یک جدول ، من خودم این کارو انجام دادم در یک گزارش اطلاعات چندتا جدول را میارم
موفق باشید

ali.mansoori66
جمعه 11 اسفند 1391, 22:07 عصر
سلام خدمت دوستان عزیز
شما میتونید داخل fast report چندتا data source بسازید هر data source برای یک جدول ، من خودم این کارو انجام دادم در یک گزارش اطلاعات چندتا جدول را میارم
موفق باشید
مهندس جان , حالا خوبه این همه توضیح دادم که کامل باشه
در این اندازه که چند تا جدول آورده بشه رو بلدم سوال من به کل چیز دیگه است !
اساتید نظری ندارن ؟

hadiranji
سه شنبه 07 مرداد 1393, 14:27 عصر
هنگام ایجاد یه دیتاست میتونید گزینه add sql query رو بزنید و از هر جدولی که با هم join شده اطلاعات رو گزارش بگیرید