PDA

View Full Version : عکس یک picturebox در گزارش (جدا از دیتابیس)



m_amin_t
چهارشنبه 10 بهمن 1386, 15:45 عصر
سلام .
من میخوام عکسی که در یک فرم داخل یک picturebox وجود داره رو بیارم و بذارم توی صفحه ی گزارشم.
یه جستجویی کردم ولی مطالب قبلی به کارم نیومد. کسی راهی داره؟!

mahdi_farhani
چهارشنبه 10 بهمن 1386, 16:06 عصر
درسته مطالب قبلی مثل سوال شما نبوده ، ولی میتونستی ایده بگیری .....
به هر حال شما این عکس رو از یه مسیری داری میخونه ، و به گزارشت یه جدول پاس میده ....
داخل اون جدولی که داری به گزارش میدی ، یه فیلد از نوع باینری قرار بده ، و تو گزارش ازش استفاده کن .
تا اینجا فکر نکم چیزی زیاد سختی گفته باشم .
کار سخته اینجاست که این بستگی به هنر برنامه نویسیت داره ، اونو خوندن عکس به صورت باینری و ریختن داخل جدولت هست .
یا حق موفق باشی ، ببینم چیکار میکنی

m_amin_t
چهارشنبه 10 بهمن 1386, 17:22 عصر
ببینید من اصلا هیچ جدولی از هیچ جایی نمیخونم. فقط میخوام یه عکس رو به همراه یه سری نوشته بیارم توی گزارش.

Leo_messi
چهارشنبه 10 بهمن 1386, 22:28 عصر
عکس رو باینری بخون و بریز توی یک دیتا ست (یا دیتابیس) و اونو بیار تو کریستال

mahdi_farhani
چهارشنبه 10 بهمن 1386, 22:45 عصر
این نوشته ها ،، که می فرمایید از کجا وارد گزارش میشن ،
یا پارامتر هستن و یا از یک منبع ( حالا این منبع هرچی میتونه باشه )
به هرحال شما باید یک جوری بش یک Table پاس بدی ، اگر داری با دات کد نویسی میکین فقط کافی یک Datatable درست کنی ، و باینری عکسو بزار توش و بدش به کریستال

محمد رضاپور
دوشنبه 15 بهمن 1386, 17:11 عصر
با سلام

دوست عزیز، با توجه به سوال شما من به این نتیجه رسیدم که شما یه عکس دارید که مثلا لوگوی یه شرکت هست و می خواهید بدون استفاده از هیچ دیتابیسی اون رو به گزارشتون اضافه کنید.
من برای انجام همچنین کاری از این روش استفاده می کنم، از شی او نوع Picture به گزارشتون اضافه کنید (مثلا توی قسمت Report Header) و آدرس یه عکس هم بهش معرفی کنید. بعد توی کدهای کرستال ریپورت این کدها رو اضافه کنید:
Picture1.SetOleLocation fileAddress
و بجای FileAddress مسیر فایل خودتون رو بصورت یک رشته معرفی کنید، حالا شما می تونید از این روش آدرس هر فایل تصویری رو که می خواهید به گزارشتون ارسال کنید.

امیدوارم که جواب من برای شما قابل لستفاده باشه.
موفق باشید.

m_amin_t
سه شنبه 16 بهمن 1386, 17:22 عصر
دوست عزیز، با توجه به سوال شما من به این نتیجه رسیدم که شما یه عکس دارید که مثلا لوگوی یه شرکت هست و می خواهید بدون استفاده از هیچ دیتابیسی اون رو به گزارشتون اضافه کنید.

ممنون منظورم تقریبا همین بود. حالا منظورتون از کدهای کریستال ریپورت چیه؟ منظورم اینه که Picture1.SetOleLocation fileAddress رو کجا باید بنویسم؟

محمد رضاپور
سه شنبه 16 بهمن 1386, 18:17 عصر
با سلام
برای نوشتن این کد کافیست در قسمت Design گزارشتون روی قسمت Report Header، دوبار کلیک کنید (مثل کد نوشتن فرمهای عادی) و اونها رو اضافه کنید. همین

موفق باشید.

m_amin_t
سه شنبه 16 بهمن 1386, 18:30 عصر
در قسمت Design گزارشتون روی قسمت Report Header، دوبار کلیک کنید
ولی اصلا توی گزارش که با دوبارکلیک اتفاقی نمیافته که !

m_amin_t
چهارشنبه 17 بهمن 1386, 10:46 صبح
بذارین سوال رو یه بار دیگه مطرح کنم:
میخوام یه عکس از یه آدرسی در کامپیوتر (و یا از یک picturebox در یک فرم) در صفحه ی گزارشم قرار بدم بدون اینکه ارتباطی با جدول یا دیتابیس خاصی داشته باشه. درست مثل اینکه میریم و توی صفحه گزارشمون TextObject قرار میدیم ، حالا من میخوام یه عکس بذارم که بتونم از طریق کد این عکس رو تغییر بدم.

محمد رضاپور
چهارشنبه 17 بهمن 1386, 14:53 عصر
با سلام
دوست عزیز من خدمت شما عرض کردم که روی قسمت Report Header، دوکلیک کنید، ولی هیچ الزامی وجود نداره که توی این قسمت از فرم رخداد dblClick وجود داشته باشه، شما کافیست بعد از دوکلیک آدرس فایل خودتوت رو در این قسمت اضافه کنید:

Private Sub Section1_Format(ByVal pFormattingInfo As Object)

End Sub

امیدوارم که مشکلتون برطرف بشه.
موفق باشید.

m_amin_t
چهارشنبه 17 بهمن 1386, 14:58 عصر
سلام
بازهم ممنون ولی من با دوبار کلیک روی همون قسمتی شما فرمودین و حتی قسمتهای دیگه به هیچ جا نرسیدم. درضمن من با C# مینویسم.

محمد رضاپور
چهارشنبه 17 بهمن 1386, 19:22 عصر
با سلام
دوست عزیز مواردی رو که من برای شما ارسال کرده بودم برای VB6 بود، برای برطرف شدن مشکل شما من این راه حل نه نظرم رسید که در زمانی که دارید گزارشتون رو صدا می زنید (یا مثلا دارید پارامتر بهش پاس می کنید) مقدار اون شی رو هم مقداردهی کنید. البته من متاسفانه اطلاعاتم راجع به VS محدود هست، ولی امیدوارم که این راهنمائی باعث برطرف شدن مشکل شما بشه.

موفق باشید.

mahdi_farhani
چهارشنبه 17 بهمن 1386, 20:00 عصر
دوست عزیز اگر یه مقدار به حرف من دقت کرده بودی به نتیجه میرسیدی ،،،،،
شما نیازی به هیچ دیتابیسی نداری !!!!!!!!!!!
فقط کافی یه دیتاسیت (Dataset.xsd) درست کنی ، یه دیتاتیبل بزار توش و و یه سطر که از نوع binary هست ، حالا تو برنامه عکس بده به این دیتاتیل و در آخر دیتاتیبل رو بده گزارش .... همین

m_amin_t
پنج شنبه 18 بهمن 1386, 11:13 صبح
فقط کافی یه دیتاسیت (Dataset.xsd) درست کنی
خوب این کار رو کردم ...

یه دیتاتیبل بزار توش و و یه سطر که از نوع binary هست
خوب این کار رو هم کردم ...
توی این قسمت یه کم مشکل دارم :

حالا تو برنامه عکس بده به این دیتاتیل و در آخر دیتاتیبل رو بده گزارش
من عکس رو به فرمت باینری میدم به دیتاتیبل ولی چجوری باید بخونم و بدمش به گزارش؟

mahdi_farhani
پنج شنبه 18 بهمن 1386, 13:25 عصر
اینم یه نمونه برای کار که شما میخواهین انجام بدید .