|
| |
Home Up
gebruik datamodule met non-modal forms
In delphi is het gebruik van een datamodule aan te bevelen, je hebt immers je datasets en eventuele code voor je datasets centraal en dus goed te onderhouden.
Bij het gebruik van modal forms is dit natuurlijk ideaal, omdat je maar 1 formulier gelijktijdig open en actief hebt.
Wat ik me nu afvraag is hoe je dat het beste kunt doen bij non-modal forms. Je kun dan immers meerdere forumulieren "achter" elkaar open hebben, waarbij de gebruiker wil kunnen wisselen tussen deze formulieren. Bijvoorbeeld in je onactivate een dataset in een gedefinieerde positie brengen kan dan heel onhandig zijn, omdat een gebruiker wil terugkeren naar de plaats waar hij vandaan kwam.
Ook kun je volgens mij nog wat problemen krijgen bij een closeopen actie die je soms moet doen (bv met interbase). Je gerelateerde forms verliezen dan immers hun connectie.
De betreffende datasets op je forms plaatsen lijkt me ook niet echt een oplossing (het werkt wel, maar is op termijn niet te onderhouden).
Hebben jullie ideeen hoe dit aan te pakken, of is er over dit onderwerp ergens interessante info te vinden?
Bedankt.
Benno
--
hoi benno,
Met alle flat file database's (b-base, pdox) heb je volgens mijn een probleem omdat deze geen tansactie kennen allen via de BDE (en zoals we weten is dat een drama).
interbase daarintegen kent wel transactie dus volgens mij is de oplossing als volgt:
flat file database's data manipulatie in showmodal form
Data lezen in show of mdi form.
sql database's : data manipulatie in form close checken of data opgeslagen moet worden zoja transactie starten en data manipulatie doen. anders gewoon form sluiten.
Data lezen gewoon in show of mdi form.
in beide gevallen kun je dus gewoon je datamodule gebruiken
Roelof.
--
Roelof,
dank voor je reactie. Als ik de gebruikers zou verplichten een form af te sluiten zou dat zo kunnen. Wat ze willen is bijvoorbeeld bij het invoeren van een order erachter komen dat een artikel niet is aangemaakt. Dan wisselen naar het artikelscherm om een nieuw artikelscherm aan te maken. Je krijgt dan het herpositioneren van je artikelbestand. Kom je nu terug in je orderscherm dan is het natuurlijk het mooiste dat de gebruiker terug komt op de plaats waar hij was. Dus dat bijvoorbeeld de lookup combo nog staat op de plaats waar hij stond voor het formulier werd verlaten.
Het probleem is dus meer dat je verschillende dialogen tegelijk open hebt staan, die terug zouden kunnen grijpen op dezelfde data.
Benno
--
Ja, hoe kijk je tegen de opdeling aan middels de datamodules etc.
In het kader van schijden van visuele en niet visuele zaken ligt het simpel :
per form een datamodule t.b.v. de niet visuele zaken. Wanneer je echter 'terug' keert in een form, dan kan het zijn dat een gekoppelde database inmiddels is 'ge-update' (er zijn bijv. artikelen toegevoegd). Een refresh is dan minimaal op z'n plaats lijkt me......
Hans
--
Per form een datamodule, shit kom ik daar dus niet onderuit.
Het vermoeden dat het die kant uit moest had ik al, ik hoopte alleen dat er een meer efficiente manier zou zijn. Met een stuk of 50 tabellen gaan dat dus ook een zooi datamodules worden vrees ik. Ik denk dat ik beter dan meteen mij app maar in partjes kan gaan snijden.
Toch vreemd dat het in zo'n efficiente omgeving niet efficienter geregeld kan worden.
Benno
|