PDA

View Full Version : سوال: بهم خوردن تنظیمات page setup گزارش



mina01
دوشنبه 23 فروردین 1389, 11:47 صبح
با عرض سلام
من توی برنامه ای که با اکسس طراحی کرده ام چند تا هم گزارش دارم که همگی بصورت landscape (افقی) و تنظیمات top,button,left , right آنها هم 10 می باشد (توضیح اینکه در اکسس 24.99 بطور پیش فرض تعریف شده و حالت برگه هم عمودی می باشد)
مشکل: حال مشکل من از این قراره که زمانی از گزارش خارج می شوم و دوباره می خواهم گزارش را مشاهده کنم تمام تنظیماتی که قبلا انجام داده بودم بهم می خورد و page setup بصورت پیش فرض اکسس در می آید که این کار باعث می شود گزارش ناقص دیده شود و دوباره مجبور به تنظیم می باشم .
قابل ذكر است كه بعد از هر بار تغيير تنظيمات كاغذ آن را save هم مي كنم ولي جواب نميده
احتمال مي دم بشه با كد نويسي مشكل رو حل كرد ولي بلد نيستم
لطفا منو راهنمایی کنید. از توجه شما خیلی ممنونم.

ryonis
دوشنبه 23 فروردین 1389, 18:06 عصر
با عرض سلام
من توی برنامه ای که با اکسس طراحی کرده ام چند تا هم گزارش دارم که همگی بصورت landscape (افقی) و تنظیمات top,button,left , right آنها هم 10 می باشد (توضیح اینکه در اکسس 24.99 بطور پیش فرض تعریف شده و حالت برگه هم عمودی می باشد)
مشکل: حال مشکل من از این قراره که زمانی از گزارش خارج می شوم و دوباره می خواهم گزارش را مشاهده کنم تمام تنظیماتی که قبلا انجام داده بودم بهم می خورد و page setup بصورت پیش فرض اکسس در می آید که این کار باعث می شود گزارش ناقص دیده شود و دوباره مجبور به تنظیم می باشم .
قابل ذكر است كه بعد از هر بار تغيير تنظيمات كاغذ آن را save هم مي كنم ولي جواب نميده
احتمال مي دم بشه با كد نويسي مشكل رو حل كرد ولي بلد نيستم
لطفا منو راهنمایی کنید. از توجه شما خیلی ممنونم.
با كمي جستجو تو سايت هاي معتبر مي توني به جواب كامل برسي. يكي از بهترين پاسخ ها و بهترين منبع در مورد پاسخ به سوال شما، سايت خود Microsoft است كه دقيقاً پاسخ شما رو در آدرس زير نوشته :

http://msdn.microsoft.com/en-us/library/aa139946 (http://msdn.microsoft.com/en-us/library/aa139946)

(اگه درمورد ترجمه يا استفاده از مطالب فوق مشكلي داشتي بفرما تا كمكتان كنم!)

اما اگه بخواي يه مثال ساده هم دارم:



Public Sub SetReportParameters()


Dim sRpt As String, rpt As Report, prt As Printer


sRpt = "All_Actions_Report"
DoCmd.OpenReport sRpt, acViewDesign


'Set the printer to default
Set rpt = Reports(sRpt)
rpt.UseDefaultPrinter = True


'set the prt object to the Application printer
Set prt = rpt.Printer


With prt


'Margins
.LeftMargin = 567 ' in units of twips 1"=1440twips / 10mm = 567twips:تشویق:
.RightMargin = 567
.TopMargin = 850
.BottomMargin = 567


'Orientation
.Orientation = acPRORLandscape


'Column / Row Spacing
.ColumnSpacing = 360
.RowSpacing = 0


End With


DoCmd.Close ObjectType:=acReport, ObjectName:=sRpt, Save:=acSaveYes


End Sub

mina01
شنبه 28 فروردین 1389, 10:50 صبح
سلام
تشكر از اينكه راهنمائيم كردين
دست شما درد نكنه مشكل من هم اين بود . من تو كد نويسي گزارش ها كمي مشكل دارم
آيا امكانش هست يه كمي توضيح راجع به آبجكت هاي مربوط به گزارش ها به زبان فارسي برام بفرستي.
بازم متشكرم

ryonis
جمعه 03 اردیبهشت 1389, 23:30 عصر
سلام
تشكر از اينكه راهنمائيم كردين
دست شما درد نكنه مشكل من هم اين بود . من تو كد نويسي گزارش ها كمي مشكل دارم
آيا امكانش هست يه كمي توضيح راجع به آبجكت هاي مربوط به گزارش ها به زبان فارسي برام بفرستي.
بازم متشكرم
حتماْ...
دارم برات یه نمونه حاضر می کنم. فقط خواهش من و دستور مدیران اینه که برای نظم سایتُ لطفاْ از دکمه تشکر استفاده کنید. بازم ممنون :خجالت:

hildar
چهارشنبه 08 اردیبهشت 1389, 09:44 صبح
سلام RYONIS عزیز
1- کد بالا رو کجای برنامه باید اضافه کرد؟:گیج:
2- اضافه کردن کد بالا به برنامه برای همه ی گزارشها جواب میده؟ :متفکر:
ممنونم

ryonis
چهارشنبه 08 اردیبهشت 1389, 10:58 صبح
سلام RYONIS عزیز
1- کد بالا رو کجای برنامه باید اضافه کرد؟:گیج:
2- اضافه کردن کد بالا به برنامه برای همه ی گزارشها جواب میده؟ :متفکر:
ممنونم
سلام hildar (http://barnamenevis.org/forum/member.php?u=141167) عزيز!

1- خيلي جاها ميشه كد رو اضافه كرد. مثلاً روي رويداد On Open گزارش جاي خوبيه.
2- كد بالا رو از سايت مايكروسافت گرفتيم. بعيد ميدونم مشكلي داشته باشه. اما اگه اساتيد كمك كنن بهتره. (من در برنامه خودم استفاده كردم كه مشكلي پيش نيومد :تشویق:)

hildar
چهارشنبه 08 اردیبهشت 1389, 13:41 عصر
سلام ryonis عزیز
کد فوق رو روی رویداد on open کپی کردم اما error زیر رو میده:
expected end sub

****************رویداد به صورت زیر هست،فکر می کنید ایرادش کجاست؟

Private Sub Report_Open(Cancel As Integer

Public Sub SetReportParameters()

Dim sRpt As String, rpt As Report, prt As Printer

sRpt = "All_Actions_Report"
DoCmd.OpenReport sRpt, acViewDesign

'Set the printer to default
Set rpt = Reports(sRpt)
rpt.UseDefaultPrinter = True

'set the prt object to the Application printer
Set prt = rpt.Printer

With prt

'Margins
.LeftMargin = 567 ' in units of twips 1"=1440twips / 10mm = 567twips
.RightMargin = 567
.TopMargin = 850
.BottomMargin = 567

'Orientation
.Orientation = acPRORLandscape

'Column / Row Spacing
.ColumnSpacing = 360
.RowSpacing = 0

End With

DoCmd.Close ObjectType:=acReport, ObjectName:=sRpt, Save:=acSaveYes
End Sub
End Sub
البته پرانتزها یه کم اینورو اونور شدن ولی در کد ها همینان

مهدی قربانی
چهارشنبه 08 اردیبهشت 1389, 15:22 عصر
سلام
اول اينكه شما يك رويه رو داخل يك رويه ديگه كه همون On Open گزارش باشه كپي كرديد كه اين خودش اولين اشكاله و به همين دليل خطا صادر شده كدي كه ryonis ارائه كردن يك رويه Public براي ست كردن تنظيمات يك گزارش هست كه اين جور رويه ها رو ميشه در ماجول اصلي فرم يا گزارش نوشت يا كپي كرد و بعد در رويه هاي استاندارد مثل On click‌كامند باتون و ... عنوان رويه رو كه در اينجا SetReportParameters هست رو در رويه هاي استاندارد فراخواني كرد شما روي فرم يك كامند باتون قرار بديد بعد در محيط كدنويسي فرم يا همون ماجول فرم ابتدا رويه موردنظر رو كپي كنيد و بعد در رخداد كليك كامند باتون عبارت زير رو كپي كنيد

SetReportParameters

ضمناً در اين قسمت كد هم نام گزارش مورد نظرتون رو جايگزين كنيد ( عبارت قرمز رنگ )

Public Sub SetReportParameters()

Dim sRpt As String, rpt As Report, prt As Printer

sRpt = "ReportName"
DoCmd.OpenReport sRpt, acViewDesign

'Set the printer to default
Set rpt = Reports(sRpt)
rpt.UseDefaultPrinter = True

'set the prt object to the Application printer
Set prt = rpt.Printer

With prt

'Margins
.LeftMargin = 567 ' in units of twips 1"=1440twips / 10mm = 567twips
.RightMargin = 567
.TopMargin = 850
.BottomMargin = 567

'Orientation
.Orientation = acPRORLandscape

'Column / Row Spacing
.ColumnSpacing = 360
.RowSpacing = 0

End With

DoCmd.Close ObjectType:=acReport, ObjectName:=sRpt, Save:=acSaveYes

End Sub

ryonis
چهارشنبه 08 اردیبهشت 1389, 17:00 عصر
سلام
اول اينكه شما يك رويه رو داخل يك رويه ديگه كه همون On Open گزارش باشه كپي كرديد كه اين خودش اولين اشكاله و به همين دليل خطا صادر شده كدي كه ryonis ارائه كردن يك رويه Public براي ست كردن تنظيمات يك گزارش هست كه اين جور رويه ها رو ميشه در ماجول اصلي فرم يا گزارش نوشت يا كپي كرد و بعد در رويه هاي استاندارد مثل On click‌كامند باتون و ... عنوان رويه رو كه در اينجا SetReportParameters هست رو در رويه هاي استاندارد فراخواني كرد شما روي فرم يك كامند باتون قرار بديد بعد در محيط كدنويسي فرم يا همون ماجول فرم ابتدا رويه موردنظر رو كپي كنيد و بعد در رخداد كليك كامند باتون عبارت زير رو كپي كنيد

SetReportParameters

ضمناً در اين قسمت كد هم نام گزارش مورد نظرتون رو جايگزين كنيد ( عبارت قرمز رنگ )

Public Sub SetReportParameters()

Dim sRpt As String, rpt As Report, prt As Printer

sRpt = "ReportName"
DoCmd.OpenReport sRpt, acViewDesign

'Set the printer to default
Set rpt = Reports(sRpt)
rpt.UseDefaultPrinter = True

'set the prt object to the Application printer
Set prt = rpt.Printer

With prt

'Margins
.LeftMargin = 567 ' in units of twips 1"=1440twips / 10mm = 567twips
.RightMargin = 567
.TopMargin = 850
.BottomMargin = 567

'Orientation
.Orientation = acPRORLandscape

'Column / Row Spacing
.ColumnSpacing = 360
.RowSpacing = 0

End With

DoCmd.Close ObjectType:=acReport, ObjectName:=sRpt, Save:=acSaveYes

End Sub

جناب قرباني از توضيح كاملتون متشكرم. هميشه توضيحات شما راهگشاي من و دوستان بوده... :تشویق:

hildar
شنبه 11 اردیبهشت 1389, 08:52 صبح
آقای قربانی عزیز ممنون از راهنماییهاتون
اما من می خوام که تنظیمات فوق بدون اینکه دکمه ای وجود داشته باشه فعال بشه،یعنی اگه بشه روی رویداد on open اون گزارش باشه که با باز شدن فرم گزارش،اون تنظیمات ست بشه،چون تو پروژه من صفحات گزارش از منوی اصلی فعال میشن.

mina01
یک شنبه 12 اردیبهشت 1389, 10:36 صبح
حتماْ...
دارم برات یه نمونه حاضر می کنم. فقط خواهش من و دستور مدیران اینه که برای نظم سایتُ لطفاْ از دکمه تشکر استفاده کنید. بازم ممنون :خجالت:
سلام رونيز جان
نمونه رو نمي ذاري تا ازش استفاده كنم؟