PDA

View Full Version : DSPF Feld switchen zw. Anzeige und Bearbeitung



Seiten : [1] 2

andreaspr@aon.at
27-01-10, 08:28
Hallo,

ich habe eine Frage zu den Felddefinitionen im DSPF.
kann ich in einem Record ein Feld so definieren, dass dieses Feld mit *in70=*on als B (Ein/Ausgabe) und bei *in71=*off als O (Ausgabe) definiert ist.

es darf nämlich bei *in70=*off auch kein F4 auf dem Feld mehr erlaubt werden.

danke schon mal!
lg Andreas

Fuerchau
27-01-10, 08:36
Mit DSPATR(PR) und Bezugszahl kann man ein Feld schützen.
F4 musst du aber im Programm selber abfangen, da Tasten nicht feldspezifisch definiert werden können.

kitvb1
27-01-10, 09:00
z.B. im DDS:
A N56 CF08(08 'F8=Update.')
nur wenn *in56 = *off, darf F8 gedrückt werden.

andreaspr@aon.at
27-01-10, 09:03
danke für die rasche antwort.
das habe ich auch schon versucht. ist aber für mich keine schöne lösung, da ich eigentlich im dspf allein die steuerung hinterlegen wollte.

danke trotzdem!

andreaspr@aon.at
27-01-10, 09:08
z.B. im DDS:
A N56 CF08(08 'F8=Update.')
nur wenn *in56 = *off, darf F8 gedrückt werden.

diese lösung geht bei mir leider auch nicht, da ein F4 auf mehreren feldern ausgelöst werden kann.

ist ein benutzerverwaltungs-pgm und der user soll auf bestimmte felder nicht zugreifen können (auch kein F4 für auswahllisten), wenn er keine berechtigung hat.

cbe
27-01-10, 09:28
Hallo Andreas,

ich habe die F-Tasten bisher immer so verstanden, dass sie für die gesamte Seite gelten, unabhängig wo der Cursor steht.
Und für irgendwelche feldbezogene Steuerung ist immer das Programm verantwortlich.
Ist das nicht mehr so?

Wie erkennst du denn, wo die F4 gedrückt wurde?

Gruß, Christian

kitvb1
27-01-10, 09:35
Wie erkennst du denn, wo die F4 gedrückt wurde?
mit:
A CSRLOC(ZRW01 ZCL01)
A ZRW01 3S 0H
A ZCL01 3S 0H

Fuerchau
27-01-10, 09:46
Da du ja eh F4 per Programm und Cursor-Position bzw. Feldnamen prüfen musst, kannst du dir ja eine Tabelle mit den erlaubten Felder befüllen, für alle nicht erlaubten Felder (lookup) DSPATR(PR) setzen und bei F4 ausschließlich die erlaubten Felder bearbeiten.

Da dies Geschäftslogik ist läßt sich sowas nie in ein Frontend packen, sei es DSPF, Windows-Forms o.ä.

Fuerchau
27-01-10, 09:50
Ich würde dir da eher
RTNCSRLOC (Return Cursor Location) keyword for display files (http://publib.boulder.ibm.com/infocenter/iseries/v5r4/topic/rzakc/rzakcmstdfrtncs.htm)
empfehlen.
Dann kannst du Felder auf der DSPF auch verschieben ohne jedes mal die Positionen im Programm anzupassen.
Ins besonders wenn das Layout mal gravierender geändert wird.

kitvb1
27-01-10, 10:10
diese lösung geht bei mir leider auch nicht, da ein F4 auf mehreren feldern ausgelöst werden kann.

Modus Änderung auf Englisch (nur fur diese Post weil jetzt wird es lang und ist es mir einfacher zu schreiben - ihr können trotzdem naturlich auf Deutsch antworten).

This topic of F4=Search is a pet gripe of mine when it come to most IBM i software. An example: with the Vendor ERP software we use, the user has to type in a '?' for each field they wish to search - then press F4.

The question to ask here is: What is easier for the user?

The F4 key, IMO (in my opinion), should only be used as the exception. If a panel is displayed with 100 fields and each one can be searched, that means I have to press F4 100 times to see what options I have available for each field.

Why not?:

1. When the user presses enter or F8 (or ENTER, or whatever your update key is), the program automagically do a F4 for every mandatory field (muss Feld) that is NOT filled (unauthorized fields are not searched). This way the user does not have to press F4 at all.
2. If the user presses F4, all blank fields are automagically F4'ed. This way the user only presses F4 once.

Now by the same token: error messages - another pet gripe of mine.

Some software packages (and it seems the new trend is to) display 1 error at a time. Why not display all the errors at one time? That way the user doesn't have to press F8 multiple times - only once. Fixes all (e.g. 30) errors and Basta!, fertisch, aus.

Your thoughts/comments would be interesting - so please feel free to comment.