| | | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Autodesk Produkte | | | | PNY baut sein Angebot für den Vertrieb von NVIDIA Software-Angeboten für Reseller und professionelle Anwender aus |
Autor
|
Thema: Ändern/ Neu Dialog bearbeiten (733 mal gelesen)
|
veydan Mitglied
Beiträge: 252 Registriert: 29.05.2008 AutoCAD/Mechanical 2009, Inventor 2009
|
erstellt am: 30. Jul. 2009 13:27 <-- editieren / zitieren --> Unities abgeben:
Hallo! Ich habe den Dialog zum ändern bzw neu anlegen von Konstruktionsdokumenten so weit abgeändert, dass er bei eingabe eines bestimmten Wertes (Ändern) aus einer fixen Liste (die nur den einen Wert enthält) eine dbp Funktion aufruft. In dieser Funktion wird eine .NET dll Funktion aufgerufen in der der User den Wert des PSP Datenbankfeldes festlegen kann. Fragt nicht warum, es ist nunmal so ;-) Die Funktion schreibt dann den Wert in eine Variable und in der Funktion wird der Recordbuffer ___Current___ aktualisiert, sodass der Wert auch dort drinnen steht. Was ist jetzt dass Problem. Wie bringe ich den Wert der Variable im Dialog in die Combobox rein? Bei
Code: ___RecordBuffer ( set __CURRENT__ "APS_PART_TITLE=$(WRI_PART_TITLE)" );
schreibt er den Wert in den RecordBuffer rein. ABER in der Combobox steht noch mein ursprünglich ausgewählter Eintrag (Ändern) mit
Code: ___RecordBuffer(update __CURRENT__);
wird der Wert schon in die Datenbank geschrieben (zumindest aktualisiert sich bei mir im Hintergrund das Feld beim Datensatz mit dem Neuen. Schließe ich jetzt das Fenste rohne zu speichern steht trotzdem der NEU ausgewählte Wert drinnen. Ist zwar nicht der Regelfall, dass das Fenster ohne speichern geschlossen wird, aber dass sollte nicht passieren. was mache ich da falsch? Ein weiterer komischer Fall ist, dass beim Neu anlegen eines Dokumentes, meine .NET Funktion wunderbar funktioniert (Einstellungen des PSP Dialoges übernimmt er ja vom Ändern Dialog) ABER er aktualisiert mir meinen RecordBuffer nicht ??? Sprich auch mit
Code: ___RecordBuffer(update __CURRENT__);
Wird der neue Wert nicht angezeigt...warum? EDIT: Vl. zum besseren Verständnis, ich will nur, dass meine EditDialog Felder aktualisiert werden, aber mit update schient dass nicht zu funktionieren, sprich alle Werte vom Buffer neu in die Dialog Felder schreiben. mfg
[Diese Nachricht wurde von veydan am 30. Jul. 2009 editiert.] [Diese Nachricht wurde von veydan am 31. Jul. 2009 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
veydan Mitglied
Beiträge: 252 Registriert: 29.05.2008 AutoCAD/Mechanical 2009, Inventor 2009
|
erstellt am: 31. Jul. 2009 07:57 <-- editieren / zitieren --> Unities abgeben:
so, falls es jemand braucht habe es jetzt so gelöst mit folgendem Code und der Feldeinstellung editierbare Auswahlliste Code:
___RecordBuffer ( set __CURRENT__ "APS_PART_TITLE=$(WRI_PART_TITLE)" ); ForceGuiRefresh; ___RecordBuffer ( set __CURRENT__ "APS_PART_TITLE=$(WRI_PART_TITLE)" );
Steht der Wert dann im Record Buffer und in der Maske drinnen. Warum ein zweites set? nach dem ForceGuiRefresh steht zwar der Wert in der Maske aber irgendwie nicht mehr im RecordBuffer.Wählt man bei den Feldeinstellungen nur Auswahlliste, klappt dass mit dem reinschreiben ins Feld nicht, da löscht er den Wert immer wieder raus... Wahrscheinlich wird da überprüft ob der Wert in der Auswahlliste ist, da dieser aber von einer anderen Quelle kommt und nicht in der Maskenliste drinnen ist, löscht er ihn vermutlich. Also editierbare Auswahlliste verwenden! mfg
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
| Anzeige.:
Anzeige: (Infos zum Werbeplatz >>)
|