` Create memory record for a file (Roberto Artigas Jr.) - Icetips Article
Icetips - Templates, Tools & Utilities for Clarion Developers

Templates, Tools and Utilities
for Clarion Developers

Icetips Article

Back to article list   Search Articles     Add Comment     Printer friendly     Direct link  

Templates: Create memory record for a file
1998-12-27 -- Roberto Artigas Jr.
 
Newsgroups: TopSpeed.Topic.Templates Editors note: Please note that some lines may wrap in the template code. Heavenes - If you are using the ABC DLL Toolkit from Jim Katz you are probably aware that there are File DLL's and Code DLL's and each different dictionaries is in a different DLL's. So if you run into having to write a record that belongs to a different dictionary in a different DLL you will need to pass the record with the data fields needed to be written. Here is a template that will generate a memory record format and key areas for each file. Each file will be in it's own source file that can be included. This template is a starting point. Modify to taste. Mileage may vary. Enjoy! Roberto Artigas Jr ascend@netten.net #!==================================================================== #!==================================================================== #!==================================================================== #UTILITY (GenerateRecords, 'Generate Record Groups'), WIZARD #!==================================================================== #SHEET #TAB ('Generate Records Groups') #DISPLAY ('This wizard will generate group definitions of the contents of your current dictionary.'), AT(90, 8, 235, 24) #DISPLAY ('To specify how you want the report constructed, click on the Next button.'), AT(90) #ENDTAB #TAB ('Dictionary Print Wizard - Reported Files'), FINISH(1) #DISPLAY ('You can report on each file in your dictionary, or you can select individual files to report on.'), AT(90, 8, 235, 24) #PROMPT ('Report on all files in my dictionary.', CHECK), %DictionaryReportUseAllFiles, DEFAULT(1), AT(90,, 180) #ENDTAB #TAB ('Dictionary Print Wizard - Select Reported Files'), WHERE(~%DictionaryReportUseAllFiles), FINISH(1) #PROMPT ('File Selection', FROM (%File)), %DictionaryReportFileSelection, INLINE, SELECTION('File Selection'), AT(90, 8, 235) #ENDTAB #TAB ('Dictionary Print Wizard - Finally...') #DISPLAY ('This concludes the dictionary Group Generate wizard.'), AT(90, 8, 235, 24) #DISPLAY ('Click on the Finish button to generate Groups.'), AT(90, 82, 235, 24) #ENDTAB #ENDSHEET #COMMENT(45) #DECLARE (%ReportedFiles),UNIQUE #DECLARE (%Groups), MULTI #DECLARE (%ValueConstruct) #DECLARE (%TheKeyId) #DECLARE (%TheKeyNo,LONG) #IF (%DictionaryReportUseAllFiles) #FOR (%File) #ADD (%ReportedFiles, %File) #ENDFOR #ELSE #FOR (%DictionaryReportFileSelection) #ADD (%ReportedFiles, %DictionaryReportFileSelection) #ENDFOR #ENDIF #DECLARE (%OutputFile) #FOR (%ReportedFiles) #FIX (%File, %ReportedFiles) #SET (%OutputFile,%FILE&'.GRP') #MESSAGE('File Group Definition: ' & %OutputFile, 2) #CREATE (%OutputFile) !BOF ! ! File: %OutputFile ! Purpose: Generated File Records as Groups ! Author: GenerateRecords Template ! Narative: This template is used to pass records structures ! back and forth between DLL's when the files ! are not shared. Since file definitions are not ! available, data has to be passed in areas. ! #IF (%FileType = 'ALIAS') ! Name: %File(An alias for %AliasFile) #ELSE ! Name: %File #ENDIF ! Prefix: %FilePrefix #IF (%FileDescription) ! Description: %FileDescription #ENDIF #IF (%FileName) ! Filename: %FileName #ENDIF ! !-Keys- #SUSPEND #FOR (%Key) ! %[27]KeyID %| #FOR (%KeyField) #FIX (%Field, %KeyField) #IF (INSTANCE(%KeyField) = 1) %FieldID(%KeyFieldSequence) #ELSE !%[29]Null%FieldID(%KeyFieldSequence) #ENDIF #ENDFOR #ENDFOR #RESUME !-Keys- #SUSPEND #SET(%TheKeyNo,0) #FOR (%Key) #FOR (%KeyField) #FIX (%Field, %KeyField) #IF (INSTANCE(%KeyField) = 1) #!SET(%TheKeyId,SUB(%KeyID,1,INSTRING('_',%KeyID,1,1)-1)) #SET(%TheKeyId,'Key'&%TheKeyNo) %FilePrefix:mKey:%KeyID GROUP,TYPE,BINDABLE,PRE(m%FilePrefix:%TheKeyId) %FieldStruct #

Today is November 21, 2024, 3:34 am
This article has been viewed 35217 times.
Google search has resulted in 14 hits on this article since January 25, 2004.



Back to article list   Search Articles   Add Comment   Printer friendly

Login

User Name:

Password: