برگزیده های پرشین تولز

پرینت در asp

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از H_R :
دوست عزیز خیلی خوبه که میخوای برنامت رو طوری بسازی که امکانات بهتری داشته باشه (مثل پرینت پرویو) اما تا جایی که من میدونم اصولا پرویو مال زمانی اه که کاربر توی پرنینت نقش داره (مثلا توی ورد که کاربر یه سند و ایجاد میکنه و بعد میخواد قبل اینکه کاغذ و جوهر مصر کنه ببینه که آیا این سند توی پرینت درست می افته یا نه ) ولی وقتی برنامه وب بیسه و اصولا کاربر نقشی توی ساختن سند نداره خیلی کار نابجایی به نظر میرسه که کاربر بخواد ببینه توی پرینت شکل صفحه خوب می افته یا نه ! به هرحال همینه که هست ، اگر پرینت رو میخواد باید بگیره پون نمیتونه که اصلاحش کنه ! پس بهترین حالت اینه که برنامه نویس طوری برنامه نویسی کرده باشه پرینت در هر صورت خوب و درست از توی پرینتر بیاد بیرون !

میدونم که الان داری انو میخونی و از این جواب تعجب میکنی ;) ولی باور کن دارم راست میگم !

خوب ما نخواستیم preview بدیم حالا می خواهیم از صفحه asp به کریستال ریپورت پارامتر بفرستیم که در یک textbox خاصی نشان دهد چه جوری این کارو انجام می دهیم ؟
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
به نقل از صنم :
نه همه گواهیها یک فرمت دارند ولی اطلاعاتی مربوط به هر شخص رو باید در این گواهی گذاشت مثل نام و نام خانوادگی و یا پست سازمانی شخص و ... اینها را قبلا توی یک دیتا بیس ذخیره می کنم وحالا باید در این گواهی باید در جاهای خاصی قرار دهم مثلا


خانم عارفه رسولی پست سازمانی حسابدار دارنده شماره شناسنامه123456 صادره از تهران و ....
خوب این که دیگه کاری نداره .
یه فرم درست میکنی که تمام یوزرها از این فرم برای پرینت استفاده کنن . فقط برای هر نفر که باید اطلاعات خودش در فرم قرار داده بشه باید بر مبنای ID ی خود همون شخص که وارد صفحه پرینت میشه . اطلاعات رو از Database استخراج کنی . همین

دیگه کاری نداره .
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از mehdi25 :
توضیحات بیشتر بده
ببینید من می خوام یک ریپورت طراحی کنم حالا با هر چی شد مثلا به فرم زیر
گواهی میشودرضا رضایی فرزندمحمد
می خوام 30 تا گواهی صادر کنم به فرم بالا و آنهایی که با قرمز نوشته شده رو از دیتا بیس می خونم و برای 30 نفر گواهی صادر می کنم تحت وب می خوام بنویسم می تونم با asp از دیتا بیس بخونم ولی اینکه اینها رو مثلا در کریستال ریپورت چه جوری نمایش بدم رو بلد نیستم .
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
به نقل از صنم :
ببینید من می خوام یک ریپورت طراحی کنم حالا با هر چی شد مثلا به فرم زیر
گواهی میشودرضا رضایی فرزندمحمد
می خوام 30 تا گواهی صادر کنم به فرم بالا و آنهایی که با قرمز نوشته شده رو از دیتا بیس می خونم و برای 30 نفر گواهی صادر می کنم تحت وب می خوام بنویسم می تونم با asp از دیتا بیس بخونم ولی اینکه اینها رو مثلا در کریستال ریپورت چه جوری نمایش بدم رو بلد نیستم .


حالا به کریستال ریپرت چیکار داری ؟؟ نمیشه همینجوری معمولی با asp.net به صورت وب فرم بنویسی ؟؟ راحتم میشه ازش پرینت گرفت ! من از 4 ، 5 سال پیش که کریستال ریپرت رو ته و توش رو در اوردم تا حالا یه بارم ازش استفاده نکردم ! تازه مجانی هم که نیست ! حالا چه کاریه ازش استفاده کنی ؟!؟!:blink:
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
به نقل از صنم :
ببینید من می خوام یک ریپورت طراحی کنم حالا با هر چی شد مثلا به فرم زیر
گواهی میشودرضا رضایی فرزندمحمد
می خوام 30 تا گواهی صادر کنم به فرم بالا و آنهایی که با قرمز نوشته شده رو از دیتا بیس می خونم و برای 30 نفر گواهی صادر می کنم تحت وب می خوام بنویسم می تونم با asp از دیتا بیس بخونم ولی اینکه اینها رو مثلا در کریستال ریپورت چه جوری نمایش بدم رو بلد نیستم .
ببین صنم جان این رو یه بار گفتم دوباره هم تکرار می کنم ( البته کامل تر )

شما یه فرم درست می کنید که قسمتهای ثابت در اون قرار دارند . حالا برای پرینت گرفتن نیاز دارید قسمتهایی که باید در هر فرم تغییر کنه رو عوض کنی .
برای این کار همین طوری که خودت می گی می تونی از دیتابیس برداری درسته فقط برای تغییر باید از لینکی که برای پرینت گرفتن مشخصات مورد نظر استفاده می کنی باید متغییر باشه .

بزار واضح تر بگم :
اطلاعات هر فرد درون یه فیلد در بانک قرار داره که هر فیلد هم یه ID یه منحصر به فرد داره . حالا شما می تونی برای پرینت هر فیلد ، با فرستادن ID ی مورد نظر ( همان فیلد ) به صفحه پرینت ، مشخصات مورد نظر را وارد فورم کرده و سپس به صورت یه فایل پرینت به کاربر تحویل دهی .
مثلاً :
ID ی فیلدی که مشخصات رضا رضایی در اون قرار داره شمارش 21 است .
حالا به همون آدرسی که قراره با کلیک روی اون فایل پرینت درست بشه ، شماره ID ی 21 رو اضافه می کنی . حالا برنامه به صورت خودکار میره و فیلد شماره 21 رو باز میکنه و اطلاعاتش رو درون صفحه قرار میده . برای استخراج اطلاعات از بانک باید از Where استفاده کنی ( می دونی دیگه ) که برحسب ID اطلاعات رو دربیاره .

برای بهتر فهمیدن این مطلب آدرس زیر رو باز کن و موس رو روی عکس پرینتر ببر و در Status Bar صفحه آدرس رو نگاه کن بعد Next رو بزن که بره صفحه دوم و دوباره آدرس پرینت رو نگاه کن ببین متغیر های Rec و To و Of تغییر میکنه شما هم باید همین کار رو انجام بدی
اینجا رو کلیک کن

دیگه این که کاری نداره .

موفق باشی
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
ببین صنم جان این رو یه بار گفتم دوباره هم تکرار می کنم ( البته کامل تر )

شما یه فرم درست می کنید که قسمتهای ثابت در اون قرار دارند . حالا برای پرینت گرفتن نیاز دارید قسمتهایی که باید در هر فرم تغییر کنه رو عوض کنی .
برای این کار همین طوری که خودت می گی می تونی از دیتابیس برداری درسته فقط برای تغییر باید از لینکی که برای پرینت گرفتن مشخصات مورد نظر استفاده می کنی باید متغییر باشه .

بزار واضح تر بگم :
اطلاعات هر فرد درون یه فیلد در بانک قرار داره که هر فیلد هم یه ID یه منحصر به فرد داره . حالا شما می تونی برای پرینت هر فیلد ، با فرستادن ID ی مورد نظر ( همان فیلد ) به صفحه پرینت ، مشخصات مورد نظر را وارد فورم کرده و سپس به صورت یه فایل پرینت به کاربر تحویل دهی .
مثلاً :
ID ی فیلدی که مشخصات رضا رضایی در اون قرار داره شمارش 21 است .
حالا به همون آدرسی که قراره با کلیک روی اون فایل پرینت درست بشه ، شماره ID ی 21 رو اضافه می کنی . حالا برنامه به صورت خودکار میره و فیلد شماره 21 رو باز میکنه و اطلاعاتش رو درون صفحه قرار میده . برای استخراج اطلاعات از بانک باید از Where استفاده کنی ( می دونی دیگه ) که برحسب ID اطلاعات رو دربیاره .

برای بهتر فهمیدن این مطلب آدرس زیر رو باز کن و موس رو روی عکس پرینتر ببر و در Status Bar صفحه آدرس رو نگاه کن بعد Next رو بزن که بره صفحه دوم و دوباره آدرس پرینت رو نگاه کن ببین متغیر های Rec و To و Of تغییر میکنه شما هم باید همین کار رو انجام بدی
اینجا رو کلیک کن

دیگه این که کاری نداره .

موفق باشی
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
یه چیز دیگه
اصلا کریستال ریپرت رو از بیخ ول کن ( بیخیالش شو دیگه همش گیر دادی به کریستال ریپرت ) همین طوری که در بالا گفتم بنویس بسیار عالی و ساده مشکلت حل میشه
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
می بینم که از یه تاپیک شونصد تا ارسال کردم
15.gif
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از mehdi25 :
ببین صنم جان این رو یه بار گفتم دوباره هم تکرار می کنم ( البته کامل تر )

شما یه فرم درست می کنید که قسمتهای ثابت در اون قرار دارند . حالا برای پرینت گرفتن نیاز دارید قسمتهایی که باید در هر فرم تغییر کنه رو عوض کنی .
برای این کار همین طوری که خودت می گی می تونی از دیتابیس برداری درسته فقط برای تغییر باید از لینکی که برای پرینت گرفتن مشخصات مورد نظر استفاده می کنی باید متغییر باشه .

بزار واضح تر بگم :
اطلاعات هر فرد درون یه فیلد در بانک قرار داره که هر فیلد هم یه ID یه منحصر به فرد داره . حالا شما می تونی برای پرینت هر فیلد ، با فرستادن ID ی مورد نظر ( همان فیلد ) به صفحه پرینت ، مشخصات مورد نظر را وارد فورم کرده و سپس به صورت یه فایل پرینت به کاربر تحویل دهی .
مثلاً :
ID ی فیلدی که مشخصات رضا رضایی در اون قرار داره شمارش 21 است .
حالا به همون آدرسی که قراره با کلیک روی اون فایل پرینت درست بشه ، شماره ID ی 21 رو اضافه می کنی . حالا برنامه به صورت خودکار میره و فیلد شماره 21 رو باز میکنه و اطلاعاتش رو درون صفحه قرار میده . برای استخراج اطلاعات از بانک باید از Where استفاده کنی ( می دونی دیگه ) که برحسب ID اطلاعات رو دربیاره .

برای بهتر فهمیدن این مطلب آدرس زیر رو باز کن و موس رو روی عکس پرینتر ببر و در Status Bar صفحه آدرس رو نگاه کن بعد Next رو بزن که بره صفحه دوم و دوباره آدرس پرینت رو نگاه کن ببین متغیر های Rec و To و Of تغییر میکنه شما هم باید همین کار رو انجام بدی
اینجا رو کلیک کن

دیگه این که کاری نداره .

موفق باشی

سلام
من این کارایی که شما گفتید انجام دادم ولی چند تا اشکال دارم من از db خواندم و در صفحه جاگذاری کردم ولی وقتی print می زنم که در word باز شه اولا چپ به راست میافتد(مثلا "دارای گواهی به جای اینکه در آخر بیافتد در اول می افتد" در ثانی باز متوجه نشدم که چه جوری جدول و کلمه print را از word حذف کنم در ضمن اسم و کدی رو در فایل word نشان نمی دهد
من برنامه ای رو که کار کردم اینجا می گذارم لطفا دانلود کنید و نگاه کنید بعد از دانلود باید فایل main.asp رو اجرا کنید بعد دگمه print رو بزنید بعد در textbox کلمه " م" را وارد کنید بعد در صفحه باز شده روی یکی از لینکها کلیک کنید تا صفحه بازشود روی دکمه print کلیک کنید تا فایل word باز شود ..
با تشکر فراروان
 

فایل های ضمیمه

  • test word.zip
    14.4 KB · نمایش ها: 6

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
ببینید یکی از مشکلات شما اینه که اطلاعات رو بصورت Query به صفحه ای که قراره از اون پرینت گرفته بشه ارسال کردین .
1- حتماً متوجه شده اید که با کلیک کردن بر روی Print صفحه مربوطه Refresh میشه پس Query هایی که به صفحه پست شده اند خالی می شوند در نتیجه هیچ اطلاعاتی برای شما پرینت گرفته نمیشه بجز قسمت های ثابت .

2- برای حذف کلمه Print از فایل Word من به وضوح در پست شماره 11 در همین تاپیک جواب شما رو داده ام فقط اسم فایلتو باید عوض کنی . ببینمی شما جواب سوالاتت رو می خونی ؟
106.gif


3- پست شماره 28 رو دوباره و با دقت بخوان . شما اومدی اطلاعات رو به صفحه پست کردی ولی به راحتی میتونی فقط ID رو پست و اطلاعات رو در همون صفحه از دیتابیس در بیاری . حالا فکرش رو بکن که اطلاعات مربوط به هر فرد 22 مورد باشه همه رو باید پست کنی و ...

4- اگر به همین روش بخوای طراحی کنی باید تمامی اطلاعاتی که به صفحه gavahi.asp ارسال کردی رو وقتی که می خوای پرینت بگیری دوباره ارسال کنی .

5- برای درست شدن راست به چپ از DIR=RTL استفاده کن
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
یه مشکل دیگه حالا وقتی print رو می زنم تو صفحه وب رکورد درست رو نشون میده ولی در word رکورد آخرو نشون میده نمی دونم چرا دیگه دارم دیوونه می شم :wacko:
 

فایل های ضمیمه

  • test word.zip
    15.2 KB · نمایش ها: 4

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
به نقل از صنم :
یه مشکل دیگه حالا وقتی print رو می زنم تو صفحه وب رکورد درست رو نشون میده ولی در word رکورد آخرو نشون میده نمی دونم چرا دیگه دارم دیوونه می شم :wacko:
حالا یه خورد بهتر شده . البته کد هاتو جمعو جورشون کن خیلی بهم ریخته هستن .

آخه من چی بگم دختر .

در فایل Gavahi.asp لینکی که به Print میدی رو درست کن . اینو بزار

کد:
<A href="gavahi.asp?xport=word&Code=<%=item%>">Print</A>

درست میشه .

هنوز هم کلمه Print در فایل Word ذخیره میشه که اونو چرا برنداشتی پست شماره 11 رو کپی پیست باید بکنی دیگه . جوابتو دادم
موفق باشی
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از mehdi25 :
حالا یه خورد بهتر شده . البته کد هاتو جمعو جورشون کن خیلی بهم ریخته هستن .

آخه من چی بگم دختر .

در فایل Gavahi.asp لینکی که به Print میدی رو درست کن . اینو بزار

کد:
<A href="gavahi.asp?xport=word&Code=<%=item%>">Print</A>

درست میشه .

هنوز هم کلمه Print در فایل Word ذخیره میشه که اونو چرا برنداشتی پست شماره 11 رو کپی پیست باید بکنی دیگه . جوابتو دادم
موفق باشی
سلام
ممنون که جواب دادید یه مشکل دیگه دارم من می خوام برای مثلا 100 کاربر گواهی صادر کنم که همه گواهیها در یک فایل word ذخیره شوند ولی هر گواهی در یک صفحه word باشند ولی نمی دونم با چه دستوری می توان این کار را انجام داد
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
راستش منم نمی دونم چطور می شه این کار رو کرد .

فقط اینو میدونم که برای این که 100 تا گواهی در یک فایل باشه باید یه برنامه بنویسی که تمام مشخصات این 100 تا کاربر رو از بانک در بیاره و در یک صفحه بزاره ( باید برنامه شما تکرار بشه مثلا از IDی 20 تا IDی 120 رو که به صفحه پست شده رو از بانک در بیاره و در یک صفحه بزاره بعد از اون صفحه پرینت بگیر . مثل این صفحه ببین اگه 200 تا مورد هم در بانک باشه همه رو از بانک در میاره و پشت سر هم در یک صفحه نمایش میده براش مهم نیست که چند تا فیلد در بانک وجود داره از اول تا آخر همه رو نمایش میده .

ولی این که هر گواهی در یک صفحه Word باشه رو نمی دونم . فکر نمی کنم همچین کاری بشه کرد . من که ندیدم
 

صنم

کاربر تازه وارد
تاریخ عضویت
27 فوریه 2005
نوشته‌ها
125
لایک‌ها
0
به نقل از mehdi25 :
راستش منم نمی دونم چطور می شه این کار رو کرد .

فقط اینو میدونم که برای این که 100 تا گواهی در یک فایل باشه باید یه برنامه بنویسی که تمام مشخصات این 100 تا کاربر رو از بانک در بیاره و در یک صفحه بزاره ( باید برنامه شما تکرار بشه مثلا از IDی 20 تا IDی 120 رو که به صفحه پست شده رو از بانک در بیاره و در یک صفحه بزاره بعد از اون صفحه پرینت بگیر . مثل این صفحه ببین اگه 200 تا مورد هم در بانک باشه همه رو از بانک در میاره و پشت سر هم در یک صفحه نمایش میده براش مهم نیست که چند تا فیلد در بانک وجود داره از اول تا آخر همه رو نمایش میده .

ولی این که هر گواهی در یک صفحه Word باشه رو نمی دونم . فکر نمی کنم همچین کاری بشه کرد . من که ندیدم
میشه page setup صفحه word رو تعیین کرد که در چه اندازه ای باز شه؟
 

mehdi25

کاربر تازه وارد
تاریخ عضویت
28 اکتبر 2004
نوشته‌ها
1,318
لایک‌ها
2
محل سکونت
طهران
ببین این برنامه میاد صفحه و مطالب شما که در HTML قرار دارند رو به صورتی در میاره که Word هم می تونه اونو باز کنه دیگه امکان کنترل Page Setup رو نداره .

من فکر نمی کنم که بتونی یه چنین چیزی با Word درست کنی . البته ! با PDF فکر کنم بشه ولی نیاز به ActivX داره که باید خدا تومن پول بابتش بدی .

چرا گیر دادی به صفحه صفحه کردن . همینطوری درست کن فقط تجربی یه جوری تو صفحه HTML بچین که هر کدوم تو یه صفحه قرار بگیره . یا از رول کاغذ استفاده کن .
 
بالا