|
|
#1 |
|
Registrierter Benutzer
|
Stringübernahme in Schirmmaske ... wie programmiere ich die F4 Taste :-)
Ist es möglich einen String in die Schirmmaske zu übernehmen?
Beispiel: Nach erfolgloser Suche in "DOC" soll die suche in "VERTRAG" ausgeführt werden. Die "Vertragsnummer" aus "VERTRAG" soll dann übernommen werden. local str v=VERTRAG.Vsnr new docdaten keys enter docdaten with DOC !!! und dann Übernahme - DOC.Vsnr = v |
|
|
|
|
|
#2 |
|
Entwickler
|
Nicht bei ENTER nur mit KEYS GET !
Das heisst du mußt entsprechend folgendes machen: Code:
view daten = from datenbank use daten NEW DATEN ! -> Ganz Wichtig damit die Eingabefelder geleert werden daten.v = VERTRAG.Vsnr KEYS GET DATEN with MASKE |
|
|
|
|
|
#3 |
|
Registrierter Benutzer
|
Also ein wenig habe ich mich versucht, hat nicht geklappt, jedoch glaube ich nicht, dass das die Lösung für mein Problem ist.
Beim testen ist mir dann aufgefallen, dass es vermutlich etwas umfangreicher mit keys list sein muss. Folgendes möchte ich lösen: In meinem Dokumentenarchiv gebe ich das gespeicherte Dokument ein. Nun möchte ich es dem Vertrag zuordnen. Dazu habe ich in der Schirmmaske ein Feld mit VERTRAGSNUMMER (DVTR#) und Übereinstimmung zu VERTRAG.VERTRAGSNUMMER (VVTR#). Hier ist ja das bekannte OA-Problem, dass ich nicht noch einmal die Suchenfunktion nutzen kann. Folglich hätte ich nun gerne mit F4 ein kleines Untermenü aufgerufen, das letztlich die Suche in VERTRAG vornimmt und mit TASTE x oder auch RET die VERTRAG.VERTRAGSNUMMER (VVTR#) in die Spalte DOC.VERTRAGSNUMMER (DVTR#) übernimmt. Alternativ habe ich mir überlegt genügt die Suche in einen seperatem Fenster, um die korrekte Schreibweise der VERTRAG.VERTRAGSNUMMER zu finden. Mit Verlassen des Feldes DOC.VERTRAGSNUMMER könnte dies dann wieder geschlossen werden. Da hier die F4-Taste schlecht sein dürfte, da ja damit die Suche in den Übereinstimmungsfeldern vorgenommen wird dachte ich die Auswahl gleich mit einem Menü beim Einfügen eine neuen Dokumentes zu integrieren. Die Lösung für die fehlende F4-Taste bei Übereinstimmungen wäre ggf. die Bessere. |
|
|
|
|
|
#4 |
|
Entwickler
|
Du kannst aber innerhalb der Maske natürlich entweder F4 neu belegen oder einfach eine alternative Funktionstaste (F5,F6 etc...) innerhalb der Schirmmaske nützen um weitere Eingaben zuzulassen und damit neue Abfragen machen ?
|
|
|
|
|
|
#5 |
|
Registrierter Benutzer
|
Das ist nicht das Problem, nicht ganz klar ist mir wie ich die Variable vom einen view ins andere bekomme.
Habe als Haupt"VIEW" VIEW docdaten = FROM doc USE docdaten KEYS LIST docdaten ... :K_CHANGE: put in FENST1 at 1,1 KEYS display docdaten with doc :K_MENU: ... put in FENSTHILFE at 1,1 MENU VERTICAL "Suche Vertragsnummer in Vertragstabelle" VIEW vtrdaten = FROM vtr USE vtrdaten Code:
Hier hätte ich jetzt gerne ein Feld, um in der VERTRAG.VSNR zu suchen und mögliche Treffer als Liste angezeigt zu bekommen. Die auf den Cursor aktive VERTRAG.VSNR sollte dann mit RET oder F10 in das Feld DOCDATEN.D_VTR# übernommen werden. :K_UNDO: break end menu |
|
|
|
|
|
#6 |
|
Registrierter Benutzer
|
Hallo Rainer,
Dein "Such-View" lässt Du mit KEYS LIST anzeigen. Nun kann der Anwender blättern. Hat er den gewünschten Datensatz gefunden, kann er mit z.B. :K_DO: dies signalisieren. Dann musst den Wert aus VTRDATEN.VSNR nach DOCDATEN.D_VTR# übertragen. Da das VIEW DOCDATEN noch aktiv ist, kann die Übertragung direkt erfolgen. Dass müsste dann in etwa so aussehen: Code:
VIEW vtrdaten = FROM vtr USE vtrdaten KEYS LIST vtrdaten :K_DO: docdaten.d_vtr# = vtrdaten.vsnr :K_UNDO: !verlässte die Suche ohne Übernahme END KEYS USE vtrdaten END |
|
|
|
|
|
#7 |
|
Registrierter Benutzer
|
Schande,
habe gerade bemerkt, dass ich in meiner Erläuterung vom 25.04. das Einbinden in :K_Change: angegeben hatte. Vom Grundsatz her ja kein Problem, nur Übernimmt mir OA die VSNR nicht, sondern schließt die Schirmmaske und geht wieder auf LIST DOCDATEN Bis dato habe ich jetzt: HTML-Code:
:K_INS:
put in kabis2top at 1,1 "Neues Dokument erfassen" filled
put in kabis2 at 1,1
new docdaten
keys enter docdaten with doc
:K_DO: insert docdaten;
view docdaten = from doc order d_lfd#;
use docdaten; find docdaten bottom
:K_MENU:
screen hilfe
put in hilfet at 1,1 "Menu" filled
put in hilfe at 1,1
put at 5,2
MENU VERTICAL
:"VSNR aus Verträgen suchen":
view vtrdaten = FROM vtr
USE vtrdaten
KEYS LIST vtrdaten
:K_DO: docdaten.vsnr = vtrdaten.vsnr
:K_UNDO: !verlässt die Suche ohne Übernahme
END KEYs
USE vtrdaten END
END MENU
END SCREEN
:K_UNDO:
end keys
Allerdings habe ich mal K_SELECT getestet, mit dem der Vorgang ebenfalls abgebrochen wird. Dann würde ich vorher gerne noch eine SUCHVORGABE für die vtrdaten.vsnr machen. |
|
|
|
|
|
#8 |
|
Entwickler
|
Nein, der Fehler liegt an dem ENTER.
Code:
:K_INS:
put in kabis2top at 1,1 "Neues Dokument erfassen" filled
put in kabis2 at 1,1
new docdaten
docdaten.vsnr=neuer wert
keys display docdaten with doc
:K_DO: insert docdaten; |
|
|
|
|
|
#9 |
|
Registrierter Benutzer
|
display ist doch aber für die Darstellung der aktuellen Zeile.
Ich möchte jedoch einen neuen Datensatz in der Tabelle DOC anlegen. In der Schirmmaske habe ich DOC.VSNR (docdaten.vsnr) als Übereinstimmungsfeld zu VTR.VSNR (vtrdaten.vsnr). Hier möchte ich nun das bekannte OA-Problem (fehlende Suchfunktion mit F4 bei Übereinstimmungsfeldern) lösen. Folglich habe ich zwei view's und innerhalb des view's docdaten möchte ich nun bei der Eingabe eines neuen Datensatzes das eine Suche im view vtrdaten verwenden. |
|
|
|
|
|
#10 |
|
Entwickler
|
KEYS DISPLAY und KEYS ENTER machen beide das Gleiche - der einzige Unterschied besteht darin, daß KEYS ENTER die Schirmmaske leert. KEYS DISPLAY hingegen übernimmt sämtlichen Inhalt aus der aktuellen Zeile. KEYS ENTER leert jedoch beim ENTER bereits nochmals die Eingabemaske (ähnlich dem NEW DATEN) selbst wenn ich vorher einen bestimmten Inhalt definiert habe.
|
|
|
|