Archiv des Intrexx Live! Forums

Hier sehen Sie die Foreneinträge aus dem Intrexx Live! Forum. Bis November 2016 war es das Forum für alle Fragen rund um die Software Intrexx von United Planet.
Seit November 2016 gibt es ein neues moderiertes Forum, das Intrexx Community Forum. Nutzen Sie bitte unbedingt dieses für aktuelle Fragen, Antworten und Informationen.

Wichtig: Dieses Forum dient als Archiv. Die Einträge beziehen sich oft auf ältere Versionen von Intrexx und entsprechen nicht mehr den aktuellen technischen Gegebenheiten.
Daher sollten alle Inhalte ausschließlich von Experten genutzt werden. Bei unsachgemäßer Anwendung kann es zu zeitaufwändigen Problemen oder Datenverlust kommen.
Übersicht > Intrexx Professional: Programming > Probleme mit IE 11, Auswahlliste und Javascript-Ausführung

Probleme mit IE 11, Auswahlliste und Javascript-Ausführung

Hallo,

folgendes Problem habe ich festgestellt:

Ich habe auf einer Eingabeseite eine Auswahlliste (dropdowncontrol).

Im onFocus der Auswahlliste führe ich folgendes JavaScript aus:

function pruefeStatus2(){

var fibuGebucht = Browser.getValue(getElement("953DE980B5F963E3324809590864D75D4F75FE3B")); /*Beleg In FiBu Gebucht ? checkcontrol*/

if (fibuGebucht == 1) {
alert("Der Beleg ist bereits in der Fianzbuchhaltung gebucht, es sind keine Änderungen mehr möglich.\n\nSie können den Beleg nur noch drucken oder kopieren !");
}
return true;
}


Die Abfrage funktioniert beim Firefox super, die Meldung wird auch ausgegeben, auch wenn ich wiederholt darauf Klicke bzw. den Focus darauf lege, siehe auch Video Firefox_OK.avi im Zip-File.

Beim IE11 hingegen funktioniert dies nur beim ersten mal ! Sobald ich direkt wieder darauf klicke bzw. den Fokcus darauf lege kann ich jedoch einen Eintrag
auswählen, siehe auch Video IE11_Nicht_OK.avi im Zip-File.
30.06.2016 07:26 von AndreR
also wenn ich das im IE11 mache, dann muss ich immer erst einmal den Focus weg nehmen und dann kommt beim erneuten klick wieder die Meldung.
Ih würde aber zur Abfrage der Checkbox das so machen
function pruefeStatus2(){
var fibuGebucht = getElement("953DE980B5F963E3324809590864D75D4F75FE3B"); /*Beleg In FiBu Gebucht ? checkcontrol*/
if (fibuGebucht.checked) {
alert("Der Beleg ist bereits in der Fianzbuchhaltung gebucht, es sind keine Änderungen mehr möglich.\n\nSie können den Beleg nur noch drucken oder kopieren !");
}
return true;
}

ist die Checkbox schon beim laden der Seite gefüllt oder macht man das erst auf der Seite?
Wäre es nicht geschickter beim Setzten des Häkchens das Dropdown-Feld z.B. auszublenden oder sowas?
01.07.2016 08:02 von falkh
also wenn ich das im IE11 mache, dann muss ich immer erst einmal den Focus weg nehmen und dann kommt beim erneuten klick wieder die Meldung.
Ih würde aber zur Abfrage der Checkbox das so machen
function pruefeStatus2(){
var fibuGebucht = getElement("953DE980B5F963E3324809590864D75D4F75FE3B"); /*Beleg In FiBu Gebucht ? checkcontrol*/
if (fibuGebucht.checked) {
alert("Der Beleg ist bereits in der Fianzbuchhaltung gebucht, es sind keine Änderungen mehr möglich.\n\nSie können den Beleg nur noch drucken oder kopieren !");
}
return true;
}

ist die Checkbox schon beim laden der Seite gefüllt oder macht man das erst auf der Seite?
Wäre es nicht geschickter beim Setzten des Häkchens das Dropdown-Feld z.B. auszublenden oder sowas?

Hallo,

ja, wenn man den Focus wegnimmt und erneut setzt funktioniert es. Auch wenn ich es nicht im onFocus, sonder onClick mache erziele ich das gleiche (schlechte) Ergebnis.

Die Checkbox ist bereits gefüllt wenn die Eingabeseite aufgerufen wird.

Dieser Status wird von einer anderen Eingabeseite innerhalb der Finanzbuchhaltung gesetzt, der User selber hat darauf keinen Einfluss.

Er soll in diesem Fall keine Felder mehr modifizieren können. Bei den Textfeldern habe ich readOnly per Javascript gesetzt, das funktioniert.

Bei der Auswahlliste gibt's diese Eigenschaft nicht.

Generell könnte ich auch alles Editierbar lassen, nur das Speichern unterbinden. Aber dann tippt der User erst fleissig und wundert sich wo seine neuen Infos sind,
das wäre unsauber.

.checked ist natürlich besser !

Danke für die Hilfe !
01.07.2016 08:29 von AndreR
man kann ein Dropdown-element nicht readonly setzen aber man kann es deaktivieren, da du eh nicht speicherst.
ich würde im onload das Häcken abfragen und dann entsprechend das Droopdown deaktivieren
getElement("8ED20BD2A4656D6504C86D1562F1A66CEBDD8220").disabled = true; /* dropdowncontrol*/

01.07.2016 08:38 von falkh
man kann ein Dropdown-element nicht readonly setzen aber man kann es deaktivieren, da du eh nicht speicherst.
ich würde im onload das Häcken abfragen und dann entsprechend das Droopdown deaktivieren
getElement("8ED20BD2A4656D6504C86D1562F1A66CEBDD8220").disabled = true; /* dropdowncontrol*/

Hallo,

disabled funktioniert........aber......


....da ich beim Drucken noch speicher (um das letzte Druckdatum festzuhalten) gibt's ne Menge Fehler.

Auch habe ich eine Kopierfunktion, die eine Speichern-Aktion benötigt.

Vielen Dank für die Hilfestellung, denke muss das Konzept nochmal überdenken, oder den IE verbieten !
01.07.2016 09:38 von AndreR
Ja das ist das Problem beim disablen, es wird nicht mit gespeichert.

mir würde noch die unschöne Variante einfallen, einfach mit Javascript im Onload der Seite das Drowdownfeld ausblenden und eine Ansichtsfeld, welches aufs dropdown zeigt einblenden oder über die Bedingte anzeige eine Gruppe das Ganze in Velocity machen
01.07.2016 09:51 von falkh
Ja das ist das Problem beim disablen, es wird nicht mit gespeichert.

mir würde noch die unschöne Variante einfallen, einfach mit Javascript im Onload der Seite das Drowdownfeld ausblenden und eine Ansichtsfeld, welches aufs dropdown zeigt einblenden oder über die Bedingte anzeige eine Gruppe das Ganze in Velocity machen

Hallo,

ich habe mich jetzt auch für die unschönere, aber funktionalere Variante entschieden.

Dazu habe ich die 3 betroffenen dropdowncontrols gruppiert. Ist der Status gebucht = Ja blende ich diese Gruppierung mit VTL aus.

Zusätzlich habe ich 3 schreibgeschützte DummyEingabefelder (passen besser ins Layout) mit den entsprechenden DB-Feldern verknüpft und auch gruppiert.

Ist der Status gebucht = Ja blende ich diese Gruppierung mit VTL ein.

Somt kann ich gewährleisten das die angezeigten Werte nicht mehr modifizierbar sind wenn der Status Gebucht = Ja ist.

Da ich aber einen Teil dieser Felder zur Steuerung des Belegdrucks verwende musste ich per Javascript diesen Modus noch etwas anpassen, indem ich auch die Dummy-Eingabefelder auslese
und in meine If-Struktur integriert habe.

Wie Du schon geschrieben hast, nicht so schön. aber funktioniert.

Vielen Dank für die Mithilfe.

PS:

Habe aber bzgl. des auslösenden JavaScript-Problems ein Ticket bei UP eingestellt.
04.07.2016 09:18 von AndreR
Zurück | Alles über Intrexx | Impressum | Datenschutzerklärung

Über United Planet
© 2019 United Planet GmbH
Schnewlinstraße 2
79098 Freiburg