Сканирование

Lesik

Well-Known Member
06.08.2009
76
0
#1
Доброго времени суток,
помогите плиз.... появилась задачка прикреплять файл со сканнера в виде аттача. Покопал инет и нашел примеры кнопок здесь http://sysadmins.ru/topic145041.html
С сохранением в папку все работает, а вот в существующее поле "Attach"(RichText) прикрепляться не хочет(

Sub Click(Source As Button)
' пишем картинки на диск c:\temp
' имена в список AttachPictureName
'количество в поле AttachPictureNum
Dim uiws As New NotesUIWorkSpace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim agent As NotesAgent
Dim item As NotesItem
Dim click As Variant

Dim resulta As Integer
Dim FileName As String
Dim FilePath As String
Dim numPicture As String
Dim FileImportFormat As String
Dim JPEGquality As Integer
Dim devPixelType As Long
Dim rt As NotesRichTextItem
Dim obj As NotesEmbeddedObject
Set uidoc = uiws.currentdocument
Set doc = uidoc.Document
Set rt = doc.GetFirstItem ("Attach")
If TWAIN_IsAvailable <>1 Then
Messagebox("Драйвер TWAIN не установлен на вашем компьютере!")
Exit Sub
End If

TWAIN_FreeNative (hDib)

If TWAIN_OpenDefaultSource() <> 0 Then
Call TWAIN_SetHideUI(1)
Call TWAIN_SetCurrentUnits(TWUN_INCHES)
Call TWAIN_SetCurrentPixelType(TWPT_GRAY)
Call TWAIN_SetCurrentResolution(150)
Call TWAIN_SetIndicators(1)
Call TWAIN_SetCompression(1)
Call TWAIN_SetImageLayout(0,0,200,200)

hDib = TWAIN_AcquireNative(hwnd,devPixelType)

If hDib <> 0 Then
Else
Msgbox "Изображение не получилось! Ошибка."
Exit Sub
End If
End If
If hDib <> 0 Then

numPicture = doc.GetItemValue("AttachPictureNum")(0)
If numPicture<>"" Then
numPicture=Cstr(Cint(numPicture)+1)
Else
numPicture="1"
End If
FilePath = "c:\temp\"
FileName = FilePath+"image-"+numPicture+".jpg"
Print FileName
FileImportFormat = "JPEG Image"
Call TWAIN_SetSaveFormat(4)
Call TWAIN_SetJpegQuality(50)
If TWAIN_WriteNativeToFilename(hDib, FileName) <> 0 Then
Msgbox "Изображение не записано в файл!"
Else
Set item = doc.ReplaceItemValue("AttachPictureName",FileName)
Call doc.ReplaceItemValue("AttachPictureNum",numPicture)
Set obj= rt.EmbedObject(EMBED_ATTACHMENT,"",FileName)
End If
TWAIN_FreeNative (hDib)
End If
End Sub

На строке "Set obj= rt.EmbedObject(EMBED_ATTACHMENT,"",FileName)" вылетает "Object variable not set" никак не могу понять где я не определил объект.
 

hosm

* so what *
18.05.2009
2 442
9
#2
Воспользуйтесь отладчиком, там, скорее всего, в документе нет рт-поля Attach. Мб, надо сохранить документ перед добавлением вложений или создать новое рт-поле
 

Lesik

Well-Known Member
06.08.2009
76
0
#3
Если документ сохранен, то работает без ошибок))))
Правда аттача нет....(((((
 

Lesik

Well-Known Member
06.08.2009
76
0
#4
К ответу подобрался уже близко)))
Sub Click(Source As Button)
' пишем картинки на диск c:\temp
' имена в список AttachPictureName
'количество в поле AttachPictureNum
Dim uiws As New NotesUIWorkSpace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim agent As NotesAgent
Dim item As NotesItem
Dim click As Variant

Dim resulta As Integer
Dim FileName As String
Dim FilePath As String
Dim numPicture As String
Dim FileImportFormat As String
Dim JPEGquality As Integer
Dim devPixelType As Long
Set uidoc = uiws.currentdocument
Set doc = uidoc.Document
If TWAIN_IsAvailable <>1 Then
Messagebox("Драйвер TWAIN не установлен на вашем компьютере!")
Exit Sub
End If

TWAIN_FreeNative (hDib)

If TWAIN_OpenDefaultSource() <> 0 Then
Call TWAIN_SetHideUI(1)
Call TWAIN_SetCurrentUnits(TWUN_INCHES)
Call TWAIN_SetCurrentPixelType(TWPT_GRAY)
Call TWAIN_SetCurrentResolution(150)
Call TWAIN_SetIndicators(1)
Call TWAIN_SetCompression(1)
Call TWAIN_SetImageLayout(0,0,200,200)

hDib = TWAIN_AcquireNative(hwnd,devPixelType)

If hDib <> 0 Then
Else
Msgbox "Изображение не получилось! Ошибка."
Exit Sub
End If
End If
If hDib <> 0 Then

numPicture = doc.GetItemValue("AttachPictureNum")(0)
If numPicture<>"" Then
numPicture=Cstr(Cint(numPicture)+1)
Else
numPicture="1"
End If
FilePath = "c:\temp\"
FileName = FilePath+"image-"+numPicture+".jpg"
Print FileName
FileImportFormat = "JPEG Image"
Call TWAIN_SetSaveFormat(4)
Call TWAIN_SetJpegQuality(50)
If TWAIN_WriteNativeToFilename(hDib, FileName) <> 0 Then
Msgbox "Изображение не записано в файл!"
Else
Set item = doc.ReplaceItemValue("AttachPictureName",FileName)
Call doc.ReplaceItemValue("AttachPictureNum",numPicture)
Call uidoc.GotoField("Attach") 'переводим курсор на поле
Call uidoc.Import("JPEG Image", FileName) ' вставляем изображение
Kill FileName 'прибиваем файл
End If
TWAIN_FreeNative (hDib)
End If
End Sub
Вставляется целая картинка(((( может какой-нибудь метод для аттача есь?
 

Medevic

Что это ? :)
Lotus team
10.12.2004
3 346
2
#5
Sub Click(Source As Button)
' пишем картинки на диск c:\temp
' имена в список AttachPictureName
'количество в поле AttachPictureNum
Dim uiws As New NotesUIWorkSpace
Dim uidoc As NotesUIDocument
Dim doc As NotesDocument
Dim db As NotesDatabase
Dim agent As NotesAgent
Dim item As NotesItem
Dim click As Variant

Dim resulta As Integer
Dim FileName As String
Dim FilePath As String
Dim numPicture As String
Dim FileImportFormat As String
Dim JPEGquality As Integer
Dim devPixelType As Long
Dim rt As NotesRichTextItem
Dim obj As NotesEmbeddedObject

Set uidoc = uiws.currentdocument
Call uidoc.Refresh(True)
Set doc = uidoc.Document
Set rt = doc.GetFirstItem ("Attach")
If TWAIN_IsAvailable <>1 Then
Messagebox("Драйвер TWAIN не установлен на вашем компьютере!")
Exit Sub
End If

TWAIN_FreeNative (hDib)

If TWAIN_OpenDefaultSource() <> 0 Then
Call TWAIN_SetHideUI(1)
Call TWAIN_SetCurrentUnits(TWUN_INCHES)
Call TWAIN_SetCurrentPixelType(TWPT_GRAY)
Call TWAIN_SetCurrentResolution(150)
Call TWAIN_SetIndicators(1)
Call TWAIN_SetCompression(1)
Call TWAIN_SetImageLayout(0,0,200,200)

hDib = TWAIN_AcquireNative(hwnd,devPixelType)

If hDib <> 0 Then
Else
Msgbox "Изображение не получилось! Ошибка."
Exit Sub
End If
End If
If hDib <> 0 Then

numPicture = doc.GetItemValue("AttachPictureNum")(0)
If numPicture<>"" Then
numPicture=Cstr(Cint(numPicture)+1)
Else
numPicture="1"
End If
FilePath = "c:\temp\"
FileName = FilePath+"image-"+numPicture+".jpg"
Print FileName
FileImportFormat = "JPEG Image"
Call TWAIN_SetSaveFormat(4)
Call TWAIN_SetJpegQuality(50)
If TWAIN_WriteNativeToFilename(hDib, FileName) <> 0 Then
Msgbox "Изображение не записано в файл!"
Else
Set item = doc.ReplaceItemValue("AttachPictureName",FileName)
Call doc.ReplaceItemValue("AttachPictureNum",numPicture)
Set obj= rt.EmbedObject(EMBED_ATTACHMENT,"",FileName)
End If
TWAIN_FreeNative (hDib)
End If
Call rt.Update()
Call uidoc.Document.ReplaceItemValue("SaveOptions", "0")
Call uidoc.Close(True)
Set uidoc = ws.EditDocument(True, doc, False)
Call uidoc.Document.RemoveItem("SaveOptions")

End Sub