Hallo!
Nachdem mir bei meinem letzten Problem wieder mal so gut geholfen wurde, habe ich nun noch eins. Bei der Frage, wie ich den Benutzer dazu bringen kann, eine DB-Replik von einem bestimmten Server zu öffnen, wurde mir von ronka folgendes geraten:
@PostedCommand([FileOpenDatabase]; RichtigeServer : DbName )
Und mit einen @Command([FileCloseWindow]) sollte das aktuelle dann auch vorher geschlossen werden können.
Du kannst sogar noch ein schritt weiter gehen und den das Icon Ändern, entweder löschen oder umbenennen (andere server setzen) damit die es auf den Server auch nicht mehr öffnen könnten.
@PostedCommand([RenameDatabase]; @DbName ; S2 );
Mein Problem ist nun aber: Wo baue ich diese Befehle ein?
Meine DB öffnet beim Start eine Rahmengruppe, die zwei Ansichten enthält. Bisher habe ich versucht, der "richtige" Server über einen Wert in einem Parameter-Dokument zu setzen. Das Script dazu wird im PostOpen im DatenbankScribpt gestartet.
Server1 := @DbColumn("";"";"viewPar";;
Server2 := @Subset(@DbName;1);
@Prompt([Ok]; "Test"; Server1 + " - " + @DBName + " -");
@If(Server2 != Server1;
@Do(
@Command([FileCloseWindow]);
@PostedCommand([RenameDatabase]; @DbName; Server1);
@PostedCommand([FileOpenDatabase]; Server1:@Subset(@DbName;-1))
);
""
)
1. Problem: Der Wert von Server1 wird aus dem Parameter-Dokument ermittelt. Der Wert von Server2 bzw. @DBName leider nicht; das Feld bleibt leer. -> Das Script läuft ins IF.
2. Problem: Wenn die DB dann (von dem "alten Server, der auf dem Lesezeichen steht) geöffnet wird, dann gehen zwei Reiter auf: Der erste Reiter zeigt die untere Ansicht der Rahmengruppe, der zweite Reiter die komplette Rahmengruppe.
Irgendwie klappt das alles nicht so, wie ich möchte. Ich weiß aber auch nicht mehr weiter. Wäre toll, wenn ihr noch eine Idee habt.
Danke im voraus!
Frank