نقل قول: کند بودن اکتیو ریپورت
با سلام
من خيلي زياد از ActiveReport استفاده كردم و هنوز چنين مشكلي نداشتم. سرعتش هم خيلي خوبه مثلا گزارشهاي حدود 2000 صفحه اي روي كامپيوترهاي معمولي براحتي ساخته ميشن.
تنها موضوعي كه در كارهاي من باعث كندي سرعت ميشه افزودن عكس به گزارش هست. مثلا گزارشاتي كه در كنار هر سطر بايد يك عكس هم لود شود (چون حافظه زيادي مصرف مي كنند) كمي كند هستند و نمي توانند زياد بزرگ شوند. اينكه مي گويم نمي توانند زياد بزرگ باشند بدين معني نيست كه نمي توانند 100 يا 200 صفحه باشند. در اين حالت همه چيز به CPU و RAM بستگي دارد. اگر كامپيوتر شما 2 گيگابايت RAM داشته باشه اكتيو ريپورت به نرمي همه حافظه باقي مانه را مصرف ميكنه و وقتي RAM تمام شد تازه گير ميكنه و شروي ميكنه به كند شدن.
من نزديك به هشت سال است كه از اين گزارش ساز استفاده مي كنم و هنوز هيچ وقت ساخت گزارش به 10 دقيقه نرسيده است. با توجه به اينكه مي گوييد گزارش يك صفحه اي را سريع نمايش مي دهد و گزارش بيش از يك صفحه را 10 دقيقه پس حتما يك اشكالي در طراحي يا كدنويسي شما وجود دارد.
نقل قول: کند بودن اکتیو ریپورت
خب من کد های مربوطه رو می ذارم ببینید اشکال از کد هاست ؟
این کد رو داخل فرم نوشتم : On Error GoTo m
Dim name4 As String
acranbar.Label14.Caption = Left(Zaman, 10)
If Adodc5.Recordset.Fields(1) <> "" Then
name4 = Adodc5.Recordset.Fields(1)
acranbar.Label9.Caption = name4
End If
s22 = "ãæÌæÏí"
acranbar.dc1.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & App.Path & "\sys.ctx;Jet OLEDB:Database Password=1832823"
acranbar.dc1.Source = "select * from kharid where vaziat = '" & s22 & "' order by id"
acranbar.dc1.Refresh
acranbar.Show
m:
واین کد را داخل اکتیو ریپورت :
Private Sub ActiveReport_ReportStart()
Field1.DataField = "bandel"
Field2.DataField = "zekhamat"
Field3.DataField = "arz"
Field4.DataField = "tool"
Field5.DataField = "tedad"
Field6.DataField = "metraj"
Field7.DataField = "safe"
Field8.DataField = "tozih"
Field12.DataField = "metraj"
End Sub
Private Sub Detail_Format()
Static Cnt
Cnt = Cnt + 1
Me.Label38.Caption = Cnt
Dim Str As String
Str = "äÑã ÇÝÒÇÑ íÇÏÇÑ"
With Me.Canvas
.TextAngle = 900
.Font.Size = 9
.Font.name = tahoma
Call .DrawText(Str, 1000, 3000, 30000, 5000)
End With
End Sub
Private Sub PageFooter_Format()
Static pageno
pageno = pageno + 1
Label22.Caption = pageno
End Sub
البته چند تا گزارش تو برنامم دارم در بقیه گزارشها همه ی کد ها رو تو اکتیوریپورت نوشتم ولی بازم کند عمل می کنن جز گزارش های یک صفحه ای که مثلا برای فاکتور هستن.
این گزارش برای موجودی انبار هست. و فعلا که سه صفحه هست ، 10 دقیقه طول می کشه تا باز شه.رو دوتاسیستم مختلف هم امتحان کردم.
نقل قول: کند بودن اکتیو ریپورت
كدي كه در قسمت Detail_Format نوشتيد رو كلاً Remark كنيد. سپس تست كنيد كه آيا مشكل حل شده يا نه؟
نقل قول: کند بودن اکتیو ریپورت
Dim Str As String
Str = "äÑã ÇÝÒÇÑ íÇÏÇÑ"
With Me.Canvas
.TextAngle = 900
.Font.Size = 9
.Font.name = tahoma
Call .DrawText(Str, 1000, 3000, 30000, 5000)
End With
این قسمت کد رو برداشتم و مشکل کاملا حل شد !!!!!
خب پس چیکار کنم که اسم نرم افزارم رو بصورت عمودی کنار گزارشم بنویسه؟
این کد برای این کار بود
نقل قول: کند بودن اکتیو ریپورت
براي قراردادن اسم نرم افزار بوسيله برنامه گرافيكي يك فايل Picture ايجاد نماييد و بوسليه گزينه هاي زير كه در پروپرتي خود اكتيو ريپورت است براي هر صفحه از گزارش خود يك واتر مارك قرار دهيد.
watermark
watermarkaligment
watermarksizemode
نقل قول: کند بودن اکتیو ریپورت
من از واترمارک استفاده کردم ولی هر کاری می کنم می افته تو گزارشم !!!
می خوام ببرمش سمت چپ تر ولی نمی شه . چیکار کنم؟