maryamb
چهارشنبه 22 خرداد 1387, 13:22 عصر
من یه فرم دارم که دو قسمت داره و هر قسمت به یه جدول وصله ، فرض کنید کادر بالای فرم مشخصات فلان کاربر رو نشون می ده و کادر پایین فرم جنسهایی که خریده رو نشون می ده ، حالا می خوام این اطلاعات رو به وسیله ی اکتیو ریپورت چاپ کنم ، آیا راهی داره که این اطلاعات به همین شکل انتقال پیدا کنه یا اینکه برای اکتیو ریپورت هم مجدد باید کد اس کیو ال بنویسم و اطلاعات رو از جدول در بیارم ؟ یا روشی هست که این اطلاعات که روی فرم هست بطور موقت تو یه جدول موقت یا همچین چیزی ریخته بشه و تو اکتیوریپورت از همون استفاده کنم؟
ASKaffash
چهارشنبه 22 خرداد 1387, 16:52 عصر
با سلام
من یک تابع نوشتم که یک VSFlexGrid را میگیرد و یک گزارش ActiveReport را به صورت Dynamic میسازد
اینهم کدتابع که میتوانید از ایده آن استفاده کنید :
Public Sub XVs2Ar(YourVSFlexGrid As VSFlexGrid, YourAdodc As Adodc, ByVal YourCompanyName As String, ByVal YourTitle As String, ByVal YourRunMode As Byte, Optional OkZoomFont As Boolean = True, Optional ZoomW As Variant = 1, Optional ZoomH As Variant = 1)
Dim VS2AR As VSFlexGrid2AR, MyNewLabel As Object, MyNewField As Object
Set VS2AR = New VSFlexGrid2AR
LastLeft = 0
IndexOfDetail = IIf(YourVSFlexGrid.Rows = 1, 0, 1)
With YourVSFlexGrid
       VS2AR.Caption = YourTitle
       Set VS2AR.Watermark = .WallPaper
       ZoomFactor = IIf(OkZoomFont, ZoomW, 1)
       '''''''''''''''''''''''
       VS2AR.PH_Company.Caption = YourCompanyName
       VS2AR.PH_Company.Left = 0
       VS2AR.PH_Company.Top = 0
       VS2AR.PH_Company.Height = .RowHeight(0) * ZoomH
       Set VS2AR.PH_Company.Font = .Font
       VS2AR.PH_Company.Font.Size = VS2AR.PH_Company.Font.Size * ZoomFactor
       '''''''''''''''''''''''
       VS2AR.PH_Title.Caption = YourTitle
       VS2AR.PH_Title.Left = 0
       VS2AR.PH_Title.Top = VS2AR.PH_Company.Height
       VS2AR.PH_Title.Height = .RowHeight(0) * ZoomH
       Set VS2AR.PH_Title.Font = .Font
       VS2AR.PH_Title.Font.Size = VS2AR.PH_Title.Font.Size * ZoomFactor
       '''''''''''''''''''''''
       For j = IIf(.RightToLeft, .Cols - 1, 0) To IIf(.RightToLeft, 0, .Cols - 1) Step IIf(.RightToLeft, -1, 1)
            Set MyNewLabel = VS2AR.PH.Controls.Add("DDActiveReports2.Label")
            MyNewLabel.name = "L" & j
            MyNewLabel.Caption = .TextMatrix(0, j)
            MyNewLabel.Top = VS2AR.PH_Title.Top + VS2AR.PH_Title.Height
            MyNewLabel.Left = LastLeft
            MyNewLabel.Width = .ColWidth(j) * ZoomW
            MyNewLabel.Height = .RowHeight(0) * ZoomH
            MyNewLabel.MultiLine = False
            MyNewLabel.Alignment = IIf(.FixedAlignment(j) = 9, 2, .FixedAlignment(j) \ 3)
            MyNewLabel.Alignment = IIf(MyNewLabel.Alignment = 0, 0, IIf(MyNewLabel.Alignment = 1, 2, 1))
            MyNewLabel.VerticalAlignment = ddTXMiddle
            MyNewLabel.BackStyle = ddBKNormal
            MyNewLabel.BackColor = .BackColorFixed
            MyNewLabel.ForeColor = .ForeColorFixed
            MyNewLabel.Border.TopStyle = ddBLSolid
            MyNewLabel.Border.BottomStyle = ddBLSolid
            MyNewLabel.Border.LeftStyle = ddBLSolid
            MyNewLabel.Border.RightStyle = ddBLSolid
            Set MyNewLabel.Font = .Font
            MyNewLabel.Font.Size = MyNewLabel.Font.Size * ZoomFactor
            ''''''''''''''''''''''''''''''
            Select Case True
                      Case Trim(.ColKey(j)) = ""
                             Set MyNewField = VS2AR.PD.Controls.Add("DDActiveReports2.Label")
                             MyNewField.Caption = ""
                      Case Trim(.ColKey(j)) = "."
                             Set MyNewField = VS2AR.PD.Controls.Add("DDActiveReports2.Label")
                             MyNewField.Caption = ""
                             MyNewField.Tag = "R"
                      Case Mid(Trim(.ColKey(j)), 1, 1) = "["
                             Set MyNewField = VS2AR.PD.Controls.Add("DDActiveReports2.CheckBox")
                             MyNewField.DataField = Mid(.ColKey(j), 2, Len(.ColKey(j)) - 2)
                             MyNewField.Caption = ""
                             MyNewField.Tag = "C"
                      Case Else
                             Set MyNewField = VS2AR.PD.Controls.Add("DDActiveReports2.Field")
                             MyNewField.DataField = Trim(.ColKey(j))
                             MyNewField.CanGrow = False
            End Select
            MyNewField.name = "F" & j
            MyNewField.Top = 0
            MyNewField.Left = LastLeft
            MyNewField.Width = .ColWidth(j) * ZoomW
            MyNewField.Height = .RowHeight(IndexOfDetail) * ZoomH
            MyNewField.Alignment = IIf(.ColAlignment(j) = 9, 2, .ColAlignment(j) \ 3)
            MyNewField.Alignment = IIf(MyNewField.Alignment = 0, 0, IIf(MyNewField.Alignment = 1, 2, 1))
            MyNewField.BackStyle = ddBKNormal
            MyNewField.BackColor = IIf(j < .FixedCols, .BackColorFixed, .BackColor)
            MyNewField.ForeColor = IIf(j < .FixedCols, .ForeColorFixed, .ForeColor)
            MyNewField.Border.TopStyle = ddBLSolid
            MyNewField.Border.BottomStyle = ddBLSolid
            MyNewField.Border.LeftStyle = ddBLSolid
            MyNewField.Border.RightStyle = ddBLSolid
            Set MyNewField.Font = .Font
            MyNewField.Font.Size = MyNewField.Font.Size * ZoomFactor
            If Mid(.ColKey(j), 1, 1) = "[" Then
            
            Else
               MyNewField.MultiLine = False
               MyNewField.VerticalAlignment = ddTXMiddle
            End If
            ''''''''''''''''''''''''''''''
            LastLeft = MyNewLabel.Left + MyNewLabel.Width
       Next
       VS2AR.PH.Height = 3 * .RowHeight(0) * ZoomH
       VS2AR.PD.Height = .RowHeight(IndexOfDetail) * ZoomH
End With
VS2AR.PH_Company.Width = LastLeft
VS2AR.PH_Title.Width = LastLeft
VS2AR.DataControl1.ConnectionString = YourAdodc.ConnectionString
VS2AR.DataControl1.Source = YourAdodc.RecordSource
VS2AR.Show YourRunMode
End Sub
فاطمه وطن دوست
پنج شنبه 23 خرداد 1387, 00:09 صبح
سلام 
این خط چی کار میکنه ؟ 
 VS2AR.PH_Title.Caption = YourTitle
در کل جالب بود. 
 
 
 PH_Title. من تو خصوصیات فلوکس گرید چیزی با این عنوان نمی بینم.
maryamb
پنج شنبه 23 خرداد 1387, 10:24 صبح
مشکل من یه جور دیگه حل شد مرسی
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.