PDA

View Full Version : ارسال پارامتر از vbبه کریستال 9



حسین علوی
سه شنبه 06 فروردین 1387, 13:15 عصر
سلام
من میخواهم یک پارامتر به کریستال 9 ارسال کنم(t11 در کریستال ریپورت تعریف شده)
از کد زیر استفاده کردم ولی چیزی رو ارسال نمیکنه.
اساتید محترم اگه اشکال این کد رو میدونند لطفا راهنمایی کنند
با تشکر

Dim x As New CRAXDRT.Application
Dim y As CRAXDRT.Report
.
.
.
y.ParameterFields(0) = "t11;'ali';True"

shahpari
سه شنبه 06 فروردین 1387, 13:32 عصر
سلام

من که از این تاپیک تونستم مشکلم رو حل کنم شما هم یه نگاهی روش بندازید
http://barnamenevis.org/forum/showthread.php?t=4964&highlight=%D8%A7%D8%B1%D8%B3%D8%A7%D9%84+%D9%BE%D8 %A7%D8%B1%D8%A7%D9%85%D8%AA%D8%B1

حسین علوی
سه شنبه 06 فروردین 1387, 13:37 عصر
تشکر دوست عزیز
این تاپیک رو قبلا دیده بودم ولی مشکلم رو حل نکرد
اگه یک سورس برای کریستال 9 دارید لطفا اینجا قرار بدین که کارم گیره

vbhamed
سه شنبه 06 فروردین 1387, 14:21 عصر
سلام
این رو بنویس


y.ParameterFields(1).SetNthDefaultValue 1, "this is a test"


اینطوری مقدار پیش فرض رو تغییر می ده

البته فکر کنم با y.sections(3).reportobject(....) هم بتونی

فاطمه وطن دوست
سه شنبه 06 فروردین 1387, 17:42 عصر
سلام
نمیدونم اینو دیدین یا نه ؟
اگرم دیدن شرمنده که دوباره براتون گذاشتم.




Public Report As New Report6

Dim rdr As Odbc.OdbcDataReader
Dim zoom As Integer = 71
Dim Page As Integer
Dim GoToPage As Integer
Private CheckedDates As Boolean = False
Dim ds As New DataSet
Public Cn As New Global
Private city, sdate, Edate, id As String

Private Sub SetParameters()
Cn.GetReports()
Report.SetParameterValue("Tarikh", DateNow.ToString.Trim)
Report.SetParameterValue("[St_Date]", Me.txtSal.Text.Trim)
Report.SetParameterValue("Desc", Desc.Trim)
End Sub

Private Sub frmR1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles MyBase.Load
'CenterForm(Me)

Report = New Report6
Dim s As String = getdate()
Dim str() As String = s.Split("/")
BYear = str(0)
Bmounth = str(1)
Bday = str(2)
Me.cmdReport.Connection = Cn.Connection
Me.tlbtnBozorg.Enabled = False
Me.tlbtnDefault.Enabled = False
Me.tlbtnExport.Enabled = False
Me.tlbtnFirst.Enabled = False
Me.tlbtnGoto.Enabled = False
Me.tlbtnKochak.Enabled = False
Me.tlbtnLast.Enabled = False
Me.tlbtnNext.Enabled = False
Me.tlbtnPreviuse.Enabled = False
Me.tlbtnPrint.Enabled = False
Me.tlbtnSearch.Enabled = False
Me.txtSearch.Text = ""
Me.txtPage1.Text = ""
Me.txtPage2.Text = ""
Me.txtGoToPage.Text = ""
Me.txtSal.Text = BYear.Trim
Me.ProgressBar1.Visible = False
End Sub

Private Sub tlbrForm_ButtonClick(ByVal sender As Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles tlbrForm.ButtonClick
Select Case Me.tlbrForm.Buttons.IndexOf(e.Button)

Case 0 'خـــروج
Me.Close()
Case 2 'صفحه اول گزارش
Me.CR.ShowFirstPage()
Me.txtPage1.Text = Me.CR.GetCurrentPageNumber.ToString
Case 3 'صفحه قبلی گزارش
Me.CR.ShowPreviousPage()
Me.txtPage1.Text = Me.CR.GetCurrentPageNumber.ToString
Case 4 'صفحه بعدی گزارش
Me.CR.ShowNextPage()
Me.txtPage1.Text = Me.CR.GetCurrentPageNumber.ToString
Case 5 'صفحه آخر گزارش
Me.CR.ShowLastPage()
Me.txtPage1.Text = Me.CR.GetCurrentPageNumber.ToString
Case 7 'جستجوی متن در گزارش
Me.pnlSearch.Location = Me.pnlGoToPage.Location
Me.pnlSearch.Visible = True
Me.txtSearch.Select()
Me.txtSearch.Focus()
Case 8 'مشاهده گزارش

Me.Label1.Select()
Me.Label1.Focus()
If Me.txtSal.Text.Trim = "" Then
msgOkOnly("لطفـا سال موردنظر را وارد نـماییـد", 2, "توجــه")
Me.txtSal.Select()
Me.txtSal.Focus()
Exit Sub
End If
Me.ProgressBar1.Visible = True
Me.ProgressBar1.Value = 10
Me.ProgressBar1.Value = 20
Me.Cursor = Cursors.WaitCursor
Me.txtPage1.Text = ""
Me.txtPage2.Text = ""
Me.ProgressBar1.Value = 25
Report = New Report6
Me.ProgressBar1.Value = 30
SetParameters()
Me.ProgressBar1.Value = 50
Try
Me.CR.ReportSource = Report
Catch ex As Exception
MsgBox(ex.ToString)
End Try

Me.ProgressBar1.Value = 75
Application.DoEvents()
If Report.IsLoaded = True Then
Me.CR.ShowLastPage()
Me.ProgressBar1.Value = 80
Page = Me.CR.GetCurrentPageNumber
Me.ProgressBar1.Value = 85
Me.CR.ShowFirstPage()
Me.ProgressBar1.Value = 90
End If
Me.CR.Zoom(71)
Me.ProgressBar1.Value = 95
Me.tlbtnBozorg.Enabled = True
Me.tlbtnDefault.Enabled = True
Me.tlbtnExport.Enabled = True
Me.tlbtnFirst.Enabled = True
Me.tlbtnGoto.Enabled = True
Me.tlbtnKochak.Enabled = True
Me.tlbtnLast.Enabled = True
Me.tlbtnNext.Enabled = True
Me.tlbtnPreviuse.Enabled = True
Me.tlbtnPrint.Enabled = True
Me.tlbtnSearch.Enabled = True
Me.txtPage1.Text = Me.CR.GetCurrentPageNumber.ToString
Me.txtPage2.Text = Page.ToString.Trim
Application.DoEvents()
Me.ProgressBar1.Value = 100
Me.ProgressBar1.Visible = False
Me.ProgressBar1.Value = 0
Me.Cursor = Cursors.Default
Case 9 'چاپ گزارش
Me.CR.PrintReport()

Case 10 'رفتن به صفحه
Me.pnlGoToPage.Visible = True
Me.txtGoToPage.Select()
Me.txtGoToPage.Focus()

Case 11 'ذخیره گزارش در فایل
Report.ExportOptions.ExportFormatType = CrystalDecisions.[Shared].ExportFormatType.Excel
Report.ExportOptions.ExportDestinationType = CrystalDecisions.[Shared].ExportDestinationType.DiskFile
' Me.CR.ExportReport()
Case 13 'بزرگنمایی
zoom = zoom + 20
If zoom <= 400 Then
Me.tlbtnBozorg.Enabled = True
Me.tlbtnKochak.Enabled = True
Me.CR.Zoom(zoom)
Else
Me.tlbtnBozorg.Enabled = False
End If
Case 14 'کوچگنمایی
zoom = zoom - 20
If zoom >= 20 Then
Me.tlbtnKochak.Enabled = True
Me.tlbtnBozorg.Enabled = True
Me.CR.Zoom(zoom)
Else
Me.tlbtnKochak.Enabled = False
End If
Case 15 'عادی
zoom = 71
Me.CR.Zoom(71)
End Select
End Sub

حسین علوی
سه شنبه 06 فروردین 1387, 18:50 عصر
سلام
این رو بنویس


y.ParameterFields(1).SetNthDefaultValue 1, "this is a test"
اینطوری مقدار پیش فرض رو تغییر می ده

البته فکر کنم با y.sections(3).reportobject(....) هم بتونی
سلام
دوست عزیز در فرمول بالا اون وقت t11 (تکست تعریف شده در کریستال)رو بایستی کجا قرار داد؟

فاطمه وطن دوست
چهارشنبه 07 فروردین 1387, 03:15 صبح
سلام
این یه لینک آموزشی هست.
http://barnamenevis.org/forum/showthread.php?t=25507

فاطمه وطن دوست
چهارشنبه 07 فروردین 1387, 04:55 صبح
سلام
اینجا رو هم ببینید .
http://barnamenevis.org/forum/showthread.php?t=5652&highlight=Field

majjjj
چهارشنبه 07 فروردین 1387, 11:00 صبح
دوست عزیز خود کریستال امکان استفاده از فیلدهای پارامتری رو داره البته اگه بخای بصورت دستی وارد کنی