8. November 2011 13:15
Hallo zusammen,
es gibt mal wieder ein kleines RTC - Problem in einer Page.
Hier sollen Spalten
variabel ein- und ausgeblendet sein.
Beim Aufruf der Page wird dann eine boolsche Variable gesetzt.
In den Properties des Feldes setze ich dann den Wert Visible und den Wert Enabled auf diese zugewiesene Variable.
Starte ich nun die Page und lasse mir über ein Message den Wert der Variable ausgeben, ist das ganze auch wunderbar. Die Anzeige jedoch streikt und zeigt mir das Feld einfach mal kategorisch gar nicht an.
Im Classic wird das ganze über CurrForm.Feldname.Visible(Variable); gesteuert und funktioniert wunderbar.
Im Anhang findet sich noch einmal ein Screenshot von Classic Client, RTC und den Properties.
Weiß irgendjemand, wie das zu lösen ist?
Danke und Grüße
Andree
Du hast keine ausreichende Berechtigung, um die Dateianhänge dieses Beitrags anzusehen.
8. November 2011 14:07
Erstelle erst einmal eine neue Variable (mit Eigenschaft IncludeInDataset = Yes) und setze diese für die Eigenschaft Visible ein.
Wo setzt du die Variable? Nimm mal OnOpenPage.
8. November 2011 14:37
Hallo Natalie,
die Variable "EnableAssociation" hat die Eigentschaft IncludeInDataset = Yes.
Des Weiteren wird die Variable "EnableAssociation" auf dem Trigger OnOpenPage berechnet.
Ich habe auch schon versucht diese onInit auf "TRUE" zu setzen. Aber leider auch ohne Erfolg.
8. November 2011 14:39
Hallo,
wird es im Code vielleicht im Nachhinein übersteuert?
Gruß
Aydin
8. November 2011 14:52
Hey,
nein das Feld wird in diesem Beispiel auf "TRUE" gesetzt (OnOpenPage). Danach wird die Variable nicht weiter verwendet.
Ich habe auch schon mit einigen Message-Boxen Abfragen zu verschiedenen Zeitpunkten gemacht -> Die Variable ist und bleibt auf "TRUE".
Nehme ich das Visible auf die Variable raus, wird das Feld auch direkt immer angezeigt. (Also nicht irgendwie ein grundsätzliches Problem mit dem Feld / der Page)
8. November 2011 15:07
Schau dir im Service Setup das Feld Fault Reporting Level an und die entsprechende Service Item Line Page im Service bereich. Da wird es im Standard entsprechend gelöst. (z.B. Fault Symptom Code)
8. November 2011 15:18
Verwendest du zufällig 2009 SP1 mit Build höhler als 30151?
Wenn ja, ist dieser
Client-Fix für dich interessant.
8. November 2011 15:29
Gibts da nicht die Fusion mit R2 Buildnummern? Ich habe Build 32441 bzw 32657 und alles funktioniert. (Aufgrund der Buildnummer erkennt man das R2)
8. November 2011 15:38
JanGD hat geschrieben:Gibts da nicht die Fusion mit R2 Buildnummern?
Grundsätzlich schon, aber diese Bemerkung war lediglich Inhalt des Artikels.
8. November 2011 15:58
Hallo Natalie,
NAV 2009 SP1 stimmt, die Build-Nummer sagt mir folgendes:
---------------------------
Microsoft Dynamics NAV Classic
---------------------------
Build 29626
---------------------------
OK
---------------------------
Und die Anzeige im Service-Bereich funktioniert einwandfrei. Ich kann aber keinerlei Unterschiede erkennen:
--- Variable vom Typ Boolean
--- IncludeInDataset = TRUE
--- Setzen des Wertes auf Trigger "OnOpenPage"
--- Property im Feld "Visible" mit Variablenname gesetzt
Zuletzt geändert von EDING am 8. November 2011 16:06, insgesamt 1-mal geändert.
8. November 2011 16:04
Das ist das "normale" SP1 ohne Updates. Passt also auch nicht zum Artikel ... schade.
Aber nochmal: Hast du es mal mit einer neuen Variable statt der vorhandenen versucht?
8. November 2011 16:06
Ja auch eine neue Variable brachte keinen Erfolg. Ich habe einfach mal "Show" genommen und diese OnOpenPage auf TRUE gesetzt. Anzeige war erfolglos. =(
8. November 2011 16:16
Nur zur Sicherheit: Zeig doch mal deinen Code dazu (Immernoch OnOpen, richtig?)
8. November 2011 16:40
OnOpenPage
- Code:
SetActData(GenJnlLineFirst,RealPercent,UserInput,CheckDate,KeepDifference,AppDate,AppCurrCode,AmtRndPrec);
IF GenJnlLineFirst."Account Type" = GenJnlLineFirst."Account Type"::Customer THEN
CustomerInit
ELSE
IF GenJnlLineFirst."Account Type" = GenJnlLineFirst."Account Type"::Vendor THEN
VendorInit
Da es sich in diesem Beispiel um einen Debitor handelte, hier noch die Funktion: CustomerInit
- Code:
IF NOT OPplusExtEnabled THEN BEGIN
EnableAssociation := FALSE;
EnableCVSettling := FALSE;
END ELSE BEGIN
EnableAssociation := Cust."Association No." <> '';
IF Cust."Association No." <> '' THEN
IF Association.GET(Association.Type::Customer,Cust."Association No.") THEN BEGIN
AssocName := DELCHR(Association.Name,'<>') + ' ' + Association."Name 2";
AssocNo := Association."No.";
END;
CustGetCVSettling(EnableCVSettling);
END;
Dann findet die Variable "EnableAssociation" keine Verwendung mehr.
8. November 2011 16:45
Hast du gedebuggt, ob der das Programm überhaupt bis
- Code:
EnableAssociation := Cust."Association No." <> '';
kommt und dann TRUE ergibt?
8. November 2011 16:50
Ja, der Code wird angesprochen und Ja, es wird ein TRUE zurückgegeben.
Aber auch das harte codieren auf "TRUE" hatte ja leider nichts gebracht.
Ich habe es in einer anderen Page bei einem anderen Feld mal probiert -> da funktionierte das hin und her schalten zwischen der Sichtbarkeit.
Muss eventuell die Page irgendwelche besonderen Anforderungen erfüllen?
8. November 2011 17:04
Du musst evtl. in der Tabelle "User Metadata" deine User spezifischen Einträge löschen.
Vielleicht ist da etwas gespeichert und führt nur das aus.
Und den Dienst mal neu starten, löst einige Probleme:-)
Gruß
Aydin
8. November 2011 17:08
Langsam verzweifle ich hier ...
Auch das neustarten des Dienstes brachte keine Veränderung
8. November 2011 17:09
Schau dir nochmal meinen letzten Beitrag an.
8. November 2011 17:15
Ich hab das ganze mit dem Standard verglichen.
Im Service-Bereich funktioniert das Ganze auch einwandfrei ohne Probleme.
Auch die Logik unterscheidet sich absolut nicht. Nur das Ergebnis ist unterschliech -> im Standard-Bereich funktioniert es.
Deswegen überlegte ich auch schon, ob die Page nicht irgnedwelche Anforderungen haben muss, damit das funktioniert. (bestes Beispiel: Task und List verhalten sich völlig unterschiedlich)
Diese Page wird aus einer anderen Page heraus aufgerufen:
- Code:
CLEAR(ExtendedApply);
ExtendedApply.SetLine(GenJnlLine,Account);
ExitState := ExtendedAppbly.RUNMODAL;
RestAmount := ExtendedApply.GetRest;
CLEAR(ExtendedApply);
Die Variable ExtendedApply ist als "Form" definiert. Sollte eigentlich aber nicht stören, ODER?!
8. November 2011 17:20
Von wo die Page aufgerufen wird sollte nicht stören.
Hast du die EInträge in der Tabelle "User Metadata" gelöscht?
und den Dienst neugestartet?
8. November 2011 17:23
User Metadata habe ich nicht gelöscht; lediglich die Objektmetadata (soweit ich weiß sind nur diese relevant)
Dienst wurde auch neu gestartet.
Leider brachte auch das beides keinen Erfolg .
8. November 2011 17:31
Nein in der User Metadata werden die persönlichen Anpassungen gespeichert, also die sind auch relevant.
Such mal in der Tabelle nach Page ID, ob da Anpassungen von deiner Seite gemacht wurden.
9. November 2011 08:31
So guten Morgen,
ich habe soeben User Metadata & Objektmetadata gelöscht, die Page neu kompiliert und den Dienst neugestartet.
Das Feld wird weiterhin nicht eingeblendet, obwohl die Variable definitiv auf "TRUE" steht.
9. November 2011 09:40
Zwei weitere, blöde Fragen
1. Ist das gesuchte Feld vielleicht irgendwo viel weiter rechts als erwartet sichtbar?
2. Lässt sich die Spalte nachträglich durch den Benutzer einblenden; ist sie auswählbar?
Powered by phpBB © phpBB Group.
phpBB Mobile / SEO by Artodia.