مشاهده نسخه کامل
: چاپ یک رکورد از دیتا بیس؟
زمانی که یک کاربر جدید به سیستم اضافه می شود می خواهیم یک برگ حاوی مشخصاتی از وی که در سیستم ثبت شده است به او تحویل دهیم.
برای این کار چه راه حلی پیشنهاد می کنید؟
1. چاپ همین فرم روی برگه (آیا در C# چنین قابلیتی وجود دارد؟)
2. چاپ با استفاده از CrystalReport (چگونه می توان همین بک رکورد را به CrystalReport فرستاد؟)
سلام
1-
با روش های نه چندان جالبی میتوان از Form ها پرینت گرفت، ولی اینکار اصلاً صحیح نیست و با dpi پایین انجام میشود.
کلاً شما به ذات در دات نت سه راه چاپ دارید.
Crystal و MsReport و ترسیمات مستقیم.
2-
یک DataTable که فقط یک سطر دارد ! چندان گیج کننده نیست.
با این دستورات من کل رکوردهای ثبت شده را بازیابی می کنم اما چگونه می شود یک رکورد را بازیابی کنم
//FrmMain
private void BtnShowCustomer_Click(object sender, EventArgs e)
{
FrmReport FR = new FrmReport(markazDBDataSet);
FR.ShowDialog();
}
//FrmReport
private MarkazDBDataSet MDB;
public FrmReport(MarkazDBDataSet Mdb)
{
InitializeComponent();
MDB = Mdb;
}
private void FrmReport_Load(object sender, EventArgs e)
{
Customer1.SetDataSource(MDB);
}
از این Query هم برای بازیابی این رکورد استفاده می کنم اما نمی دانم چگونه این رکورد بازیابی شده را به CrystalReportبفرستم
SELECT CuId, Date, Time, FName, LName, Gen, Position, Type FROM Customer WHERE (CuId = @CuId)
سلام
در پستهایتان میتوانید کدهایتان را در تگ code قرار دهید تا بهتر نمایش داده شوند.
آیا Customer1 نمونه ای از گزارش کریستال است؟؟؟
توجه کنید، هیچ فرقی بین یک سطر با هزار سطر نیست، شما همانطور که هطار سطر دیتا را در قالب یک DataTable یا یک DataSet به کریستا میدهید، باید یک سطر را هم بدهید، واقعاً نکته ابهامی وجود ندارد!!
سلام
در پستهایتان میتوانید کدهایتان را در تگ code قرار دهید تا بهتر نمایش داده شوند.
آیا Customer1 نمونه ای از گزارش کریستال است؟؟؟
توجه کنید، هیچ فرقی بین یک سطر با هزار سطر نیست، شما همانطور که هطار سطر دیتا را در قالب یک DataTable یا یک DataSet به کریستا میدهید، باید یک سطر را هم بدهید، واقعاً نکته ابهامی وجود ندارد!!
سلام دوست عزیز
من هنوز راه حل منطقی برای این کار پیدا نکردم
من کدخودم را کامل برای شما نوشتم، با این روش من کل رکوردهایی که تابحال ثبت شده است را بازیابی می کنم
اما می خواهم زمانی که یک مشتری جدید در سیستم ثبت می شود اطلاعات همین مشتری را بازیابی کنم و پرینت بگیرم. نمی دانم چگونه این کار را انجام دهم(بله Customer نمونه ای از گزارش است)
سلام
شما یک سطر اطلاعات میخواهید،
اگر دیتاست شما با نام markazDBDataSet از قبل پر شده و در RAM موجود است و مخصوص چاپ این گزارش آن را پر و Fill نکرده اید،
میتوانید از همین استفاده کنید و یک دیتاست خالی و جدید در کد تعریف کنید و سطر مورد نظر از markazDBDataSet را کپی گرفته و با Table.Rows.Add به دیتاست خالی جدید اضافه کنید.
اگر دیتاست markazDBDataSet را مخصوص این گزارش پر و Fill کرده اید، که کارتان چندان جالب نبوده و شما باید شرط WHERE ای را به DataAdapter اضافه کنید.
اگر از نوع سفارشی DataAdapter های موجود در TypedDataSet استفاده میکنید. روی DataAdapter راست کلید کنید و فرمان AddQuery بدهید و دستور و متد جدیدی با شرط WHERE به ان اضافه کنید.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
اگر هم خودتان دستی DataAdapter را میسازید که فقط کافیست شرط مورد نظر را به دستور SQL-SELECT اضافه کنید.
اگر دیتاست شما با نام markazDBDataSet از قبل پر شده و در RAM موجود است و مخصوص چاپ این گزارش آن را پر و Fill نکرده اید، میتوانید از همین استفاده کنید و یک دیتاست خالی و جدید در کد تعریف کنید و سطر مورد نظر از markazDBDataSet را کپی گرفته و با Table.Rows.Add به دیتاست خالی جدید اضافه کنید.
لطفا در صورت امکان دستورات تعریف DataSet بوسیله کد را بنویسید
ممنون
سلام
مثل بقیه اشیا در دنیای شی گرایی، با یک کلمه new ناقابل!
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در این مورد و تحویل دادن منبع به کریستال یا MsReport باید نوع دیتاست با نوع مورد نیاز و استفاده شده در آنجا همخوانی داشته باشد.
سلام
منظورتان را از "همخوانی بین نوع دیتاست با نوع مورد نیاز و استفاده شده" متوجه نشدم، چون طبق تعریفی که شما نوشته اید نوعی برای دیتاست معرفی نمی شود؛ لطفا بیشتر توضیح دهید
و اینکه می توان برای اضافه کردن سطر مورد نظر به دیتابیس از این دستور استفاده کرد؟
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
سلام
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
در زمان طراحی msReport و قرار دادن جدول، شما احتمالاً فیلدهای یک TypedDataSet خاص را که در پروژه داشته اید، برای source فیلدهای نمایشی استفاده کرده اید،
منظورم آن بود که دیتاسیتی که new میکنید از همان نوع باشد.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
می توان برای اضافه کردن سطر مورد نظر به دیتابیس از این دستور استفاده کرد؟
فرمایشاتی میفرمائید برادر!
واضح است که این کد شما اصلاً مشکل سینتکس دارد چه رسد به منطقی.
دستور sqlمورد نظر را میتوانید به همراه رشته اتصال یا همان ConnectionString تحویل DataAdapter ای دهید و با متد Fill آن عمل خواندن و پر کردن را انجام دهید.
پیشنهاد میکنم، کمی کار و تست عملی کنید، اگر مشکلی داشتید در خدمت هستم.
سلام دوست عزیز
من گیج شدم،
ببینید اسم DataSet من Markaz است و اسم Table من هم Customer است
می خواهم زمانی که یک مشتری جدید ثبت می شود اطلاعات این مشتری به Crystal فرستاده شود
اگه ممکنه راهمایی کنین
سلام
شاید کد زیر مشکلتان را حل کند.
برای مشاهده محتوا ، لطفا وارد شوید یا ثبت نام کنید
کریستال فقط و فقط DataSet را قبول دارد، یعنی هر چیز دیگری هم که بدهیم خودش اول در داخل DataSet میکند.
وگرنه برای یک سطر واحد میشد بدون DataSet از روش های سریعتر هم استفاده کرد.
دوست عزیز آقای H2 از شما کمال تشکر را دارم
راهنمایی شما جامع و کامل بود و مشکل من را حل کرد کلی دعاتون کردم
ممنون
vBulletin , Copyright ©2000-2025, Jelsoft Enterprises Ltd.