PDA

View Full Version : تعیین مسیر بانک اطلاعاتی در گزارشات VB6 ؟



giahchin
چهارشنبه 17 دی 1382, 08:32 صبح
با سلام ،
من برای تهیه گزارشات از Crystal Report 9 استفاده می کنم ولی برای تعیین مسیر بانک اطلاعاتی (بانک Access) در گزارشات مشکل دارم .

مشکـل من اینه که مسیر بانکم را در قسمت Set Datasource Location فرم گزارش تایپ می کنم و امکان استفاده از آبجکت App.Path را ندارم . در نتیجه اگر برنامه من در مسیری غیر از مسیر تایپ شده نصب بشه برنامه گزارش ، بانک را نمیتونه پیدا کنه .

سـوال مـن اینـه که آیا می توان از دستوری استفاده کرد که در پنجره کد نویسی مسیر بانک اطلاعاتی را توسط آبجکت App.Path برای برنامه گزارش تعیین کرد تا در صورت تغییر مسیر برنامه ، مسیر بانک بطور خودکار تغییر کنه و برنامه دچار مشکل نشه ؟

A.Noor
چهارشنبه 17 دی 1382, 10:46 صبح
با سلام
در وی‌بی می‌توانید از کد زیر برای آدرس دهی مسیر دیتابیس ریپورت ( کریستال ریپورت ) استفاده کنید :
CrystalReport1.DataFiles(0) = App.Path + "\Report.mdb"

که در آن Report.mdb نام بانک اکسس مورد نیاز ریپورت شماست.
ضمنا می‌تونید از مثال این تاپیک استفاده کنید : http://www.barnamenevis.org/forum/viewtopic.php?t=5804

vbstar
چهارشنبه 17 دی 1382, 10:53 صبح
برای مسیر دهی به گزارشات ، شما باید از خود کریستال استفاده کنید ، مثلاً برای sql من از این متد استفاده میکنم.

LogonServer


[form.]Report.LogonServer (dllName$, ServerName$, DatabaseName$, UserID$, Password$)
For example:

connectionId% = CrystalReport1.LogonServer ("pdsodbc.dll", "Accounting", "Administration", "bobg", "bigboard")

«Connects to the "Administration" database via the "Accounting" data source using the user ID "bobg" and the password "bigboard".»
VBstar

giahchin
شنبه 20 دی 1382, 15:04 عصر
آقای نوری عزیز
ضمن تشکر از پاسخ شما باید خدمت شما عرض کنم که در این نسخه از کریستال ریپورتی که من استفاده می کنم(نسخه 9) خواصی که شما استفاده کردی وجود نداره :

.DataFiles(0)
.ReportFileName
آیا ما باید کاری انجام بدیم که این خواص اضافه بشوند ؟
یا اینکه در نسخه جدید نام خواص تغییر کرده باشه ؟

به هر حال خواصی که آبجکت CrystalReport من داره اینها هستند:


With CrystalReport1
.AddGroup
.AddReportVariable
.Application
.ApplicationName
.Areas
.AutoSetUnboundFieldSource
.BottomMargin
.CancelPrinting
.CanPerformGroupingOnServer
.CaseInsensitiveSQLData
.ConvertDateTimeType
.ConvertNullFieldToDefault
.Database
.DeleteGroup
.DetailSection1
.DiscardSavedData
.DisplayProgressDialog
.DriverName
.EnableAsyncQuery
.EnableGeneratingDataForHiddenObject
.EnableParameterPrompting
.EnablePerformQueriesAsynchronously
.EnableSelectDistinctRecords
.Export
.ExportOptions
.FieldMappingType
.FormulaFields
.FormulaSyntax
.GetNextRows
.GetReportVariableValue
.GroupNameFields
.GroupSelectionFormula
.GroupSortFields
.HasSavedData
.KeywordsInReport
.Kind
.LastGetFormulaSyntax
.LeftMargin
.Name
.NeedUpdatePages
.NumberOfGroup
.Object
.OpenSubreport
.PageEngine
.PageFooterSection1
.PageHeaderSection1
.PaperOrientation
.PaperSize
.PaperSource
.ParameterFields
.Parent
.PerformGroupingOnServer
.PortName
.PrintDate
.PrinterDuplex
.PrinterName
.PrinterSetup
.PrintingStatus
.PrintOut
.PrintOutEx
.ReadRecords
.RecordSelectionFormula
.RecordSortFields
.ReportAlerts
.ReportAuthor
.ReportComments
.ReportFooterSection1
.ReportFormatStyle
.ReportHeaderSection1
.ReportSubject
.ReportTemplate
.ReportTitle
.RightMargin
.RunningTotalFields
.SaveAs
.SavePreviewPicture
.Sections
.SelectPrinter
.SetDialogParentWindow
.SetReportVariableValue
.SetUserPaperSize
.SQLExpressionFields
.SQLQueryString
.SummaryFields
.TopMargin
.UseIndexForSpeed
.VerifyOnEveryPrint
End With

ضمنا خدمت vbstar هم باید عرض کنم که من از روش DAO استفاده می کنم و پیشنهادشون فکر کنم برای من کاربرد نداره ؟

A.Noor
شنبه 20 دی 1382, 20:02 عصر
شاید DataBase جواب شما باشد. Help این خاصیت را نگاهی بیندازید

giahchin
یک شنبه 21 دی 1382, 16:05 عصر
شاید DataBase جواب شما باشد. Help این خاصیت را نگاهی بیندازید
آقای نوری عزیز ،
راستش من هم خیلی با خاصیت DataBase سعی کردم ولی نشد.
Help کریستال هم در VB کار نمیکنه . توی Help خود برنامه کریستال هم که میرم چنین موضوعی را پیدا نمیکنه !

مثل اینکه من باید ورژن برنامه کریستال رو عوض کنم .
میشه لطف کنید و بگین شما از چه ورژن کریستال استفاده می کنید ؟

کم حوصله
یک شنبه 21 دی 1382, 20:16 عصر
مثل اینکه من باید ورژن برنامه کریستال رو عوض کنم .

چه زود گود را خالی کردی !!؟ :shock: :? :-x :evil: :roll: :| :?: :idea:

giahchin
دوشنبه 22 دی 1382, 07:40 صبح
چه زود گود را خالی کردی !!؟ :shock: :? :-x :evil: :roll: :| :?: :idea:

گود رو خالی نکردم . دیدم از این روش به نتیجه ای نرسیدم . روش رو عوض کردم :wink:
راستش من خیلی عجله دارم ... :!:
آخه تحت فشارم :cry:

A.Noor
دوشنبه 22 دی 1382, 09:22 صبح
من از ورژن 7 استفاده می‌کنم

توی Help خود برنامه کریستال هم که میرم چنین موضوعی را پیدا نمیکنه !
حتی در ایندکس Help ؟
حتی Search در Help هم جواب نمیده ؟

giahchin
سه شنبه 23 دی 1382, 07:28 صبح
در ایندکس و search از کدنویسی چیزی پیدا نکردم همش کار از طریق منوها و پنجره های محاوره ای بود !

A.Noor
سه شنبه 23 دی 1382, 11:31 صبح
شما از طریق Search در Help خود کریستال دنبال کلمه Property بگردید . شاید اینطوری به هدفتان برسید.

کم حوصله
یک شنبه 28 دی 1382, 01:55 صبح
خوب گیاه چین جون اینم فقط به خاطر شما :wink: :wink:

رفتیم کریستال 9.2 را خریدم

آخ حال کردم مشکلات فارسی نویسی که دمش حل شده
مشکل اکسپورت هم همین طور
و اما در مورد سئوال شما
اینم راه حلش
برو حالشو ببر و دعاشو به جون دوستان با حال خو بم آقا عریضی و آذیش بکن که قدیم ندیمها یک حالی به ما داده بودند دستشون مریزاد :kiss:


Dim Tmp as adodb.rcordset
dim report as crystal report1
tmp.open "select * from Tbl1 "
report.database.tabels(1).setdatasource tmp,3


خوب معمولا ممکنه تو گزارش چند تا جدول استفاده بشه
به ترتیب از 1 شوروع میشه و بالا میره
به ازاء هر جدول یک رکورد ست میسازی و اونا رو به ترتیب همون که تو کریستال اضافه کردی شماره دهی می کنی
یعنی جدول بالایی 1
پایینیش 2
بعدی 3

به قول گلاد جونم برو حالشو ببر :P :P :mrgreen:

کم حوصله
یک شنبه 28 دی 1382, 01:58 صبح
راستی منظورم از شماره دهی به جدول در خط 4 کد هست ها با بالایش قاطی نکنی :P :mrgreen: