Spalten in Tabellen unsichtbar machen

7. November 2008 10:15

Hallo,

ich bin neu hier und auch neu in der Programmierung mit Nav 5.0. Ich brauche dringend hilfe.

Ich habe hier folgendes Problem:
- ich habe eine Form mit Benutzernamen Tabelle1 Profilnamen
- eine zweite Form mit einer Tabelle2 wo drin steht ob ein Benutzer Spalten sichtbar bzw. unsichtbar macht
Tabelle2 hat folgende Spalten: spaltenname := Text und sichtbar := boolean
- und ich habe ne dritte Form mit ner Tabelle3 in der die Spaltennamen von Tabelle2 als reguläre Spalten aufgeführt sind

mein Problem jetzt: ich möchte in Tabelle3 die Spalten ausblenden (wenn ich auf einen Buttondrücke) dabei müssen die Werte aus Tabelle2 mit sichtbar(false/true) berücksichtigt werden.

Leider kann ich nicht jede spalte einzeln ansprechen, es müssen auch mehrere Spalten ausgeblendet werden können. Array ist auch nicht gut da ich nicht weiß wieviele Spalten es sind in tabelle3

Ich hoffe es kann mir wer helfen bei meinem Problem.

MFG
Susann

Re: Spalten in Tabellen unsichtbar machen

7. November 2008 12:01

Tabelle1 wird nicht gebraucht. Die Information, ob jemand die Spalte sehen darf, muss in Tabelle2 vorhanden sein (also ist ein neues Feld her mit dem Benutzernamen; hier genannt "Benutzer").

Code:
//onOpenForm
Tabelle2.Setrange(Benutzer,USERID);
IF Tabelle2.FINDSET(FALSE) then
  REPEAT
    CASE Tabelle2.Spaltenname OF
      'Spalte1':
        currForm.Spalte1.visible := Tabelle2.sichtbar;
      'Spalte2':
        currForm.Spalte2.visible := Tabelle2.sichtbar;
     END;
  UNTIL Tabelle2.NEXT = 0;
Tabelle2.Setrange(Benutzer);


Habe das zwar jetzt nicht getestet, aber sollte funktionieren. Das Ganze muss natürlich in den onOpenForm-Trigger der Form mit der Tabelle3.

EDIT: Tut mir leid, du wolltest ja einen Button: Also musst du das Ganze auf den gewünschten Button legen (ich dachte du wolltest ein Sicherheitskonzept erstellen).

Ach ja: Ich bin im 2. Lehrjahr ;)

Re: Spalten in Tabellen unsichtbar machen

7. November 2008 12:06

Danke für deine Antwort. Ich werde das jetzt mal probieren. Hoffe es klappt auch.

Re: Spalten in Tabellen unsichtbar machen

7. November 2008 12:18

Problem: Ich weiß doch garnicht genau wieviele Spalten das sind da ist doch case ganz blöd oder??? Es sind ca. 300-400 verschiedene Spalten d.h. auch soviele Namen

Re: Spalten in Tabellen unsichtbar machen

7. November 2008 12:38

Ja das ist blöd, nur leider gibt es meines Wissens keine Möglichkeit Controls (zum Beispiel eine Spalte/Feld) über eine Variable anzusprechen.

array endlich???

7. November 2008 13:00

Kann ich nicht doch die Daten in nem array speichern? da meine Frage dazu gibt es arrays die unendlich groß sind???

MFG
Susann

Re: Spalten in Tabellen unsichtbar machen

7. November 2008 13:22

Die kannst du schon in einem Array speichern, aber es nützt nichts, da man ein Control einer Form nur über dessen Name ansprechen kann und nicht über eine Variable, und du so trotzdem pro Control, das ein-/ausgeblendet werden soll, einen eigenen Aufruf brauchst.

Maximale Größe eines Arrays: 10X1000000, wenn ich mich recht entsinne.

Re: Spalten in Tabellen unsichtbar machen

7. November 2008 13:36

Danke naja dann muss ich mir die Arbeit mit den case anweisungen halt machen. :cry:

Re: Spalten in Tabellen unsichtbar machen

7. November 2008 13:41

Wenn es darum geht, dass bestimmte Anwender bestimmte Daten nicht sehen dürfen, dann denk dran, dass man sich ausgeblendete Spalten wieder einblenden kann.

Re: Spalten in Tabellen unsichtbar machen

7. November 2008 14:05

Ich glaube nicht, dass es um Sicherheitsaspekte geht, denn sie hat angegeben, sie möchte es über einen Button steuern.

Hilft leider wirklich nichts. Ich würde den kompletten Case in eine Funktion schreiben.

Re: Spalten in Tabellen unsichtbar machen

7. November 2008 14:08

Ich wollt´s ja nur sagen. Nicht, dass die ganze Mühe nachher für die Katz war :wink: