View Full Version : چجوری منبع گزارشم،غیراز بانک اطلاعاتی باشه
RED-C0DE
پنج شنبه 22 شهریور 1386, 17:01 عصر
سلام.
چجوری می تونم یک گزارش مثل کریستال ریپورت بسازم ولی Data Source ام ، بانک اطلاعاتی نباشه.
یعنی در واقع می خوام از فاکتوری که باید پرینت گرفته بشه (محتویات یک DataGrid) یک پیش نمایش بدم بیرون...درست مثل وقتی که باید چاپ بشه...
با خود کنترلهایی که دات نت برای پرینت گذاشته باید کار کنم یا با کریستال هم می شه؟
(خیلی وقت پیش توی همین فروم دیده بودم این مطلب رو ولی الان یادم پیداش نمی کنم)
خیلی وقته از کریستال استفاده نکردم!
ممنون می شم...
sm
جمعه 23 شهریور 1386, 09:51 صبح
البته روش درستش اینه که شما اول توی بانک اطلاعات رو ذخیره کنین، ولی اگه خواسته باشین مستقیما از برنامه چاپ کنین، کافیه اطلاعاتتون رو داخل یه Dataset بریزین و بعد اونو به گزارش رد کنین.
موفق باشید
RED-C0DE
شنبه 24 شهریور 1386, 15:02 عصر
فکر کنم متوجه شدم...یعنی همون ساختاری که می خوام رو ، توی یک دیتاست بسازم و بصورت Temp ازش استفاده کنم؟
البته روش درستش اینه که شما اول توی بانک اطلاعات رو ذخیره کنین
کاری که من می خوام بکنم اینه که توی فرم مخصوص فاکتور 3 تا button دارم :
"ثبت فاکتور" : که فاکتور و کلیه تراکنش ها و عملیات رو فقط در بانک اطلاعاتی ثبت می کنه و کار چاپ انجام نمی ده...
"ثبت و صدور فاکتور" : که اول کار "ثبت فاکتور" رو انجام می ده و بعد فاکتور رو چاپ می کنه...این مشکلی نداره...
"صدور فاکتور" : فقط فاکتور رو چاپ می کنه ، (در بانک اطلاعاتی ثبتش نمی کنه) و من مشکلم همین هست، یعنی با استفاده از کریستال ، اون رو نمایش بدم و چاپ کنم که راهش رو شما گفتی و روش کار می کنم...امیدوارم جواب بگیرم...
ممنون...
sm
یک شنبه 25 شهریور 1386, 08:12 صبح
نماز و روزه هاتون مورد قبول حق...التماس دعا
--------------------------------------------------
یعنی شما یکسری فاکتور دارین که فقط میخواین چاپ کنین؟ نیازی به ذخیره اون توی بانک نیست؟
آخه اگه نیاز باشه که نهایتا توی بانک ذخیره بشه بهتره و منطقیه که اول ذخیره بشه بعد چاپ بشه چون هیچ ضمانتی نیست که بعد از چاپ بتونین اونو توی بانک ذخیره کنین!!!
ساده ترین مشکلی که ممکنه رخ بده، قطع برق و از بین رفتن اطلاعات هستش.
بنابراین روش اصولی اینه که همواره داده ها ثبت و بعد از داده های ثبت شده چاپ گرفته بشه.
موفق باشید
RED-C0DE
یک شنبه 25 شهریور 1386, 23:11 عصر
آره درست می گین... اما خوب همونطور که گفتم من 3 تا کار انجام میدم...(در واقع 2 تا)
1- ثبت فاکتور : عملیات مربوط به فاکتور رو انجام می ده و در بانک ذخیره می شه (این مورد رو مشکلی ندارم)
2- ***** صدور فاکتور (چاپ فاکتور) : فقط فاکتور رو باید چاپ کنم و فاکتور جایی ذخیره نباید بشه (ولی حالا اگه هم بشه بصورت Temp ذخیرش کنم و کارم راه بیفته خیلی خوب می شه...مشکل اینه که دقیقا نمی دونم باید چیکار کنم و چجوری چنین گزارشی بسازم)
3-ثبت و چاپ : مورد 1 و 2 رو انجام می ده (هم فاکتور رو چاپ می کنه و هم ذخیره می شه...این مورد هم بخاطر صدور فاکتور کاملش نکردم)
من مورد 2 رو مشکل دارم...بعضی مواقع واقعا نباید فاکتور ذخیره بشه چون نیاز به بازیابی اون ندارم...
- چکار باید بکنم؟؟؟ بهترین کار چیه؟؟
- برای اینکار چجوری باید از کریستال ریپورت استفاده کنم ؟؟؟اصلا قالب یک گزارش کریستال مخصوص فاکتور چجوری باید باشه و ساخته بشه؟؟؟
sm
چهارشنبه 28 شهریور 1386, 11:04 صبح
دوست عزیز همونجوری که توی اولین پست گفتم یک راهش اینه که یه دیتاست ایجاد کنین و داده های فاکتور رو داخل اون بریزین و چون کریستال دیتاست داخل فرمها رو میشناسه از اون استفاده کنین.
موفق باشید
RED-C0DE
چهارشنبه 28 شهریور 1386, 13:20 عصر
قالب یک دیتاست برای فاکتور به چه صورت باید باشه؟
ببینید درست متوجه شدم:
باید یک دیتاست جدید بسازم (یا از همون دیتاست اصلی استفاده کنم؟؟) و دیتاتیبلهایی که توی فاکتور مشترک هستند رو داخلش اضافه کنم... بعدش توی فرم مخصوص ثبت فاکتور ،این دیتاست رو بیارم و به دیتاگریدم بایند کنم و جنسها رو اضافه کنم و در آخر هم دیتاست رو به کریستال بفرستم؟؟؟
RED-C0DE
چهارشنبه 28 شهریور 1386, 20:00 عصر
خودم یک دیتاست (dsFactor) جدید ساختم با دو تا Table
TableFactorMaster: برای نگهداری شماره فاکتور و مشخصات مشتری و تاریخ و مبلغ پرداختی...
TableFactor: اجناس فروخته شده در فاکتور رو در این جدول وارد می کنم...
یک فرم برای ثبت فاکتور هم ساختم که یک دیتاگرید داره و به این دیتاست وصل شده...بعد از هر بار اضافه کردن یک محصول به فاکتور ، یک سطر به TableFactor اضافه می شه و در آخر هم (وقتی که کلید "ثبت فاکتور" زده بشه) ، مشخصات مشتری و فاکتور رو در جدول TableFactorMaster ذخیره می کنم....و عملیات لازم رو هم روی بانک اطلاعاتی اصلیم انجام می دم...
خوب، حالا یک دیتاست دارم که توش فاکتور مورد نظرم قرار داره و می خوام چاپش کنم...یک ReportDocument , CrystalReportViewer هم توی یک فرم دیگه اضافه کردم و dsFactor رو بهش می دم...اما تنها فقط وقتی که فاکتورم یک سطر داشته باشه نشونش می ده و اگر بیشتر از یک جنس توی فاکتور ثبت شده باشه نشون نمیده...
در کل راه درستی رفتم یا کلا اشتباه رفتم؟؟؟
آیا باید از جداول خود بانک اطلاعاتی اصلیم استفاده می کردم؟؟؟ یا مثلا برای بعضی از مقادیر از پارامترها استفاده می کردم؟؟؟
sm
جمعه 30 شهریور 1386, 15:11 عصر
در مواردیکه داده ها رو توی بانک ذخیره می کنین، حتما با استفاده از کوئری یا SP داده ها رو مجدد از بانک بخونین و توی گزارش نمایش بدین و برای حالتی که میخواین داده ها رو فقط چاپ کنین از همون روش دیتاستی که در بالا توضیح دادین استفاده کنین.... درسته
اگر بیش از یک رکورد رو نشون میده چک کنین که فیلدهاتون رو توی Detail Section قرار داده باشین نه جای دیگه ای.
موفق باشید
RED-C0DE
جمعه 30 شهریور 1386, 16:44 عصر
ممنون...مشکلم به این دلیل بود که لینک اشتباهی داده بودم برای جدوال موجود در دیتاستم...
در مواردیکه داده ها رو توی بانک ذخیره می کنین، حتما با استفاده از کوئری یا SP داده ها رو مجدد از بانک بخونین و توی گزارش نمایش بدین
دلیلش چیه؟ مگه فرقی هم می کنه؟
من الان از همین روش دیتاست برای هر دو منظورم استفاده می کنم و فعلا که مشکلی پیش نیومده... می خوام ببینم که دقیقا فرقشون (یا مزایا و معایب احتمالی) چیه؟؟؟
ممنون...
pirahansiah
جمعه 30 شهریور 1386, 23:15 عصر
با سلام
من می خواهم از یک text box که در فرمم وجود دارد اطلاعاتی را به صفحه چاپ در کریستال منتقل کنم چگونه این کار را انجام بدهم
با تشکر فراوان
sm
شنبه 31 شهریور 1386, 08:14 صبح
فرقش در اینه که:
اگر شما داده هایی رو دارین که باید حتما چاپ و در بانک هم ذخیره بشن اگر اول اونها رو چاپ کنین و بعد بخواین ذخیره کنین، چه ضمانتی هست که حتما توی بانک ذخیره بشن!؟ ساده ترین مشکلی که ممکنه رخ بده برق بره یا اینکه سیستم Crash کنه یا ارتباط با سرور قطع بشه!! یا اتفاقات دیگه.... مزیت دیگه ای که داره اینه که دقیقا چیزهایی رو توی چاپ میکنه که توی بانک هست.
پس درستش این که ابتدا اطلاعات ذخیره و بعد دوباره فراخوانی و چاپ بشه.
----------------------------------------
در مورد سوال دوستمون Pirahansia
خوش اومدین
با استفاده از پارامتر میتونین این کار رو انجام بدین.
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.