Pagina 1 van 1

Macro maken voor herladen formulier (Base)

Geplaatst: di dec 01, 2009 11:41 am
door tuxy
Hallo,

Naar aanleiding van mijn database-applicatie die te vinden is in volgend topic:

http://user.services.openoffice.org/nl/ ... 1812#p1812

Probeer ik uit te 'vissen' hoe ik de onderstaande 'herlaad' Macro aan de praat kan krijgen, deze macro heb ik gedownload van volgend engelstalig forum:
(met dank aan Romke!)

http://www.oooforum.org/forum/viewtopic ... ght=commit

Code: Selecteer alles

sub NaUpdateRealListbox(oEvent as object)
'This event must be run when the list box is updated (second from below)
dim oForm
oForm=oEvent.source.parent
if oForm.implementationname ="com.sun.star.comp.forms.ODatabaseForm" then
    UpdateFormAndReload oForm 'Check there is form must be stored
end if
end sub


sub listbox_commit_Changed(oEvent as object)
'Bound to listbox changed (second from top)
oEvent.source.model.commit
end sub


sub UpdateFormAndReload(oForm as object)
with oForm
   if .isnew then
       .insertrow
       .reload
   elseif .ismodified then
       .updaterow
       .reload
   end if
end with
end sub 
Daar ik totaal geen ervaring heb met het gebruik van macro's, lukt het me niet om deze macro in te stellen aan de hand van mijn database.
Ik heb deze Macro opgeslagen in 'Mijn Macro's', maar wanneer ik deze wil testen, heeft deze volgende fout:

'BASIC-runtime-fout. Het argument is niet optioneel.'

Daarmee verwijst ooBase naar volgende regel:

oForm=oEvent.source.parent

Wie kan me helpen om deze macro probleemloos uit te voeren?

Christophe

Re: Macro maken voor herladen formulier (Base)

Geplaatst: di dec 01, 2009 3:25 pm
door RPG
Hallo

Macro's waar zoiets als oEvent in staan worden nooit direct gerund.

Je moet deze macro binden aan je listbox zie de helpfile : scripts toewijzen

Romke

Re: Macro maken voor herladen formulier (Base)

Geplaatst: di dec 01, 2009 4:41 pm
door tuxy
Ik heb de Macro toegewezen aan de keuzelijst, via de gebeurtenis 'Status gewijzigd', maar er gebeurt niets.

Ik hoef hopelijk niets te veranderen aan de Macro?

Eigenlijk vind ik het niet erg dat de knop [Zoek] dient om het formulier te vernieuwen, maar spijtig dat ik het bevestigingsvenster 'formulier gewijgd. Wilt u wijzigingen opslaan?' krijg.

Is er een manier om dit uit te schakelen?

Christophe

Re: Macro maken voor herladen formulier (Base)

Geplaatst: wo dec 09, 2009 12:04 am
door eremmel
Kijk eens naar deze discussie Filter form with combobox en Beginner stuck linking combo to subform. Bevat voorbeelddocumenten en macro's, ook voor Keuzelijst (listbox).

Ik bind mijn macro's aan de gebeurtenis (event) 'Gewijzigd' en niet aan 'Status Gewijzigd'. De help van OOO zegt: "De gebeurtenis Gewijzigd vindt plaats als het besturingselement de focus verliest en de inhoud van het besturingselement werd veranderd sinds het verlies van de focus." Dit is m.i. wat u wilt. (De help van OOo is niet slecht alleen soms moet je even zoeken...).

Die knop van bevestigen kan alleen via macro zoals in discussie beschreven voorkomen worden.
Kijk een naar de verwijzingen.

Re: Macro maken voor herladen formulier (Base)

Geplaatst: do dec 10, 2009 12:43 am
door tuxy
Eremmel,

Dit lijkt me interessant.

Bedankt.

Christophe