Hi Drew,

I never tested it by my own but it should be simple. Just guessing.

- open the database application hidden
- add as event listener at the desktop (terminate listener) and close the db app when terminating
- open the form
-> The form should stay open. I guess.

- oj


Drew Jensen wrote:
A great song from days gone by...and just about how I feel at the moment.

It really should be simple:

Open an embedded Base form from a command line.

And it is, as long as there is something, anything else from OpenOffice.org open.

For example:-
In a library named cmdLine is this sub procedure:

Sub LoadDBForm( dbName as string, frmName as string )
dim cntxt as variant
dim DB as variant
dim conn as variant
dim frm as variant
dim InteractionHandler as variant
dim ln as integer
dim errMessage as string

Dim aProp(1) As New com.sun.star.beans.PropertyValue

on error goto LoadDBForm_Error
ln = 1
cntxt = CreateUnoService("com.sun.star.sdb.DatabaseContext")

DB = cntxt.getByname( trim(dbName) )
ln = 2
If Not DB.IsPasswordRequired Then
conn = DB.GetConnection("","")
Else
InteractionHandler = createUnoService("com.sun.star.sdb.InteractionHandler")
conn = DB.ConnectWithCompletion(InteractionHandler)
End If
aProp(0).Name = "ActiveConnection"
aProp(0).Value = conn
aProp(1).Name = "OpenMode"
aProp(1).Value = "open"

ln = 3
frm = DB.DatabaseDocument.FormDocuments.loadComponentFromURL(trim(frmName),"_blank",0,aProp())
exit sub
   LoadDBForm_Error:
errMessage = error(err) & chr(10)
select case ln
case 1 : errMessage = errMessage & "Could not load datasource: " & dbName
case 2 : errMessage = errMessage & "Invalid UserName or password for: " & dbName
case 3 : errMessage = errMessage & "Could not load form: " & frmName
end select
print errMessage

End Sub


I can call that macro then with a command of
soffice -invisible "macro:///cmdLine.Module1.LoadDBForm( "Clinic" , "Swtichboard" )"

Now if quickstarter is running, or any openoffice.org documentx are opened when that command line is executed the form Swtichboard opens and is ready to go.

But if there is NOT some OTHER document already opened, and quickstarter is not running, then the form opens for a brief moment, data never fills the controls and it simply closes - no error is generated.

The question is not really why...the question is for how much longer? How much longer before Base gets taken off of the whipping post and becomes a full fledged citizen of the OpenOffice.org application and no longer considered merely 3/5ths of a module?

By the way here is a nasty kludge - add this to the beginning of the procedure

Sub LoadDBForm( dbName as string, frmName as string )
dim cntxt as variant
dim DB as variant
dim conn as variant
dim frm as variant
dim InteractionHandler as variant
dim ln as integer
dim errMessage as string
dim tmpDoc as variant

Dim aProp(1) As New com.sun.star.beans.PropertyValue

on error goto LoadDBForm_Error

aProp(0).Name = "Hidden"
aProp(0).Value = true

tmpDoc = starDesktop.loadcomponentfromURL( "private:factory/swriter", "_blank", 0, aProp() )

ln = 1
cntxt = CreateUnoService("com.sun.star.sdb.DatabaseContext")

----------------------------

Now everything works fine - with one small problem - so now we need to setup a way to close that hidden form when our last working form for the dataabase is closed...


Drew

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]



--
Ocke Janssen                      Tel: +49 40 23646 661, x66661
Dipl. Inf(FH)                     Fax: +49 40 23646 550
Sun Microsystems Inc.
Nagelsweg 55                     mailto:[EMAIL PROTECTED]
D-20097 Hamburg                   http://www.sun.com/staroffice

Sitz der Gesellschaft: Sun Microsystems GmbH, Sonnenallee 1, D-85551 Kirchheim-Heimstetten
Amtsgericht Muenchen: HRB 161028
Geschaeftsfuehrer: Thomas Schroeder Wolfgang Engels, Dr. Roland Boemer
Vorsitzender des Aufsichtsrates: Martin Haering


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to