PDA

View Full Version : چاپ کردن محتوای دیتا گرید در ویبی 6



alih988
جمعه 16 شهریور 1386, 04:59 صبح
بسم رب النبی
سلام خدمت شما استادان گرامی

عزیزان چطور میشه اطالاعات موجود در یک دیتا گرید را پرینت گرفت ؟
البته قبل از پرینت دید و بعد پرینت گرفت !
کمی سوا رو سخت تر می کنم ... چطور میشه چند رکورد خاص از دیتا گرید انتخاب کرد ، و آنها را پرینت گرفت...
خواهشا راهنمایی کنید!
خدا خیرتون بده

perfeshnal
جمعه 16 شهریور 1386, 07:37 صبح
سلام

شما باید از برنامه های گزارشگیری مثل DataReport یا Crystal Report استفاده کنید.
اگر هم در سایت جستجو کنید مطالب زیادی درباره گزارشگیری پیدا می کنید.

Hossein Bazyan
جمعه 16 شهریور 1386, 09:05 صبح
سلام
تک تک ستونها رو سطرها را بخوان و در یک متغییر ذخیره و سپس به پرینتر بفرست .
البته برای ردیفهای زیاد توصیه نمیشه ( بخاطر سرعت )

LEILAFATHI
جمعه 16 شهریور 1386, 11:41 صبح
البته یه راه دیگه هم وجود داره که من امتحان کردم و جواب هم داده اون هم تعریف یک ما‍ژول با این کدهاست
Option Explicit
Public Declare Sub keybd_event Lib "user32" (ByVal bVk As Byte, ByVal bScan As Byte, ByVal dwFlags As Long, ByVal dwExtraInfo As Long)
Public Const VK_MENU = &H12
Public Const VK_SNAPSHOT = &H2C
Public Const KEYEVENTF_KEYUP = &H2
Public PrintMethod As Integer


و در قسمت چاپ از این کدها

Printer.Print ""
Printer.PaintPicture Form3.p1.Picture, 1 * 1440, 0.75 * 1440
Printer.EndDoc

Hossein Bazyan
جمعه 16 شهریور 1386, 12:15 عصر
سلام
آنطوریکه من متوجه شدم کد شما عکسی از گرید گرفته و چاپ میکند . در این حالت اگر گرید اسگرول داشته باشد چی؟

LEILAFATHI
جمعه 16 شهریور 1386, 13:07 عصر
البته من این رو امتحان نکردم ولی میدونم این امکان توسط توابع api هست که اسکرول در زمان اجرا حرکت کنه، و در هر بار از دیتا گرید عکس گرفته بشه دقیقا مثل اینه که یه گزارش چند صفحه ای داشته باشیم .

Hossein Bazyan
جمعه 16 شهریور 1386, 15:30 عصر
البته من این رو امتحان نکردم ولی میدونم این امکان توسط توابع api هست که اسکرول در زمان اجرا حرکت کنه، و در هر بار از دیتا گرید عکس گرفته بشه دقیقا مثل اینه که یه گزارش چند صفحه ای داشته باشیم .
سلام
اگر قرار باشه اسکرول بشه و سپس به عکس تبدیل بشه روشی که من گفتم هم سریعتره و راحت تر در ضمن دست طراح در گزارش قبل از چاپ هم بازه یعنی میتونه داخل گزارش و قبل چاپ مانور کاملی داشته باشه و بهتر بر چاپ کنترل داشته باشه

LEILAFATHI
جمعه 16 شهریور 1386, 15:56 عصر
بله، دقیقا همین طوره در اصل به دردسرش نمی ارزه ، ولی بهترین کار همون استفاده از دیتا ریپورته
تازه دیتا ریپورت امکان این رو میده که با کد نویسی و بدون استفاده از data environment بشه رکوردهای خاص رو نمایش داد و دیگه لازم نیست تک تک رکورد ها رو به پرینتر فرستاد، اگه مشکل دوستمون حل نشد می تونم یه نمونه برنامه رو بزارم

alih988
یک شنبه 18 شهریور 1386, 06:07 صبح
اگر لطف کنید و برنامه رو قرار بدید خیلی ممنون میشم... چون پرینت پرویو ( فکر کنم همون دیتا ریپورت باشه ، درسته ؟) برام خیلی مهمه!

LEILAFATHI
سه شنبه 20 شهریور 1386, 14:25 عصر
ببخشید که دیر شد

alih988
پنج شنبه 22 شهریور 1386, 12:43 عصر
دست شما درد نکنه ، بسیار مفید فایده بود ، واقعا نمیدونم چطور از شما تشکر کنم ، این برنامه ی شما خیلی بدردم خورد ، هم در مورد کار بار ADO و هم با DataReport . ولی هنوز یک مشکل بزرک دارم ، و آن هم استفاده از دیا گرید (MSHFlexGrid) ، یعنی انتخاب بعضی از رکوردها از آن و فرستادن به دیتا ریپورت هستش...که شما می فرمایید باید از کریستال ریپورت استفاده کنم... متاسفانه این نرم افزار رو ندارم و نمیدونم از کجا میشه تهیه کرد.. اگر لینکی برای دانلود این برنامه دارید لطف کنید بگذارید... ممنون
اجرکم عندالله