Detailbereich wird zwangsunsichtbar gemacht
Jörn Maas
Hallo,folgende Situation:
Ich habe einen Detailbereich namens Commission mit einer Textbox und folgendem Code in deren Scriptbereich:
If GetData("LD.Par.FormType")="142" Then 'Bestellung (Purchase Order)
If DocumentRow("Project") <> "" Then
textBox83.value = "A"
Else
' Dies auskommentieren damit es korrekt läuft
Commission.visible = False
End If
Else
Commission.visible = False
End If
Das interessante ist nun: Wenn ich wie im Quelltext kommentiert die Zuweisung im ELSE Zweig der If Abfrage auskommentiere, dann wird das A angezeigt, ansonsten nicht.
Theoretisch wird der Else Teil also IMMER ausgeführt?
Mache ich hier irgendwo einen Gedankenfehler???
Ich benutze die neuste Version (1.52) vom Designer
Gruß
Jörn
Manuel Marhold
Hi Jörn,ich habe das mit dem visible per Code umstellen bisher so verstanden:
Wenn in den Eigenschaften "False" hinterlegt ist, du aber im Code eine Anweisung hast, sodass die erste Position Visible=true gesetzt hat, dann wird die 2. Position auch angezeigt, sofern diese nicht explizit auf Visible=False gesetzt wird.
Also mein Vorschlag:
Commission.visible = False
If GetData("LD.Par.FormType")="142" Then 'Bestellung (Purchase Order)
If DocumentRow("Project") <> "" Then
textBox83.value = "A"
Commission.visible = True
End If
End If
Falls die TextBox auch noch bei anderen Bedingungen Visible=True haben muss, musst du das da noch einbauen.
Gruß
Manuel
Jörn Maas
Hallo Manuel,ich habe den Code einmal exportiert und einmal speziell nach allen Referenzen auf Commission untersucht. Die einzige Stelle an der auf Commission referenziert wird ist im Definitionsteil selber (siehe XML-Code). Es ist also auszuschließen, daß der Detailbereich durch eine andere Aktion versehentlich ausgeblendet wird.
Der von Dir vorgeschlagene Code führt ebenfalls dazu, daß das Feld IMMER ausgeblendet wird. Ich gehe mittlerweile von einem Bug im Designer bzw. Interpreter aus, da der folgende Code im Value Bereich der Textbox das gewünschte Ergebnis liefert (hier mit den entgültigen Spaltenbezeichnungen):
iif ( _
GetData("LD.Par.FormType") = "142", _
iif (DocumentRow("Project") <> "", _
iif (DocumentRow("U_techPos") <> "", _
"Com.: " & DocumentRow("Project") & "-" & DocumentRow("U_techPos"), _
"Com.: " & DocumentRow("Project")), _
False), _
False)
If DocumentRow("Project") <> "" Then
If DocumentRow("U_techPos") <> "" Then
textBox83.value = "Com.: " & DocumentRow("Project") & "-" & DocumentRow("U_techPos")
Commission.visible = True
Else
textBox83.value = "Com.: " & DocumentRow("Project")
Commission.visible = True
End If
End If
End If
" StyleName="RowContent" GrowToBottom="true" Name="textBox83" Size="838.58270263671875;47.244094848632812">
An dieser Stelle habe ich mir mit diesem "Workaround" zwar helfen können, aber vielleicht könnt ihr das Problem nachstellen?
Gruß
Jörn
Manuel Marhold
Hi Jörn,versuche doch mal die einzelnen Bereich der If Else Then-Abfrage mit MsgBox zu versehen, um nachzuvollziehen, wo der mit den Abfragen reinläuft:
Commission.Visible = False
MsgBox (Commission.Visible)
If GetData("LD.Par.FormType")="142" Then 'Bestellung (Purchase Order)'
MsgBox("Bestellung")
If DocumentRow("Project") <> "" Then
MsgBox("'Project' gefüllt")
If DocumentRow("U_techPos") <> "" Then
MsgBox("'U_techPos' gefüllt")
textBox83.Value = "Com.: " & DocumentRow("Project") & "-" & DocumentRow("U_techPos")
Commission.Visible = True
Else
MsgBox("'U_techPos' nicht gefüllt")
textBox83.Value = "Com.: " & DocumentRow("Project")
Commission.Visible = True
End If
Else 'Nur zum "debuggen"'
MsgBox("'Project' nicht gefüllt")
End If
End If
MsgBox (Commission.visible)
Gruß
Manuel
Jörn Maas
Hallo Manuel,ich habe als Pic1 und Pic2 die beiden Ergebnisse angehangen.
Pic1 ist die Version wie es (fast) aussehen soll (mit meinem "neuen" workaround Code), Pic2 zeigt die Varianten wo im "GenerateScript" Teil mit Visible gearbeitet wird.
Die MessageBoxen brachten für das Beispiel die Ausgaben:
False, Bestellung, 'Project' gefüllt, 'u_techPos' gefüllt, True
False, Bestellung, 'Project' nicht gefüllt, False
Die beiden "False" in meinem Codebeispiel aus meinem Vorposting für den Value Bereich müssen übrigens durch "" ersetzt werden, sonst steht für den zweiten Datensatz dort logischerweise "False".
Viele Grüße
Jörn
Attachment
[url=http://www.coresystems.ch/wp-content/../wp-content/forum-file-uploads/jornmaas/pics.zip]pics.zip[/url]
Manuel Marhold
Hi Jörn,okay, das ist komisch, aber probiere mal das hier:
Commission.Visible = False
If GetData("LD.Par.FormType")="142" Then 'Bestellung (Purchase Order)'
If DocumentRow("Project") <> "" Then
If DocumentRow("U_techPos") <> "" Then
textBox83.Value = "Com.: " & DocumentRow("Project") & "-" & DocumentRow("U_techPos")
Commission.Visible = True
Else
textBox83.Value = "Com.: " & DocumentRow("Project")
Commission.Visible = True
End If
End If
End If
textBox83.Visible = Commission.Visible
Gruß
Manuel
Jörn Maas
Hi Manuel,sorry. Gleiche Situation:
False, Bestellung, 'Project' gefüllt, 'u_techPos' gefüllt, True
False, Bestellung, 'Project' nicht gefüllt, False
Bild wieder wie bei Pic2. Ich glaube hier wäre jetzt ein :bang: angebracht...
Gruß
Jörn
P.S.: Gibt es auch eine Möglichkeit, Bilder "direkt im Text" zu plazieren? Ich habe zwar die "Tags" dafür (Bild), aber habe nicht herausgefunden wie ich eine lokale Datei hierein "hochladen" kann.
Manuel Marhold
Hi Jörn,kannst du mir das Formular mal zuschicken??
Was meisnt du mit Bild im text??
Gruß
Manuel
Manuel Marhold
Hi Jörn,wie folgt klappt es bei mir:
Detail "Comission":
-> CanGrow=True
-> CanShrink=True
-> Visible=True
-> Keine Bindings, kein Script
TextBox "textBox83":
-> CanGrow=True
-> CanShrink=True
-> Visible=True
-> Keine Bindings
-> GenerateScript:
textBox83.Value=""
If GetData("LD.Par.FormType")="142" Then 'Bestellung (Purchase Order)'
If DocumentRow("Project") <> "" Then
If DocumentRow("U_techPos") <> "" Then
textBox83.Value = "Com.: " & DocumentRow("Project") & "-" & DocumentRow("U_techPos")
Else
textBox83.Value = "Com.: " & DocumentRow("Project")
End If
End If
End If
Gruß
Manuel
Jörn Maas
Hallo Manuel,[quote]Detail "Comission":
-> CanGrow=True
-> CanShrink=True
Im Detail-Bereich das Attribut CanShrink auf True zu setzen war des Rätsels Lösung. :P
Danke für die schnelle und kompetente Hilfe!
Gruß
Jörn
0
Please sign in to leave a comment.
Comments
0 comments