Login
`
Templates, Tools and Utilities
|
||
Add a comment to an Icetips ArticlePlease add your comments to this article.
Please note that you must provide both a name and a valid email address in order
for us to publish your comment. Comments are moderated and are not visible until they have been approved. Spam is never approved!
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 December 3, 2024, 11:59 am This article has been viewed 35230 times. Google search has resulted in 14 hits on this article since January 25, 2004.
|
|