PDA

View Full Version : اضافه کردن عکس به کریستال ریپورت



ehsan_2000
دوشنبه 22 خرداد 1385, 10:04 صبح
با سلام خدمت همه دوستان عزیز
آقا من یه فیلد دارم تو access که عکس افراد در اون ذخیره می شه.حالا من میخوام اون عکس رو در کریستال ریپورت مشاهده کنم. اگه یه مثال بزارید خیلی خیلی ممنون میشم.

vb341
دوشنبه 22 خرداد 1385, 17:56 عصر
خود کریستال نشون میده . کار خاصی نیاز نیست انجام بدین .

ehsan_2000
پنج شنبه 25 خرداد 1385, 20:02 عصر
میشه یه مثال بزارید
خیلی ممنون

Milad Mohseny
پنج شنبه 25 خرداد 1385, 20:33 عصر
گروه این In_Chan_Nafar یک مقاله کامل در این مورد قبلاً آپلود کرده
اول جستجو کنید

و یه مثال خیلی جالب هم برای لود تصویر تو یکی از تاپیک ها گذاشته بودیم این هم لینک اون

http://www.barnamenevis.org/forum/showthread.php?t=25507

ehsan_2000
پنج شنبه 25 خرداد 1385, 20:53 عصر
آقا اون مثال عکسها را از جای دیگه ای لود میکنه . من می خوام از بانک اطلاعاتی اونو لود منه.

Milad Mohseny
پنج شنبه 25 خرداد 1385, 23:33 عصر
آقا اون مثال عکسها را از جای دیگه ای لود میکنه . من می خوام از بانک اطلاعاتی اونو لود منه.
در این حالت خود کریستال عکس رو نشون میده کار خاصی لازم نیست

ehsan_2000
جمعه 26 خرداد 1385, 08:51 صبح
خوب میشه یه مثال ساده بزارید تا ما هم بفهمیم من از کریستال ریپورت خیلی نمیدونم.

vb341
جمعه 26 خرداد 1385, 10:57 صبح
تو مثالهای خود کریستال نگاه کن مثال داره

vb341
جمعه 26 خرداد 1385, 11:03 صبح
اول این مسیر رو درست کن:
E:\vb\pic_in_vb\PIC2\IMG2
و بعد بانک ور تو اون کپی کن

ehsan_2000
جمعه 26 خرداد 1385, 11:03 صبح
خوب لااقل اسم مثال رو بزارید و در ضمن اگه بخوام تو access در فیلدی عکس ذخیره کنم نوع اون فیلد و چی انتخاب کنم.

vb341
جمعه 26 خرداد 1385, 11:16 صبح
دوست عزی هرکار کردم فایل مورد نظر آپلود نشد
سر فرصت دیگه آپلود میکنم

ehsan_2000
جمعه 26 خرداد 1385, 11:25 صبح
خیلی ممنون منتظر هستم

vb341
جمعه 26 خرداد 1385, 11:26 صبح
نوع فیلد رو باید از نوع OLE Object انتخاب کنی
و از کد های زیر هم برای ذخیره و ... استفاده کن . بعد تو خود کریستال راحت عکس رو نشون میده

Dim cnnImage As New ADODB.Connection
Dim rsImage As New ADODB.Recordset
Dim strSql As String

Dim Chunk() As Byte
Dim lngLengh As Long
Dim intChunks As Integer
Dim intFragment As Integer

Const ChunkSize = 1000 '16384
Const lngDataFile = 1

Private Sub cmdBrowse_Click()
'Select JPG OR Bitmap File to Store in DataBase
On Error Resume Next
With cmdlFilePath
.Filter = "JPG Files|*.JPG|Bitmaps|*.BMP"
.ShowOpen
txtFilePath.Text = .FileName
End With
End Sub

Private Sub cmdExit_Click()
'Close
End
End Sub

Private Sub cmdLast_Click()
'Move Last
On Error Resume Next
rsImage.MoveLast
'Show Pic in PictureBox
Call ShowPic
End Sub

Private Sub cmdNext_Click()
'Move Next
On Error Resume Next
rsImage.MoveNext
'Show Pic in PictureBox
Call ShowPic
End Sub

Private Sub cmdPrev_Click()
'Move Previous
On Error Resume Next
rsImage.MovePrevious
'Show Pic in PictureBox
Call ShowPic
End Sub

Private Sub cmdSave_Click()
'Save File
If Trim(txtFilePath.Text) = "" Then
MsgBox "Plz Select JPG or Bitmap File to Store in Database.!!", vbInformation + vbSystemModal, "Save"
Exit Sub
End If
If (Dir(Trim(txtFilePath.Text)) = "") Then Exit Sub
'Open as Binary
Open Trim(txtFilePath.Text) For Binary Access Read As lngDataFile
lngLengh = LOF(lngDataFile) ' Length of data in file
If lngLengh = 0 Then Close lngDataFile: Exit Sub
intChunks = lngLengh \ ChunkSize
intFragment = lngLengh Mod ChunkSize
'Add New Record in DataBase
rsImage.AddNew
ReDim Chunk(intFragment)
'Read data from a file into a variable
Get lngDataFile, , Chunk()
'Appends data to a large text or binary data Field or Parameter object.
rsImage!picImage.AppendChunk Chunk()

ReDim Chunk(ChunkSize)
For I = 1 To intChunks
Get lngDataFile, , Chunk()
rsImage!picImage.AppendChunk Chunk()
Next I
'Update
rsImage.Update
'Close File
Close lngDataFile
'Show Pic in PictureBox
Call ShowPic
End Sub

Private Sub cmdFirst_Click()
' On Error Resume Next
rsImage.MoveFirst
'Show Pic in PictureBox
Call ShowPic
End Sub

Private Sub Form_Load()

rsImage.LockType = adLockOptimistic
rsImage.CursorType = adOpenKeyset

cnnImage.Provider = "Microsoft.Jet.OLEDB.4.0"
strSql = App.Path & "\Image.mdb"
cnnImage.Open strSql

strSql = "Select * From ImageStore"
rsImage.Open strSql, cnnImage

If (rsImage.BOF = True) And (rsImage.EOF = True) Then Exit Sub
'Open Record Set
Call cmdFirst_Click
End Sub

Public Sub ShowPic()
On Error Resume Next

Open "pictemp" For Binary Access Write As lngDataFile
lngLengh = rsImage!picImage.ActualSize
intChunks = lngLengh \ ChunkSize
intFragment = lngLengh Mod ChunkSize
ReDim Chunk(intFragment)
Chunk() = rsImage!picImage.GetChunk(intFragment)
Put lngDataFile, , Chunk()
For I = 1 To intChunks
ReDim Buffer(ChunkSize)
'Returns all or a portion of the contents of a large text or binary data Field object.
Chunk() = rsImage!picImage.GetChunk(ChunkSize)
'Write data to a Temp file
Put lngDataFile, , Chunk()
Next I
Close lngDataFile

FileName = "pictemp"
Picture1.Picture = LoadPicture(FileName)
End Sub

ehsan_2000
جمعه 26 خرداد 1385, 11:41 صبح
من عکس و ذخبره می کنم ولی کریستال اصلا اون فیلدو نشون نمیده ولی بقیه رو نشون میده.

vb341
جمعه 26 خرداد 1385, 20:06 عصر
به نحوه ذخیره کردن فیال از نوع عکس تو کد بالا دقت کن