-
Ich bin aktuell mittendrin. In meiner Informationsdatenstruktur habe ich das Unterfeld CPOS was definiert ist mit (von) 370 (bis) 371B 0.
Ich denke mal ich muss "bindec" als Datenart Schlüsselwort verwenden. Aber welche Länge muss ich angeben ? Bestimmt nicht bindec(2) oder ?
Viele Grüße Harald
-
Die Frage ist, welche Wertigkeit du benötigst:
int(5) bzw. bindec(4) belegen die 2 Bytes, wobei int(5) eben +/- 32767 kann, ansonsten geht nur +/- 9999.
-
Das ist die Cursorposition aus der Informationsdatenstruktur. Einfach nur verwendet, nie darüber nachgedacht, hat ja funktioniert. Also bei 2 Stellen B 0 in der "alten" Datenstruktur gebe ich bindec(4) an, wenn ich das richtig verstanden habe ?
-
Wenn Du schon dabei bist, die Datei-Status-Datenstruktur von Display-Files zu überarbeiten, würde ich Dir empfehlen 2 Felder je Uns(3), eines für Zeile (Position 370) und eines für Spalte(Position 371) zu definieren. Dann kannst Du Dir die Dividiererei sparen und Zeile bzw. Spalte direkt auslesen.
Ansonsten würde ich, falls Du beides zusammenfassen willst oder musst, Uns(5) empfehlen. (negative Werte für Zeile/Spalte gibt es nicht!)
BINDEc solltest Du auf alle Fälle vermeiden und je nachdem INT oder UNS verwenden. Bei BINDEC wird der Inhalt (intern) in gepackt konvertiert, während bei INT und UNS die Integer-Datentypen direkt verwendet werden.
Birgitta
-
Es gibt auch Referenzen von IBM...
Code:
DCL-F MYFILE WORKSTN(*EXT) INFDS(DSPFBK);
DCL-DS DSPFBK;
DSP_FLAG1 CHAR(2) POS(367); // Display flags
DSP_AID CHAR(1) POS(369); // AID byte
CURSOR CHAR(2) POS(370); // Cursor location
DATA_LEN INT(10) POS(372); // Actual data len
SF_RRN INT(5) POS(376); // Subfile rrn
MIN_RRN INT(5) POS(378); // Subfile min rrn
NUM_RCDS INT(5) POS(380); // Subfile num rcds
ACT_CURS CHAR(2) POS(382); // Active window cursor location
DSP_MAJOR CHAR(2) POS(401); // Major ret code
DSP_MINOR CHAR(2) POS(403); // Minor ret code
END-DS;
Last edited by camouflage; 06-11-19 at 13:59.
Grund: edit: Formatierung
kf
-
Zitat von B.Hauser
Wenn Du schon dabei bist, die Datei-Status-Datenstruktur von Display-Files zu überarbeiten, würde ich Dir empfehlen 2 Felder je Uns(3), eines für Zeile (Position 370) und eines für Spalte(Position 371) zu definieren. Dann kannst Du Dir die Dividiererei sparen und Zeile bzw. Spalte direkt auslesen.
Ansonsten würde ich, falls Du beides zusammenfassen willst oder musst, Uns(5) empfehlen. (negative Werte für Zeile/Spalte gibt es nicht!)
BINDEc solltest Du auf alle Fälle vermeiden und je nachdem INT oder UNS verwenden. Bei BINDEC wird der Inhalt (intern) in gepackt konvertiert, während bei INT und UNS die Integer-Datentypen direkt verwendet werden.
Birgitta
Ah gut. Dann mache ich das so. Vielen Dank
-
Jetzt hab ich noch mal eine Frage. Wenn ich das richtig lese gibt es im Free kein KLIST und KFLD mehr. Ich muss dass über eine Datenstrukur und %kds machen wenn ich so wie früher mit einer Schlüsselliste auf eine Datei zugreifen möchte ?
-
Das ist so, allerdings vermeide ich, wenn es geht, den Einsatz %kds. Ist irgendwie noch ein alter Zopf.
Hier noch ein Link, falls Du automatisiert in free umsetzen möchtest. Tut nicht alles, aber immerhin mehr als RDi. Und als Anschauungsunterricht auch nicht schlecht.
https://sourceforge.net/projects/cvtrpgfree/
kf
-
Du kannst natürlich %KDS verwenden, wenn Du willst, ...
aber im Free-Format kannst Du die Schlüssel-Felder (in einer runden Klammer) einfach auflisten:
Code:
Chain (KeyFld1: %Date(): 'X': 123: KeyFldX) YourFile;
Birgitta
-
OK Danke. Umsetzen kommt erst mal nicht in Frage. Es wird zunächst mal so sein, dass ich, wenn ich mit einem neuen Programm anfange, Free verwenden darf, bestehende werden aber nicht umgesetzt. .... noch nicht :-)
-
Noch eine Frage. Was mach ich mit /COPY-Routinen ? Wir haben unsere Prototypenbeschreibungen für verschiedene Module und Funktionen in /COPY-Routinen. Wie kann ich eine /COPY-Routine im Free einbinden ? und muss der Quellcode innerhalb der /COPY-Routine auch free sein oder kann man das was tricksen ?
-
Copy gilt auch weiterhin, sollte aber langfristig durch Include abgelöst werden, da man das schachteln kann.
Der Mix aus Free/TotalFree und Fixed klappt sogar ganz gut.
Man kann sogar C-Zeilen zwischendurch nutzen um Nicht-Free-Befehle weiter zu verwenden.
Similar Threads
-
By Dominic K. in forum NEWSboard Programmierung
Antworten: 11
Letzter Beitrag: 04-04-17, 16:25
-
By ExAzubi in forum NEWSboard Programmierung
Antworten: 24
Letzter Beitrag: 19-07-16, 09:38
-
By philsturm in forum NEWSboard Programmierung
Antworten: 6
Letzter Beitrag: 05-09-14, 09:09
-
By Gimli in forum IBM i Hauptforum
Antworten: 1
Letzter Beitrag: 11-03-03, 10:16
-
By Gimli in forum IBM i Hauptforum
Antworten: 6
Letzter Beitrag: 03-03-03, 10:23
Berechtigungen
- Neue Themen erstellen: Nein
- Themen beantworten: Nein
- You may not post attachments
- You may not edit your posts
-
Foren-Regeln
|
Erweiterte Foren Suche
Google Foren Suche
Forum & Artikel Update eMail
AS/400 / IBM i
Server Expert Gruppen
Unternehmens IT
|
Kategorien online Artikel
- Big Data, Analytics, BI, MIS
- Cloud, Social Media, Devices
- DMS, Archivierung, Druck
- ERP + Add-ons, Business Software
- Hochverfügbarkeit
- Human Resources, Personal
- IBM Announcements
- IT-Karikaturen
- Leitartikel
- Load`n`go
- Messen, Veranstaltungen
- NEWSolutions Dossiers
- Programmierung
- Security
- Software Development + Change Mgmt.
- Solutions & Provider
- Speicher – Storage
- Strategische Berichte
- Systemmanagement
- Tools, Hot-Tips
Auf dem Laufenden bleiben
|
Bookmarks