View Full Version : سوال: فرستادن دسته جمعي سند ها براي چاپ
UpgradeVB6Code
یک شنبه 29 اردیبهشت 1387, 10:18 صبح
سلام
من ميخوام سندها مو به صورت دسته جمعي بفرستم براي چاپ
الان اين جوريه كه روي شماره سند جاري وقتي "چاپ سند" زده ميشه صفحه ديتا ريپورت باز ميشه و يه Preview ازش نشون ميده بعد كاربر بايد گزينه پرينت رو بزنه
اما من ميحوام مثلا بگم از سند 1 تا 10 رو چاپ كنه ؟؟؟
soheil_programmer
یک شنبه 29 اردیبهشت 1387, 14:50 عصر
سلام
من ميخوام سندها مو به صورت دسته جمعي بفرستم براي چاپ
الان اين جوريه كه روي شماره سند جاري وقتي "چاپ سند" زده ميشه صفحه ديتا ريپورت باز ميشه و يه Preview ازش نشون ميده بعد كاربر بايد گزينه پرينت رو بزنه
اما من ميحوام مثلا بگم از سند 1 تا 10 رو چاپ كنه ؟؟؟
فقط کافیه اگه پنجره زیر باز شد توش صفحه یا صفحات مورد نظرتون را بزنید:
http://i27.tinypic.com/2bqq20.jpg
UpgradeVB6Code
یک شنبه 29 اردیبهشت 1387, 21:29 عصر
نه منظورم اين نبود
منظورم اينه كه من يه ديتا ريپورت دارم به اين شكل
حالا كاربر بعد از اينكه مثلا ميگه سند شماره 2 رو پرينت بگيره برنامه ميره سند 2 (كه حاوي 12 ركورد هست) رو به اين شكل مياره براي پرينت بعد كاربر بايد اون دكمه رو كه مشحص كردم بزنه تا پرينت گرفته بشه بعد دوباره بياد توي فرم بزنه پرينت سند شماره 3 و ....
اما من ميخوام كاربر بگه سند 1 تا 10 رو پرينت بگير بعد تمام مراحل بالا كه گفتم خودكار انجام بشه
soheil_programmer
یک شنبه 29 اردیبهشت 1387, 23:39 عصر
بهتون پیشنهاد میکنم از ActiveReport استفاده کنید چون امکانات خوبی داره برای این کارها!!:لبخند:
UpgradeVB6Code
دوشنبه 30 اردیبهشت 1387, 10:45 صبح
نميشه اين كارو بكنم
ببينيد الان با همچين كدي پرينت ميگيرم
RecSet.Open ....
Set DataReport1.DataSource = RecSet
.
.
.
DataReport1.Refresh
DataReport1.Show
RecSet.Close
اما بيام اين جوري توي حلقه
For i = 1 To 3
RecSet.Open .... 'ركوردست جديد درست بشه
Set DataReport1.DataSource = RecSet
.
.
.
DataReport1.Refresh
'DataReport1.Show
DataReport1.PrintReport
RecSet.Close
Next
يعني اون خطي رو كه قرمز كردم پاك كنم به جاش اون خط ابي رو اضافه كنم
به نظر شما 3 سند پشت سر هم پرينت گرفته ميشند
آخه من پرينتر ندارم نميتونم تست كنم
ali_habibi1384
دوشنبه 30 اردیبهشت 1387, 12:36 عصر
اگه شما می خوای از یک سند 3 بار چاپ بگیری این کار با کد شما انجام خواهد شد.
شما اگر از پرینتری استفاده نمیکنی و نداری می تونی از پرینتر مجازی برای پیش نمایش استفاده کنی. برای اینکار برنامه آفیس رو نصب کن و در پایان کار در قسمت printer and fax گزینه microsoft office auto رو در حالت پیش فرض انتخاب کن.
حالا وقتی شما چیزی رو برای چاپ می فرستی پیش نمایش چاپ برای شما ضاهر خواهد شد این پیش نمایش دقیقا همان چیزی خواهد بود که به Spooler ویندوز فرستاده می شود و غیر از پیش نمایشی است که دیتا ریپورتها به شما نشان می دهند.
vbhamed
دوشنبه 30 اردیبهشت 1387, 14:01 عصر
سلام
اگر فرض كنيم كاربر تو Text1 و Text2 صفحه شروع و پايان رو بزنه با كد زير مي توني اين كار رو انجام بدي
يك متغير به نام dbase استفاده شده كه نام و مسير بانك رو توش بده، نام بقيه اشياء هم طبق برنامت تنظيم كن
On Error Resume Next
Dim Sql As String, i%
For i = Val(text1) To Val(text2)
Sql = "Select * From Tbl_Anbar Where Number = " & i
Unload DataEnvironment1
DataEnvironment1.Connections(1).Close
DataEnvironment1.Connections(1).ConnectionString = "ProviDataEnvironment1r=Microsoft.Jet.OLEDB.4.0;Per sist Security Info=False;Data Source=" & dbase
DataEnvironment1.Connections(1).Open
DataEnvironment1.Recordsets("cmd").Close
DataEnvironment1.Recordsets("cmd").Open Sql
DataReport1.PrintReport False
Next
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.