Hi Drew,

This is perfect. Thank you so much for your help!

Kind regards,
Dmitri
---
Productivity Sauce: www.linuxpromagazine.com/productivitysauce
Writer's Tools: writertools.googlecode.com



On Wed, Mar 4, 2009 at 4:36 AM, Drew Jensen
<[email protected]> wrote:
> Dmitri Popov wrote:
>>
>> Hi Drew,
>>
>> I'd be grateful, if you could also help me to write a macro that saves
>> a file stored in the field into a directory specified by the user.
>>
>>
>
> Hello Dimitri,
>
> OK - But first
>
> I said that the earlier example had a flaw in that it did not update the UI
> properly.
> So ....Attached is a new version of the example database, one table, one
> form.
> Two buttons on the form, one to add a file into the database and one to
> write it out to disk.
> The new routines have:
> No embedded SQL
> UI data aware controls are updated properly
> Database engine independence
>
> One comment about onClickWriteFile:
> No checking if the file already exists (meaning that it will overwrite any
> existing file's data ), consider yourself warned.
>
> sub onClickAddFile( oEv as object )  dim oDataForm as object
>  dim FileName_w_Path as string
>  dim inputStream as variant
>  dim oBinaryField as object
>  dim oFileNameField as object
>  dim oFileSelection as object
>   GlobalScope.basicLibraries.LoadLibrary("Tools")
>  oDataForm = oEv.Source.Model.Parent
>  oBinaryField = oDataForm.Columns.GetByName( "FileObj" )
>  oFileNameField = oDataForm.Columns.GetByName( "FileName" )
>  oFileSelection = oDataForm.getByName("FileSelection")
>   if oFileSelection.Text <> "" then
>   FileName_w_Path = oFileSelection.Text
>   inputStream = fnOpenInputStream( FileName_w_Path )
>   oBinaryField.updateBinaryStream( inputStream,
> InputStream.getInputStream.length )
>   oFileNameField.updateString( FileNameoutofPath( FileName_w_Path ) )
>   if oDataForm.isNew then
>     oDataForm.InsertRow
>   else
>     oDataForm.UpdateRow
>   end if
>   oFileSelection.Text = ""
>  end if  end sub
>
>
> sub onClickWriteFile( oEv as object )
>  dim oDataForm as variant
>  dim cFolder as string
>  dim FileName_w_Path as string
>  dim oBinaryField as variant
>  dim oFileNameField as variant
>  dim oSFA as object
>   oDataForm = oEv.Source.Model.Parent
>  oBinaryField = oDataForm.Columns.GetByName( "FileObj" )
>  oFileNameField = oDataForm.Columns.GetByName( "FileName" )
>  if PickFolder( cFolder ) = 1 then
>   if right( cFolder, 1 ) <> "/" then
>     FileName_w_Path =  cFolder & "/" &  oFileNameField.getString
>   else
>     FileName_w_Path =  cFolder & oFileNameField.getString
>   end if   oSFA = createUNOService ("com.sun.star.ucb.SimpleFileAccess")
>   oSFA.WriteFile( ConvertToUrl(FileName_w_Path),
> oBinaryField.getBinaryStream )
>  end if
>  end sub
>
>
> HTH
>
> Drew
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [email protected]
> For additional commands, e-mail: [email protected]
>

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to