ورود

View Full Version : کنترل اشیای گزارش توسط کد برنامه



steghlalt
دوشنبه 21 خرداد 1386, 16:36 عصر
سلام خسته نباشید
چه طوری می شه توسط کد برنامه VB.Net مکان فیلد ها و نوشته ها را در Crystal Report مشخص کرد؟
یعنی مکان شی در هنگام اجرا مقدار بگیرد

rezaei manesh
سه شنبه 22 خرداد 1386, 07:52 صبح
سلام
با این روش می تونی


Dim txt As CrystalDecisions.CrystalReports.Engine.TextObject
txt = report1.Section3.ReportObjects("Text1")
txt.Text = Nothing
txt.Width = 50
txt.Top = 5
txt.Left = 25

steghlalt
سه شنبه 22 خرداد 1386, 09:09 صبح
سلام و ممنون از کدها ولی
Section3 را برای
CrystalReport1 خطا می گیرد وقتی بعد از
CrystalReport1 نقطه را می زنم اصلا Seection ها را نمی یاره
فقط دو آیتم زیر موجود است
CrystalReport1.EnableEventLog
CrystalReport1.GetConcurrentUsage
چیکار کنم؟
مشکل چیه؟

steghlalt
سه شنبه 22 خرداد 1386, 09:37 صبح
سلام خسته نباشید
یک متغیر از گزارش تعریف کردم
Dim report As CrystalReport1

txt = report.Section3.ReportObjects("Text3")
حالا درست شد برنامه اجرا می شه ولی سر همین خط متوقف و میگه آبجکت به جایی اشاره نمی کند و برنامه متوقف می شه
مشکل از چیه؟ چه جوری باید خطا رو برطرف کنکم
ممنون
منتظرم

sm
سه شنبه 22 خرداد 1386, 09:50 صبح
شاید Section3 شما حاوی یه Objectی تحت این نام نباشه ... توی املای کلمه دقت کنید... کریستال حساسه
بهتره که خودتون بهش نام بدین.
با اندیس هم میتونید کار کنید.
اول یه Break Pointبزارین و همه ی آبجکتها رو لیست کنید و بعد باهاشون کار کنید.

موفق باشید

rezaei manesh
سه شنبه 22 خرداد 1386, 09:54 صبح
Text3 نام کنترلی هست که در گزارش دارید اگه نام دیگری دارید باید اونو بزارید و...
یک مثال هم برات گذاشتم .

steghlalt
سه شنبه 22 خرداد 1386, 10:59 صبح
Dim report as new crystalreport1
فکر میکنم مشکلم حل شد

steghlalt
سه شنبه 22 خرداد 1386, 11:29 صبح
ممنون از فایلتون ولی نتونستم باز کنم من با 2003 کار می کنم فکر می کنم 2005 باشه درسته؟

روش درست کردن DLL و OCX را بلدین؟ یک تاپیک دیگه باز کنم؟

steghlalt
سه شنبه 22 خرداد 1386, 12:11 عصر
یه منبع عالی واسه DLl پیدا کردم اونم فارسی
http://www.nezaratonline.com/Articles/winctrl/

steghlalt
سه شنبه 22 خرداد 1386, 15:49 عصر
جواب نمیده حالا که کد بدون خطا اجرا می شه و گزارش رو نشونم می ده تغییرات اعمال نمی شه
اگه من می گمtxt.Top = 25 سرجاش می مونه تکون هم نمی خوره
چیکار کنم

steghlalt
سه شنبه 22 خرداد 1386, 16:08 عصر
Dim report As New CrystalReport1

txt = report.Section2.ReportObjects("Text1")
txt.Text = Nothing
txt.Width = 50
txt.Top = 5
txt.Left = 25
این تغییرات که برنامه رو گفتین فکر می کنم رو متغیر Report انجام می شه واسه همین گزارش اصلی هیچ تغییری نمی کنه
پس یک متغیر از گزارش اصلی تعریف شده است که تغییرات رو آن اعمال می شده و موقع نمایش گزارش اصلی یعنی Crystal Report1 نشان داده می شه نه متغیر Report پس نباید انتظارداشته باشید که گزارش تغییر کند

rezaei manesh
سه شنبه 22 خرداد 1386, 16:57 عصر
خوب معلومه باید این کد رو هم به انتهای کدهایتان اضافه کنید


report1.SetDataSource(dset)
frmrpt.CrRptViewer.ReportSource = report1
frmrpt.CrRptViewer.RefreshReport()
frmrpt.ShowDialog()

steghlalt
چهارشنبه 23 خرداد 1386, 09:03 صبح
وای ممنونم
جواب میده
پس مشکل این بود که گزارش باید از متغیر گزارش خوانده شود نه از مسیر روی درایو

steghlalt
چهارشنبه 23 خرداد 1386, 09:17 صبح
خط و عکس رو متوجه شدین باید چه جوری حرکت بدیم؟؟؟؟

rezaei manesh
چهارشنبه 23 خرداد 1386, 09:21 صبح
عکس رو که من نمی تونم خط رو امتهان نکردم و...
اما ظاهرا برای کنترل عکس باید کریستال 11 رو نصب کنی با کریستال دات نت نمیشه

davoodrm666_666
سه شنبه 23 مهر 1387, 10:32 صبح
سلام
آقا فرض کنید کاربر یه Textbox رو روی فرم حرکت می ده که می خواد محل چاپ در کریستال ریپورت رو مشخص کنه وقتی left و top اون Textbox رو به شی مربوطه در کریستال نسبت می دم درست سرجاش قرار نمی گیره میشه کمک کنید

rezaei manesh
چهارشنبه 24 مهر 1387, 09:25 صبح
سلام
آقا فرض کنید کاربر یه Textbox رو روی فرم حرکت می ده که می خواد محل چاپ در کریستال ریپورت رو مشخص کنه وقتی left و top اون Textbox رو به شی مربوطه در کریستال نسبت می دم درست سرجاش قرار نمی گیره میشه کمک کنید

من هم همین مشکل رو داشتم و دلیلش اینه که مقدار متد leftون شی در فرم با مقدار اون در کریستا یکی نیست مقدار کریستال چند برابر اون هست
شما باید اختلاف رو حساب کنی و بعد خود مقدارو رو تنظیم کنی
یعنی من از این روش استفاده کردم
اگه روش دیگری پیدا کردین بفرمائید تا ما هم استفاده کنیم