[Gelöst]Subform: aufrufendes Form ermitteln?

28. Mai 2008 10:41

Hallöle,

ich bräucht mal wieder Informationen *seufz* ....

Folgendes Problem. Ich habe ein Mainform, aus welchem ich ein Subform aufrufe. Nun ist das Form der Subform aber ein relativ "generell" erinsetzbares Formular, welches ich je nach Aufruf entsprechend der Sichtbarkeit von Feldern modifizieren möchte. Gibt es eine einfache Möglichkeit, den Aufrufer , also Parent, zu bestimmen oder muss ich das doch eher über eine Funktion (die ich dann noch schreiben muss :) ) lösen?

LG

Carsten
Zuletzt geändert von CaddyM am 28. Mai 2008 14:04, insgesamt 1-mal geändert.

28. Mai 2008 10:54

Hi Caddy,

da du von einem Subform nicht auf die Mainform zugreifen kannst ist das generell nicht moeglich. Aber ich versuche noch etwas und melde mich dann nochmal :)

EDIT:
So, ich hab da was programmiert was funktioniert... ob dies nun aber eine moeglichkeit fuer deine Subform ist, ist was anderes!
Die SourceTable muesste Object sein :)

hab aber die Objekte (Form 60.000 - 60.002) mal mit angehangen!
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

28. Mai 2008 11:14

Kannst du mir das eventuell als Text exportieren? Ich hab schon Forms in dem Bereich :-/

28. Mai 2008 12:01

Natuerlich :)
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.

28. Mai 2008 12:21

Hallo,

nee, das geht nicht :-/
damit ich das importieren darf, musste ich erst die ID's in den Bereich legen, den ich bearbeiten darf, und dann meckert er mir beim kompilieren noch jeweils die Zeilen mit

SubFormView=WHERE(ID=CONST(50084))

an. Naja - ich habs mittlerweile über eine Funktion, die ich dann eben kurz beim aktivieren aufrufe, gelöst. Wenn ich etwas mehr Zeit habe poste ich die nachher. Danke jedenfalls

EDIT: So, hier mein Lösungsweg

Ich setze da auf 2 Funktionen. Die eine stellt die Standardwerte her:
Code:
fnStandardsicht()
      CurrForm.txtDatumString.VISIBLE(FALSE);
      CurrForm.txtPersNr.VISIBLE(TRUE);
      // was immer man anzeigen / verstecken möchte
            geoeffnet := TRUE;


Die andere Funktion nutze ich dann im übergeordneten Form, um festlegen zu können, was bei welcher übergeordneten Form angezeigt werden soll. aufgerufen wird die Funktion im onActivate des Subformcontrols:

Code:
fnSichtmodus(parModus : Code[10])
// ************************************************************************
// ***** Funktion zum Modifizieren der Anzeige der Spalten in der Textbox
// ***** Je nach Parameter werden die für den Verwendungszweck unnötigen
// ***** Zeilen ausgeblendet
// ************************************************************************

IF NOT angepassteSicht THEN BEGIN
  CASE parModus OF
    'MAMONATZA' :
      BEGIN
        CurrForm.txtDatumString.VISIBLE(TRUE);
        CurrForm.txtPersNr.VISIBLE(FALSE);
        (.....)
      END;
    ELSE BEGIN //Standardeinstellung
      fnStandardsicht;
    END;
  END;
  angepassteSicht := TRUE;
END;

die Variable "angepassteSicht" sorgt dafür, dass nur beim ersten aktivieren der Code durchlaufen wird. Ist noch nicht wirklich fertig aber es funktioniert. Und langsam gewöhne ich mich auch an das "vonhintendurchdieBrustinsAuge" - Coden ^^. Somit für mich:

GELÖST!

28. Mai 2008 14:13

*g* denke das meine Möglichkeit auch keine gute Lösung gewesen waere.

haettest aber Strg+H "CONST(50084)" durch "CONST([Deine ID])" ersetzen koennen :)

aber naja, laeuft ja :)

28. Mai 2008 14:16

Hatte ich ja ersetzt - begriffen wieso er am meckern war habe ich auch nicht wirklich (aber das habe ich eigentlich auch schon aufgegeben ^^)