|
Thanks Birgitta, I shall keep your example for future reference. I find it a little hard reading pulling in 1 prototype at a time. Then again, the prototypes that caused my problem were prototypes I didn't even need!
I have another question concerning the dummy pointer. It seems I am the only one here that never declares that pointer. It seems to me that if you declare it, you intend to use it, and all the data structures based on it can then be used. Is it unwise to declare the pointer for template based fields?
-----Message d'origine-----
[mailto:rpg400-l-bounces@xxxxxxxxxxxx] De la part de Birgitta Hauser
Hi,
I'm also using a data structure of the field reference file
and data structures that are passed as parameters in my prototypes.
There is almost no field within my application that is not
defined with like or likeDS. Exceptions maybe indexes for
looping through arrays.
The data structures itself are (most times) in separate copy
members and surrounded with compiler directives. These copy
members are included within my prototypes (nested copy members).
Also the names of the references start with REF (except my
field reference file which is simply named FldRef).
In this way I never have any problems except I have to use
qualified data structures.
All prototypes are located in a source file named QPROLESRC
with the same name as the source of the module or program All
Copy members for data structures and Reference fields are
located in a source file named QCPYLESRC.
For example
Copy members for references
/If Not Defined (FldRef)
/Define (FldRef)
D FldRef E DS ExtName(DWFldRef) Based(DummyPtr)
/EndIf
/If Not Defined (RefDSMyFile)
/Define (RefDSMyFile)
D RefDSMyFile E DS ExtName(MyFile) Based(DummyPtr)
/Endif
Prototype 1
/Include QCPYLESRC,FldRef
/Include QCPYLESRC,MyFile
/If Not Defined (MyProc)
/Define MyProc
D MyProc PR
D Parm1 Like(FldRef.MyField1) const
D Parm2 LikeDS(RefDSMyFile) Const
/Endif
/If Not Defined MyFct
/Define MyFct
D MyFkt PR Like(FldRef.MyFieldY)
D Parm1 Like(FldRef.MyFieldx) Const
/EndIf
Prototype 2
/Include QCPYLESRC,FldRef
/Include QCPYLESRC,MyFile2
/If Not Defined (MyProc2)
/Define MyProc2
D MyProc2 PR
D Parm1 Like(FldRef.MyFieldA) const
D Parm2 LikeDS(RefDSMyFile2) Const
/Endif
Program/Module
D/Include QPROLESRC,Proto1
D/Include QPROLESRC,Proto2
Mit freundlichen Grüßen / Best regards
Birgitta Hauser
As an Amazon Associate we earn from qualifying purchases.
This mailing list archive is Copyright 1997-2024 by midrange.com and David Gibbs as a compilation work. Use of the archive is restricted to research of a business or technical nature. Any other uses are prohibited. Full details are available on our policy page. If you have questions about this, please contact [javascript protected email address].
Operating expenses for this site are earned using the Amazon Associate program and Google Adsense.