PDA

View Full Version : درباره Refresh ،اطلاعات در Crystal Report ،آنچه دارید بگوئید



vbstar
پنج شنبه 27 شهریور 1382, 01:44 صبح
من از تمامی دوستان ویژال بیسیک کار ، خواهش می کنم برای بهینه تر نمودن دسترسی به پاسخ مشکلات ، سوالات را بصورت گروه بندی شده ، پاسخ دهیم.

در این گروه ، تمامی دوستان در ارتباط با Refresh کردن اطلاعات در گزارشاتی که توسط Crystal report گرفته میشود ، نظرات خود را بیان کنید.

1- سوال : برای بازیابی اطلاعات در گزارشی که از طریق وبی و کریستال ریپورت هست ، چه کدی استفاده کنیم ؟

vbstar
پنج شنبه 27 شهریور 1382, 02:13 صبح
Dim Report As New CrystalReport1

Private Sub Form_Load()


' Declare a ConnectionProperty object.
Dim CPProperty As CRAXDRT.ConnectionProperty
' Declare a DatabaseTable object.
Dim DBTable As CRAXDRT.DatabaseTable

' Get the first table in the report.
Set DBTable = Report.Database.Tables(1)

' Set the new location of the database.
DBTable.Location = "G:\Documents and Settings\Vahid_Nasiri\My Documents\db1.mdb"

' Get the "Database Password" property from the
' ConnectionProperties collection.
Set CPProperty = DBTable.ConnectionProperties("Database Password")

' Set the database password.
CPProperty.Value = "x"


Screen.MousePointer = vbHourglass
CRViewer91.ReportSource = Report
CRViewer91.ViewReport
Screen.MousePointer = vbDefault

End Sub

Private Sub Form_Resize()
CRViewer91.Top = 0
CRViewer91.Left = 0
CRViewer91.Height = ScaleHeight
CRViewer91.Width = ScaleWidth

End Sub

از طرف : وحید نصیری

کم حوصله
پنج شنبه 27 شهریور 1382, 17:41 عصر
سلام
فکر کنم این موضوع تا جایی که من می دونم چند بار تکرار شده

http://www.barnamenevis.org/forum/viewtopic.php?t=898

http://www.barnamenevis.org/forum/viewtopic.php?t=2802

http://www.barnamenevis.org/forum/viewtopic.php?t=2119

:oops:
ولی موضوع خوبیه :wink:

vbstar
جمعه 28 شهریور 1382, 15:31 عصر
دوست عزیز :
فکر می کنم ، متاسفانه تا کنون هیچکدام از جوابهای که داده شده است ، قابلیت اجرائی ندارد ، تا جائی که من این مطالی را چک کردم ، قابل استفاده برای SQL , ADO نبود.

از این رو من این مطلب را دوباره خواستم احیاء کنم.

کم حوصله
جمعه 28 شهریور 1382, 21:53 عصر
:( :( :( :(
سلام
حقیقتش همینه :( هیچ کودوم از جوابهیی که دوستان گذاشتن چاره ساز نیست ولی خوب همه میگن اینا جوابهای کاملیه ولی به درد ما که نخورد :cry: :cry:
اگه جواب درستی پیدا کردی به ما هم بده :(
مر سی :oops:

vbstar
یک شنبه 30 شهریور 1382, 23:57 عصر
ظاهراً هیچکدام از دوستان برنامه نویس ویژال بیسیک کار ، با Crystal Report برای گزارش گرفتن مشکلی ندارن.

دوست عزیز ؛ کم حوصله ، باید از دوستان درخواست کنیم ، تا به این موضوع توجه خاصی کنند.
مخصوصاً دوست عزیز آقای نصیری.

vbstar
چهارشنبه 02 مهر 1382, 00:26 صبح
سلام
گر بخواهیم یک گزارش که با کریستال ریپورت گرفتیم ، Refresh شود ، با مشکل بجای ماندن اطلاعات قدیمی در گزارش روبرو میشویم ، چکار کنیم که این مشکل مرتفع شود .

Form1.CrystalReport1.DiscardSavedData = True با این فرمان طبق توضیحی که در Help آمده است برای Refresh اطلاعات در چاپ است.
ولی برای Refresh اطلاعات در CRViewer از چه فرمانی باید استفاده کنیم.

با استناد به این Help :


Syntax

BOOL DiscardSavedData ();

Remarks

Discards data that was previously saved with the report. If a report has been saved with data, you can use this function to discard the saved data, forcing the Crystal Report Engine to retrieve new data when the report is printed.

Return Value

TRUE if the call is successful, FALSE if something goes wrong.

کم حوصله
چهارشنبه 02 مهر 1382, 10:38 صبح
سلام
دوست عزیز ما که نفهمیدیم چی شد یکم واضح تر بگو ما هم بفهمیم چه کردی
به قول بچه ها کلاس اولی صحبت کن نه دانشگاهی :oops:
مرسی
راستی زود بگید لطفا چون خیلی لنگم

درصد خطا که نداره :oops:

S.Azish
چهارشنبه 02 مهر 1382, 11:48 صبح
من از این روش استفاده میکردم



'
Screen.MousePointer = vbHourglass

Dim rsTemp As New adodb.Recordset
Set rsTemp = connection.Execute("Select * from tablename;")
With Report
.DiscardSavedData
.Database.SetDataSource rsTemp
End With

CRViewer91.ReportSource = Report
CRViewer91.ViewReport

Screen.MousePointer = vbDefault
'


یک Recordset درست کنید از دیتایی که میخواهید به گزارش بفرستید و اونو به گزارش مثل مثال بالا بفرستید.

کم حوصله
پنج شنبه 03 مهر 1382, 17:25 عصر
سلام
دوست عزیز آقای آذیش این هم جواب نداد :( آیا کار خاص انجام می دید یا جایی باید چیز خاصی رو مقدار داد :?: :?:


.DiscardSavedData

این رو چی نباید مقدار داد؟؟؟؟
در ضمن من در یکی از برنامه های که بانکش sql است جهت ارتباطات از dsn های odbc استفاده می کنم اونم همینطوریه :(
ویا اگر در گزارش 2 جدول دخیل باشند به چه صورت است :(
امیدوارم جواب بدین چون دیگه خسته شدم از بس در رابطه با این موضوع نوشتم :cry: :cry: :cry: :(

vbstar
پنج شنبه 10 مهر 1382, 17:33 عصر
در کد بالا باید مقدار True را به Discardsaveddate نسبت دهید.

Crystalreport.DisCardSavedData=True

bbehnam
یک شنبه 13 مهر 1382, 10:30 صبح
برای اینکه اطلاعات همیشه جدید باشند باید در هنگام طراحی در منوی FILE گزینه SAVE DATA WITH REPORT را غیر فعال نمایید.
اگر باز هم جواب نگرفتید (که حتما میگیرید) مطرح نمایید تا به یک شکل دیگر این مشکل حل شود

vbstar
دوشنبه 14 مهر 1382, 14:53 عصر
سلام دوستان عزیز :
برای اینکه شما در گزارشگیریهای که انجام میدهید توسط CrystalReport و از طریق Visual Basic بدون اینکه برنامه کاربردیتان را شلوغ کنید ، من راه حلی را برای اینکه فایل گزارش شما از خارج برنامه نمایش داده شود ارائه میدهم ، به تزتیب مراحل زیر را انجام دهید :

1- گزارش مورد نظر را در CrystalReport طراحی نمائید.
2- از قسمت کامپونتها " Crystal Report Control " را انتخاب نمائید و پروژه خودتان اضافه کنید.
3- این کنترل را به روی فرم اضافه کنید ، نام این کنترل در Properties مشخص است.
4- حال از طریق کد زیر می توانید این گزارش را فراخوانی نمائید ، بدون اینکه نیازی به اضافه کردن این گزارش به برنامه کاربردیتان باشد.


With CrystalReport1
.ReportFileName = App.Path & "\Report\Rep_List_Cal2.rpt"
.Connect = CNN.Cnn1
.DiscardSavedData = True
.RetrieveDataFiles
.ReportSource = 0
.SQLQuery = "SELECT * FROM tblName WHERE پارامترهای شرط"
Menu_Rep.txt_sql.Text = .SQLQuery
.ReportTitle = "گزارش 1"
.Destination = crptToWindow
.PrintFileType = crptCrystal
.WindowState = crptMaximized
.WindowMaxButton = False
.WindowMinButton = False
.WindowShowExportBtn = False
.WindowShowProgressCtls = True
.WindowShowSearchBtn = True
.WindowShowRefreshBtn = True
.WindowShowGroupTree = False
.Action = 1
End With

CNN = برای ارتباط برنامه با SQL Server هستش ، اگر در مورد اتصال به Sql Server مشکل دارید ، من قبلاً این موضوع را توضیح داده ام ، پس لطفاً خودتون زحمت بکشید و از توی بخش Sql مطالعه کنید.

حال شما باید مسیر فایل گزارش را به ReportFileName انتساب دهید و همچنین با دستورات SQL که مشخص هستن در این برنامه ، کد مربوطه را طراحی نمائید با توجه به گزارشی که قبلاً طراحی کرده اید.

vbstar@andimeshk.com