Falls Du das Verbergen des Designs und damit das Nichtanzeigen der Felderliste als Sicherheitsfeature nutzen willst, um nicht berechtigten Usern den Einblick in die Feldinhalte zu verwehren (weil Du vielleicht im Dokument die Felder mittels
eines zugriffsgesteuerten Abschnitts (Quatsch) einer Verbergeformel geschützt hast), vergiss es.
Ein Dokument in einer Datenbank mit verborgenem Design zeigt nicht die Felderliste. Aber: Kopiert in eine andere Datenbank mit offenem Design (z.B. der persönlichen Maildatenbank) sind die Felder wieder sichtbar.
Wenn das mit $KeepPrivate so funktioniert (ich hab das noch nicht probiert, glaube aber alles, was Roland sagt
), ist das zwar eine Hürde (das Dokument kann dann nicht kopiert werden), aber ein Autor auf dem Dokument entfernt mit einem simplen Smarticon oder einem Agenten das Feld, und alles ist wieder offen.
Oder man erstellt sich einen kleinen Agenten, der alle Felder des Dokuments ausliest (Forall item in doc.Items ...), dann reichen auch Leserechte (der Agent muss ja nicht in der gleichen Datenbank sein. Lokale Datenbank erstellen, Agent erstellen, fertig. Dazu braucht man noch nicht einmal einen Designer).
Wenn Du wirklich schützenswerte Daten hast, kannst Du das nur über Leserfelder in Dokumenten erreichen, Teilinformationen in allgemein sichtbaren Dokumenten musst Du dann auslagern.
Beispiel: Du hast Mitarbeiterdokumente, die jeder lesen kann. Darin enthalten sind die Gehaltsdaten, die nicht jeder lesen darf. Sind die Daten im Mitarbeiterdokument, gibt es keine sichere Methode, die zu schützen. Unwissenheit der "gewöhnlichen" Benutzer ist kein Schutz. Einzige wirklich funktionierende Lösung ist, die Gehaltsdaten in ein separates Dokument auszulagern, dieses Dokument mittels Leserfeld zu schützen und die Daten berechnet zur Anzeige (!!!) im Mitarbeiterdokument anzuzeigen. Berechtigte Benutzer sehen dann die Gehaltsdaten, nicht berechtigte nicht.