/3.0 (Extension.1 Name: "Metadata Collection Tool" FirstRootClassName: "List" Roots: 2 Roots: 3 Roots: 28 Roots: 29 Roots: 30 Roots: 31 Roots: 32 Roots: 33 Roots: 34 Roots: 35 Roots: 36 Roots: 37 Roots: 38 Roots: 39 Roots: 40 Version: 30 About: "Tool for collecting Metadata, developed by NOAA Coastal Services Center" InstallScript: 41 UninstallScript: 42 ExtVersion: 3 ) (List.2 ) (List.3 Child: 4 Child: 12 Child: 20 ) (List.4 Child: 5 Child: 9 Child: 11 ) (List.5 Child: 6 Child: 7 Child: 8 ) (AVStr.6 S: "View" ) (AVStr.7 S: "ButtonBar" ) (AVStr.8 S: "meta.Main" ) (Butn.9 Help: "Metadata Collector//Starts Metatdata collection dialogue" Icon: 10 Click: "meta.Main" ) (AVIcon.10 Name: "M" Res: "Icons.M" ) (Numb.11 N: 26.00000000000000 ) (List.12 Child: 13 Child: 17 Child: 19 ) (List.13 Child: 14 Child: 15 Child: 16 ) (AVStr.14 S: "View" ) (AVStr.15 S: "ButtonBar" ) (AVStr.16 S: "meta.Link" ) (Butn.17 Help: "Displays Metadata//Displays Metadata textfile" Icon: 18 Click: "meta.Link" ) (AVIcon.18 Name: "FrameText" Res: "Icons.FrameText" ) (Numb.19 N: 27.00000000000000 ) (List.20 Child: 21 Child: 25 Child: 27 ) (List.21 Child: 22 Child: 23 Child: 24 ) (AVStr.22 S: "View" ) (AVStr.23 S: "ButtonBar" ) (AVStr.24 S: "meta.ViewHelp" ) (Butn.25 Help: "Metadata Help//Displays help for Metatdata collection tool" Icon: 26 Click: "meta.ViewHelp" ) (AVIcon.26 Name: "H" Res: "Icons.H" ) (Numb.27 N: 28.00000000000000 ) (List.28 ) (List.29 ) (Script.30 Name: "meta.Help" SourceCode: "'HOW TO USE THE METADATA COLLECTION TOOL\n\n'Before Running the Program\n'1) Add the data set that metadata will be collected for to a VIEW.\n'2) This tool will work on any data set that can be added to an ArcView\n' View document, including: shapefiles, Arc/Info coverages, supported\n' image formats, etc.\n'3) Set the working directory for the PROJECT to a directory where\n' dBase files can be created. The working directory for the PROJECT\n' is set from the Project menu/properties option, on the PR OJECT GUI.\n' These dBase files will be used to store information, so that it can\n' be referenced in the future. \n\n'File Naming Convention\n'1) Two types of files will be created, an ASCII text file, and an HTML \n' (Hyper Text Markup Language) file (optional). If any problems are \n' found, these files can be edited.\n'2) The metadata record is written to the directory where the source data\n' is stored.\n'3) If the data source is a shapefile, the output metadata will be the\n' base name of the data set, with a \".met\" extension. So if the data set\n' is roads.shp, the metadata record will be roads.met.\n'4) If the data source is an Arc/Info coverage, the output metadata record\n' will be the coverage name with \"p\" appended if the input is a polygon,\n' an \"l\" if the coverage is a line type, and a \"pt\" if the coverage is a\n' point type. This naming convention was choosen to handle metadata that\n' is written for a coverage that might include both lines and polygons, \n' for examp le. A \".met\" extension is then added to the file name.\n \n\n'Basic Flow of the tool\n'1) The first time that the program is run the user will be prompted to \n' enter data. In many cases the information that is entered will be \n' stored in dBase files that are created in the project working \n' directory (see below for a listing of the files that are created).\n' If any data entry problems are discovered, these dBase files can be\n' edited, using ArcView's TABLE editing tools. \n'2) The user wil l be asked to provide an \"ID\" for the information that \n' is being entered. This \"ID\" can be used to retrieve information on \n' future iterations of the program. For example the user may have \n' created three \"contacts\" to choose from when, collecting \n' Contact_Information. \n'3) The next time that the program is run, if an entry already exists\n' for a certain metadata section, the user will be presented with a list\n' of \"IDs\" to choose from. If the user chooses an \"ID\" from the list\n ' the information is written to the metadata record. If the user does\n' not select an \"ID\" from the list, they will be prompted to enter the\n' information and that new information will be written to the metadata\n' record and to the dBase file, so that it can be accessed in the future.\n'4) After all of the metadata information has been collected the user will\n' be asked if they want to save an HTML version of the file.\n'5) After the metadata record has been collected, the user can click o n the\n' \"Frame Text\" icon next to \"M\" icon or choose \"Display Metadata\" from the\n' Metadata pulldown menu, to display the text version of the metadata \n' record for all active themes that have metadata records.\n\n'A LIST of POTENTIAL dBASE Files:\n'origin.dbf - originator information (IDENTIFICATION_INFORMATION)\n'publicat.dbf - publisher and larger_work information (IDENTIFICATION_INFORMATION)\n'citation.dbf - other_citation_details (IDENTIFICATION_INFORMATION)\n'abstract.dbf - abstract (IDENTIFICATION _INFORMATION)\n'purpose.dbf - purpose (IDENTIFICATION_INFORMATION)\n'contact.dbf - point_of_contact (IDENTIFICATION_INFORMATION)\n'attaccur.dbf - attribute_accuracy_report (DATA_QUALITY_INFORMATION)\n'logcon.dbf - logical_consistency_report (DATA_QUALITY_INFORMATION)\n'comprep.dbf - completeness_report (DATA_QUALITY_INFORMATION)\n'horpos.dbf - horizontal_positional_accuracy (DATA_QUALITY_INFORMATION)\n'verpos.dbf - vertical_positional_accuracy (DATA_QUALITY_INFORMATION)\n'lineage.dbf - lineage_information (DATA_QUA LITY_INFORMATION)\n'socon.dbf - source_contribution (DATA_QUALITY_INFORMATION)\n'process.dbf - process_steps (DATA_QUALITY_INFORMATION)\n'project.dbf - Horizontal_Coordinate_System_Definition (SPATIAL_REFERENCE_INFORMATION)\n'distrib.dbf - distribution_information (DISTRIBUTION_INFORMATION)\n'resource.dbf - resource_discription (DISTRIBUTION_INFORMATION)\n'referenc.dbf - metadata_reference_information (METADATA_REFERENCE_INFORMATION)\n'metacon.dbf - metadata_contact_information (METADATA_REFERENCE_INFORMATION)\n\n\n' Reference Information\n\n'Metadata Tool Dictionary\n\n'The following information is to be used as a reference for element definitions. The \n'elements in the dictionary, below, share the same numbering scheme of that in the \n'the FGDC metadata content standard, and in the Metadata Creation Tool. For example,\n'the element \"abstract\" is numbered 1.2.1 in the dictionary below, the tool, and the \n'metadata content standard. If further assistance is needed, the Content Standard for\n'Digital Geospatial Metadata (Gre en Workbook) may be used. \n\n\n'8.1 Originator- the name of an organization or individual that \n' developed the data set. If you want to enter an originator for the first \n' time, click cancel and you will be prompted to do so. If you want to use an \n' existing .dbf file, choose the originator id from the provided list.\n \n'8.2 Publication Date- the date the source data was published or otherwise made\n' available for release. The following format as specified by the FGDC Metadata \n' Content Standard must be used: YYYYMMDD\n \n'8.4 Title- Enter the title of the data set. \n\n'Publication Information\n'Select either a previously entered .dbf file or cancel to enter a series of \n'publication information. If you are entering publication information for the \n'first time, be sure to specify the publisher id (first entry) so that the \n'information you will be entering will be stored as a .dbf file in the working\n'directory.\n \n'8.8.1 Publication Place- the name of the city (and state or provence, and country,\n' if needed to identify the city) where the dataset was published or released.\n \n'8.8.2 Publisher- the name of the individual or organization that published the dataset.\n' (Organization and Publisher may be the same)\n \n'8.11.1 Larger Work Originator- If dataset is part of a larger work, enter the name\n' of the organization or originator that developed the larger work, if applicable\n \n'8.11.2 Larger Work Publication Date- Enter the date the larger work was published.\n' YYYYMMDD \n\n \n'8.11.4 Larger Work Title- Enter the title of the larger work if applicable. For example, \n' the dataset interstate highways could be part of the larger work- \"Transportation\n' Map of the United States\"\n \n'8.11.8.1 Larger Work Publication Place- enter the name of the city (and state or provence, \n' and country, if needed to identify the city) where the larger work was published \n' or released if applicable.\n \n \n'8.11.8.2 La rger Work Publisher- enter the name of the individual or organization that \n' published the larger work if applicable.(Organization and Publisher may be the same)\n\n'8.9 Other Citation Details- any other information that may be neccessary to complete the \n' citation.For example, a brief description of the larger work could be entered, if applicable. This \n' section may be entered as a text file and saved to your working directory where it\n' can be retrieved, or you may type the other c itation details if necessary.\n\n\n'1.2.1 Abstract- a brief narrative summary of the data set. The abstract is stored in \n' a .dbf file in the working directory, so be sure to give it a good id for future\n' use.\n\n'1.2.2 Purpose- a summary of the intentions with which the data set was developed. The \n' purpose is also stored in a .dbf file in the working directory, so be sure to \n' give it a good id for future use.\n\n'9.3.1 Beginning Date- the first year (or optionally month, or month and day)\n' of the event.\n \n'9.3.3 Ending Date- the last year (or optionally month, or month and day)\n' of the event.\n\n'1.3.1 Currentness Reference- the basis on which the time period of content is determined.\n' Examples would be \"ground condition\" \"publication date\", etc.\n \n'1.4.1 Progress- the state of the dataset. One of three responses may be entered.\n' \"Complete\", \"In Work\", or \"Planned\"\n \n'1.4.2 Maintenence and Update Frequency- the frequency with which c hanges and additions \n' are made to the data set after the initial data set is completed. i.e. continually,\n' daily, weekly, monthly, annually, etc.\n \n'1.5 Spatial Domain- the geographic areal domain of the data set.\n' The tool gives you the option of converting your bounding coordinates to decimal \n' degrees. If you wish to do this, choose the coordinate system that you want\n' to convert from, and the program will automatically perform the conversion. If \n' yo u wish to leave the bounding coordinates in there original state, click no. \n' Either way, the program automatically extracts bounding coordinates from the file.\n \n\n'1.6.1.2 Theme Keywords- common use word or phrase used to describe the subject of the \n' data set. Enter as many as you see fit.\n \n'1.6.2.2 Place Keywords- the geographic name of a location covered by a data set.\n' Enter as many as you see fit. \n \n'1.7 Access Constraints- restrictions and le gal prerequisites for accessing the data\n' set. These include any access constraints applied to assure the protection of \n' privacy or intellectual property, and any special restrictions or limitations\n' on obtaining the data set.\n \n'1.8 Use Constraints- restrictions and legal prerequisites for using the data\n' set after access is granted. These include any access constraints applied to \n' assure the protection of privacy or intellectual property, and any special \n' restrictions or limitations on obtaining the data set.\n \n'10.1.1 Contact Person- the name of the individual to contact to gain information about\n' the data set.\n \n'10.1.2 Contact Organization- the name of the organization to contact to gain information \n' about the data set.\n \n'10.3 Contact Position- the title of the individual.\n\n'10.4.2 Address- the address for the organization or individual.\n\n'10.4.3 City- city of the address.\n\n'10.4.4 State or Province- the state or province of the address\n\n'10.4.5 Postal Code- the ZIP or other postal code of the address.\n\n'10.4.6 Country- the country of the address.\n\n'10.5 Contact Voice Telephone- the telephone number by which individuals can speak to \n' organization or individual.\n \n'10.7 Contact Facsimile Telephone- the telephone number of a facsimile machine of the \n' organization or individual.\n \n'10.8 Contact Electronic Mail Address- the address of the electronic mailbox of the \n' organization or individual.\n \n'10.9 Hours of Service- time period when individuals can speak to the organization or\n' individual.\n \n\n'DATA QUALITY SECTION\n\n'2.1 Attribute Accuracy Report- an explanation of the accuracy of the identification\n' of the entities and assignments of values in the data set and a description of \n' the tests used. \n \n'2.2 Logical Consistency Report- an explanation of the fidelity of the relationship in \n' the data set and the tests used.\n \n'2.3 Completeness Report- information about ommisions, selection criteria,\n' generalization, definitions used, and other rules used to derive the data set.\n \n'2.4.1.1 Horizontal Positional Accuracy Report- an explanation of the accuracy of the \n' horizontal coordinate measurements.\n \n \n'2.4.2.1 Vertical Positional Accuracy Report- an explanation of the accuracy of the \n' vertical coordinate measurements.\n \n\n'The citation information below refers to line age. Lineage is information about the events,\n'parameters, and source data which constructed the data set.\n\n'8.1 Originator- the name of an organization or individual that \n' developed the source data set. If you want to enter an originator for the first \n' time, click cancel and you will be prompted to do so. If you want to use an \n' existing .dbf file, choose the originator id from the provided list.\n \n'8.2 Publication Date- the date the source data was published or otherwise mad e\n' available for release. The following format as specified by the FGDC Metadata \n' Content Standard must be used: YYYYMMDD\n \n'8.4 Title- Enter the title of the source data set used to create the final data set.\n \n'8.5 Edition- the version of the title, if applicable. \n\n'Publication Information\n'Select either a previously entered .dbf file or cancel to enter a series of \n'publication information. If you are entering publication information for the \n'first time, be sure to spec ify the publisher id (first entry) so that the \n'information you are entering will be stored as a .dbf file in the working\n'directory.\n \n'8.8.1 Publication Place: the name of the city (and state or provence, and country,\n' if needed to identify the city) where the source data was published or released.\n \n'8.8.2 Publisher: the name of the individual or organization that published the source data.\n' (Organization and Publisher may be the same)\n \n \n'2.5.1.2 Source Scale D enominator- the denominator of the representative fraction on a map.\n' (for example, on a 1:100000 scale map, the Source Scale Denominator is 100000).\n \n'2.5.1.3 Type of Source Media- the medium of the source data.\n\n'9.3.1 Beginning Date- the first year (or optionally month, or month and day)\n' of the source data.\n \n'9.3.3 Ending Date- the last year (or optionally month, or month and day)\n' of the source data.\n\n'2.5.1.4.1 Source Currentness Reference- the basis on whi ch the source time period of \n' content information of the source data is determined.\n \n'2.5.1.5 Source Citation Abbreviation- short-form alias for the source citation.\n\n'2.5.1.6 Source Contribution- brief statement identifying the information contributed \n' by the source to the data set.\n \n'2.5.2.1 Process Description- an explanation of the event and related parameters or \n' tolerances.\n \n'2.5.2.3 Process Date- the date when the processing was completed. \n\n\n'Process Contact Information\n\n'10.1.1 Contact Person- the name of the individual to contact to gain information about\n' the data set.\n \n'10.1.2 Contact Organization- the name of the organization to contact to gain information \n' about the data set.\n \n'10.3 Contact Position- the title of the individual.\n\n'10.4.2 Address- the address for the organization or individual.\n\n'10.4.3 City- city of the address.\n\n'10.4.4 State or Province- the state or province of the address\n\n'10.4.5 Pos tal Code- the ZIP or other postal code of the address.\n\n'10.4.6 Country- the country of the address.\n\n'10.5 Contact Voice Telephone- the telephone number by which individuals can speak to \n' organization or individual.\n \n'10.7 Contact Facsimile Telephone- the telephone number of a facsimile machine of the \n' organization or individual.\n \n'10.8 Contact Electronic Mail Address- the address of the electronic mailbox of the \n' organization or individual.\n \n'10.9 Hours of Service- time period when individuals can speak to the organization or\n' individual.\n \n \n'Spatial Reference Information\n\n'(see Spatial_Reference_Information section of the workbook)\n\n\n'Entity and Attribute Information\n\n'5.1.2.2 Attribute Definition- the definition of the attribute. \n\n\n'Distribution Contact Information\n\n'10.1.1 Contact Person- the name of the individual to contact to acquire\n' the data set.\n \n'10.1.2 Contact Organization- the name of the organization to contact to acquire the data set.\n \n'10.3 Contact Position- the title of the individual.\n\n'10.4.2 Address- the address for the organization or individual.\n\n'10.4.3 City- city of the address.\n\n'10.4.4 State or Province- the state or province of the address\n\n'10.4.5 Postal Code- the ZIP or other postal code of the address.\n\n'10.4.6 Country- the country of the address.\n\n'10.5 Contact Voice Telephone- the telephone number by which individuals can speak to \n' organization or individual.\n \n'1 0.7 Contact Facsimile Telephone- the telephone number of a facsimile machine of the \n' organization or individual.\n \n'10.8 Contact Electronic Mail Address- the address of the electronic mailbox of the \n' organization or individual.\n \n'10.9 Hours of Service- time period when individuals can speak to the organization or\n' individual.\n\n \n'6.2 Resource Description- the identifier by which the distibutor knows the data set.\n\n'6.3 Distribution Liability- statement o f the liability assumed by the distributor.\n\n'6.4.2.2.2.1 Offline Media- name of the media on which the data set can be revieved.\n\n'6.4.3 Fees- the fees and terms for receiving the data set.\n\n\n'Metadata Reference Information\n\n'7.1 Metadata Date- the date that the metadata were created or last updated.\n\n'7.2 Metadata Review Date- the date of the latest review of the metadata entry.\n\n'10.1.1 Contact Person- the name of the individual to contact to gain information \n' about the data set, or the me tadata.\n \n'10.1.2 Contact Organization- the name of the organization to contact to gain information \n' about the data set, or the metadata.\n \n'10.3 Contact Position- the title of the individual.\n\n'10.4.2 Address- the address for the organization or individual.\n\n'10.4.3 City- city of the address.\n\n'10.4.4 State or Province- the state or province of the address\n\n'10.4.5 Postal Code- the ZIP or other postal code of the address.\n\n'10.4.6 Country- the country of the address.\n\n'10.5 Contact Voice Telephone- the telephone number by which individuals can speak to \n' organization or individual.\n \n'10.7 Contact Facsimile Telephone- the telephone number of a facsimile machine of the \n' organization or individual.\n \n'10.8 Contact Electronic Mail Address- the address of the electronic mailbox of the \n' organization or individual.\n \n'10.9 Hours of Service- time period when individuals can speak to the organization or\n' individual.\n\n\n\n\n\n\n\n \n" ) (Script.31 Name: "meta.Sec1" SourceCode: "'Get into the Metadata Collection Dialogue!!!!\n\n'IDENTIFICATION_INFORMATION Section\n'Called from meta.main\nMetaFile = Self.Get(0)\nHTMLFile = Self.Get(1)\n\ntmpName = _workDir.AsString+_pathDel+\"xxtmpm.tmp\"\nhtmpName = _workdir.AsString+_pathDel+\"xxtmph.tmp\"\nif (File.Exists(tmpName.AsFileName)) then\n File.Delete(tmpName.AsFileName)\nend\nif (File.Exists(htmpName.AsFileName)) then\n File.Delete(htmpName.AsFileName)\nend\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml = LineFile.Make(htmpName.A sFileName,#FILE_PERM_WRITE)\n\n\n'Get Publication_Date and \ntheLabs = {\"8.4 Title\", \" \",\"8.2 Publication Date (YYYYMMDD)\"}\ntheDefs = {\"\",\" \",\" \"}\nDT = true\nWhile (DT = True)\n DTList = MsgBox.MultiInput(\"Please enter the following:\",\"Publication Date and Title\",thelabs,theDefs)\n if (dtList.Count < 2) then\n addTitle = MsgBox.YesNo(\"You must add a title to continue! Do you want to continue?\",\"Title\", true)\n if (addTitle = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metaFi le.Close\n htmlFile.Close\n File.Delete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n else \n theTitle1 = DTList.Get(0)\n theTitle2 = DTList.Get(1)\n theDate = DTList.Get(2)\n \n DT = False\n end 'for checking if dtlist is empty\nend \n\ntmpHtml.\nWriteElt(\"\")\ntmpHtml.WriteElt(\"\")\nif (theTitle1 <> NIL) then\n if (theTitle2 <> NIL) then\n theTitle = theTitle1++theTit le2\n else\n theTitle = theTitle1\n end\n tmpHtml.WriteElt(\"\"+theTitle+\"\")\nend\ntmpHtml.WriteElt(\"\")\ntmpHtml.WriteElt(\"\")\ntmpHtml.WriteElt(\"\")\ntmpHtml.WriteElt(\"

NOAA Coastal Services Center

GIS Data Dictionary

\")\n\n\nif (theTitle1 <> NIL) then\n if (theTitle2 <> NIL) then\n theTitle = theTitle1++theTitle2\n else\n theTitle = theTitle1\n end\n tmpHtml.WriteElt(\"

\"+theTitle+\"

\")\nend\n\n\ntmpHtml.WriteElt(\"

Table of Contents

\")\ntmpHtml .WriteElt(\"\")\ntmpHtml.WriteElt(\"\")\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"
\")\n\n\n'Citation\n'Set Originator Information, retrieved from ORIGIN.DBF, if it exists\nOrgFile = _workdir+_pathDel+\"origin.dbf\"\nOrgVTab = VTab.Make(OrgFile.AsFileName,false,false)\nidSet = True\nif (OrgVTab.GetSelection = NIL) then\n  idSet = False\n  theLabs = {\"Originator_Id (future use)\",\"8.1 Originator:\"}\n  theD
efs = {\"Originator_Id1\",\" \"}\n  orInfo = MsgBox.MultiInput(\"Please enter Originator_Information\",\"Originator_Information (origin.dbf)\",theLabs,theDefs)\n  if (orInfo.Count > 0) then\n    Orgid = orInfo.Get(0)\n    Org = orInfo.Get(1)\n    OrgVTab = VTab.MakeNew(Orgfile.AsFileName,dBASE)\n    OrgIdField = Field.Make(\"Org_Id\",#FIELD_VCHAR,20,0)\n    OrgField = Field.Make(\"Originator\",#FIELD_VCHAR,50,0)\n    FieldList = {OrgIdField,OrgField}\n    OrgVTab.AddFields(FieldList)\n    newRec = OrgVTab.AddRecord\n    OrgVTab.S
etValue(OrgIdField, newRec, Orgid)\n    OrgVTab.SetValue(OrgField, newRec, Org)\n    OrgVTab.SetEditable(false)\n  else\n    goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue?\",\"Continue\",true)\n    if (goon = False) then\n      System.Beep\n      tmpHtml.Close\n      tmpMeta.Close\n      metaFile.Close\n      HTMLFile.Close\n      File.Delete(MetaFile.GetFileName)\n      File.Delete(HTMLFile.GetFileName)\n      File.Delete(tmpName.AsFileName)\n      File.Delete(htmpNam
e.AsFileName)\n      Exit\n    else\n      orgid = NIL\n    end  \n  end\nelse\n  OrgList = {}\n  orgCnt = {}\n  OrgidField = OrgVTab.FindField(\"Org_id\")\n  for each o in OrgVTab\n    Orgid = OrgVTab.ReturnValue(OrgidField,o)\n    if (Orgid.Contains(\"Originator_Id\")) then\n      orgCnt.Add(Orgid)\n    end\n    OrgList.Add(Orgid)\n  end\n  orgNum = (orgCnt.Count + 1).AsString\n  Orgid = MsgBox.ListAsString(OrgList,\"Select the Originator_Id or Cancel to create new record.\",\"Originator_Information (origin.dbf)\")\n  if (Orgid = N
IL) then\n    idSet = False\n    theLabs = {\"Originator_Id (future use)\",\"8.1 Originator:\"}\n    theDefs = {\"Originator_Id\"+orgNum,\" \"}\n    newDefs = {}\n    for each d in theDefs\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop\n    \n    \n    orInfo = MsgBox.MultiInput(\"Please enter Originator_Information\",\"Originator_Information (origin.dbf)\",theLabs,newDefs)  \n    if (orInfo.Count > 0) then\n      Orgid = orInfo.Get(0)\n      Or
g = orInfo.Get(1)  \n      OrgVTab = VTab.Make(OrgFile.AsFileName,false,false)\n      OrgVTab.SetEditable(true)\n      OrgIdField = OrgVTab.FindField(\"Org_id\")\n      OrgField = OrgVTab.FindField(\"Originator\")\n      newRec = OrgVTab.AddRecord\n      OrgVTab.SetValue(OrgIdField, newRec, Orgid)\n      OrgVTab.SetValue(OrgField, newRec, Org)\n      OrgVTab.SetEditable(false)\n    else\n      goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Cont
inue\",true)\n      if (goon = False) then\n        System.Beep\n        tmpHtml.Close\n        tmpMeta.Close\n        metaFile.Close\n        HTMLFile.Close\n        File.Delete(MetaFile.GetFileName)\n        File.Delete(HTMLFile.GetFileName)\n        File.Delete(tmpName.AsFileName)\n        File.Delete(htmpName.AsFileName)\n        Exit\n      else\n        orgId = NIL\n      end\n    end 'for checking if orInfo list is empty      \n  end' end for collecting new data Orgid = NIL\nend\nif (orgid <> NIL) then\n  Querystr = \"([
Org_id] =\"++Orgid.Quote+\")\"\n  OrgVTab.GetSelection.SetAll\n  OrgBitMap = OrgVTab.GetSelection\n  OrgVTab.Query(Querystr,OrgBitMap,#VTAB_SELTYPE_NEW)\n  OrgVTab.UpdateSelection\n  QueryBitmap = OrgVTab.GetSelection\n  for each b in QueryBitmap\n    org = OrgVTab.ReturnValue(OrgVTab.FindField(\"Originator\"),b)\n  end\n  if (idSet = True) then 'user selected an ID\n    'theLabs = {\"8.1 Originator:\"}\n    'theDefs = {org.AsString}\n    org = MsgBox.Input(\"Originator_Information based on:\"++orgID.AsString,\"Originator_Inform
ation (origin.dbf)\",org.AsString)  \n    if (org = NIL) then\n      goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n      if (goon = False) then\n        System.Beep\n        tmpHtml.Close\n        tmpMeta.Close\n        metaFile.Close\n        HTMLFile.Close\n        File.Delete(MetaFile.GetFileName)\n        File.Delete(HTMLFile.GetFileName)\n        File.Delete(tmpName.AsFileName)\n        File.Delete(htmpName.AsFileName)\n 
       Exit\n      else\n        orgId = NIL\n      end\n    end 'checking if org is NIL\n  end 'Checking if idSet is true\n  if (org <> NIL) then\n    tmpMeta.WriteElt(\"IDENTIFICATION_INFORMATION\")\n    tmpMeta.WriteElt(\"\")\n    tmpMeta.WriteElt(\"  Citation\")\n    tmpMeta.WriteElt(\"    Citation_Information\")\n    tmpMeta.WriteElt(\"      Originator:\"++org)\n    tmpHtml.WriteElt(\"\")\n    tmpHtml.WriteElt(\"

IDENTIFICATION_INFORMATION

\")\n tmpHtml.WriteElt(\" Citation\")\n tmpHtml.WriteElt(\" Citation_Information\")\n tmpHtml.WriteElt(\" Originator:\"++org)\n end\nend' checking if orgid was set\nif (orgid = NIL) then 'write out empty tags \n tmpMeta.WriteElt(\"IDENTIFICATION_INFORMATION\")\n tmpMeta.WriteElt(\"\")\n tmpMeta.WriteElt(\" Citation\")\n tmpMeta.WriteElt(\" Citation_Information\")\n tmpMeta.WriteElt(\" Originator:\")\n tmpHtml.WriteElt(\"

IDENTIFICATION_INFORMATION

\")\n tmpHtml.WriteElt(\" Citation\")\n tmpHtml.WriteElt(\" Citation_Information\" )\n tmpHtml.WriteElt(\" Originator:\")\n\nend\n\nif (theDate <> NIL) then\n tmpMeta.WriteElt(\" Publication_Date:\"++theDate)\n tmpHtml.WriteElt(\" Publication_Date:\"++theDate)\nelse \n tmpMeta.WriteElt(\" Publication_Date:\")\n tmpHtml.WriteElt(\" Publication_Date:\")\nend\n\nif (theTitle1 <> NIL) then\n tmpMeta.WriteElt(\" Title:\"++theTitle1)\n tmpHtml.WriteElt(\" Title:\"++theTitle1)\n if (theTitle2 <> NIL) then\n if (theTitle2.left(1) = \" \") then\n else\n tmpMeta.WriteElt(\" \"++theTitle2)\n tmpHtml.WriteElt(\" \"++theTitle2)\n end\n end\nelse\n tmpMeta.WriteElt(\" Title:\")\n tmpHtml.WriteElt(\" Title:\")\nend 'for checking if theTitle1 is NIL\n\ntmpMeta.WriteElt(\" Geospatial_Data_Presentation_Form: Map\")\ntmpHtml.WriteElt(\" Geospatial_Data_Presentation_Form: Map\")\n\n\n'Publication_Information and Larger_Work_Citation\npubFile = _workdir+_pathDel+\"publicat.dbf\"\nPubVTab = VTab.Make(PubFile.AsFileName,false,false)\np ubCnt = {}\nidSet = true\nif (PubVTab.GetSelection = NIL) then\n Pubid = NIL\n PubEx = NIL\nelse\n PubList = {}\n PubEx = true\n PubidField = PubVTab.FindField(\"Pub_Id\")\n for each o in PubVTab\n Pubid = PubVTab.ReturnValue(PubidField,o)\n PubList.Add(Pubid)\n if (Pubid.Contains(\"Publisher_Id\")) then\n pubCnt.Add(Pubid)\n end\n end\n Pubid = MsgBox.ListAsString(PubList,\"Select Publication_Information and Larger_Work_Citation Id.\",\"Publication_Information (publicat.dbf)\")\nend\n\npubDef = \"Publisher_Id \"+(pubCnt.Count + 1).AsString\nnewFont = Font.MakeStandard(#FONT_HELVBI)\nthePubList = {\"Publisher_Id (future use)\",\"8.8.1 Publication_Place:\",\"8.8.2 Publisher:\",\"8.11.1 Larger_Work_Originator\",\"8.11.2 Larger_Work_Publication_Date\",\"8.11.4 Larger_Work_Title\",\"8.11.8.1 Larger_Work_Publication_Place\",\"8.11.8.2 Larger_Work_Publisher\"}\nif (Pubid = NIL) then\n idSet = false\n theDefs = {pubDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n piList = MsgBox.MultiInput(\"Enter Publication_Information:\",\"Publication_Information (publi cat.dbf)\",thePubList,theDefs)\n if (piList.Count > 0) then\n Pubid = piList.Get(0)\n PubPlace = piList.Get(1)\n Publisher = piList.Get(2)\n LWOrg = piList.Get(3)\n LWDate = piList.Get(4)\n LWTitle = piList.Get(5)\n LWPubPlace = piList.Get(6)\n LWPub = piList.Get(7)\n if (PubEx = NIL) then\n PubVTab = VTab.MakeNew(Pubfile.AsFileName,dBASE)\n PubIdField = Field.Make(\"Pub_Id\",#FIELD_VCHAR,20,0)\n PubPlaceField = Field.Make(\"Pubplace\",#FIELD_VCHAR,50,0)\n PublisherField = Field .Make(\"Publisher\",#FIELD_VCHAR,50,0)\n PubOrgField = Field.Make(\"LWOrg\",#FIELD_VCHAR,50,0)\n PubDateField = Field.Make(\"LWDate\",#FIELD_VCHAR,50,0)\n PubTitleField = Field.Make(\"LWTitle\",#FIELD_VCHAR,50,0)\n LWPlaceField = Field.Make(\"LWPlace\",#FIELD_VCHAR,50,0)\n LWPubField = Field.Make(\"LWPub\",#FIELD_VCHAR,50,0)\n FieldList = {PubIdField,PubPlaceField,PublisherField,PubOrgField,PubDateField,PubTitleField,LWPlaceField,LWPubField}\n PubVTab.AddFields(FieldList)\n else\n PubV Tab = VTab.Make(PubFile.AsFileName,false,false)\n end\n PubVTab.Seteditable(true)\n newRec = PubVTab.AddRecord\n PubVTab.SetValue(PubVTab.FindField(\"Pub_Id\"), newRec, Pubid)\n PubVTab.SetValue(PubVTab.FindField(\"Pubplace\"), newRec, PubPlace)\n PubVTab.SetValue(PubVTab.FindField(\"Publisher\"),newRec, Publisher)\n PubVTab.SetValue(PubVTab.FindField(\"LWOrg\"), newRec, LWOrg)\n PubVTab.SetValue(PubVTab.FindField(\"LWDate\"), newRec, LWDate)\n PubVTab.SetValue(PubVTab.FindField(\"LWTitle\"), newRec, LWTitle)\n PubVTab.SetValue(PubVTab.FindField(\"LWPlace\"), newRec, LWPubPlace)\n PubVTab.SetValue(PubVTab.FindField(\"LWPub\"), newRec, LWPub)\n PubVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metaFile.Close\n HTMLFile.Close\n File.Delete(MetaFile.GetFileName)\n File.Delete( HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end 'checking if piList is empty\nend\nif (Pubid <> NIL) then\n Querystr = \"([Pub_id] =\"++Pubid.Quote+\")\"\n PubVTab.GetSelection.SetAll\n PubBitMap = PubVTab.GetSelection\n PubVTab.Query(Querystr,PubBitMap,#VTAB_SELTYPE_NEW)\n PubVTab.UpdateSelection\n QueryBitmap = PubVTab.GetSelection\n for each b in QueryBitmap\n Pubplace = PubVTab.ReturnValue(PubVTab.FindField(\"Pubplace\"),b)\n Publis her = PubVTab.ReturnValue(PubVTab.FindField(\"Publisher\"),b)\n Originator = PubVTab.ReturnValue(PubVTab.FindField(\"LWOrg\"),b)\n Pubdate = PubVTab.ReturnValue(PubVTab.FindField(\"LWDate\"),b)\n Pubtitle = PubVTab.ReturnValue(PubVTab.FindField(\"LWTitle\"),b)\n LWPlace = PubVTab.ReturnValue(PubVTab.FindField(\"LWPlace\"),b)\n LWPub = PubVTab.ReturnValue(PubVTab.FindField(\"LWPub\"),b)\n end\n if (idSet = true) then\n theDefs = {Pubplace.AsString,Publisher.AsString,Originator.AsString,Pubdate.AsString,Pubti tle.AsString,LWPlace.AsString,LWPub.AsString}\n theLabs = {\"8.8.1 Publication_Place:\",\"8.8.2 Publisher:\",\"8.11.1 Larger_Work_Originator\",\"8.11.2 Larger_Work_Publication_Date\",\"8.11.4 Larger_Work_Title\",\"8.11.8.1 Larger_Work_Publication_Place\",\"8.11.8.2 Larger_Work_Publisher\"} \n \n newDefs = {}\n for each d in theDefs\n if (d.AsString.Left(1) = \"\") then\n newDefs.Add(\" \")\n else\n newDefs.Add(d)\n end\n end ' for each loop\n \n \n piList = MsgBox.MultiInput(\"Publicat ion_Information based on:\"++PubId.AsString,\"Publication_Information (publicat.dbf)\",theLabs,newDefs)\n if (piList.Count > 0) then\n PubPlace = piList.Get(0)\n Publisher = piList.Get(1)\n LWOrg = piList.Get(2)\n LWDate = piList.Get(3)\n LWTitle = piList.Get(4)\n LWPubPlace = piList.Get(5)\n LWPub = piList.Get(6)\n else \n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (go on = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metaFile.Close\n HTMLFile.Close\n File.Delete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n else\n conid = NIL\n end\n end ' if piList.Count > 0\n end 'if idSet = true\n \n tmpMeta.WriteElt(\" Publication_Information\")\n tmpMeta.WriteElt(\" Publication_Place:\"++Pubplac e)\n tmpMeta.WriteElt(\" Publisher:\"++Publisher)\n \n tmpMeta.WriteElt(\" Larger_Work_Citation\")\n tmpMeta.WriteElt(\" Citation_Information\")\n tmpMeta.WriteElt(\" Originator:\"++Originator)\n tmpMeta.WriteElt(\" Publication_Date:\"++Pubdate)\n tmpMeta.WriteElt(\" Title:\"++Pubtitle)\n tmpMeta.WriteElt(\" Publication_Information\")\n tmpMeta.WriteElt(\" Publication_Place:\"++LWPlace)\n tmpMeta.WriteElt(\" Publisher:\"++LWPub)\n tmpHtml.WriteElt(\" Publication_Information\")\n tmpHtml.WriteElt(\" Publication_Place:\"++Pubplace)\n tmpHtml.WriteElt(\" Publisher:\"++Publisher)\n \n tmpHtml.WriteElt(\" Larger_Work_Citation\")\n tmpHtml.WriteElt(\" Citation_Information\")\n tmpHtml.WriteElt(\" Originator:\"++Originator)\n tmpHtml.WriteElt(\" Publication_Date:\"++Pubdate)\n tmpHtml.WriteElt(\" Title:\"++Pubtitle)\n tmpHtml.WriteElt(\" Publication_I nformation\")\n tmpHtml.WriteElt(\" Publication_Place:\"++LWPlace)\n tmpHtml.WriteElt(\" Publisher:\"++LWPub)\n\nend 'if PubId was set\nif (Pubid = NIL) then 'pubid never set write out empty tags\n tmpMeta.WriteElt(\" Publication_Information\")\n tmpMeta.WriteElt(\" Publication_Place:\")\n tmpMeta.WriteElt(\" Publisher:\")\n tmpMeta.WriteElt(\" Larger_Work_Citation\")\n tmpMeta.WriteElt(\" Citation_Information\")\n tmpMeta.WriteElt(\" Originator:\" )\n tmpMeta.WriteElt(\" Publication_Date:\")\n tmpMeta.WriteElt(\" Title:\")\n tmpMeta.WriteElt(\" Publication_Information\")\n tmpMeta.WriteElt(\" Publication_Place:\")\n tmpMeta.WriteElt(\" Publisher:\")\n tmpHtml.WriteElt(\" Publication_Information\")\n tmpHtml.WriteElt(\" Publication_Place:\")\n tmpHtml.WriteElt(\" Publisher:\")\n tmpHtml.WriteElt(\" Larger_Work_Citation\")\n tmpHtml.WriteElt(\" Citation_Informat ion\")\n tmpHtml.WriteElt(\" Originator:\")\n tmpHtml.WriteElt(\" Publication_Date:\")\n tmpHtml.WriteElt(\" Title:\")\n tmpHtml.WriteElt(\" Publication_Information\")\n tmpHtml.WriteElt(\" Publication_Place:\")\n tmpHtml.WriteElt(\" Publisher:\")\n\nend 'for checking if data was entered\n\n\n'Retrieve Other_Citation_Details from a text file, that already exists or create a new file if neccessary\ntmpMeta.WriteElt(\" Other_Citation_Details:\")\ntmpHtml.WriteElt(\" Other_Citation_Details:\")\n\ncitDet = MsgBox.YesNo(\"Do you want to retrieve Other_Citation_Details from an existing file?\",\"Other_Citation_Details\",false)\nif (citDet = true) then\n theFN = FileDialog.Show(\"*.*\",\"\",\"Select Other_Citation_Details\")\n if (theFN <> NIL) then\n theLF = LineFile.Make(theFN,#FILE_PERM_READ)\n While (theLF.IsAtEnd.Not)\n theElt = theLF.ReadElt\n tmpMeta.WriteElt(\" \"++theElt)\n tmpHtml.WriteElt(\" \"++theElt)\n end \n theLF.Close\n end\nelse\n AbstFile = _workdir+_pathDel+\"citation.dbf\"\n AbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\n citCnt = {}\n if (AbstVTab.GetSelection = NIL) then\n citid = NIL\n AbstEx = NIL\n askem = false\n else\n AbstList = {}\n AbstEx = true\n AbstidField = AbstVTab.FindField(\"cit_Id\")\n for each o in AbstVTab\n citid = AbstVTab.ReturnValue(AbstidField,o)\n AbstList.Add(citid)\n if (citid.Contains(\"Citation_Id\")) then\n citCnt.Add(citid)\n end\n end\n citid = MsgBox.ListAsString(AbstList,\"Select the Other_Citation_Details Id or Cancel to create new record.\",\"Other_Citation_Details (citation.dbf)\")\n if (citid <> NIL) then\n askem = true\n else\n askem = false\n end\n end\n citDef = \"Citation_Id\"+(citCnt.Count + 1).AsString\n if (citid = NIL) then\n theAbstList = {\"Citation_Id (future use)\",\"8.9 Other Citation Details\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"}\n theDefs = {citDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \", \" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"Other_Citation_Details:\",\"Create Other_Citation_Details (citation.dbf)\",theAbstList,theDefs)\n if (abList.Count > 0) then\n citid = abList.Get(0)\n l1 = abList.Get(1)\n l2 = abList.Get(2)\n l3 = abList.Get(3)\n l4 = abList.Get(4)\n l5 = abList.Get(5)\n l6 = abList.Get(6)\n l7 = abList.Get(7)\n l8 = abList.Get(8)\n l9 = abList.Get(9)\n l10 = abList.Get(10)\n \n if (AbstEx = NIL) then\n AbstVTab = VTab .MakeNew(Abstfile.AsFileName,dBASE)\n AbstIdField = Field.Make(\"cit_id\",#FIELD_VCHAR,30,0)\n line1 = Field.Make(\"line1\",#FIELD_VCHAR,65,0)\n line2 = Field.Make(\"line2\",#FIELD_VCHAR,65,0)\n line3 = Field.Make(\"line3\",#FIELD_VCHAR,65,0)\n line4 = Field.Make(\"line4\",#FIELD_VCHAR,65,0)\n line5 = Field.Make(\"line5\",#FIELD_VCHAR,65,0)\n line6 = Field.Make(\"line6\",#FIELD_VCHAR,65,0)\n line7 = Field.Make(\"line7\",#FIELD_VCHAR,65,0)\n line8 = Field.Make(\"line8\",#F IELD_VCHAR,65,0)\n line9 = Field.Make(\"line9\",#FIELD_VCHAR,65,0)\n line10 = Field.Make(\"line10\",#FIELD_VCHAR,65,0)\n FieldList = {AbstIdField,line1,line2,line3,line4,line5,line6,line7,line8,line9,line10}\n AbstVTab.AddFields(FieldList)\n else\n AbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\n end\n AbstVTab.Seteditable(true)\n newRec = AbstVTab.AddRecord\n AbstVTab.SetValue(AbstVTab.FindField(\"cit_id\"), newRec, citid) \n AbstVTab.SetValue(AbstVTab .FindField(\"line1\"), newRec, l1)\n AbstVTab.SetValue(AbstVTab.FindField(\"line2\"),newRec, l2)\n AbstVTab.SetValue(AbstVTab.FindField(\"line3\"), newRec, l3)\n AbstVTab.SetValue(AbstVTab.FindField(\"line4\"), newRec, l4)\n AbstVTab.SetValue(AbstVTab.FindField(\"line5\"), newRec, l5)\n AbstVTab.SetValue(AbstVTab.FindField(\"line6\"), newRec, l6)\n AbstVTab.SetValue(AbstVTab.FindField(\"line7\"), newRec, l7)\n AbstVTab.SetValue(AbstVTab.FindField(\"line8\"), newRec, l8)\n AbstVTab.SetValue(A bstVTab.FindField(\"line9\"), newRec, l9)\n AbstVTab.SetValue(AbstVTab.FindField(\"line10\"), newRec, l10)\n AbstVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metaFile.Close\n htmlfile.close\n File.Delete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFi leName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end 'for checking if any information was entered\n end 'end the if for Abstid = NIL, created new record!!\n \n if (citid <> NIL) then\n Querystr = \"([Cit_id] =\"++citid.Quote+\")\"\n AbstVTab.GetSelection.SetAll\n AbstBitMap = AbstVTab.GetSelection\n AbstVTab.Query(Querystr,AbstBitMap,#VTAB_SELTYPE_NEW)\n AbstVTab.UpdateSelection\n QueryBitmap = AbstVTab.GetSelection\n \n for each b in QueryBitmap\n ln1 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line1\"),b)\n ln2 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line2\"),b)\n ln3 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line3\"),b)\n ln4 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line4\"),b)\n ln5 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line5\"),b)\n ln6 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line6\"),b)\n ln7 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line7\"),b)\n ln8 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line8\"),b)\n ln9 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line9\"),b)\n ln10 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line10\"),b)\n \n abList = {ln1,ln2,ln3,ln4,ln5,ln6,ln7,ln8,ln9,ln10}\n end\n newList = {}\n for each a in abList\n if (a = \"\") then\n newList.Add(\" \")\n else\n newList.Add(a)\n end\n end\n if (askem = true) then\n theLabs = {\"8.9 Other Citation Details \",\" \",\" \",\" \",\" \", \" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"You may alter the Citation Information:\",\"Citation Information (citation.dbf)\", theLabs, newList)\n end\n for each a in abList\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then\n a = a.right(a.count - 1)\n if (a.count > 1) then\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n end\n else\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n end\n end\n end 'checking to see if citid was set \nend 'end the citation details \n\n\n'Retrieve or create the Abstract\ntmpMeta.WriteElt(\" Description\")\ntmpMeta.WriteElt(\" Abstract:\")\ntmpHtml.WriteElt(\" Description\")\ntmpHtml.WriteElt(\" Abstract:\")\n\n\n'Retrieve Abstract from a text file, that already exists or create a new file if neccessary\n\ncitDet = MsgBox.YesNo(\"Do you want to retrieve Abstract Information from an existing file?\",\"Abstract\",false)\nif (citDet = true) then\n theFN = FileDialog.Show(\"*.*\",\"\",\"Select Abstract File\")\n if (theFN <> NIL) then\n theLF = LineFile.Make(theFN,#FILE_PERM_READ)\n While (theLF.IsAtEnd.Not)\n theElt = theLF.ReadElt\n tmpMeta.WriteElt(\" \"+theElt)\n tmpHtml.WriteElt(\" \"+theElt)\n end \n theLF.Close\n end\nelse\n\n AbstFile = _workdir+_pathDel+\"abstract.dbf\"\n AbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\n abCnt = {}\n if (AbstVTab.GetSelection = NIL) then\n Abstid = NIL\n AbstEx = NIL\n askem = false\n else\n AbstList = {}\n AbstEx = true\n AbstidField = AbstVTab.FindField(\"Abst_Id\")\n for each o in AbstVTab\n Abstid = AbstVTab.ReturnValue(AbstidField,o)\n AbstList.Add(Abstid)\n if (abstid.Contains(\"Abstract_Id\")) then\n abCnt.Add(Abstid)\n end\n end\n Abstid = MsgBox.ListAsString(AbstList,\"Select the Abstract Id or Cancel to create new record.\",\"Abstract (abstract.dbf)\")\n if (Abstid <> NIL) then\n askem = true\n else\n askem = false\n en d\n end\n abDef = \"Abstract_Id\"+(abCnt.Count + 1).AsString\n if (Abstid = NIL) then\n theAbstList = {\"Abstract_Id (future use)\",\"1.2.1 Abstract \",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"}\n theDefs = {abDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"Enter the Abstract:\",\"Create Abstract (abstract.dbf)\",theAbstList,theDefs)\n if (abList.Count > 0) then\n \n Abstid = abList.Get(0)\n l1 = abList.Get(1)\n l2 = abList.Get(2)\n l3 = abList.Get(3)\n l4 = abList.Get(4)\n l5 = abList.Get(5)\n l6 = abList.Get(6)\n l7 = abList.Get(7)\n l8 = abList.Get(8)\n l9 = abList.Get(9)\n l10 = abList.Get(10)\n \n if (AbstEx = NIL) then\n AbstVTab = VTab.MakeNew(Abstfile.AsFileName,dBASE)\n AbstIdField = Field.Make(\"Abst_Id\",#FIELD_VCHAR,30,0)\n line1 = Field.Make(\"line1\",#FIELD_VCHAR,70,0)\n line2 = Field.Make(\"line2\",#FIELD_VCHAR,70,0)\n line3 = Field.Make(\"line3\",#FIELD_VCHAR,70,0)\n line4 = Field.Make(\"line4\",#FIELD_V CHAR,70,0)\n line5 = Field.Make(\"line5\",#FIELD_VCHAR,70,0)\n line6 = Field.Make(\"line6\",#FIELD_VCHAR,70,0)\n line7 = Field.Make(\"line7\",#FIELD_VCHAR,70,0)\n line8 = Field.Make(\"line8\",#FIELD_VCHAR,70,0)\n line9 = Field.Make(\"line9\",#FIELD_VCHAR,70,0)\n line10 = Field.Make(\"line10\",#FIELD_VCHAR,65,0)\n FieldList = {AbstIdField,line1,line2,line3,line4,line5,line6,line7,line8,line9,line10}\n AbstVTab.AddFields(FieldList)\n else\n AbstVTab = VTab.Make(Ab stFile.AsFileName,false,false)\n end\n AbstVTab.Seteditable(true)\n newRec = AbstVTab.AddRecord\n AbstVTab.SetValue(AbstVTab.FindField(\"Abst_Id\"), newRec, Abstid) \n AbstVTab.SetValue(AbstVTab.FindField(\"line1\"), newRec, l1)\n AbstVTab.SetValue(AbstVTab.FindField(\"line2\"),newRec, l2)\n AbstVTab.SetValue(AbstVTab.FindField(\"line3\"), newRec, l3)\n AbstVTab.SetValue(AbstVTab.FindField(\"line4\"), newRec, l4)\n AbstVTab.SetValue(AbstVTab.FindField(\"line5\"), newRec, l5)\n Ab stVTab.SetValue(AbstVTab.FindField(\"line6\"), newRec, l6)\n AbstVTab.SetValue(AbstVTab.FindField(\"line7\"), newRec, l7)\n AbstVTab.SetValue(AbstVTab.FindField(\"line8\"), newRec, l8)\n AbstVTab.SetValue(AbstVTab.FindField(\"line9\"), newRec, l9)\n AbstVTab.SetValue(AbstVTab.FindField(\"line10\"), newRec, l10)\n AbstVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metaFile.Close\n HTMLFile.Close\n File.Delete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end 'for checking if any info was added to the abList\n end 'end the if for Abstid = NIL, created new record!!\n\n if (Abstid <> NIL) then\n Querystr = \"([Abst_id] =\"++Abstid.Quote+\") \"\n AbstVTab.GetSelection.SetAll\n AbstBitMap = AbstVTab.GetSelection\n AbstVTab.Query(Querystr,AbstBitMap,#VTAB_SELTYPE_NEW)\n AbstVTab.UpdateSelection\n QueryBitmap = AbstVTab.GetSelection\n \n for each b in QueryBitmap\n ln1 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line1\"),b)\n ln2 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line2\"),b)\n ln3 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line3\"),b)\n ln4 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line4\") ,b)\n ln5 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line5\"),b)\n ln6 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line6\"),b)\n ln7 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line7\"),b)\n ln8 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line8\"),b)\n ln9 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line9\"),b)\n ln10 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line10\"),b)\n \n abList = {ln1,ln2,ln3,ln4,ln5,ln6,ln7,ln8,ln9,ln10}\n end\n newList = { }\n for each a in abList\n if (a = \"\") then\n newList.Add(\" \")\n else\n newList.Add(a)\n end\n end\n if (askem = true) then\n theLabs = {\"1.2.1 Abstract \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"You may alter the Abstract Information:\",\"Abstract Information (abstract.dbf)\", theLabs, newList)\n end\n for each a in abList\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then\n a = a.right(a.count - 1)\n if (a.coun t > 1) then\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n \n end\n else\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n \n end\n end\n end' checking to see if abstid got set\nend 'for collect Abstract\n\n\n'Create or Retrieve Purpose\n\ntmpMeta.WriteElt(\" Purpose:\")\ntmpHtml.WriteElt(\" Purpose:\")\n\n\ncitDet = MsgBox.YesNo(\"Do you want to retrieve Purpose Information from an existing file?\",\"Purpose\",false)\nif (ci tDet = true) then\n theFN = FileDialog.Show(\"*.*\",\"\",\"Select Purpose File\")\n if (theFN <> NIL) then\n theLF = LineFile.Make(theFN,#FILE_PERM_READ)\n While (theLF.IsAtEnd.Not)\n theElt = theLF.ReadElt\n tmpMeta.WriteElt(\" \"+theElt)\n tmpHtml.WriteElt(\" \"+theElt)\n end \n theLF.Close\n end\nelse\n\n purFile = _workdir+_pathDel+\"purpose.dbf\"\n purVTab = VTab.Make(purFile.AsFileName,false,false)\n purCnt = {}\n idSet = true\n if (purVTab.GetSelection = NIL) then\n purid = N IL\n purEx = NIL\n askem = false\n else\n purList = {}\n purEx = true\n puridField = purVTab.FindField(\"Pur_id\")\n for each o in purVTab\n purid = purVTab.ReturnValue(puridField,o)\n purList.Add(purid)\n if (purid.Contains(\"Purpose_Id\")) then\n purCnt.Add(purid)\n end\n end\n purid = MsgBox.ListAsString(purList,\"Please select the Purpose Id or Cancel to create new record.\",\"Purpose (purpose.dbf)\")\n if (purid <> NIL) then\n askem = true\n else\n askem = fals e\n end\n end\n purDef = \"Purpose_Id\"+(purCnt.Count + 1).AsString\n if (purid = NIL) then\n idSet = False\n thepurList = {\"purpose_Id (future use)\",\"1.2.2 Purpose \",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"}\n theDefs = {purDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"Enter the Purpose:\",\"Create Purpose (purpose.dbf)\",thepurList,theDefs)\n if (abList.Count > 0) then\n purid = abList.Get(0)\n l1 = abList.Get(1)\n l2 = abList.Get(2)\n l3 = abList.Get(3)\n l4 = ab List.Get(4)\n l5 = abList.Get(5)\n l6 = abList.Get(6)\n l7 = abList.Get(7)\n l8 = abList.Get(8)\n l9 = abList.Get(9)\n l10 = abList.Get(10)\n \n if (purEx = NIL) then\n purVTab = VTab.MakeNew(purfile.AsFileName,dBASE)\n purIdField = Field.Make(\"pur_Id\",#FIELD_VCHAR,20,0)\n line1 = Field.Make(\"line1\",#FIELD_VCHAR,70,0)\n line2 = Field.Make(\"line2\",#FIELD_VCHAR,70,0)\n line3 = Field.Make(\"line3\",#FIELD_VCHAR,70,0)\n line4 = Field.Make(\"line4\" ,#FIELD_VCHAR,70,0)\n line5 = Field.Make(\"line5\",#FIELD_VCHAR,70,0)\n line6 = Field.Make(\"line6\",#FIELD_VCHAR,70,0)\n line7 = Field.Make(\"line7\",#FIELD_VCHAR,70,0)\n line8 = Field.Make(\"line8\",#FIELD_VCHAR,70,0)\n line9 = Field.Make(\"line9\",#FIELD_VCHAR,70,0)\n line10 = Field.Make(\"line10\",#FIELD_VCHAR,70,0)\n FieldList = {purIdField,line1,line2,line3,line4,line5,line6,line7,line8,line9,line10}\n purVTab.AddFields(FieldList)\n else\n purVTab = VTab.M ake(purFile.AsFileName,false,false)\n end\n purVTab.Seteditable(true)\n newRec = purVTab.AddRecord\n purVTab.SetValue(purVTab.FindField(\"pur_Id\"), newRec, purid)\n purVTab.SetValue(purVTab.FindField(\"line1\"), newRec, l1)\n purVTab.SetValue(purVTab.FindField(\"line2\"),newRec, l2)\n purVTab.SetValue(purVTab.FindField(\"line3\"), newRec, l3)\n purVTab.SetValue(purVTab.FindField(\"line4\"), newRec, l4)\n purVTab.SetValue(purVTab.FindField(\"line5\"), newRec, l5)\n purVTab.SetVal ue(purVTab.FindField(\"line6\"), newRec, l6)\n purVTab.SetValue(purVTab.FindField(\"line7\"), newRec, l7)\n purVTab.SetValue(purVTab.FindField(\"line8\"), newRec, l8)\n purVTab.SetValue(purVTab.FindField(\"line9\"), newRec, l9)\n purVTab.SetValue(purVTab.FindField(\"line10\"), newRec, l10)\n purVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) th en\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end 'checking to see if any information was entered for purpose\n end 'PURID NIL to populate table\n \n if (purid <> NIL) then\n Querystr = \"([Pur_id] =\"++purid.Quote+\")\"\n purVTab.GetSelection.SetAll\n purBitMap = purVTab.GetSelection\n purVTab.Query(Querystr,purBitMap,#VTAB_SELTYPE_NEW)\n purVTab.UpdateSelection\n QueryBitmap = purVTab.GetSelection\n for each b in QueryBitmap\n pu1 = purVTab.ReturnValueString(purVTab.FindField(\"line1\"),b)\n pu2 = purVTab.ReturnValueString(purVTab.FindField(\"line2\"),b)\n pu3 = purVTab.ReturnValueString(purVTab.FindField(\"line3\"),b)\n pu4 = purVTab.ReturnValueString(purVTab.FindField(\"line4\"),b)\n pu5 = purVTab.ReturnValueString(purVTab.FindFi eld(\"line5\"),b)\n pu6 = purVTab.ReturnValueString(purVTab.FindField(\"line6\"),b)\n pu7 = purVTab.ReturnValueString(purVTab.FindField(\"line7\"),b)\n pu8 = purVTab.ReturnValueString(purVTab.FindField(\"line8\"),b)\n pu9 = purVTab.ReturnValueString(purVTab.FindField(\"line9\"),b)\n pu10 = purVTab.ReturnValueString(purVTab.FindField(\"line10\"),b)\n puList = {pu1,pu2,pu3,pu4,pu5,pu6,pu7,pu8,pu9,pu10}\n end\n \n newList = {}\n for each a in puList\n if (a = \"\") then\n newList.Ad d(\" \")\n else\n newList.Add(a)\n end\n end\n if (askem = true) then\n theLabs = {\"1.2.2 Purpose \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n puList = MsgBox.MultiInput(\"You may alter the Purpose Information:\",\"Purpose Information (purpose.dbf)\", theLabs, newList)\n end\n for each a in puList\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then\n a = a.right(a.count - 1)\n if (a.count > 1) then\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.Wr iteElt(\" \"+a)\n end\n else\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n end\n end\n end' checking for purid\nend 'purpose\n\n\n'Collect Time_Period_of_Content and Status\n\ntpList = {\"9.3.1 Beginning_Date:\",\"9.3.3 Ending_Date:\",\"1.3.1 Currentness_Reference:\",\"1.4.2 Maintainance_and_Update_Frequency\"}\ntpDefs = {\" \",\" \",\" \",\" \",\" \"}\ntpInfo = MsgBox.MultiInput(\"Enter Time_Period_of_Content:\",\"Time_Period_of_Content\",tpList,tpDefs)\nif (tpInfo.Count > 0 ) then\n tpStart = tpInfo.Get(0)\n tpEnd = tpInfo.Get(1)\n curRef = tpInfo.Get(2)\n main = tpInfo.Get(3) \n'write out tags for Time period of content\n keepon = true\n progList = {\"Complete\",\"In work\",\"Planned\"}\n While (keepon = true)\n prog = MsgBox.ChoiceAsString(progList, \"Select Progress\",\"1.4.1 Progress\")\n if (prog = NIL) then\n MsgBox.Info(\"You must report Progress of your data set (see 1.4.1).\", \"Progress\") \n else\n keepon = false\n end\n end \n tmpMeta.WriteElt(\" Time_Period_of_Co ntent\")\n tmpMeta.WriteElt(\" Time_Period_Information\")\n tmpMeta.WriteElt(\" Range_of_Dates/Times\")\n tmpMeta.WriteElt(\" Beginning_Date:\"++tpStart)\n tmpMeta.WriteElt(\" Ending_Date:\"++tpend)\n tmpMeta.WriteElt(\" Currentness_Reference:\"++curRef)\n tmpMeta.WriteElt(\" Status\")\n tmpMeta.WriteElt(\" Progress:\"++prog)\n tmpMeta.WriteElt(\" Maintenance_and_Update_Frequency:\"++main)\n tmpHtml.WriteElt(\" Time_Period_of_Content\")\n tmpHtml.WriteElt(\" Time_Period_Information \")\n tmpHtml.WriteElt(\" Range_of_Dates/Times\")\n tmpHtml.WriteElt(\" Beginning_Date:\"++tpStart)\n tmpHtml.WriteElt(\" Ending_Date:\"++tpend)\n tmpHtml.WriteElt(\" Currentness_Reference:\"++curRef)\n tmpHtml.WriteElt(\" Status\")\n tmpHtml.WriteElt(\" Progress:\"++prog)\n tmpHtml.WriteElt(\" Maintenance_and_Update_Frequency:\"++main)\n\nelse\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to conti nue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\nend 'checking to see if information was entered for Time Period of Content\n\n\n'Retrieve the Spatial Domain in Decimal Degrees if the User wants them in Decimal Degrees\n\n'Get the current sourc e units and make sure they are not unknown\n\nNumber.SetDefFormat(\"d.dddd\")\n\nif (_sourceunits <> #UNITS_LINEAR_DEGREES) then 'the coordinates will have to be projected\n doPrj = MsgBox.YesNo(\"Do you want to report bounding coordinates in Decimal Degrees?\",\"Decimal Degrees\",true)\n if (doPrj = true) then\n inputPrj = NIL\n 'Get the projection of the view\n \n myprj=av.getactivedoc.getprojection\n getprj = true\n While (getprj = true)\n if (inputPrj = NIL) then 'if projection info not determined f rom prj.adf, get the Projection \n Msgbox.Info(\"Please select the input projection\"++\n \"for Decimal Degree Conversion\",\"Projector!\")\n \n 'Pop up dialog box, to get input projection\n 'and check for cancel button (nil)\n \n inputPrj = ProjectionDialog.Show(_theView,_sourceunits)\n if (inputPrj = NIL) then\n getprj = MsgBox.YesNo(\"You must select the input projection to output coordinates in Decimal Degrees. Do you want to enter input Pro jection?\",\"Input Projection\",true)\n if (getprj = false) then\n getprj = false\n end\n else\n getprj = false\n end\n end 'Gathering input projection information\n end 'while loop checking for projection\n else\n inputPrj = NIL \n end\nelse\n inputPrj = NIL\nend' end for checking if the input projection is NOT Geographic\n\nif ((_sourceunits <> #UNITS_LINEAR_DEGREES) and (inputPrj <> NIL)) then\n 'set the output projection to GEOGRAPIC\n outputunits = #UNITS _LINEAR_DEGREES\n outputPrj = prj.MakeNull\n outputPrj.SetDescription(\"Geographic\")\n outputgeographic = true\n if (outputPrj = nil) then\n return nil\n end\n outputgeographic = outputPrj.ReturnDescription.Contains(\"Geographic\")\n \n thm = _theTheme\n wd = av.GetProject.GetWorkDir\n wd.SetCWD\n tempshape = Filename.GetCWD.MakeTmp(\"zxyprj\",\"shp\")\n theExt = thm.ReturnExtent\n \n upy = theExt.GetTop\n lowY = theExt.GetBottom\n east = theExt.GetRight\n west = theExt.GetLeft \n myFTab = FTab.MakeNew(\"zxyfile .dbf\".AsFileName, POINT )\n shapeF = myFTab.FindField(\"shape\")\n idField = Field.Make(\"ID\",#FIELD_DECIMAL,5,0)\n myFTab.AddFields({idField})\n id = myFTab.FindField(\"ID\")\n newRec = myFTab.Addrecord\n myFTab.SetValue(shapeF, newRec, east@upy)\n myFTab.SetValue(idField, newRec, 1)\n newRec = myFTab.Addrecord\n myFTab.SetValue(shapeF, newRec,west@upY)\n myFTab.SetValue(idField, newRec, 2)\n newRec = myFTab.Addrecord\n myFTab.SetValue(shapeF,newRec,east@lowY)\n myFTab.SetValue(idField, newRec, 3)\n newRec = my FTab.Addrecord\n myFTab.SetValue(shapeF,newRec,west@lowY)\n myFTab.SetValue(idField, newRec, 4) \n \n 'now export the ftab (selected records only), \n \n thmftab = myFTab\n shapetype = thmftab.FindField(\"Shape\").GetType\n \n if (outputgeographic) then\n tempFtab = thmFtab.ExportUnprojected(tempshape,inputPrj,\n thmFtab.GetSelection.Count >0)\n temptheme = FTheme.Make(tempFtab)\n newExt = tempTheme.ReturnExtent\n north = newExt.Gettop\n south = newExt.Getbottom\n east = newExt. GetRight\n west = newExt.GetLeft\n tempftab.DeActivate\n tempftab = nil\n myFTab.DeActivate\n av.PurgeObjects\n tempshpname = tempshape.GetBaseName.AsTokens(\".\").Get(0)\n tempshpdir = tempshape.GetFullName.Clone.AsFilename\n tempshpdir.Stripfile\n filesToDelete = tempshpdir.Readfiles(tempshpname+\".*\")\n \n tempdir = av.getproject.getworkdir\n mofilesToDelete = tempdir.Readfiles(\"zxy\"+\"*\"+\".*\")\n \n for each f in filesToDelete\n File.Delete(f)\n end\n for each f in mofilesToDele te\n File.Delete(f)\n end\n end\n \nelse 'meaning the data is already in Decimal Degrees or you don't want to convert to DD\n\n thm = _theTheme\n theExt = thm.ReturnExtent\n\n north = theExt.GetTop\n south = theExt.GetBottom\n east = theExt.GetRight\n west = theExt.GetLeft\n \nend 'for checking for Decimal Degrees\n\ntmpMeta.WriteElt(\" Spatial_Domain\")\ntmpMeta.WriteElt(\" Bounding_Coordinates\")\ntmpMeta.WriteElt(\" West_Bounding_Coordinate:\"++west.AsString)\ntmpMeta.WriteElt(\" East_Bounding_Coordinate:\" ++east.AsString)\ntmpMeta.WriteElt(\" North_Bounding_Coordinate:\"++north.AsString)\ntmpMeta.WriteElt(\" South_Bounding_Coordinate:\"++south.AsString)\ntmpHtml.WriteElt(\" Spatial_Domain\")\ntmpHtml.WriteElt(\" Bounding_Coordinates\")\ntmpHtml.WriteElt(\" West_Bounding_Coordinate:\"++west.AsString)\ntmpHtml.WriteElt(\" East_Bounding_Coordinate:\"++east.AsString)\ntmpHtml.WriteElt(\" North_Bounding_Coordinate:\"++north.AsString)\ntmpHtml.WriteElt(\" South_Boun ding_Coordinate:\"++south.AsString)\nNumber.SetDefFormat(\"d\")\n\n\n'Keywords\n\ntheLabs = {\"1.6.1.2 Theme Keywords \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\ntheDefs = {\"\",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\nthemeKey = MsgBox.Multiinput(\"Enter Theme Keywords (one per line):\",\"Theme Keywords\",theLabs,theDefs)\nif (themeKey.Count > 0) then\n tmpMeta.WriteElt(\" Keywords\")\n tmpMeta.WriteElt(\" Theme\")\n tmpMeta.WriteElt(\" Theme_Keyword_Thesaurus: None\")\n tmpHtml.WriteElt(\" Keywords\")\n tmpHtml.WriteE lt(\" Theme\")\n tmpHtml.WriteElt(\" Theme_Keyword_Thesaurus: None\")\n \n \n for each a in themeKey\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then 'check to see if input was put in by moving mouse\n a = a.right(a.count - 1)\n if (a.count > 1) then\n tmpMeta.WriteElt(\" Theme_Keyword:\"++a)\n tmpHtml.WriteElt(\" Theme_Keyword:\"++a)\n \n end\n else\n tmpMeta.WriteElt(\" Theme_Keyword:\"++a)\n tmpHtml.WriteElt(\" Them e_Keyword:\"++a)\n end\n end\nelse\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\nend\n\ntheLabs = {\"1.6.2.2 Place Keywords \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\ntheDefs = {\"\",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\nplaceKey = MsgBox.Multiinput(\"Enter Place Keywords (one per line):\",\"Place Keywords\",theLabs,theDefs)\nif (placeKey.Count > 0) then\n tmpMeta.WriteElt(\" Place\")\n tmpMeta.WriteElt(\" Place_Keyword_Thesaurus: None\")\n tmpHtml.WriteElt(\" Place\")\n tmpHtml.WriteElt(\" Place_Keyword_Thesaurus: None\")\n for each a in placeKey\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then 'check to see if in put was put in by moving mouse\n a = a.right(a.count - 1)\n if (a.count > 1) then\n tmpMeta.WriteElt(\" Place_Keyword:\"++a)\n tmpHtml.WriteElt(\" Place_Keyword:\"++a)\n end\n else\n tmpMeta.WriteElt(\" Place_Keyword:\"++a)\n tmpHtml.WriteElt(\" Place_Keyword:\"++a)\n end\n end\nelse \n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) th en\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\nend\n\n\n\n'Constraints\n\ntheLabs = {\"1.7 Access_Constraints:\",\"1.8 Use_Constraints:\"}\ntheDefs = {\" \",\" \"}\n\nconInfo = MsgBox.MultiInput(\"Enter Constraint_Information:\",\"Constraint_Information\",theLabs,theDefs)\nif (conInfo.Count > 0) then\n acc = conInfo.Get(0) \n usec = conInfo.Get(1)\n \n tmpMeta.WriteElt(\" Access_Constraints:\"++acc)\n tmpMeta.WriteElt(\" Use_Constraints:\"++usec)\n tmpHtml.WriteElt(\" Access_Constraints:\"++acc)\n tmpHtml.WriteElt(\" Use_Constraints:\"++usec)\n \nelse\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Del ete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n if (goon = true) then\n tmpMeta.WriteElt(\" Access_Constraints:\")\n tmpMeta.WriteElt(\" Use_Constraints:\")\n tmpHtml.WriteElt(\" Access_Constraints:\")\n tmpHtml.WriteElt(\" Use_Constraints:\")\n end\nend' checking to see if constraint information was entered \n\n\n\n'Point of Contact for Identification_Information\n\nconFile = _workdir+_path Del+\"contact.dbf\"\nconVTab = VTab.Make(conFile.AsFileName,false,false)\nconCnt = {}\nidSet = True\nif (conVTab.GetSelection = NIL) then\n conid = NIL\n conEx = NIL\nelse\n conList = {}\n conEx = true\n conidField = conVTab.FindField(\"con_Id\")\n for each o in conVTab\n conid = conVTab.ReturnValue(conidField,o)\n conList.Add(conid)\n if (conid.Contains(\"Contact_Id\")) then\n conCnt.Add(conid)\n end\n end\n conid = MsgBox.ListAsString(conList,\"Select Contact_Information Id or Cancel to enter a new record .\",\"Contact_Information (contact.dbf)\")\nend\nconDef = \"Contact_Id\"+(conCnt.Count + 1).AsString\nif (conid = NIL) then\n idSet = False\n theconList = {\"contact_Id (future use)\",\"10.1.2 Contact_Organization:\",\"10.1.1 Contact_Person:\",\"10.3 Contact_Position:\",\"10.4.2 Address:\",\"10.4.3 City:\",\"10.4.4 State_or_Province:\",\"10.4.5 Postal_Code:\",\"10.4.6 Country:\",\"10.5 Contact_Voice_Telephone:\",\"10.7 Contact_Facsimile_Telephone:\",\"10.8 Contact_Electronic_Mail_Address:\",\"10.9 Hours_of_Service:\"}\n theDefs = {conDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n piList = MsgBox.MultiInput(\"Enter Contact_Information:\",\"Contact_Information\",theconList,theDefs)\n if (piList.Count > 0) then\n conid = piList.Get(0)\n conOrg = piList.Get(1)\n conPer = piList.Get(2)\n conPos = piList.Get(3)\n Add = piList.Get(4)\n City = piList.Get(5)\n State = piList.Get(6)\n Pcode = piList.Get(7)\n Country = piList.Get(8)\n Vtele = piList.Get(9)\n Ftele = piList.Get(10)\n Email = piList.Get(11)\n Hours = piList.Get(12)\n if (conEx = NIL) then\n conVTab = VTab.MakeNew(confile.AsFileName,dBASE)\n conIdField = Field.Make(\"con_Id\",#FIELD_VCHAR,20,0)\n conOrgField = Field.Make(\"organ\",#FIELD_VCHAR,50,0)\n conPerField = Field.Make(\"person\",#FIELD_VCHAR,50,0)\n conPosField = Field.Make(\"position\",#FIELD_VCHAR,50,0)\n AddField = Field.Make(\"address\",#FIELD_VCHAR,50,0)\n CityField = Field.Make(\"city\",#FIELD_VCHAR,50,0)\n StateField = Field.Make(\"state\",#FIELD_VCHAR,50,0)\n PcodeField = Field.Make(\"pcode\",#FIELD_VCHAR,12,0)\n CountryField = Field.Make(\"country\",#FIELD_VCHAR,25,0)\n VteleField = Field.Make(\"tele\",#FIELD_VCHAR,20,0)\n FteleField = Field.Make(\"fax\",#FIELD_VCHAR,20,0)\n EmailField = Field.Make(\"email\",#FIELD_VCHAR,50,0)\n HoursField = Field.Make(\"hours\",#FIELD_VCHAR,50,0)\n FieldList = {conIdField,conOrgField,conPerField,conPosField,AddField,cityField,StateField,PcodeField,CountryField,VteleField,FteleField,EmailField,HoursField}\n conVTab.AddFields(FieldList)\n else\n conVTab = VTab.Make(conFile.AsFileName,false,false)\n end\n conVTab.Seteditable(true)\n newRec = conVTab.AddRecord\n conVTab.SetValue(conVTab.FindField(\"con_Id\"), newRec, conid)\n conVTab.SetValue(conVTab.FindField(\"organ\"), newRec, conOrg)\n conVTab.SetValue(conVTab.FindField(\"person\"),newRec, conPer)\n conVTab.SetValue(conVTab.FindField(\"position\"),newRec, conPos) \n conVTab.SetValue(conVTab.FindField(\"address\"), newRec, add)\n conVTab.SetValu e(conVTab.FindField(\"city\"), newRec, city)\n conVTab.SetValue(conVTab.FindField(\"state\"), newRec, state)\n conVTab.SetValue(conVTab.FindField(\"pcode\"), newRec, pcode)\n conVTab.SetValue(conVTab.FindField(\"country\"), newRec, country)\n conVTab.SetValue(conVTab.FindField(\"tele\"), newRec, vtele)\n conVTab.SetValue(conVTab.FindField(\"fax\"), newRec, ftele)\n conVTab.SetValue(conVTab.FindField(\"email\"), newRec, email)\n conVTab.SetValue(conVTab.FindField(\"hours\"), newRec, hours)\n conVTab.SetEdita ble(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end 'checking to see if information was ente red \nend\nif (conid <> NIL) then\n Querystr = \"([con_id] =\"++conid.Quote+\")\"\n conVTab.GetSelection.SetAll\n conBitMap = conVTab.GetSelection\n conVTab.Query(Querystr,conBitMap,#VTAB_SELTYPE_NEW)\n conVTab.UpdateSelection\n QueryBitmap = conVTab.GetSelection\n for each b in QueryBitmap\n org = conVTab.ReturnValue(conVTab.FindField(\"organ\"),b)\n person = conVTab.ReturnValue(conVTab.FindField(\"person\"),b)\n pos = conVTab.ReturnValue(conVTab.FindField(\"position\"),b) \n add = conVTab.ReturnValue(conVTab. FindField(\"address\"),b)\n city = conVTab.ReturnValue(conVTab.FindField(\"city\"),b)\n state = conVTab.ReturnValue(conVTab.FindField(\"state\"),b)\n pcode = conVTab.ReturnValue(conVTab.FindField(\"pcode\"),b)\n country = conVTab.ReturnValue(conVTab.FindField(\"country\"),b)\n tele = conVTab.ReturnValue(conVTab.FindField(\"tele\"),b)\n fax = conVTab.ReturnValue(conVTab.FindField(\"fax\"),b)\n email = conVTab.ReturnValue(conVTab.FindField(\"email\"),b)\n hours = conVTab.ReturnValue(conVTab.FindField(\"hours\") ,b) \n end\n if (idSet = True) then 'User selected an Id\n theconList = {\"10.1.2 Contact_Organization:\",\"10.1.1 Contact_Person:\",\"10.3 Contact_Position:\",\"10.4.2 Address:\",\"10.4.3 City:\",\"10.4.4 State_or_Province:\",\"10.4.5 Postal_Code:\",\"10.4.6 Country:\",\"10.5 Contact_Voice_Telephone:\",\"10.7 Contact_Facsimile_Telephone:\",\"10.8 Contact_Electronic_Mail_Address:\",\"10.9 Hours_of_Service:\"}\n theDefs = {org.AsString,person.AsString,pos.AsString,add.AsString,city.AsString,state.AsString,pcode.AsString,count ry.AsString,tele.AsString,fax.AsString,email.AsString,hours.AsString}\n newDefs = {}\n for each d in theDefs\n if (d.AsString.Left(1) = \"\") then\n newDefs.Add(\" \")\n else\n newDefs.Add(d)\n end\n end ' for each loop\n \n \n piList = MsgBox.MultiInput(\"Contact_Information based on:\"++conId.AsString,\"Contact_Information (contact.dbf)\",theconList,newDefs)\n if (piList.Count > 0) then\n Org = piList.Get(0)\n Per = piList.Get(1)\n Pos = piList.Get(2)\n Add = piList.Get(3)\n City = piList.Get(4)\n State = piList.Get(5)\n Pcode = piList.Get(6)\n Country = piList.Get(7)\n Vtele = piList.Get(8)\n Ftele = piList.Get(9)\n Email = piList.Get(10)\n Hours = piList.Get(11)\n \n tmpMeta.WriteElt(\" Point_of_Contact\")\n tmpMeta.WriteElt(\" Contact_Information\")\n tmpMeta.WriteElt(\" Contact_Organization_Primary\")\n tmpMeta.WriteElt(\" Contact_Organization:\"++org)\n tmpMeta.WriteElt(\" Contact_Person:\"+ +person)\n tmpMeta.WriteElt(\" Contact_Position:\"++pos)\n tmpHtml.WriteElt(\" Point_of_Contact\")\n tmpHtml.WriteElt(\" Contact_Information\")\n tmpHtml.WriteElt(\" Contact_Organization_Primary\")\n tmpHtml.WriteElt(\" Contact_Organization:\"++org)\n tmpHtml.WriteElt(\" Contact_Person:\"++person)\n tmpHtml.WriteElt(\" Contact_Position:\"++pos)\n \n \n tmpMeta.WriteElt(\" Contact_Address\")\n tmpMe ta.WriteElt(\" Address_Type: mailing and physical address\")\n tmpMeta.WriteElt(\" Address:\"++add)\n tmpMeta.WriteElt(\" City:\"++city)\n tmpMeta.WriteElt(\" State_or_Province:\"++state)\n tmpMeta.WriteElt(\" Postal_Code:\"++pcode)\n tmpMeta.WriteElt(\" Country:\"++country)\n tmpMeta.WriteElt(\" Contact_Voice_Telephone:\"++tele)\n tmpMeta.WriteElt(\" Contact_Facsimile_Telephone:\"++fax)\n tmpMeta.WriteElt(\" Contact_Electronic_Mail_Add ress:\"++email)\n tmpMeta.WriteElt(\" Hours_of_Service:\"++hours)\n tmpHtml.WriteElt(\" Contact_Address\")\n tmpHtml.WriteElt(\" Address_Type: mailing and physical address\")\n tmpHtml.WriteElt(\" Address:\"++add)\n tmpHtml.WriteElt(\" City:\"++city)\n tmpHtml.WriteElt(\" State_or_Province:\"++state)\n tmpHtml.WriteElt(\" Postal_Code:\"++pcode)\n tmpHtml.WriteElt(\" Country:\"++country)\n tmpHtml.WriteElt(\" Contact_Voice_Telephone:\"++tele)\n tmpHtml.WriteElt(\" Contact_Facsimile_Telephone:\"++fax)\n tmpHtml.WriteElt(\" Contact_Electronic_Mail_Address:\"++email)\n tmpHtml.WriteElt(\" Hours_of_Service:\"++hours)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(MetaFile.GetFileName)\n File.Delete(HTMLFile.GetFileName)\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n else\n conid = NIL\n end\n end' if piList from user ID\n end 'checking for idSet\nend ' Conid <> NIL\n \nif(conid = NIL) then'conid is NIL write out empty data\n tmpMeta.WriteElt(\" Point_of_Contact\")\n tmpMeta.WriteElt(\" Contact_Information\")\n tmpMeta .WriteElt(\" Contact_Organization_Primary\")\n tmpMeta.WriteElt(\" Contact_Address\")\n tmpMeta.WriteElt(\" Address_Type: mailing and physical address\")\n tmpHtml.WriteElt(\" Point_of_Contact\")\n tmpHtml.WriteElt(\" Contact_Information\")\n tmpHtml.WriteElt(\" Contact_Organization_Primary\")\n tmpHtml.WriteElt(\" Contact_Address\")\n tmpHtml.WriteElt(\" Address_Type: mailing and physical address\")\n\nend 'checking to see if contact information was en tered\n\n\n'Native_DataSet_Environment\nif ((_refMeth = \"Vector\") or (_refMeth = \"Point\")) then\n if (_theType = \"Shapefile\") then\n ver = \"ArcView version\"++av.GetVersion\n else\n ver = \"Arc/Info\"\n end\nelse\n ver = MsgBox.Input(\"Enter the Native_DataSet_Environment\",\"Native_Dataset_Environment\",\" \")\n if (ver = NIL) then\n ver = \"\"\n end\nend\n\npath = _theTheme.GetSrcName.GetDataSource\n\ntmpMeta.WriteElt(\" Native_Data_Set_Environment\")\ntmpMeta.WriteElt(\" \"+ver)\ntmpMeta.WriteElt(\" \"+path)\ntmpHtml.Wri teElt(\" Native_Data_Set_Environment\")\ntmpHtml.WriteElt(\" \"+ver)\ntmpHtml.WriteElt(\" \"+path)\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"

Top

\")\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"
\")\n\ntmpMeta.Close\ntmpHtml.Close\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_READ)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_READ)\nWhile (tmpMeta.IsAtEnd.NOT)\n theElt = tmpMeta.ReadElt\n MetaFile.WriteElt(theElt)\nend\nWhile (tmpHtm l.IsAtEnd.NOT)\n theElt = tmpHtml.ReadElt\n HTMLFile.WriteElt(theElt)\nend\ntmpMeta.Close\ntmpHtml.Close\nFile.Delete(tmpName.AsFileName)\nFile.Delete(htmpName.AsFileName)\n\nnextSect = MsgBox.YesNo(\"Section 1 IDENTIFICATION_INFORMATION is complete! Do you want to create section 2 DATA_QUALITY_INFORMATION?\",\"Next Section\",true)\nif (nextsect = true) then\n av.Run(\"meta.Sec2\",{MetaFile,HtmlFile})\nelse\n metaFile.Close\n htmlFile.Close\n exit\nend" ) (Script.32 Name: "meta.Sec2" SourceCode: "MetaFile = Self.Get(0)\nHtmlFile = Self.Get(1)\n\ntmpName = _workDir.AsString+_pathDel+\"xxtmpm.tmp\"\nhtmpName = _workdir.AsString+_pathDel+\"xxtmph.tmp\"\nif (File.Exists(tmpName.AsFileName)) then\n File.Delete(tmpName.AsFileName)\nend\nif (File.Exists(htmpName.AsFileName)) then\n File.Delete(htmpName.AsFileName)\nend\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml.WriteElt(\"
\")\n\n\n'Collect DATA_QUALITY_INFORMATION\n\n\n\ntmpMeta.WriteE
lt(\" \")\ntmpMeta.WriteElt(\"DATA_QUALITY_INFORMATION\")\ntmpMeta.WriteElt(\"\")\ntmpMeta.WriteElt(\"  Attribute_Accuracy\")\ntmpMeta.WriteElt(\"    Attribute_Accuracy_Report:\")\n\ntmphtml.WriteElt(\"\")\ntmphtml.WriteElt(\"

DATA_QUALITY_INFORMATION

\")\ntmphtml.WriteElt(\" Attribute_Accuracy\")\ntmphtml.WriteElt(\" Attribute_Accuracy_Report:\")\n\n\n\nAbstFile = _workdir+_pathDel+\"attaccur.dbf\"\nAbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\nabCnt = {}\nif (AbstVTab.GetSelection = NIL) then \n Abstid = NIL\n AbstEx = NIL\n askem = false\nelse\n AbstList = {}\n AbstEx = true\n AbstidField = AbstVTab.FindField(\"Attacc_Id\")\n for each o in AbstVTab\n Abstid = AbstVTab.ReturnValue(AbstidField,o)\n AbstList.Add(Abstid)\n if (abstid.Contains(\"Accuracy_Id\")) then\n abCnt.Add(Abstid)\n end\n end\n Abstid = MsgBox.ListAsString(AbstList,\"Select the Attribute_Accuracy_Report Id or Cancel to create new record.\",\"Abstract (abstract.dbf)\")\n if (Abstid <> NIL) then\n askem = true\n else\n ask em = false\n end\nend\nabDef = \"Accuracy_Id\"+(abCnt.Count + 1).AsString\nif (Abstid = NIL) then\n theAbstList = {\"Accuracy_Id (future use)\",\"2.1.1 Attribute_Accuracy_Report\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"}\n theDefs = {abDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"Enter the Attribute_Accuracy_Report:\",\"Create Accuracy_Report (attaccur.dbf)\",theAbstList,theDefs)\n if (abList.Count > 0) then\n \n Abstid = abList.Get(0)\n l1 = abList.Get(1)\n l2 = abList.Get(2)\n l3 = abList.Get (3)\n l4 = abList.Get(4)\n l5 = abList.Get(5)\n l6 = abList.Get(6)\n l7 = abList.Get(7)\n l8 = abList.Get(8)\n l9 = abList.Get(9)\n l10 = abList.Get(10)\n \n if (AbstEx = NIL) then\n AbstVTab = VTab.MakeNew(Abstfile.AsFileName,dBASE)\n AbstIdField = Field.Make(\"Attacc_Id\",#FIELD_VCHAR,30,0)\n line1 = Field.Make(\"line1\",#FIELD_VCHAR,70,0)\n line2 = Field.Make(\"line2\",#FIELD_VCHAR,70,0)\n line3 = Field.Make(\"line3\",#FIELD_VCHAR,70,0)\n line4 = Field.Make(\"line4\",#FIEL D_VCHAR,70,0)\n line5 = Field.Make(\"line5\",#FIELD_VCHAR,70,0)\n line6 = Field.Make(\"line6\",#FIELD_VCHAR,70,0)\n line7 = Field.Make(\"line7\",#FIELD_VCHAR,70,0)\n line8 = Field.Make(\"line8\",#FIELD_VCHAR,70,0)\n line9 = Field.Make(\"line9\",#FIELD_VCHAR,70,0)\n line10 = Field.Make(\"line10\",#FIELD_VCHAR,70,0)\n FieldList = {AbstIdField,line1,line2,line3,line4,line5,line6,line7,line8,line9,line10}\n AbstVTab.AddFields(FieldList)\n else\n AbstVTab = VTab.Make(AbstFile.AsFileName ,false,false)\n end\n AbstVTab.Seteditable(true)\n newRec = AbstVTab.AddRecord\n AbstVTab.SetValue(AbstVTab.FindField(\"Attacc_Id\"), newRec, Abstid) \n AbstVTab.SetValue(AbstVTab.FindField(\"line1\"), newRec, l1)\n AbstVTab.SetValue(AbstVTab.FindField(\"line2\"),newRec, l2)\n AbstVTab.SetValue(AbstVTab.FindField(\"line3\"), newRec, l3)\n AbstVTab.SetValue(AbstVTab.FindField(\"line4\"), newRec, l4)\n AbstVTab.SetValue(AbstVTab.FindField(\"line5\"), newRec, l5)\n AbstVTab.SetValue(AbstVTab.FindField( \"line6\"), newRec, l6)\n AbstVTab.SetValue(AbstVTab.FindField(\"line7\"), newRec, l7)\n AbstVTab.SetValue(AbstVTab.FindField(\"line8\"), newRec, l8)\n AbstVTab.SetValue(AbstVTab.FindField(\"line9\"), newRec, l9)\n AbstVTab.SetValue(AbstVTab.FindField(\"line10\"), newRec, l10)\n AbstVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n t mpHtml.Close\n tmpMeta.Close\n metaFile.Close\n HTMLFile.Close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end 'for checking if any info was added to the abList\nend 'end the if for Abstid = NIL, created new record!!\n\nif (Abstid <> NIL) then\n Querystr = \"([Attacc_id] =\"++Abstid.Quote+\")\"\n AbstVTab.GetSelection.SetAll\n AbstBitMap = AbstVTab.GetSelection\n AbstVTab.Query(Querystr,AbstBitMap,#VTAB_SELTYPE_NEW)\n AbstVTab.UpdateSelection\n Quer yBitmap = AbstVTab.GetSelection\n \n for each b in QueryBitmap\n ln1 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line1\"),b)\n ln2 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line2\"),b)\n ln3 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line3\"),b)\n ln4 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line4\"),b)\n ln5 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line5\"),b)\n ln6 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line6\"),b)\n ln7 = AbstVTab.ReturnValueString(Abst VTab.FindField(\"line7\"),b)\n ln8 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line8\"),b)\n ln9 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line9\"),b)\n ln10 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line10\"),b)\n \n abList = {ln1,ln2,ln3,ln4,ln5,ln6,ln7,ln8,ln9,ln10}\n end\n newList = {}\n for each a in abList\n if (a = \"\") then\n newList.Add(\" \")\n else\n newList.Add(a)\n end\n end\n if (askem = true) then\n theLabs = {\"2.1.1 Attribute_Accuracy_Report\",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"You may alter the Attribute_Accuracy_Report Information:\",\"Accuracy_Report Information (attaccur.dbf)\", theLabs, newList)\n end\n for each a in abList\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then\n a = a.right(a.count - 1)\n if (a.count > 1) then\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n\n end\n else\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n\n end\n end\nend' checking to see if abstid got set\n\n'Logical_Consistency_Report\ntmpMeta.WriteElt(\" Logical_Consistency_Report:\")\ntmphtml.WriteElt(\" Logical_Consistency_Report:\")\n\n\n\nAbstFile = _workdir+_pathDel+\"logcon.dbf\"\nAbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\nabCnt = {}\nif (AbstVTab.GetSelection = NIL) then\n Abstid = NIL\n AbstEx = NIL\n askem = false\nelse\n AbstList = {}\n AbstEx = true\n AbstidField = AbstVTab.FindField(\"logcon_Id\")\n for each o in AbstVTab\n Abstid = AbstVTab.R eturnValue(AbstidField,o)\n AbstList.Add(Abstid)\n if (abstid.Contains(\"Consistency_Id\")) then\n abCnt.Add(Abstid)\n end\n end\n Abstid = MsgBox.ListAsString(AbstList,\"Select the Logical_Consistency_Report Id or Cancel to create new record.\",\"Abstract (abstract.dbf)\")\n if (Abstid <> NIL) then\n askem = true\n else\n askem = false\n end\nend\nabDef = \"Consistency_Id\"+(abCnt.Count + 1).AsString\nif (Abstid = NIL) then\n theAbstList = {\"Consistency_Id (future use)\",\"2.2 Logical_Consistency_Report\", \"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"}\n theDefs = {abDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"Enter the Logical_Consistency_Report:\",\"Create Logical_Consistency_Report (logcon.dbf)\",theAbstList,theDefs)\n if (abList.Count > 0) then\n \n Abstid = abList.Get(0)\n l1 = abList.Get(1)\n l2 = abList.Get(2)\n l3 = abList.Get(3)\n l4 = abList.Get(4)\n l5 = abList.Get(5)\n l6 = abList.Get(6)\n l7 = abList.Get(7)\n l8 = abList.Get(8)\n l9 = abList.Get(9)\n l10 = abList.Ge t(10)\n \n if (AbstEx = NIL) then\n AbstVTab = VTab.MakeNew(Abstfile.AsFileName,dBASE)\n AbstIdField = Field.Make(\"Logcon_Id\",#FIELD_VCHAR,30,0)\n line1 = Field.Make(\"line1\",#FIELD_VCHAR,70,0)\n line2 = Field.Make(\"line2\",#FIELD_VCHAR,70,0)\n line3 = Field.Make(\"line3\",#FIELD_VCHAR,70,0)\n line4 = Field.Make(\"line4\",#FIELD_VCHAR,70,0)\n line5 = Field.Make(\"line5\",#FIELD_VCHAR,70,0)\n line6 = Field.Make(\"line6\",#FIELD_VCHAR,70,0)\n line7 = Field.Make(\"line7\",#FIELD_VCH AR,70,0)\n line8 = Field.Make(\"line8\",#FIELD_VCHAR,70,0)\n line9 = Field.Make(\"line9\",#FIELD_VCHAR,70,0)\n line10 = Field.Make(\"line10\",#FIELD_VCHAR,70,0)\n FieldList = {AbstIdField,line1,line2,line3,line4,line5,line6,line7,line8,line9,line10}\n AbstVTab.AddFields(FieldList)\n else\n AbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\n end\n AbstVTab.Seteditable(true)\n newRec = AbstVTab.AddRecord\n AbstVTab.SetValue(AbstVTab.FindField(\"Logcon_Id\"), newRec, Abstid) \n AbstVTab.SetValue(AbstVTab.FindField(\"line1\"), newRec, l1)\n AbstVTab.SetValue(AbstVTab.FindField(\"line2\"),newRec, l2)\n AbstVTab.SetValue(AbstVTab.FindField(\"line3\"), newRec, l3)\n AbstVTab.SetValue(AbstVTab.FindField(\"line4\"), newRec, l4)\n AbstVTab.SetValue(AbstVTab.FindField(\"line5\"), newRec, l5)\n AbstVTab.SetValue(AbstVTab.FindField(\"line6\"), newRec, l6)\n AbstVTab.SetValue(AbstVTab.FindField(\"line7\"), newRec, l7)\n AbstVTab.SetValue(AbstVTab.FindField(\"line8\"), newRec, l8)\n AbstVTab. SetValue(AbstVTab.FindField(\"line9\"), newRec, l9)\n AbstVTab.SetValue(AbstVTab.FindField(\"line10\"), newRec, l10)\n AbstVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metaFile.Close\n HTMLFile.Close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exi t\n end\n end 'for checking if any info was added to the abList\nend 'end the if for Abstid = NIL, created new record!!\n\nif (Abstid <> NIL) then\n Querystr = \"([Logcon_id] =\"++Abstid.Quote+\")\"\n AbstVTab.GetSelection.SetAll\n AbstBitMap = AbstVTab.GetSelection\n AbstVTab.Query(Querystr,AbstBitMap,#VTAB_SELTYPE_NEW)\n AbstVTab.UpdateSelection\n QueryBitmap = AbstVTab.GetSelection\n \n for each b in QueryBitmap\n ln1 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line1\"),b)\n ln2 = AbstVTab.ReturnValue String(AbstVTab.FindField(\"line2\"),b)\n ln3 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line3\"),b)\n ln4 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line4\"),b)\n ln5 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line5\"),b)\n ln6 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line6\"),b)\n ln7 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line7\"),b)\n ln8 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line8\"),b)\n ln9 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line9\"),b )\n ln10 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line10\"),b)\n \n abList = {ln1,ln2,ln3,ln4,ln5,ln6,ln7,ln8,ln9,ln10}\n end\n newList = {}\n for each a in abList\n if (a = \"\") then\n newList.Add(\" \")\n else\n newList.Add(a)\n end\n end\n if (askem = true) then\n theLabs = {\"2.2 Logical_Consistency_Report\",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"You may alter the Logical_Consistency_Report Information:\",\"Logical_Consistency_Report Information (logcon. dbf)\", theLabs, newList)\n end\n for each a in abList\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then\n a = a.right(a.count - 1)\n if (a.count > 1) then\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n\n end\n else\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n\n end\n end\nend' checking to see if abstid got set\n\n\n'Completeness_Report\ntmpMeta.WriteElt(\" Completeness_Report:\")\ntmphtml.WriteElt(\" Completeness_R eport:\")\n\nAbstFile = _workdir+_pathDel+\"comprep.dbf\"\nAbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\nabCnt = {}\nif (AbstVTab.GetSelection = NIL) then\n Abstid = NIL\n AbstEx = NIL\n askem = false\nelse\n AbstList = {}\n AbstEx = true\n AbstidField = AbstVTab.FindField(\"Comprep_Id\")\n for each o in AbstVTab\n Abstid = AbstVTab.ReturnValue(AbstidField,o)\n AbstList.Add(Abstid)\n if (abstid.Contains(\"Completeness_Id\")) then\n abCnt.Add(Abstid)\n end\n end\n Abstid = MsgBox.ListAsString(Abs tList,\"Select the Completeness_Report Id or Cancel to create new record.\",\"Completeness_Report (comprep.dbf)\")\n if (Abstid <> NIL) then\n askem = true\n else\n askem = false\n end\nend\nabDef = \"Completeness_Id\"+(abCnt.Count + 1).AsString\nif (Abstid = NIL) then\n theAbstList = {\"Completeness_Id (future use)\",\"2.3 Completeness_Report\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"}\n theDefs = {abDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"Enter the Completeness_Report:\",\"Create Completeness_Re port (comprep.dbf)\",theAbstList,theDefs)\n if (abList.Count > 0) then\n \n Abstid = abList.Get(0)\n l1 = abList.Get(1)\n l2 = abList.Get(2)\n l3 = abList.Get(3)\n l4 = abList.Get(4)\n l5 = abList.Get(5)\n l6 = abList.Get(6)\n l7 = abList.Get(7)\n l8 = abList.Get(8)\n l9 = abList.Get(9)\n l10 = abList.Get(10)\n \n if (AbstEx = NIL) then\n AbstVTab = VTab.MakeNew(Abstfile.AsFileName,dBASE)\n AbstIdField = Field.Make(\"Comprep_Id\",#FIELD_VCHAR,30,0)\n line1 = Field.Make(\"li ne1\",#FIELD_VCHAR,70,0)\n line2 = Field.Make(\"line2\",#FIELD_VCHAR,70,0)\n line3 = Field.Make(\"line3\",#FIELD_VCHAR,70,0)\n line4 = Field.Make(\"line4\",#FIELD_VCHAR,70,0)\n line5 = Field.Make(\"line5\",#FIELD_VCHAR,70,0)\n line6 = Field.Make(\"line6\",#FIELD_VCHAR,70,0)\n line7 = Field.Make(\"line7\",#FIELD_VCHAR,70,0)\n line8 = Field.Make(\"line8\",#FIELD_VCHAR,70,0)\n line9 = Field.Make(\"line9\",#FIELD_VCHAR,70,0)\n line10 = Field.Make(\"line10\",#FIELD_VCHAR,70,0)\n FieldList = {AbstIdField,line1,line2,line3,line4,line5,line6,line7,line8,line9,line10}\n AbstVTab.AddFields(FieldList)\n else\n AbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\n end\n AbstVTab.Seteditable(true)\n newRec = AbstVTab.AddRecord\n AbstVTab.SetValue(AbstVTab.FindField(\"Comprep_Id\"), newRec, Abstid) \n AbstVTab.SetValue(AbstVTab.FindField(\"line1\"), newRec, l1)\n AbstVTab.SetValue(AbstVTab.FindField(\"line2\"),newRec, l2)\n AbstVTab.SetValue(AbstVTab.FindField(\"line3\"), newRec, l3)\n AbstVTab.SetValue(AbstVTab.FindField(\"line4\"), newRec, l4)\n AbstVTab.SetValue(AbstVTab.FindField(\"line5\"), newRec, l5)\n AbstVTab.SetValue(AbstVTab.FindField(\"line6\"), newRec, l6)\n AbstVTab.SetValue(AbstVTab.FindField(\"line7\"), newRec, l7)\n AbstVTab.SetValue(AbstVTab.FindField(\"line8\"), newRec, l8)\n AbstVTab.SetValue(AbstVTab.FindField(\"line9\"), newRec, l9)\n AbstVTab.SetValue(AbstVTab.FindField(\"line10\"), newRec, l10)\n AbstVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If yo u exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metaFile.Close\n HTMLFile.Close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end 'for checking if any info was added to the abList\nend 'end the if for Abstid = NIL, created new record!!\n\nif (Abstid <> NIL) then\n Querystr = \"([Comprep_id] =\"++Abstid .Quote+\")\"\n AbstVTab.GetSelection.SetAll\n AbstBitMap = AbstVTab.GetSelection\n AbstVTab.Query(Querystr,AbstBitMap,#VTAB_SELTYPE_NEW)\n AbstVTab.UpdateSelection\n QueryBitmap = AbstVTab.GetSelection\n \n for each b in QueryBitmap\n ln1 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line1\"),b)\n ln2 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line2\"),b)\n ln3 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line3\"),b)\n ln4 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line4\"),b)\n ln5 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line5\"),b)\n ln6 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line6\"),b)\n ln7 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line7\"),b)\n ln8 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line8\"),b)\n ln9 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line9\"),b)\n ln10 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line10\"),b)\n \n abList = {ln1,ln2,ln3,ln4,ln5,ln6,ln7,ln8,ln9,ln10}\n end\n newList = {}\n for each a in abList\n if ( a = \"\") then\n newList.Add(\" \")\n else\n newList.Add(a)\n end\n end\n if (askem = true) then\n theLabs = {\"2.3 Completeness_Report\",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"You may alter the Completeness_Report Information:\",\"Completeness_Report Information (comprep.dbf)\", theLabs, newList)\n end\n for each a in abList\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then\n a = a.right(a.count - 1)\n if (a.count > 1) then\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n\n end\n else\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n\n end\n end\nend' checking to see if abstid got set\n\n\n\n'Horizontal_Positional_Accuracy_Report\ntmpMeta.WriteElt(\" Positional_Accuracy\")\ntmphtml.WriteElt(\" Positional_Accuracy\")\ntmpMeta.WriteElt(\" Horizontal_Positional_Accuracy\")\ntmphtml.WriteElt(\" Horizontal_Positional_Accuracy\")\ntmpMeta.WriteElt(\" Horizontal_Positional_Accuracy_R eport:\")\ntmphtml.WriteElt(\" Horizontal_Positional_Accuracy_Report:\")\n\nAbstFile = _workdir+_pathDel+\"horpos.dbf\"\nAbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\nabCnt = {}\nif (AbstVTab.GetSelection = NIL) then\n Abstid = NIL\n AbstEx = NIL\n askem = false\nelse\n AbstList = {}\n AbstEx = true\n AbstidField = AbstVTab.FindField(\"Horpos_Id\")\n for each o in AbstVTab\n Abstid = AbstVTab.ReturnValue(AbstidField,o)\n AbstList.Add(Abstid)\n if (abstid.Contains(\"Horizontal_Id\")) then\n ab Cnt.Add(Abstid)\n end\n end\n Abstid = MsgBox.ListAsString(AbstList,\"Select the Horizontal_Positional_Accuracy_Report Id or Cancel to create new record.\",\"Horizontal_Positional_Accuracy_Report (horpos.dbf)\")\n if (Abstid <> NIL) then\n askem = true\n else\n askem = false\n end\nend\nabDef = \"Horizontal_Id\"+(abCnt.Count + 1).AsString\nif (Abstid = NIL) then\n theAbstList = {\"Horizontal_Id (future use)\",\"2.4.1.1 Horizontal_Positional_Accuracy_Report\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"}\n theDefs = {abDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"Enter the Horizontal_Positional_Accuracy_Report:\",\"Create Horizontal_Positional_Accuracy_Report (horpos.dbf)\",theAbstList,theDefs)\n if (abList.Count > 0) then\n \n Abstid = abList.Get(0)\n l1 = abList.Get(1)\n l2 = abList.Get(2)\n l3 = abList.Get(3)\n l4 = abList.Get(4)\n l5 = abList.Get(5)\n l6 = abList.Get(6)\n l7 = abList.Get(7)\n l8 = abList.Get(8)\n l9 = abList.Get(9)\n l10 = abList.Get(10)\n \n if (AbstEx = NIL) t hen\n AbstVTab = VTab.MakeNew(Abstfile.AsFileName,dBASE)\n AbstIdField = Field.Make(\"Horpos_Id\",#FIELD_VCHAR,30,0)\n line1 = Field.Make(\"line1\",#FIELD_VCHAR,70,0)\n line2 = Field.Make(\"line2\",#FIELD_VCHAR,70,0)\n line3 = Field.Make(\"line3\",#FIELD_VCHAR,70,0)\n line4 = Field.Make(\"line4\",#FIELD_VCHAR,70,0)\n line5 = Field.Make(\"line5\",#FIELD_VCHAR,70,0)\n line6 = Field.Make(\"line6\",#FIELD_VCHAR,70,0)\n line7 = Field.Make(\"line7\",#FIELD_VCHAR,70,0)\n line8 = Field.Make( \"line8\",#FIELD_VCHAR,70,0)\n line9 = Field.Make(\"line9\",#FIELD_VCHAR,70,0)\n line10 = Field.Make(\"line10\",#FIELD_VCHAR,70,0)\n FieldList = {AbstIdField,line1,line2,line3,line4,line5,line6,line7,line8,line9,line10}\n AbstVTab.AddFields(FieldList)\n else\n AbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\n end\n AbstVTab.Seteditable(true)\n newRec = AbstVTab.AddRecord\n AbstVTab.SetValue(AbstVTab.FindField(\"Horpos_Id\"), newRec, Abstid) \n AbstVTab.SetValue(AbstVTab.FindFie ld(\"line1\"), newRec, l1)\n AbstVTab.SetValue(AbstVTab.FindField(\"line2\"),newRec, l2)\n AbstVTab.SetValue(AbstVTab.FindField(\"line3\"), newRec, l3)\n AbstVTab.SetValue(AbstVTab.FindField(\"line4\"), newRec, l4)\n AbstVTab.SetValue(AbstVTab.FindField(\"line5\"), newRec, l5)\n AbstVTab.SetValue(AbstVTab.FindField(\"line6\"), newRec, l6)\n AbstVTab.SetValue(AbstVTab.FindField(\"line7\"), newRec, l7)\n AbstVTab.SetValue(AbstVTab.FindField(\"line8\"), newRec, l8)\n AbstVTab.SetValue(AbstVTab.FindField(\"line9 \"), newRec, l9)\n AbstVTab.SetValue(AbstVTab.FindField(\"line10\"), newRec, l10)\n AbstVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metaFile.Close\n HTMLFile.Close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end 'for checking if a ny info was added to the abList\nend 'end the if for Abstid = NIL, created new record!!\n\nif (Abstid <> NIL) then\n Querystr = \"([Horpos_id] =\"++Abstid.Quote+\")\"\n AbstVTab.GetSelection.SetAll\n AbstBitMap = AbstVTab.GetSelection\n AbstVTab.Query(Querystr,AbstBitMap,#VTAB_SELTYPE_NEW)\n AbstVTab.UpdateSelection\n QueryBitmap = AbstVTab.GetSelection\n \n for each b in QueryBitmap\n ln1 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line1\"),b)\n ln2 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line2\") ,b)\n ln3 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line3\"),b)\n ln4 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line4\"),b)\n ln5 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line5\"),b)\n ln6 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line6\"),b)\n ln7 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line7\"),b)\n ln8 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line8\"),b)\n ln9 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line9\"),b)\n ln10 = AbstVTab.ReturnValueS tring(AbstVTab.FindField(\"line10\"),b)\n \n abList = {ln1,ln2,ln3,ln4,ln5,ln6,ln7,ln8,ln9,ln10}\n end\n newList = {}\n for each a in abList\n if (a = \"\") then\n newList.Add(\" \")\n else\n newList.Add(a)\n end\n end\n if (askem = true) then\n theLabs = {\"2.4.1.1 Horizontal_Positional_Accuracy_Report\",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"You may alter the Horizontal_Positional_Accuracy_Report:\",\"Horizontal_Positional_Accuracy_Report (horpos.dbf)\", theLabs, newLi st)\n end\n for each a in abList\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then\n a = a.right(a.count - 1)\n if (a.count > 1) then\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n end\n else\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n end\n end\nend' checking to see if abstid got set\n\n\n\n'Vertical_Positional_Accuracy_Report\ntmpMeta.WriteElt(\" Vertical_Positional_Accuracy\")\ntmphtml.WriteElt(\" Vertical_Positional_Accuracy\")\ntmpMeta.WriteElt(\" Vertical_Positional_Accuracy_Report:\")\ntmphtml.WriteElt(\" Vertical_Positional_Accuracy_Report:\")\n\nAbstFile = _workdir+_pathDel+\"verpos.dbf\"\nAbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\nabCnt = {}\nif (AbstVTab.GetSelection = NIL) then\n Abstid = NIL\n AbstEx = NIL\n askem = false\nelse\n AbstList = {}\n AbstEx = true\n AbstidField = AbstVTab.FindField(\"Verpos_Id\")\n for each o in AbstVTab\n Abstid = AbstVTab.ReturnValue(AbstidFi eld,o)\n AbstList.Add(Abstid)\n if (abstid.Contains(\"Vertical_Id\")) then\n abCnt.Add(Abstid)\n end\n end\n Abstid = MsgBox.ListAsString(AbstList,\"Select the Vertical_Positional_Accuracy_Report Id or Cancel to create new record.\",\"Vertical_Positional_Accuracy_Report (verpos.dbf)\")\n if (Abstid <> NIL) then\n askem = true\n else\n askem = false\n end\nend\nabDef = \"Vertical_Id\"+(abCnt.Count + 1).AsString\nif (Abstid = NIL) then\n theAbstList = {\"Vertical_Id (future use)\",\"2.4.2.1 Vertical_Positiona l_Accuracy_Report\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"}\n theDefs = {abDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"Enter the Vertical_Positional_Accuracy_Report:\",\"Create Vertical_Positional_Accuracy_Report (verpos.dbf)\",theAbstList,theDefs)\n if (abList.Count > 0) then\n \n Abstid = abList.Get(0)\n l1 = abList.Get(1)\n l2 = abList.Get(2)\n l3 = abList.Get(3)\n l4 = abList.Get(4)\n l5 = abList.Get(5)\n l6 = abList.Get(6)\n l7 = abList.Get(7)\n l8 = abList.Get(8)\n l 9 = abList.Get(9)\n l10 = abList.Get(10)\n \n if (AbstEx = NIL) then\n AbstVTab = VTab.MakeNew(Abstfile.AsFileName,dBASE)\n AbstIdField = Field.Make(\"Verpos_Id\",#FIELD_VCHAR,30,0)\n line1 = Field.Make(\"line1\",#FIELD_VCHAR,70,0)\n line2 = Field.Make(\"line2\",#FIELD_VCHAR,70,0)\n line3 = Field.Make(\"line3\",#FIELD_VCHAR,70,0)\n line4 = Field.Make(\"line4\",#FIELD_VCHAR,70,0)\n line5 = Field.Make(\"line5\",#FIELD_VCHAR,70,0)\n line6 = Field.Make(\"line6\",#FIELD_VCHAR,70,0)\n line7 = Field.Make(\"line7\",#FIELD_VCHAR,70,0)\n line8 = Field.Make(\"line8\",#FIELD_VCHAR,70,0)\n line9 = Field.Make(\"line9\",#FIELD_VCHAR,70,0)\n line10 = Field.Make(\"line10\",#FIELD_VCHAR,70,0)\n FieldList = {AbstIdField,line1,line2,line3,line4,line5,line6,line7,line8,line9,line10}\n AbstVTab.AddFields(FieldList)\n else\n AbstVTab = VTab.Make(AbstFile.AsFileName,false,false)\n end\n AbstVTab.Seteditable(true)\n newRec = AbstVTab.AddRecord\n AbstVTab.SetValue(AbstVTab.FindFiel d(\"Verpos_Id\"), newRec, Abstid) \n AbstVTab.SetValue(AbstVTab.FindField(\"line1\"), newRec, l1)\n AbstVTab.SetValue(AbstVTab.FindField(\"line2\"),newRec, l2)\n AbstVTab.SetValue(AbstVTab.FindField(\"line3\"), newRec, l3)\n AbstVTab.SetValue(AbstVTab.FindField(\"line4\"), newRec, l4)\n AbstVTab.SetValue(AbstVTab.FindField(\"line5\"), newRec, l5)\n AbstVTab.SetValue(AbstVTab.FindField(\"line6\"), newRec, l6)\n AbstVTab.SetValue(AbstVTab.FindField(\"line7\"), newRec, l7)\n AbstVTab.SetValue(AbstVTab.FindFiel d(\"line8\"), newRec, l8)\n AbstVTab.SetValue(AbstVTab.FindField(\"line9\"), newRec, l9)\n AbstVTab.SetValue(AbstVTab.FindField(\"line10\"), newRec, l10)\n AbstVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n metaFile.Close\n HTMLFile.Close\n File.Delete(tmpName.AsFileName)\n File. Delete(htmpName.AsFileName)\n Exit\n end\n end 'for checking if any info was added to the abList\nend 'end the if for Abstid = NIL, created new record!!\n\nif (Abstid <> NIL) then\n Querystr = \"([Verpos_id] =\"++Abstid.Quote+\")\"\n AbstVTab.GetSelection.SetAll\n AbstBitMap = AbstVTab.GetSelection\n AbstVTab.Query(Querystr,AbstBitMap,#VTAB_SELTYPE_NEW)\n AbstVTab.UpdateSelection\n QueryBitmap = AbstVTab.GetSelection\n \n for each b in QueryBitmap\n ln1 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line 1\"),b)\n ln2 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line2\"),b)\n ln3 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line3\"),b)\n ln4 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line4\"),b)\n ln5 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line5\"),b)\n ln6 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line6\"),b)\n ln7 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line7\"),b)\n ln8 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line8\"),b)\n ln9 = AbstVTab.ReturnValu eString(AbstVTab.FindField(\"line9\"),b)\n ln10 = AbstVTab.ReturnValueString(AbstVTab.FindField(\"line10\"),b)\n \n abList = {ln1,ln2,ln3,ln4,ln5,ln6,ln7,ln8,ln9,ln10}\n end\n newList = {}\n for each a in abList\n if (a = \"\") then\n newList.Add(\" \")\n else\n newList.Add(a)\n end\n end\n if (askem = true) then\n theLabs = {\"2.4.2.1 Vertical_Positional_Accuracy_Report\",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n abList = MsgBox.MultiInput(\"You may alter the Vertical_Positional_Accuracy_Report:\",\" Vertical_Positional_Accuracy_Report (verpos.dbf)\", theLabs, newList)\n end\n for each a in abList\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then\n a = a.right(a.count - 1)\n if (a.count > 1) then\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n end\n else\n tmpMeta.WriteElt(\" \"+a)\n tmpHtml.WriteElt(\" \"+a)\n end\n end\nend' checking to see if abstid got set\n\n\n \n\n'Retrieve or Create Lineage_Information\n\nlinFil e = _workdir+_pathDel+\"lineage.dbf\"\nlinVTab = VTab.Make(linFile.AsFileName,false,false)\nlinCnt = {}\nidSet = True\nif (linVTab.GetSelection = NIL) then\n linid = NIL\n linEx = NIL\nelse\n linList = {}\n linEx = true\n linidField = linVTab.FindField(\"lin_Id\")\n for each o in linVTab\n linid = linVTab.ReturnValue(linidField,o)\n linList.Add(linid)\n if (linid.Contains(\"Lineage_Id\")) then\n linCnt.Add(linid)\n end\n end\n linid = MsgBox.ListAsString(linList,\"Select Lineage Id or Cancel to create new r ecord.\",\"Lineage\")\nend\nlinDef = \"Lineage_Id\"+(linCnt.Count + 1).AsString\nif (linid = NIL) then\n idSet = False\n thelinList = {\"lineage_Id (future use)\",\"8.1 Originator:\",\"8.2 Publication_Date:\",\"8.4 Title:\",\"8.5 Edition:\",\"8.8.1 Publication_Place:\",\"8.8.2 Publisher:\",\"2.5.1.2 Source_Scale_Denominator:\",\"2.5.1.3 Type_of_Source_Media:\"}\n theDefs = {linDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n piList = MsgBox.MultiInput(\"Enter Lineage_Information:\",\"Lineage_Information\",thelinList,theDefs)\n if (piList.Count > 0) then\n linid = piList.Get(0)\n linOrg = piList.Get(1)\n linDate = piList.Get(2)\n linTitle = piList.Get(3)\n linEdition = piList.Get(4)\n linPlace = piList.Get(5)\n linPub = piList.Get(6)\n linScale = piList.Get(7)\n linMedia = piList.Get(8)\n if (linEx = NIL) then\n linVTab = VTab.MakeNew(linfile.AsFileName,dBASE)\n linIdField = Field.Make(\"lin_Id\",#FIELD_VCHAR,20,0)\n linOrgField = Field.Make(\"originator\",#FIELD_VCHAR,50,0)\n linDateField = Field.Make(\"date\",#FIELD_V CHAR,50,0)\n linTitleField = Field.Make(\"title\",#FIELD_VCHAR,50,0)\n linEditionField = Field.Make(\"edition\",#FIELD_VCHAR,50,0)\n linPlaceField = Field.Make(\"place\",#FIELD_VCHAR,50,0)\n linPubField = Field.Make(\"publisher\",#FIELD_VCHAR,50,0)\n linScaleField = Field.Make(\"scale\",#FIELD_VCHAR,10,0)\n linMediaField = Field.Make(\"media\",#FIELD_VCHAR,50,0) \n FieldList = {linIdField,linOrgField,linDateField,linTitleField,linEditionField,linPlaceField,linPubField,linScaleField,linMed iaField}\n linVTab.AddFields(FieldList)\n else\n linVTab = VTab.Make(linFile.AsFileName,false,false)\n end\n linVTab.Seteditable(true)\n newRec = linVTab.AddRecord\n linVTab.SetValue(linVTab.FindField(\"lin_Id\"), newRec, linid)\n linVTab.SetValue(linVTab.FindField(\"originator\"), newRec, linOrg)\n linVTab.SetValue(linVTab.FindField(\"date\"),newRec, linDate)\n linVTab.SetValue(linVTab.FindField(\"title\"), newRec, linTitle)\n linVTab.SetValue(linVTab.FindField(\"edition\"), newRec, linEdit ion)\n linVTab.SetValue(linVTab.FindField(\"place\"), newRec, linPlace)\n linVTab.SetValue(linVTab.FindField(\"publisher\"), newRec, linPub)\n linVTab.SetValue(linVTab.FindField(\"scale\"), newRec, linScale)\n linVTab.SetValue(linVTab.FindField(\"media\"), newRec, linMedia)\n linVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmp html.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end 'end for checking piList is empty\nend\nif (linid <> NIL) then\n Querystr = \"([lin_id] =\"++linid.Quote+\")\"\n linVTab.GetSelection.SetAll\n linBitMap = linVTab.GetSelection\n linVTab.Query(Querystr,linBitMap,#VTAB_SELTYPE_NEW)\n linVTab.UpdateSelection\n QueryBitmap = linVTab.GetSelection\n for each b in QueryBitmap\n linOrg = linVTab.R eturnValue(linVTab.FindField(\"originator\"),b)\n linDate = linVTab.ReturnValue(linVTab.FindField(\"date\"),b)\n linTitle = linVTab.ReturnValue(linVTab.FindField(\"title\"),b)\n linEdition = linVTab.ReturnValue(linVTab.FindField(\"edition\"),b)\n linPlace = linVTab.ReturnValue(linVTab.FindField(\"place\"),b)\n linPub = linVTab.ReturnValue(linVTab.FindField(\"publisher\"),b)\n linScale = linVTab.ReturnValue(linVTab.FindField(\"scale\"),b)\n linMedia= linVTab.ReturnValue(linVTab.FindField(\"media\"),b)\n end\n \n if (idSet = True) then 'user selected an ID\n thelinList = {\"8.1 Originator:\",\"8.2 Publication_Date:\",\"8.4 Title:\",\"8.5 Edition:\",\"8.8.1 Publication_Place:\",\"8.8.2 Publisher:\",\"2.5.1.2 Source_Scale_Denominator:\",\"2.5.1.3 Type_of_Source_Media:\"}\n theDefs = {linOrg.AsString,linDate.AsString,linTitle.AsString,linEdition.AsString,linPlace.AsString,linPub.AsString,linScale.AsString,linMedia.AsString}\n \n newDefs = {}\n for each d in theDefs\n if (d.AsString.Left(1) = \"\") then\n newDefs.A dd(\" \")\n else\n newDefs.Add(d)\n end\n end ' for each loop\n \n \n piList = MsgBox.MultiInput(\"Lineage_Information based on:\"++linId.AsString,\"Lineage_Information\",thelinList,newDefs)\n if (piList.Count > 0) then\n linOrg = piList.Get(0)\n linDate = piList.Get(1)\n linTitle = piList.Get(2)\n linEdition = piList.Get(3)\n linPlace = piList.Get(4)\n linPub = piList.Get(5)\n linScale = piList.Get(6)\n linMedia = piList.Get(7)\n \n tmpMeta.WriteElt( \" Lineage\")\n tmpMeta.WriteElt(\" Source_Information\")\n tmpMeta.WriteElt(\" Source_Citation\")\n tmpMeta.WriteElt(\" Citation_Information\")\n tmpMeta.WriteElt(\" Originator:\"++linOrg)\n tmpMeta.WriteElt(\" Publication_Date:\"++linDate)\n tmpMeta.WriteElt(\" Title:\"++linTitle)\n tmpMeta.WriteElt(\" Edition:\"++linEdition)\n tmpMeta.WriteElt(\" Geospatial_Data_Presentation_Form: map\")\n tmpMeta.WriteElt(\" Publicati on_Information\")\n tmpMeta.WriteElt(\" Publication_Place:\"++linPlace)\n tmpMeta.WriteElt(\" Publisher:\"++linPub)\n tmpMeta.WriteElt(\" Source_Scale_Denominator:\"++linScale)\n tmpMeta.WriteElt(\" Type_of_Source_Media:\"++linMedia)\n tmphtml.WriteElt(\" Lineage\")\n tmphtml.WriteElt(\" Source_Information\")\n tmphtml.WriteElt(\" Source_Citation\")\n tmphtml.WriteElt(\" Citation_Information\")\n tmphtml.WriteElt( \" Originator:\"++linOrg)\n tmphtml.WriteElt(\" Publication_Date:\"++linDate)\n tmphtml.WriteElt(\" Title:\"++linTitle)\n tmphtml.WriteElt(\" Edition:\"++linEdition)\n tmphtml.WriteElt(\" Geospatial_Data_Presentation_Form: map\")\n tmphtml.WriteElt(\" Publication_Information\")\n tmphtml.WriteElt(\" Publication_Place:\"++linPlace)\n tmphtml.WriteElt(\" Publisher:\"+ +linPub)\n tmphtml.WriteElt(\" Source_Scale_Denominator:\"++linScale)\n tmphtml.WriteElt(\" Type_of_Source_Media:\"++linMedia)\n else 'user hit cancel, did not except \n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmphtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(tmpName. AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n else\n linId = NIL\n end\n end 'if checking piList\n end 'checking for idSet \nend ' checking if linId was set\nIf (linId = NIL) then 'linid is NIL, write empty tags\n tmpMeta.WriteElt(\" Lineage\")\n tmpMeta.WriteElt(\" Source_Information\")\n tmpMeta.WriteElt(\" Source_Citation\")\n tmpMeta.WriteElt(\" Citation_Information\")\n tmpMeta.WriteElt(\" Originator:\")\n tmpMeta.WriteElt(\" Publication_Date:\" )\n tmpMeta.WriteElt(\" Title:\")\n tmpMeta.WriteElt(\" Edition:\")\n tmpMeta.WriteElt(\" Geospatial_Data_Presentation_Form: map\")\n tmpMeta.WriteElt(\" Publication_Information\")\n tmpMeta.WriteElt(\" Publication_Place:\")\n tmpMeta.WriteElt(\" Publisher:\")\n tmpMeta.WriteElt(\" Source_Scale_Denominator:\")\n tmpMeta.WriteElt(\" Type_of_Source_Media:\")\n tmphtml.WriteElt(\" Lineage\")\n tmphtml.WriteElt(\" Source_Information\")\n tmphtml. WriteElt(\" Source_Citation\")\n tmphtml.WriteElt(\" Citation_Information\")\n tmphtml.WriteElt(\" Originator:\")\n tmphtml.WriteElt(\" Publication_Date:\")\n tmphtml.WriteElt(\" Title:\")\n tmphtml.WriteElt(\" Edition:\")\n tmphtml.WriteElt(\" Geospatial_Data_Presentation_Form: map\")\n tmphtml.WriteElt(\" Publication_Information\")\n tmphtml.WriteElt(\" Publication_Place:\")\n tmphtml.W riteElt(\" Publisher:\")\n tmphtml.WriteElt(\" Source_Scale_Denominator:\")\n tmphtml.WriteElt(\" Type_of_Source_Media:\")\n\nend 'for checking if data was entered\n\n\n'Get Source_Information\n\ntheLabs = {\"9.3.1 Time_Period_Beginning_Date:\",\"9.3.3 Time_Period_Ending_Date:\",\"2.5.1.4.1 Source_Currentness_Reference:\",\"2.5.1.5 Source_Citation_Abbreviation:\"}\ntheDefs = {\" \",\" \",\" \",\" \"}\nsoInfo = MsgBox.MultiInput(\"2.5.1.4 Enter Source_Time_Period_of_Content Information:\",\"Source_In formation\",theLabs,theDefs)\nif (soInfo.Count > 0) then\n bDate = soInfo.Get(0)\n eDate = soInfo.Get(1)\n cRef = soInfo.Get(2)\n sAbb = soInfo.Get(3)\n tmpMeta.WriteElt(\" Source_Time_Period_of_Content:\")\n tmpMeta.WriteElt(\" Time_Period_Information:\")\n tmpMeta.WriteElt(\" Range_of_Dates/Times:\")\n tmpMeta.WriteElt(\" Beginning_Date:\"++bDate)\n tmpMeta.WriteElt(\" Ending_Date:\"++eDate)\n tmpMeta.WriteElt(\" Source_Currentness_Reference:\"++cRef)\n tmpMeta.WriteElt (\" Source_Citation_Abbreviation:\"++sAbb)\n tmphtml.WriteElt(\" Source_Time_Period_of_Content:\")\n tmphtml.WriteElt(\" Time_Period_Information:\")\n tmphtml.WriteElt(\" Range_of_Dates/Times:\")\n tmphtml.WriteElt(\" Beginning_Date:\"++bDate)\n tmphtml.WriteElt(\" Ending_Date:\"++eDate)\n tmphtml.WriteElt(\" Source_Currentness_Reference:\"++cRef)\n tmphtml.WriteElt(\" Source_Citation_Abbreviation:\"++sAbb)\n\ne lse 'no info was entered\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmphtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n if (goon = True) then\n tmpMeta.WriteElt(\" Source_Time_Period_Content:\")\n tmpMeta.WriteElt(\" Time_Period_Information:\")\n tmpMeta.WriteElt(\" Range_of_Dates/Times:\")\n tmpMeta.WriteElt(\" Beginning_Date:\")\n tmpMeta.WriteElt(\" Ending_Date:\")\n tmpMeta.WriteElt(\" Source_Currentness_Reference:\")\n tmpMeta.WriteElt(\" Source_Citation_Abbreviation:\")\n tmphtml.WriteElt(\" Source_Time_Period_Content:\")\n tmphtml.WriteElt(\" Time_Period_Information\")\n tmphtml.WriteElt(\" Range_of_Dates/Times:\")\n tmphtml.WriteElt(\" Beginni ng_Date:\")\n tmphtml.WriteElt(\" Ending_Date:\")\n tmphtml.WriteElt(\" Source_Currentness_Reference:\")\n tmphtml.WriteElt(\" Source_Citation_Abbreviation:\")\n end\nend 'checking for info\n\n'Source_Contribution\nlinFile = _workdir+_pathDel+\"socon.dbf\"\nlinVTab = VTab.Make(linFile.AsFileName,false,false)\nsoCnt = {}\nidSet = True\nif (linVTab.GetSelection = NIL) then\n linid = NIL\n linEx = NIL\nelse\n linList = {}\n linEx = true\n linidField = linVTab.FindField(\"lin_ Id\")\n for each o in linVTab\n linid = linVTab.ReturnValue(linidField,o)\n linList.Add(linid)\n if (linid.Contains(\"Source_Id\")) then\n soCnt.Add(linid)\n end\n end\n linid = MsgBox.ListAsString(linList,\"Please select Source_Contributor Id or Cancel to create new record.\",\"Source_Contribution\")\nend\nsoDef = \"Source_Id\"+(soCnt.Count + 1).AsString\nif (linid = NIL) then\n idSet = False\n thelinList = {\"Source_Contribution_Id (future use)\",\"2.5.1.6 Source_Contribution:\",\" \"}\n theDefs = {soDef,\" \", \" \"}\n piList = MsgBox.MultiInput(\"Enter Source_Contribution:\",\"Source_Contribution_Information\",thelinList,theDefs)\n if (piList.Count >0) then\n linid = piList.Get(0)\n soCon = piList.Get(1)\n soCon2 = piList.Get(2)\n if (linEx = NIL) then\n linVTab = VTab.MakeNew(linfile.AsFileName,dBASE)\n linIdField = Field.Make(\"lin_Id\",#FIELD_VCHAR,20,0)\n soConField = Field.Make(\"so_con\",#FIELD_VCHAR,65,0)\n soConField2 = Field.Make(\"so_con2\",#FIELD_VCHAR,65,0)\n FieldList = {linIdField,so ConField,soConField2}\n linVTab.AddFields(FieldList)\n else\n linVTab = VTab.Make(linFile.AsFileName,false,false)\n end\n linVTab.Seteditable(true)\n newRec = linVTab.AddRecord\n linVTab.SetValue(linVTab.FindField(\"lin_Id\"), newRec, linid)\n linVTab.SetValue(linVTab.FindField(\"so_con\"), newRec, soCon)\n linVTab.SetValue(linVTab.FindField(\"so_con2\"),newRec, soCon2)\n linVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmphtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end \n end 'end for checking piList is empty\nend\nif (linid <> NIL) then\n Querystr = \"([lin_id] =\"++linid.Quote+\")\"\n linVTab.GetSelection.SetAll\n linBitMap = linVTab.GetSelection\n linVTab.Query(Querystr,linBitMap,#VTAB_SELTYPE_ NEW)\n linVTab.UpdateSelection\n QueryBitmap = linVTab.GetSelection\n for each b in QueryBitmap\n soCon = linVTab.ReturnValue(linVTab.FindField(\"so_con\"),b)\n soCon2 = linVTab.ReturnValue(linVTab.FindField(\"so_con2\"),b)\n end\n if (idSet = True) then 'user selected an ID \n thelinList = {\"2.5.1.6 Source_Contribution:\",\" \"}\n theDefs = {soCon.AsString,soCon2.AsString}\n \n newDefs = {}\n for each d in theDefs\n if (d.AsString.Left(1) = \"\") then\n newDefs.Add(\" \")\n else\n ne wDefs.Add(d)\n end\n end ' for each loop\n \n piList = MsgBox.MultiInput(\"Source_Contribution based on:\"++linID.AsString,\"Source_Contribution_Information\",thelinList,newDefs)\n if (piList.Count > 0) then\n soCon = piList.Get(0)\n soCon2 = piList.Get(1) \n tmpMeta.WriteElt(\" Source_Contribution:\")\n tmphtml.WriteElt(\" Source_Contribution:\")\n if (soCon.left(1) = \" \") then\n else\n tmpMeta.WriteElt(\" \"++soCon)\n tmphtml.WriteElt(\" \"++soCon)\n end \n if (soCon2.left(1) = \" \") then\n else\n tmpMeta.WriteElt(\" \"++soCon2)\n tmphtml.WriteElt(\" \"++soCon2)\n end\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmphtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(tmpName.AsFil eName)\n File.Delete(htmpName.AsFileName)\n Exit\n else\n linId = NIL\n end\n end 'checking in piList is Empty based on user ID\n end ' checking if idSet is set \nend 'if linid was set\nif (linId = NIL) then 'linid is NIL, write empty tags\n tmpMeta.WriteElt(\" Source_Contribution:\")\n tmphtml.WriteElt(\" Source_Contribution:\")\nend 'for checking if data was entered\n\n\n\n'Prcess_Step_Information\n\npStep = MsgBox.YesNo(\"Do you want to add a Process_Step?\",\"Process_Step\", true)\nif (pStep = False) then\n tmpMeta.WriteElt(\" Process_Step\")\n tmphtml.WriteElt(\" Process_Step\")\nend ' if pStep = false\nidSet = True\nWhile (pStep = true)\n theLabs = {\"2.5.2.1 Process_Description \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n theDefs = {\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n psInfo = MsgBox.MultiInput(\"Enter Process_Description\",\"Process_Description\",theLabs,theDefs)\n tmpMeta.WriteElt(\" Process_Step\")\n tmpMeta.WriteElt(\" Process_Description:\")\n tmphtml.WriteElt(\"< B> Process_Step\")\n tmphtml.WriteElt(\" Process_Description:\")\n\n\n if (psInfo.Count > 0) then\n for each a in psInfo\n x = a.left(1)\n if (x = \"\") then\n elseif(x = \" \") then\n a = a.right(a.count - 1)\n if (a.count > 1) then\n tmpMeta.WriteElt(\" \"+a)\n tmphtml.WriteElt(\" \"+a)\n\n end\n else\n tmpMeta.WriteElt(\" \"+a)\n tmphtml.WriteElt(\" \"+a)\n\n end\n end\n end\n psDate = MsgBox.I nPut(\"2.5.2.3 Enter the Process_Date\",\"Process_Date\",\" \")\n if (psDate <> NIL) then\n tmpMeta.WriteElt(\" Process_Date:\"++psDate)\n tmphtml.WriteElt(\" Process_Date:\"++psDate)\n\n else\n tmpMeta.WriteElt(\" Process_Date:\")\n tmphtml.WriteElt(\" Process_Date:\")\n\n end \n psCon = MsgBox.YesNo(\"Do you want to enter Process_Step_Contact_Information?\",\"Process_Contact_Information\",true)\n conCnt = {}\n if (psCon = true) then\n conFile = _workdir+_pathDel+\"process.dbf\"\n conVTab = VTab.Make(conFile.AsFileName,false,false)\n if (conVTab.GetSelection = NIL) then\n conid = NIL\n conEx = NIL\n else\n conList = {}\n conEx = true\n conidField = conVTab.FindField(\"con_Id\")\n for each o in conVTab\n conid = conVTab.ReturnValue(conidField,o)\n conList.Add(conid)\n if (conid.Contains(\"Process_Contact_Id\")) then\n conCnt.Add(conid)\n end\n end\n conid = MsgBox.ListAsString(conList,\"Please select Process_Step_Contact _Information Id or Cancel to create new record.\",\"Process_Step_Contact_Information\")\n end\n conDef = \"Process_Contact_Id\"+(soCnt.Count + 1).AsString\n if (conid = NIL) then\n theconList = {\"Process_Contact_Id (future use)\",\"10.1.2 Contact_Organization:\",\"10.1.1 Contact_Person:\",\"10.3 Contact_Position:\",\"10.4.2 Address:\",\"10.4.3 City:\",\"10.4.4 State_or_Province:\",\"10.4.5 Postal_Code:\",\"10.4.6 Country:\",\"10.5 Contact_Voice_Telephone:\",\"10.7 Contact_Facsimile_Telephone:\",\"10.8 Contact_Electronic_Mai l_Address:\",\"10.9 Hours_of_Service:\"}\n theDefs = {conDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n piList = MsgBox.MultiInput(\"Enter Contact_Information:\",\"Contact_Information\",theconList,theDefs)\n if (piList.Count > 0) then\n idSet = False\n conid = piList.Get(0)\n conOrg = piList.Get(1)\n conPer = piList.Get(2)\n conPos = piList.Get(3)\n Add = piList.Get(4)\n City = piList.Get(5)\n State = piList.Get(6)\n Pcode = piList.Get(7 )\n Country = piList.Get(8)\n Vtele = piList.Get(9)\n Ftele = piList.Get(10)\n Email = piList.Get(11)\n Hours = piList.Get(12)\n if (conEx = NIL) then\n conVTab = VTab.MakeNew(confile.AsFileName,dBASE)\n conIdField = Field.Make(\"con_Id\",#FIELD_VCHAR,20,0)\n conOrgField = Field.Make(\"organ\",#FIELD_VCHAR,50,0)\n conPerField = Field.Make(\"person\",#FIELD_VCHAR,50,0)\n conPosField = Field.Make(\"position\",#FIELD_VCHAR,50,0)\n AddF ield = Field.Make(\"address\",#FIELD_VCHAR,50,0)\n CityField = Field.Make(\"city\",#FIELD_VCHAR,50,0)\n StateField = Field.Make(\"state\",#FIELD_VCHAR,50,0)\n PcodeField = Field.Make(\"pcode\",#FIELD_VCHAR,12,0)\n CountryField = Field.Make(\"country\",#FIELD_VCHAR,25,0)\n VteleField = Field.Make(\"tele\",#FIELD_VCHAR,20,0)\n FteleField = Field.Make(\"fax\",#FIELD_VCHAR,20,0)\n EmailField = Field.Make(\"email\",#FIELD_VCHAR,50,0)\n HoursField = Field.Make(\"hour s\",#FIELD_VCHAR,50,0)\n FieldList = {conIdField,conOrgField,conPerField,conPosField,AddField,cityField,StateField,PcodeField,CountryField,VteleField,FteleField,EmailField,HoursField}\n conVTab.AddFields(FieldList)\n else\n conVTab = VTab.Make(conFile.AsFileName,false,false)\n end\n conVTab.Seteditable(true)\n newRec = conVTab.AddRecord\n conVTab.SetValue(conVTab.FindField(\"con_Id\"), newRec, conid)\n conVTab.SetValue(conVTab.FindField(\"organ\"), newR ec, conOrg)\n conVTab.SetValue(conVTab.FindField(\"person\"),newRec, conPer)\n conVTab.SetValue(conVTab.FindField(\"position\"),newRec, conPos) \n conVTab.SetValue(conVTab.FindField(\"address\"), newRec, add)\n conVTab.SetValue(conVTab.FindField(\"city\"), newRec, city)\n conVTab.SetValue(conVTab.FindField(\"state\"), newRec, state)\n conVTab.SetValue(conVTab.FindField(\"pcode\"), newRec, pcode)\n conVTab.SetValue(conVTab.FindField(\"country\"), newRec, country)\n conVTab. SetValue(conVTab.FindField(\"tele\"), newRec, vtele)\n conVTab.SetValue(conVTab.FindField(\"fax\"), newRec, ftele)\n conVTab.SetValue(conVTab.FindField(\"email\"), newRec, email)\n conVTab.SetValue(conVTab.FindField(\"hours\"), newRec, hours)\n conVTab.SetEditable(false)\n else\n pStep = MsgBox.YesNo(\"Do you want to add another Process_Step?\",\"Process_Step\",true) \n end 'for checking if list is empty\n end\n if (conid <> NIL) then\n Querystr = \"([con_id] =\"++conid.Quote+\")\"\n conVTab.GetSelection.SetAll\n conBitMap = conVTab.GetSelection\n conVTab.Query(Querystr,conBitMap,#VTAB_SELTYPE_NEW)\n conVTab.UpdateSelection\n QueryBitmap = conVTab.GetSelection\n for each b in QueryBitmap\n org = conVTab.ReturnValue(conVTab.FindField(\"organ\"),b)\n person = conVTab.ReturnValue(conVTab.FindField(\"person\"),b)\n conpos = conVTab.ReturnValue(conVTab.FindField(\"position\"),b) \n add = conVTab.ReturnValue(conVTab.FindField(\"address\"),b)\n city = conVTab.ReturnValue(conVTab.FindField(\"city\"),b)\n state = conVTab.ReturnValue(conVTab.FindField(\"state\"),b)\n pcode = conVTab.ReturnValue(conVTab.FindField(\"pcode\"),b)\n country = conVTab.ReturnValue(conVTab.FindField(\"country\"),b)\n tele = conVTab.ReturnValue(conVTab.FindField(\"tele\"),b)\n fax = conVTab.ReturnValue(conVTab.FindField(\"fax\"),b)\n email = conVTab.ReturnValue(conVTab.FindField(\"email\"),b)\n hours = conVTab.ReturnValue(conVTab.FindField(\"hours\") ,b)\n \n end\n theconList = {\"10.1.2 Contact_Organization:\",\"10.1.1 Contact_Person:\",\"10.3 Contact_Position:\",\"10.4.2 Address:\",\"10.4.3 City:\",\"10.4.4 State_or_Province:\",\"10.4.5 Postal_Code:\",\"10.4.6 Country:\",\"10.5 Contact_Voice_Telephone:\",\"10.7 Contact_Facsimile_Telephone:\",\"10.8 Contact_Electronic_Mail_Address:\",\"10.9 Hours_of_Service:\"}\n theDefs = {org.AsString,person.AsString,conpos.AsString,add.AsString,city.AsString,state.AsString,pcode.AsString,country.AsString,tele.AsString,fax .AsString,email.AsString,hours.AsString}\n newDefs = {}\n for each d in theDefs\n if (d.AsString.Left(1) = \"\") then\n newDefs.Add(\" \")\n else\n newDefs.Add(d)\n end\n end ' for each loop\n if (idSet = True) then\n piList = MsgBox.MultiInput(\"Contact_Information based on\"++conid.AsString+\":\",\"Contact_Information\",theconList,newDefs)\n if (piList.Count > 0) then\n Org = piList.Get(0)\n person = piList.Get(1)\n conPos = piLis t.Get(2)\n Add = piList.Get(3)\n City = piList.Get(4)\n State = piList.Get(5)\n Pcode = piList.Get(6)\n Country = piList.Get(7)\n Vtele = piList.Get(8)\n Ftele = piList.Get(9)\n Email = piList.Get(10)\n Hours = piList.Get(11)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n Syste m.Beep\n tmphtml.Close\n tmpMeta.Close\n metafile.close\n htmlfile.close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n else\n org = NIL\n pStep = MsgBox.YesNo(\"Do you want to add another Process_Step?\",\"Process_Step\",true)\n end\n end 'checking piList\n end 'checking for IdSet\n if (org <> NIL) then\n tmpMeta.WriteElt(\" Process_Contact\")\n t mpMeta.WriteElt(\" Contact_Information\")\n tmpMeta.WriteElt(\" Contact_Person_Primary\")\n tmpMeta.WriteElt(\" Contact_Organization:\"++org)\n tmpMeta.WriteElt(\" Contact_Person:\"++person)\n tmpMeta.WriteElt(\" Contact_Position:\"++conpos)\n tmphtml.WriteElt(\" Process_Contact\")\n tmphtml.WriteElt(\" Contact_Information\")\n tmphtml.WriteElt(\" Contact_Person_Primary\")\n tmphtml.Write Elt(\" Contact_Organization:\"++org)\n tmphtml.WriteElt(\" Contact_Person:\"++person)\n tmphtml.WriteElt(\" Contact_Position:\"++conpos)\n tmpMeta.WriteElt(\" Contact_Address\")\n tmpMeta.WriteElt(\" Address_Type: mailing and physical address\")\n tmpMeta.WriteElt(\" Address:\"++add)\n tmpMeta.WriteElt(\" City:\"++city)\n tmpMeta.WriteElt(\" State_or_Province:\"++state)\n tmpMeta.WriteElt(\" Postal_Code:\"++pcode)\n tmpMeta.WriteElt(\" Country:\"++country)\n tmpMeta.WriteElt(\" Contact_Voice_Telephone:\"++tele)\n tmpMeta.WriteElt(\" Contact_Facsimile_Telephone:\"++fax)\n tmpMeta.WriteElt(\" Contact_Electronic_Mail_Address:\"++email)\n tmpMeta.WriteElt(\" Hours_of_Service:\"++hours)\n tmphtml.WriteElt(\" Contact_Address\")\n tmphtml.WriteElt(\" Address_Type: mail ing and physical address\")\n tmphtml.WriteElt(\" Address:\"++add)\n tmphtml.WriteElt(\" City:\"++city)\n tmphtml.WriteElt(\" State_or_Province:\"++state)\n tmphtml.WriteElt(\" Postal_Code:\"++pcode)\n tmphtml.WriteElt(\" Country:\"++country)\n tmphtml.WriteElt(\" Contact_Voice_Telephone:\"++tele)\n tmphtml.WriteElt(\" Contact_Facsimile_Telephone:\"++fax)\n tmphtml.WriteElt(\" Contact_Electronic_Mail_Address:\"++email)\n tmphtml.WriteElt(\" Hours_of_Service:\"++hours) \n pStep = MsgBox.YesNo(\"Do you want to add another Process_Step?\",\"Process_Step\",true)\n else 'psCon = false no contact information entered\n tmpMeta.WriteElt(\" Process_Contact\")\n tmpMeta.WriteElt(\" Contact_Information\")\n tmpMeta.WriteElt(\" Unknown\")\n tmphtml.WriteElt(\" Process_Contact\")\n tmphtml.WriteElt(\" Contact_Information\")\n tmphtml.WriteElt(\" Unknown\")\n pStep = MsgBox.YesNo(\"Do you want to add another Process_Step?\",\"Process_Step\",true)\n end 'checking if org got set\n end 'entering contact information for process step \n else 'contact info not added\n pStep = MsgBox.YesNo(\"Do you want to add another Process_Step?\",\"Process_Step\",true)\n end' checking for contact id\n \nend 'while loop for adding process steps\ntmphtml.Writ eElt(\"
\")\ntmphtml.WriteElt(\"

Top

\")\ntmpHtml.WriteElt(\"
\")\ntmphtml.WriteElt(\"
\")\n\ntmpMeta.Close\ntmpHtml.Close\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_READ)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_READ)\nWhile (tmpMeta.IsAtEnd.NOT)\n theElt = tmpMeta.ReadElt\n MetaFile.WriteElt(theElt)\nend\nWhile (tmpHtml.IsAtEnd.NOT)\n theElt = tmpHtml.ReadElt\n HTMLFile.WriteElt(theElt)\nend\ntmpMeta.Close\ntmpHtml.Close\nFile.Delete(tmpName.AsFile Name)\nFile.Delete(htmpName.AsFileName)\n\nnextSect = MsgBox.YesNo(\"Section 2 DATA_QUALITY_INFORMATION is complete! Do you want to create section 3 SPATIAL_DATA_ORGANIZATION_INFORMATION?\",\"Next Section\",true)\nif (nextsect = true) then\n av.Run(\"meta.Sec3\",{MetaFile,HtmlFile})\nelse\n metaFile.Close\n htmlFile.Close\n exit\nend\n\n" ) (Script.33 Name: "meta.Sec3" SourceCode: "'section 3\n'SPATIAL_DATA_ORGANIZATION_INFORMATION\n\nMetaFile = Self.Get(0)\nHtmlFile = Self.Get(1)\ntmpName = _workDir.AsString+\"/xxtmpm.tmp\"\nhtmpName = _workdir.AsString+\"/xxtmph.tmp\"\nif (File.Exists(tmpName.AsFileName)) then\n File.Delete(tmpName.AsFileName)\nend\nif (File.Exists(htmpName.AsFileName)) then\n File.Delete(htmpName.AsFileName)\nend\n\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml.WriteElt(\"
\")\n\n \nif (_theClass =
 \"Arc\") then\n  oType = \"Complete Chain\"\nelseif (_theClass = \"Polygon\") then\n  oType = \"GT-polygon composed of chains\"\nelseif (_theClass = \"Point\") then\n  oType = \"Point\"\nelse\n  oType = \"\"\nend\n\ntmpMeta.WriteElt(\"\")\ntmpMeta.WriteElt(\"SPATIAL_DATA_ORGANIZATION_INFORMATION\")\ntmpMeta.WriteElt(\"\")\ntmpMeta.WriteElt(\"  Direct_Spatial_Reference_Method:\"++_refMeth)\ntmpHtml.WriteElt(\"\")\ntmpHtml.WriteElt(\"

SPATIAL_DATA_ORGANIZATION_INFORMATION

\")\ntmpHtml.WriteElt(\" Direct_Spatial_Reference_Met hod:\"++_refMeth)\n\nif ((_refMeth = \"Vector\") or (_refMeth = \"Point\")) then\n tmpMeta.WriteElt(\" Point_and_Vector_Object_Information\")\n tmpMeta.WriteElt(\" SDTS_Terms_Description\")\n tmpMeta.WriteElt(\" SDTS_Point_and_Vector_Object_Type:\"++otype)\n tmpMeta.WriteElt(\" Point_and_Vector_Object_Count:\"++_numRec.AsString)\n tmpHtml.WriteElt(\" Point_and_Vector_Object_Information\")\n tmpHtml.WriteElt(\" SDTS_Terms_Description\")\n tmpHtml.WriteElt(\" SDTS_Point_and_Vector_Obje ct_Type:\"++otype)\n tmpHtml.WriteElt(\" Point_and_Vector_Object_Count:\"++_numRec.AsString)\nend\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"

Top

\")\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"
\")\n\n\ntmpMeta.Close\ntmpHtml.Close\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_READ)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_READ)\nWhile (tmpMeta.IsAtEnd.NOT)\n theElt = tmpMeta.ReadElt\n MetaFile.WriteElt(theElt)\nend\nWhile (tmpHtml.IsA tEnd.NOT)\n theElt = tmpHtml.ReadElt\n HTMLFile.WriteElt(theElt)\nend\ntmpMeta.Close\ntmpHtml.Close\nFile.Delete(tmpName.AsFileName)\nFile.Delete(htmpName.AsFileName)\n\nnextSect = MsgBox.YesNo(\"Section 3 SPATIAL_DATA_ORGANIZATION_INFORMATION is complete! Do you want to create section 4 SPATIAL_REFERENCE_INFORMATION?\",\"Next Section\",true)\nif (nextsect = true) then\n av.Run(\"meta.Sec4\",{MetaFile,HtmlFile})\nelse\n metaFile.Close\n htmlFile.Close\n exit\nend\n\n\n\n" ) (Script.34 Name: "meta.Sec4" SourceCode: "metafile = Self.Get(0)\nhtmlFile = Self.Get(1)\ntmpName = _workDir.AsString+_pathDel+\"xxtmpm.tmp\"\nhtmpName = _workdir.AsString+_pathDel+\"xxtmph.tmp\"\nif (File.Exists(tmpName.AsFileName)) then\n File.Delete(tmpName.AsFileName)\nend\nif (File.Exists(htmpName.AsFileName)) then\n File.Delete(htmpName.AsFileName)\nend\n\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml.WriteElt(\"
\")\n\n\n'SPATIAL_REFERENCE_INFORMATION\nkeepon = true\nGCS = 
NIL\nplsys = NIL\ngetPrj = true\ncooName = \"\"\ncooZone = \" \"\ncooEncode = \" \"\ncooAbs = \" \"\ncooOrd = \" \"\ncooUnits = \" \"\ncooDatum = NIL\ncooEllip = \" \"\ncooAxis = \" \"\ncooFlat = \" \"\ncooSP1 = \" \"\ncooSP2 = \" \"\nLCM = \" \"\nLOPO = \" \"\ncooFE = \" \"\ncooFN = \" \"\nSFCM = \" \"\nSFCL = \" \"\nLCM = \" \"\nLOPO = \" \"\nSVLP = \" \"\nOL = \" \"\nOLLat = \" \"\nOLLong = \" \"\nAA = \" \"\nAMPL = \" \"\nlatRes = \" \"\nlongRes = \" \"\nhppas = \" \"\nlongpc = \" \"\nlatpc = \" \"\nsfe = \" \"\nsfpo = \" \"\nln = \" \"\npn = \" \"\nprojection = \" \"\nHCDef = \"Planar\"\nif (_sourceunits = #UNIT
S_LINEAR_YARDS) then\n  plunits = \"Yards\"\nend\nif (_sourceunits = #UNITS_LINEAR_INCHES) then\n  plunits = \"Inches\"\nend\nif (_sourceunits = #UNITS_LINEAR_FEET) then\n  plunits = \"Feet\"\nend\nif (_sourceunits = #UNITS_LINEAR_MILES) then\n  plunits = \"Miles\"\nend\nif (_sourceunits = #UNITS_LINEAR_MILLIMETERS) then\n  plunits = \"Milimeters\"\nend\nif (_sourceunits = #UNITS_LINEAR_CENTIMETERS) then\n  plunits = \"Centimeters\"\nend\nif (_sourceunits = #UNITS_LINEAR_METERS) then\n  plunits = \"Meters\"\nend\nif (_sourceunits = #UNITS_LI
NEAR_KILOMETERS) then\n  plunits = \"Kilometers\"\nend\nif (_sourceunits = #UNITS_LINEAR_NAUTICALMILES) then\n  plunits = \"Nautical miles\"\nend\nif (_sourceunits = #UNITS_LINEAR_DEGREES) then\n  HCDef = \"Geographic\"\n  cooName = \"Geographic\"\n  keepon = false\n  GCS = NIL\n  plunits = \"Decimal degrees\"\n  theLabs = {\"4.1.1.1 Latitude_Resolution\",\"4.1.1.2 Longitude_Resolution\"}\n  theDefs = {\" \",\" \"}\n  lResList = MsgBox.MultiInput(\"Enter Coordinate Resolution for Geographic Coordinate System:\",\"Coordinate_Resolution\",theLa
bs,theDefs)\n  if (lResList.Count > 0) then\n    latRes = lResList.Get(0)\n    longRes = lResList.Get(1)\n  else\n    goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting Metadata?\",\"Continue\",true)\n    if (goon = false) then\n      tmpmeta.Close\n      tmphtml.Close\n      metafile.Close\n      htmlFile.Close\n      File.Delete(tmpName.AsFileName)\n      File.Delete(htmpName.AsFileName)\n      system.Beep\n      HCDef = NIL\n      exit\n    else\n      hcDef = NI
L\n    end   \n  end\nend 'determining Planar Units\n\n\nif ((_theType = \"Coverage\") or (_theClass = \"Grid\")) then 'look for coverage or PRJ.ADF file\n  d = _theTheme.getsrcname.getdatasource\n  pfile = d.AsString+\"/prj.adf\"\n  lf = LineFile.Make(pfile.AsFileName,#FILE_PERM_READ)\n  if(lf <> NIL) then\n    getPrj = false\n    while (lf.IsAtEnd.NOT)\n      theElt = lf.ReadELT\n      if (theElt.Extract(0) = \"Projection\") then\n        cooName = theElt.Extract(1)\n      elseif (theElt.Contains(\"Zone\")) then\n        cooZone = 
theElt.Extract(1)\n      elseif (theElt.Contains(\"Units\")) then\n          plUnits = theElt.Extract(1)\n        if (plUnits = \"DD\") then\n          HCDef = \"Geographic\"\n          plUnits = \"Decimal Degrees\"    \n        elseif (cooUnits = \"DMS\") then\n          HCDef = \"Geographic\"\n          plUnits = \"Degrees Minutes Seconds\"\n        end\n      elseif (theElt.Contains(\"Spheroid\")) then\n        cooEllip = theElt.Extract(1)\n        if (cooEllip.Contains(\"Clarke\")) then\n          cooDatum = \"North American Datum 192
7\"\n          cooAxis = \"6378206.4\"\n          cooFlat = \"294.98\"\n        elseif (cooEllip.Contains(\"GRS\")) then\n          cooDatum = \"North American Datum of 1983\"\n          cooAxis = \"6378137\"\n          cooFlat = \"294.98\"\n        end\n      elseif (theElt.Contains(\"1st standard parallel\")) then\n        theTokes = theElt.AsTokens(\"/*\")\n        cooSP1 = theTokes.Get(0)\n      elseif (theElt.Contains(\"2nd standard parallel\")) then\n        theTokes = theElt.AsTokens(\"/*\")      \n        cooSP2 = theTokes.Get(0)\n  
    elseif (theElt.Contains(\"latitude of standard parallel\")) then\n        theTokes = theElt.AsTokens(\"/*\")      \n        cooSP1 = theTokes.Get(0)\n      elseif (theElt.Contains(\"central meridian\")) then\n        theTokes = theElt.AsTokens(\"/*\")\n        LCM = theTokes.Get(0)\n      elseif (theElt.Contains(\"latitude of projection's origin\")) then\n        theTokes = theElt.AsTokens(\"/*\")      \n        LOPO = theTokes.Get(0)\n      elseif (theElt.Contains(\"longitude of center of projection\")) then\n        theTokes
 = theElt.AsTokens(\"/*\")      \n        longpc = theTokes.Get(0)\n      elseif (theElt.Contains(\"latitude of center of projection\")) then\n        theTokes = theElt.AsTokens(\"/*\")      \n        latpc = theTokes.Get(0)\n      elseif (theElt.Contains(\"latitude  of the origin\")) then\n        theTokes = theElt.AsTokens(\"/*\")      \n        LOPO = theTokes.Get(0)\n      elseif (theElt.Contains(\"latitude of the origin\")) then\n        theTokes = theElt.AsTokens(\"/*\")      \n        LOPO = theTokes.Get(0)  \n      elseif (
theElt.Contains(\"latitude of origin\")) then\n        theTokes = theElt.AsTokens(\"/*\")      \n        LOPO = theTokes.Get(0)\n      elseif (theElt.Contains(\"false easting\")) then\n        theTokes = theElt.AsTokens(\"/*\")\n        cooFE = theTokes.Get(0)\n      elseif (theElt.Contains(\"false northing\")) then\n        theTokes = theElt.AsTokens(\"/*\")\n        cooFN = theTokes.Get(0)\n      elseif (theElt.Contains(\"Orbital path number\")) then\n        theTokes = theElt.AsTokens(\"/*\")\n        pn = theTokes.Get(0)\n      en
d 'the elseif checking for Projection information from prj.adf\n    end 'While loop for reading elements from prj.adf\n    \n  end 'if loop for checking if prj.adf exists\nend\n\n\n\nprjFile = _workdir+_pathDel+\"project.dbf\"\nprjVTab = VTab.Make(prjFile.AsFileName,false,false)\nprjCnt = {}\nidSet = true \nif (cooName = \"UTM\") then\n  cooName = \"Universal Transverse Mercator\"\nend\n\n'*** Get the Projection from a List ****\n \nif (cooName = \"\") then\n  GCSList = {\"Universal Transverse Mercator\",\"State Plane Coordinate System 
1927\",\"State Plane Coordinate System 1983\",\"Universal Polar Stereographic\", \n  \"Albers Conical Equal Area\",\"Azimuthal Equidistant\",\"Equidistant Conic\",\"Equirectangular\",\"General Vertical Near-sided Perspective\",\"Gnomonic\",\"Lambert Azimuthal Equal Area\",\n  \"Lambert Conformal Conic\",\"Mercator\",\"Modified Stereographic for Alaska\",\"Miller Cylindrical\",\"Oblique Mercator\",\"Orthographic\",\n  \"Polar Stereographic\",\"Polyconic\",\"Robinson\",\"Sinusoidal\",\"Space Oblique Mercator\",\"Stereographic\",\"Transverse Mercator\",\"van
 der Grinten\"}\n  cooName = MsgBox.ListAsString(GCSList,\"Select Projection:\",\"Projection\")\nend\nif (cooName = NIL) then\n  goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting Metadata?\",\"Continue\",true)\n  if (goon = false) then\n    system.Beep\n    HCDef = NIL\n    metafile.Close\n    htmlFile.Close\n    tmpMeta.Close\n    tmpHtml.Close\n    File.Delete(tmpName.AsFileName)\n    File.Delete(htmpName.AsFileName)\n    exit\n  else\n    HCDef = NIL\n  end\nend\nidLis
t = {}    \nif (prjVTab.GetSelection = NIL) then\n  prjid = NIL\n  prjEx = NIL\nelse \n  prjEx = true\n  prjidField = prjVTab.FindField(\"prj_id\")\n  for each o in prjVTab\n    prjid = prjVTab.ReturnValue(prjidField,o)\n    idList.Add(prjid)\n    if (prjid.Contains(\"Projection_Id\")) then\n      prjCnt.Add(prjId)\n    end\n  end\n  'prjid = MsgBox.ListAsString(prjList,\"The Projection is\"++cooName.AsString+\". Select Projection Id for previously collected information or Cancel to create new record.\",\"Projection Information\")
\nend\nprjDef = \"Projection_Id\"+(prjCnt.Count + 1).AsString\n\nif (prjEx = NIL) then ' Make DBF file to store info, with all of the possible fields.\n  prjVTab = VTab.MakeNew(prjfile.AsFileName,dBASE)\n  prjIdField = Field.Make(\"prj_id\",#FIELD_VCHAR,20,0)\n  zoneField = Field.Make(\"zone\",#FIELD_VCHAR,20,0)\n  SFCMField = Field.Make(\"sfcm\",#FIELD_VCHAR,20,0)\n  SFCLField = Field.Make(\"sfcl\",#FIELD_VCHAR,20,0)\n  LCMField = Field.Make(\"lcm\",#FIELD_VCHAR,20,0)\n  LOPOField = Field.Make(\"lopo\",#FIELD_VCHAR,20,0)\n  SP1Fiel
d = Field.Make(\"sp1\",#FIELD_VCHAR,20,0)\n  SP2Field = Field.Make(\"sp2\",#FIELD_VCHAR,20,0)\n  SVLPField = Field.Make(\"svlp\",#FIELD_VCHAR,20,0)\n  hppasField = Field.Make(\"hppas\",#FIELD_VCHAR,20,0)\n  longpcField = Field.Make(\"longpc\",#FIELD_VCHAR,20,0)\n  latpcField = Field.Make(\"latpc\",#FIELD_VCHAR,20,0)\n  sfeField = Field.Make(\"sfe\",#FIELD_VCHAR,20,0)\n  sfpoField = Field.Make(\"sfpo\",#FIELD_VCHAR,20,0)\n  lnField = Field.Make(\"ln\",#FIELD_VCHAR,20,0)\n  pnField = Field.Make(\"pn\",#FIELD_VCHAR,20,0)\n  FEField = Field
.Make(\"fe\",#FIELD_VCHAR,20,0)\n  FNField = Field.Make(\"fn\",#FIELD_VCHAR,20,0)\n  OLField = Field.Make(\"ol\",#FIELD_VCHAR,20,0)\n  AAField = Field.Make(\"aa\",#FIELD_VCHAR,20,0)\n  AMPL = Field.Make(\"ampl\",#FIELD_VCHAR,20,0)\n  OLLatField = Field.Make(\"ollat\",#FIELD_VCHAR,20,0)\n  OLLongField = Field.Make(\"ollong\",#FIELD_VCHAR,20,0)\n  theFields = {prjIdField,zoneField,SFCMField,SFCLField,LCMField,LOPOField,SP1Field,SP2Field,SVLPField,hppasField,longpcField,latpcField,sfeField,sfclField,sfpoField,lnField,pnField,FEFie
ld,FNField,OLField,AAField,AMPL,OLLatField,OLLongField}\n  prjVTab.AddFields(theFields)\nend ' if prjEx = NIL, making new DBF  \nparalist = {}  \nfromFile = False\nprjList = {}\n\nGetInfo = true\nmsgbox.info(cooname.asstring++cooZone.AssTring,\"\")\nWhile (Keepon = true)  \n  prjVTab.SetEditable(true) \n  if (cooName = \"Universal Transverse Mercator\") then\n    plsys = \"Grid_Coordinate_System\"\n    GCS = \"Universal_Transverse_Mercator\"\n    theProjection = \"Transverse_Mercator\"\n    \n    itemList = {\"4.1.2.2.2.1 UTM Zone Nu
mber (if applies):\",\"4.1.2.1.2.17 Scale_Factor_at_Central_Meridian:\",\"4.1.2.1.2.2 Longitude_of_Central_Meridian:\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n    defList = {cooZone,sfcm,lcm,lopo,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop\n    \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInpu
t(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Del
ete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      cooZone = prjList.Get(0)\n      SFCM = prjList.Get(1)\n      LCM = prjList.Get(2)\n      LOPO = prjList.Get(3)\n      cooFE = prjList.Get(4)\n      cooFN
 = prjList.Get(5)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"zone\"), newRec, cooZone)\n          prjVTab.SetValue(prjVTab.Fin
dField(\"sfcm\"), newRec, SFCM)\n          prjVTab.SetValue(prjVTab.FindField(\"lopo\"), newRec, LOPO)\n          prjVTab.SetValue(prjVTab.FindField(\"lcm\"), newRec, LCM)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end' checking if projection parameters where set \n  end 'for UTM\n \n \n  if ((cooName = \"Transverse Mercator\") or (cooName = \"Transverse\")) then\n    plsys = \"Map_Projection\"\n    mapPrj = coo
Name.Substitute(\" \",\"_\")\n    theProjection = \"Transverse_Mercator\"\n    itemList = {\"4.1.2.1.2.17 Scale_Factor_at_Central_Meridian:\",\"4.1.2.1.2.2 Longitude_of_Central_Meridian:\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n    defList = {sfcm,lcm,lopo,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop\n    \n    if 
(fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          met
afile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      SFCM = prjList.Get(0)\n      LCM = prjList.Get(1)\n      LOPO = prjList.Get(2)\n      cooFE = pr
jList.Get(3)\n      cooFN = prjList.Get(4)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"sfcm\"), newRec, SFCM)\n          prjVTab
.SetValue(prjVTab.FindField(\"lcm\"), newRec, LCM)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end' checking if projection parameters where set \n  end 'for Transverse Mercator\n \n \n \n  if (cooName = \"Universal Polar Stereographic\") then\n    plsys = \"Grid_Coordinate_System\"\n    GCS = \"Universal_Polar_Stereographic\"\n    theProjection = \"Polar_Stereographic\"\n    itemList = {\"4.1.2.2.3.1 UPS Zone Ide
ntifier:\",\"4.1.2.1.2.13 Straight-Vertical Longitude from Pole\",\"4.1.2.1.2.1 Standard_Parallel\",\"4.1.2.1.2.14 Scale_Factor_at_Projection_Origin\",\"4.1.2.1.2.4 False_Easting\",\"4.1.2.1.2.5 False_Northing\"}\n    defList = {cooZone,svlp,coosp1,sfpo,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop\n    \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Proje
ction Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.As
FileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      cooZone = prjList.Get(0)\n      SVLP = prjList.Get(1)\n      cooSP1 = prjList.Get(2)\n      cooFE = prjList.Get(3)\n      cooFN = PrjList.Get(4)\n      if (fromFile = 
false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"zone\"), newRec, cooZone)\n          prjVTab.SetValue(prjVTab.FindField(\"svlp\"), newRec, SVLP)\n         
 prjVTab.SetValue(prjVTab.FindField(\"sp\"), newRec, cooSP1)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end\n  end 'UPS\n  \n  if ((cooName.Contains(\"State Plane\")) or (cooName.Contains(\"STATEPLANE\"))) then\n    if (cooName.Contains(\"27\")) then\n      cooDatum = \"NAD27\"\n    end\n    if (cooName.Contains(\"83\")) then\n      cooDatum = \"NAD83\"\n    end\n    theTokes = cooName.AsTokens(\" \")\n    GCS = cooNam
e.Substitute(\" \",\"_\")\n    plsys = \"Grid_Coordinate_System\"\n    pList = {\"Lambert_Conformal_Conic\",\"Transverse_Mercator\",\"Polyconic\",\"Oblique_Mercator\"}\n    theProjection = MsgBox.ListAsString(pList,\"Select the projection for State Plane Coordinate System\",\"Projection\")\n    if (theProjection <> NIL) then\n      if (theProjection = \"Lambert_Conformal_Conic\") then\n        itemList = {\"SPCS_Zone_Identifier:\",\"4.1.2.1.2.1 1st Standard_Parallel\",\"4.1.2.1.2.1 2nd Standard_Parallel\",\"4.1.2.1.2.2 Longitude_of_Central
_Meridian:\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n        defList = {cooZone,coosp1,coosp2,lcm,lopo,coofe,coofn}         \n        newDefs = {}\n        for each d in defList\n          if (d.AsString.Left(1) = \"\") then\n            newDefs.Add(\" \")\n          else\n            newDefs.Add(d)\n          end\n        end ' for each loop\n        \n        if (fromFile = true) then\n          prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"
++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n          if (prjList.Count = 0) then\n            goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n            if (goon = true) then\n              keepon = false\n              getInfo = false\n            else\n              system.Beep\n              tmpmeta.Close\n              tmphtml.Close\n              metafile.Close\n              htmlFile.Close\n          
    File.Delete(tmpName.AsFileName)\n              File.Delete(htmpName.AsFileName)\n              exit\n            end\n          end  \n        else\n          prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n        end\n        if (prjList.Count > 0) then\n          keepon = false\n          cooZone = prjList.Get(0)\n          cooSP1 = prjList.Get(1)\n          cooSP2 = prjList.Get(2)\n   
       LCM = prjList.Get(3)\n          LOPO = prjList.Get(4)\n          cooFE = prjList.Get(5)\n          cooFN = prjList.Get(6)\n          if (fromFile = false) then\n            addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n            if (addRec = True) then\n              prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n              newRec = prjVTab.AddRecord\n              prjVTab.SetValue(prjVTab.FindField(\"pr
j_id\"), newRec, prjId)\n              prjVTab.SetValue(prjVTab.FindField(\"zone\"), newRec, cooZone)\n              prjVTab.SetValue(prjVTab.FindField(\"sp1\"), newRec, cooSP1)\n              prjVTab.SetValue(prjVTab.FindField(\"sp2\"), newRec, cooSP2)\n              prjVTab.SetValue(prjVTab.FindField(\"lcm\"), newRec, LCM)\n              prjVTab.SetValue(prjVTab.FindField(\"lopo\"), newRec, LOPO)\n              prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n              prjVTab.SetValue(prjVTab.FindField(\"fn\"),
 newRec, cooFN)\n            end\n          end\n        end' checking if projection parameters where set\n      end ' for Lambert Conformal\n      if (theProjection = \"Transverse_Mercator\") then\n        itemList = {\"4.1.2.2.4.1 SPCS_Zone_Identifier:\",\"4.1.2.1.2.17 Scale_Factor_at_Central_Meridian:\",\"4.1.2.1.2.2 Longitude_of_Central_Meridian:\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n        defList = {cooZone,sfcm,lopo,lcm,coofe,coofn}\n        newD
efs = {}\n        for each d in defList\n          if (d.AsString.Left(1) = \"\") then\n            newDefs.Add(\" \")\n          else\n            newDefs.Add(d)\n          end\n        end ' for each loop\n        \n        if (fromFile = true) then\n          prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n          if (prjList.Count = 0) then\n            goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want 
to continue collecting metadata?\",\"Continue\",true)\n            if (goon = true) then\n              keepon = false\n              getInfo = false\n            else\n              system.Beep\n              tmpmeta.Close\n              tmphtml.Close\n              metafile.Close\n              htmlFile.Close\n              File.Delete(tmpName.AsFileName)\n              File.Delete(htmpName.AsFileName)\n              exit\n            end\n          end  \n        else\n          prjList = MsgBox.MultiInput(\"Enter Projectio
n Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n        end\n        if (prjList.Count > 0) then\n          keepon = false\n          cooZone = prjList.Get(0)\n          SFCM = prjList.Get(1)\n          LCM = prjList.Get(2)\n          LOPO = prjList.Get(3)\n          cooFE = prjList.Get(4)\n          cooFN = prjList.Get(5)\n          if (fromFile = false) then\n            addRec = MsgBox.YesNo(\"Do you want to store the previous data,
 for future use?\",\"Store Data\",false)\n            if (addRec = True) then\n              prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n              newRec = prjVTab.AddRecord\n              prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n              prjVTab.SetValue(prjVTab.FindField(\"zone\"), newRec, cooZone)\n              prjVTab.SetValue(prjVTab.FindField(\"sfcm\"), newRec, SFCM)\n              prjVTab.SetValue(prjVTab.FindField(\"lcm\"), newRec, LC
M)\n              prjVTab.SetValue(prjVTab.FindField(\"lopo\"), newRec, lopo)\n              prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n              prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n            end\n          end\n        end' checking if projection parameters where set\n      end\n      if (theProjection = \"Polyconic\") then\n        itemList = {\"4.1.2.2.4.1 SPCS_Zone_Identifier:\",\"4.1.2.1.2.2 Longitude_of_Central_Meridian:\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin:\",\"4.1.2.1
.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n        defList = {cooZone,lcm,lopo,coofe,coofn}\n        newDefs = {}\n        for each d in defList\n          if (d.AsString.Left(1) = \"\") then\n            newDefs.Add(\" \")\n          else\n            newDefs.Add(d)\n          end\n        end ' for each loop\n        \n        if (fromFile = true) then\n          prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n          if (prjList.Count
 = 0) then\n            goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n            if (goon = true) then\n              keepon = false\n              getInfo = false\n            else\n              system.Beep\n              tmpmeta.Close\n              tmphtml.Close\n              metafile.Close\n              htmlFile.close\n              File.Delete(tmpName.AsFileName)\n              File.Delete(htmpName.AsFileName)\n     
         exit\n            end\n          end  \n        else\n          prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n        end\n        if (prjList.Count > 0) then\n          keepon = false\n          cooZone = prjList.Get(0)\n          LCM = prjList.Get(1)\n          LOPO = prjList.Get(2)\n          cooFE = prjList.Get(3)\n          cooFN = prjList.Get(4)\n          if (fromFile = false
) then\n            addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n            if (addRec = True) then\n              prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n              newRec = prjVTab.AddRecord\n              prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n              prjVTab.SetValue(prjVTab.FindField(\"zone\"), newRec, cooZone)\n              prjVTab.SetValue(prjVTab.FindField(\"lcm\"), n
ewRec, LCM)\n              prjVTab.SetValue(prjVTab.FindField(\"lopo\"), newRec, LOPO)\n              prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n              prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n            end\n          end\n        end' checking if projection parameters where set \n      end 'for Polyconic\n      if (theProjection = \"Oblique_Mercator\") then\n        azList = {\"Oblique Line Azimuth\",\"Oblique Line Point\"}\n        ol = MsgBox.ChoiceAsString(azList,\"Choose the Obliq
ue Line type for Oblique Mercator 4.1.2.1.2.11\",\"Oblique Line Type\")\n        if (ol <> NIL) then\n          if (ol = \"Oblique Line Azimuth\") then\n            itemList = {\"4.1.2.2.4.1 SPCS_Zone_Identifier:\",\"4.1.2.1.2.10 Scale_Factor_at_Center_Line\",\"4.1.2.1.2.11.1 Azimuthal_Angle\",\"4.1.2.1.2.11.2 Azimuth_Measure_Point_Longitude\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n            defList = {coozone,sfcl,aa,ampl,lopo,coofe,coofn}\n            new
Defs = {}\n            for each d in defList\n              if (d.AsString.Left(1) = \"\") then\n                newDefs.Add(\" \")\n              else\n                newDefs.Add(d)\n              end\n            end ' for each loop\n            \n            if (fromFile = true) then\n              prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n              if (prjList.Count = 0) then\n                goon = MsgBox.YesNo(\"If you exit now, thi
s section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n                if (goon = true) then\n                  keepon = false\n                  getInfo = false\n                else\n                  system.Beep\n                  tmpmeta.Close\n                  tmphtml.Close\n                  metafile.Close\n                  htmlFile.Close\n                  File.Delete(tmpName.AsFileName)\n                  File.Delete(htmpName.AsFileName)\n                  exit\n  
              end\n              end  \n            else\n              prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n            end\n            if (prjList.Count > 0) then\n              keepon = false\n              cooZone = prjList.Get(0)\n              SFCL = prjList.Get(1)\n              AA = prjList.Get(2)\n              AMPL = prjList.Get(3)\n              LOPO = prjList.Get(4)\n 
             cooFE = prjList.Get(5)\n              cooFN = prjList.Get(6)\n              newRec = prjVTab.AddRecord\n              prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n              prjVTab.SetValue(prjVTab.FindField(\"zone\"), newRec, cooZone)\n              prjVTab.SetValue(prjVTab.FindField(\"sfcl\"), newRec, SFCL)\n              prjVTab.SetValue(prjVTab.FindField(\"aa\"), newRec, AA)\n              prjVTab.SetValue(prjVTab.FindField(\"ampl\"), newRec, AMPL)\n              prjVTab.SetValue(prjVT
ab.FindField(\"lopo\"), newRec, LOPO)\n              prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n              prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n              prjVTab.SetValue(prjVTab.FindField(\"ol\"), newRec, ol)\n            end' checking if projection parameters where set\n          end 'if Oblique Line Azimuth\n          if (ol = \"Oblique Line Point\") then\n          itemList = {\"4.1.2.2.4.1 SPCS_Zone_Identifier:\",\"4.1.2.1.2.10 Scale_Factor_at_Center_Line\",\"4.1.2.1.2.12.1 Obl
ique Line Latitude\",\"4.1.2.1.2.12.2 Oblique Line Longitude\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n            defList = {coozone,sfcl,ollat,ollong,lopo,coofe,coofn}\n            newDefs = {}\n            for each d in defList\n              if (d.AsString.Left(1) = \"\") then\n                newDefs.Add(\" \")\n              else\n                newDefs.Add(d)\n              end\n            end ' for each loop\n            \n            if (fromFile = 
true) then\n              prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n              if (prjList.Count = 0) then\n                goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n                if (goon = true) then\n                  keepon = false\n                  getInfo = false\n                else\n                  system.Beep\n         
         tmpmeta.Close\n                  tmphtml.Close\n                  metafile.Close\n                  htmlFile.Close\n                  File.Delete(tmpName.AsFileName)\n                  File.Delete(htmpName.AsFileName)\n                  exit\n                end\n              end  \n            else\n              prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n            end\n    
        if (prjList.Count > 0) then\n              keepon = false\n              cooZone = prjList.Get(0)\n              SFCL = prjList.Get(1)\n              OLLat = prjList.Get(2)\n              OLLong = prjList.Get(3)\n              LOPO = prjList.Get(4)\n              cooFE = prjList.Get(5)\n              cooFN = prjList.Get(6)\n              if (fromFile = false) then\n                addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n                if (addRec = T
rue) then\n                  prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n                  newRec = prjVTab.AddRecord\n                  prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n                  prjVTab.SetValue(prjVTab.FindField(\"zone\"), newRec, cooZone)\n                  prjVTab.SetValue(prjVTab.FindField(\"sfcl\"), newRec, SFCL)\n                  prjVTab.SetValue(prjVTab.FindField(\"ollat\"), newRec, OLLat)\n                  prjVTab.SetValu
e(prjVTab.FindField(\"ollong\"), newRec, OLLong)\n                  prjVTab.SetValue(prjVTab.FindField(\"lopo\"), newRec, LOPO)\n                  prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n                  prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n                  prjVTab.SetValue(prjVTab.FindField(\"ol\"), newRec, ol)\n                end\n              end\n            end' checking if projection parameters where set\n          end 'if Oblique Line Point  \n        end 'checking if Obli
que line type is set\n      end' for Oblique Mercator\n    end' checking if Projection for State_Plane got set \n  end 'State Plane\n\n\n  if (cooName = \"Lambert\") then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\") \n    itemList = {\"4.1.2.1.2.1 1st Standard_Parallel:\",\"4.1.2.1.2.1 2nd Standard_Parallel:\",\"4.1.2.1.2.2 Longitude_of_Central_Meridian\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin\",\"4.1.2.1.2.4 False_Easting\",\"4.1.2.1.2.5 False_Northing\"}\n    defList = {coosp1,coosp2,lcm,lopo,coof
e,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop\n    \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata
?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Proj
ection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      cooSP1 = prjList.Get(0)\n      cooSP2 = prjList.Get(1)\n      LCM = prjList.Get(2)\n      LOPO = prjList.Get(3)\n      cooFE = PrjList.Get(4)\n      cooFN = PrjList.Get(5)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(f
uture use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"SP1\"), newRec, cooSP1)\n          prjVTab.SetValue(prjVTab.FindField(\"SP2\"), newRec, cooSP2)\n          prjVTab.SetValue(prjVTab.FindField(\"lcm\"), newRec, lcm)\n          prjVTab.SetValue(prjVTab.FindField(\"lopo\"), newRec, lopo)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(pr
jVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end\n  end 'Albers, Equidistant, Lambert Conformal\n  \n    if ((cooName.Contains(\"Albers Conical Equal Area\")) or (cooName = \"Equidistant Conic\") or (cooName = \"Equidistant_Conic\") or (cooName = \"Lambert Conformal Conic\")) then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\") \n    itemList = {\"4.1.2.1.2.1 1st Standard_Parallel:\",\"4.1.2.1.2.1 2nd Standard_Parallel:\",\"4.1.2.1.2.2 Longitude_of_Central_Meridian\",\"4.1.2.1.2.3 Lati
tude_of_Projection_Origin\",\"4.1.2.1.2.4 False_Easting\",\"4.1.2.1.2.5 False_Northing\"}\n    defList = {coosp1,coosp2,lcm,lopo,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop\n    \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n  
      goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = Ms
gBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      cooSP1 = prjList.Get(0)\n      cooSP2 = prjList.Get(1)\n      LCM = prjList.Get(2)\n      LOPO = prjList.Get(3)\n      cooFE = PrjList.Get(4)\n      cooFN = PrjList.Get(5)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future
 use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"SP1\"), newRec, cooSP1)\n          prjVTab.SetValue(prjVTab.FindField(\"SP2\"), newRec, cooSP2)\n          prjVTab.SetValue(prjVTab.FindField(\"lcm\"), newRec, lcm)\n          prjVTab.SetValue(prjVTab.Fi
ndField(\"lopo\"), newRec, lopo)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end\n  end 'Lambert\n  \n  if ((cooName.Contains(\"Azimuthal\")) or (cooName.Contains(\"Polyconic\"))) then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")    \n    itemList = {\"4.1.2.1.2.2 Longitude_of_Central_Meridian:\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.
5 False_Northing:\"}\n    defList = {lcm,lopo,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop  \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated
. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to r
etrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      LCM = prjList.Get(0)\n      LOPO = prjList.Get(1)\n      cooFE = prjList.Get(2)\n      cooFN = prjList.Get(3)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID
 for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"lopo\"), newRec, lopo)\n          prjVTab.SetValue(prjVTab.FindField(\"lcm\"), newRec, LCM)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end' checking if projection parameters where set \n  end 'for Azimuthal Equidistant or Pol
yconic\n  \n  if (cooName.Contains(\"Equirectangular\")) then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    itemList = {\"4.1.2.1.2.1 Standard_Parallel:\",\"4.1.2.1.2.2 Longitude_of_Central_Meridian:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n    defList = {cooSP1,lcm,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop  \n    if (fromF
ile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.
Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      cooSP1 = prjList.Get(0)\n      lcm = prjList.Get(1)\n      cooFE = prjList.Get(2)\n      cooFN = prjLi
st.Get(3)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"sp1\"), newRec, cooSP1)\n          prjVTab.SetValue(prjVTab.FindField(\"lc
m\"), newRec, LCM)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end' checking if projection parameters where set \n  end 'for Equirectangular\n  \n  if (cooName.Contains(\"General Vertical Near-sided Perspective\")) then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    itemList = {\"4.1.2.1.2.7 Height_of_Perspective_Point_Above_Surface:\",\"4.1.2.1.2.8 Longitude_of_Projection_Ce
nter:\",\"4.1.2.1.2.8 Latitude_of_Projection_Center\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n    defList = {hppas,longpc,latpc,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop  \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList
.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else
\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      hppas = prjList.Get(0)\n      longpc = prjList.Get(1)\n      latpc = prjList.Get(2)\n      cooFE = prjList.Get(3)\n      cooFN = prjList.Get(4)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"
Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"hppas\"), newRec, hppas)\n          prjVTab.SetValue(prjVTab.FindField(\"longpc\"), newRec, longpc)\n          prjVTab.SetValue(prjVTab.FindField(\"latpc\"), newRec, latpc)\n          prjVTab.SetValue(prjVTab.Fi
ndField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end' checking if projection parameters where set \n  end 'for General Veritical Near-sided Perspective\n  if ((cooName.Contains(\"Gnomonic\")) or (cooName.Contains(\"Lambert Azimuthal Equal Area\")) or (cooName.Contains(\"Orthographic\")) or (cooName =\"Stereographic\")) then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    itemList = {\"4.1.2.1.2.8 Longitude_of_Projection
_Center:\",\"4.1.2.1.2.8 Latitude_of_Projection_Center\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n    defList = {longpc,latpc,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop  \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Co
unt = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n  
    prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      longpc = prjList.Get(0)\n      latpc = prjList.Get(1)\n      cooFE = prjList.Get(2)\n      cooFN = prjList.Get(3)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (a
ddRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"longpc\"), newRec, longpc)\n          prjVTab.SetValue(prjVTab.FindField(\"latpc\"), newRec, latpc)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n     
   end\n      end\n    end' checking if projection parameters where set \n  end 'for Gnomoic, Lambert Azimuthal Equal Area, Orthographic, Stereographic  \n  \n  if (cooName = \"Mercator\") then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    itemList = {\"4.1.2.1.2.1 Standard_Parallel:\",\"4.1.2.1.2.6 Scale_Factor_at_Equator\",\"4.1.2.1.2.2 Longitude_of_Central_Meridian:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n    defList = {cooSP1,sfe,lcm,coofe,coofn}\n    newDefs = {}\n   
 for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop  \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (
goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newD
efs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      cooSP1 = prjList.Get(0)\n      sfe = prjList.Get(1)\n      lcm = prjList.Get(2)\n      cooFE = prjList.Get(3)\n      cooFN = prjList.Get(4)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.
AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"sp1\"), newRec, cooSP1)\n          prjVTab.SetValue(prjVTab.FindField(\"sfe\"), newRec, sfe)\n          prjVTab.SetValue(prjVTab.FindField(\"lcm\"), newRec, LCM)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end' checking if projection parameters where set \n  end 'for Mercator\n
  \n  if (cooName.Contains(\"Modified Stereographic for Alaska\")) then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    itemList = {\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n    defList = {coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop  \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameter
s for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n     
     File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      cooFE = prjList.Get(0)\n      cooFN = prjList.Get(1)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Sto
re Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end' checking if projection parameters where set \n  end 'for Modified Stereographic for Alas
ka\n  \n  if ((cooName.Contains(\"Miller\") or cooName.Contains(\"Sinusoidal\")))then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    itemList = {\"4.1.2.1.2.2 Longitude_of_Central_Meridian:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n    defList = {lcm,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop  \n    if (fromFile = true) then\n 
     prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          ht
mlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      lcm = prjList.Get(0)\n      cooFE = prjList.Get(1)\n      cooFN = prjList.Get(2)\n      if (fromFile = false) then\n     
   addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"lcm\"), newRec, LCM)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVT
ab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end' checking if projection parameters where set \n  end 'for Miller Cylindrical and Sinusoidal\n  \n  if (cooName = \"Robinson\")then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    itemList = {\"4.1.2.1.2.8 Longitude_of_Projection_Center:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n    defList = {longpc,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        new
Defs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop  \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n     
   else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      lo
ngpc = prjList.Get(0)\n      cooFE = prjList.Get(1)\n      cooFN = prjList.Get(2)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"l
ongpc\"), newRec, longpc)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end' checking if projection parameters where set \n  end 'for Robinson\n\n  \n  \n  if ((cooName = \"Oblique_Mercator\") or (cooName = \"Oblique Mercator\")) then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    azList = {\"Oblique Line Azimuth\",\"Oblique Line Point\"}\n    ob = MsgBox.ChoiceAsString(azList,\"Choos
e the Oblique Line type for Oblique Mercator 4.1.2.1.2.11\",\"Oblique Line Type\")\n    if (ob <> NIL) then\n      if (ob = \"Oblique Line Azimuth\") then\n        itemList = {\"4.1.2.2.4.1 SPCS_Zone_Identifier:\",\"4.1.2.1.2.10 Scale_Factor_at_Center_Line\",\"4.1.2.1.2.11.1 Azimuthal_Angle\",\"4.1.2.1.2.11.2 Azimuth_Measure_Point_Longitude\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n        defList = {coozone,sfcl,aa,ampl,coofe,coofn}\n        newDefs = {}\n    
    for each d in defList\n          if (d.AsString.Left(1) = \"\") then\n            newDefs.Add(\" \")\n          else\n            newDefs.Add(d)\n          end\n        end ' for each loop\n        \n        if (fromFile = true) then\n          prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n          if (prjList.Count = 0) then\n            goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue c
ollecting metadata?\",\"Continue\",true)\n            if (goon = true) then\n              keepon = false\n              getInfo = false\n            else\n              system.Beep\n              tmpmeta.Close\n              tmphtml.Close\n              metafile.Close\n              htmlFile.Close\n              File.Delete(tmpName.AsFileName)\n              File.Delete(htmpName.AsFileName)\n              exit\n            end\n          end  \n        else\n          prjList = MsgBox.MultiInput(\"Enter Projection Parameters 
for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n        end\n        if (prjList.Count > 0) then\n          keepon = false\n          cooZone = prjList.Get(0)\n          SFCL = prjList.Get(1)\n          AA = prjList.Get(2)\n          AMPL = prjList.Get(3)\n          LOPO = prjList.Get(4)\n          cooFE = prjList.Get(5)\n          cooFN = prjList.Get(6)\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), 
newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"zone\"), newRec, cooZone)\n          prjVTab.SetValue(prjVTab.FindField(\"sfcl\"), newRec, SFCL)\n          prjVTab.SetValue(prjVTab.FindField(\"aa\"), newRec, AA)\n          prjVTab.SetValue(prjVTab.FindField(\"ampl\"), newRec, AMPL)\n          prjVTab.SetValue(prjVTab.FindField(\"lopo\"), newRec, LOPO)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n          prjVTab.SetVal
ue(prjVTab.FindField(\"ol\"), newRec, ob)\n        end' checking if projection parameters where set\n      end 'if Oblique Line Azimuth\n      if (ob = \"Oblique Line Point\") then\n      itemList = {\"4.1.2.2.4.1 SPCS_Zone_Identifier:\",\"4.1.2.1.2.10 Scale_Factor_at_Center_Line\",\"4.1.2.1.2.12.1 Oblique Line Latitude\",\"4.1.2.1.2.12.2 Oblique Line Longitude\",\"4.1.2.1.2.3 Latitude_of_Projection_Origin:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n        defList = {coozone,sfcl,ollat,ollong,lopo,coofe,c
oofn}\n        newDefs = {}\n        for each d in defList\n          if (d.AsString.Left(1) = \"\") then\n            newDefs.Add(\" \")\n          else\n            newDefs.Add(d)\n          end\n        end ' for each loop\n        \n        if (fromFile = true) then\n          prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n          if (prjList.Count = 0) then\n            goon = MsgBox.YesNo(\"If you exit now, this section will have to be recre
ated. Do you want to continue collecting metadata?\",\"Continue\",true)\n            if (goon = true) then\n              keepon = false\n              getInfo = false\n            else\n              system.Beep\n              tmpmeta.Close\n              tmphtml.Close\n              metafile.Close\n              htmlFile.Close\n              File.Delete(tmpName.AsFileName)\n              File.Delete(htmpName.AsFileName)\n              exit\n            end\n          end  \n        else\n          prjList = MsgBox.MultiInpu
t(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n        end\n        if (prjList.Count > 0) then\n          keepon = false\n          cooZone = prjList.Get(0)\n          SFCL = prjList.Get(1)\n          OLLat = prjList.Get(2)\n          OLLong = prjList.Get(3)\n          LOPO = prjList.Get(4)\n          cooFE = prjList.Get(5)\n          cooFN = prjList.Get(6)\n          if (fromFile = false) then\n            addRec =
 MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n            if (addRec = True) then\n              prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n              newRec = prjVTab.AddRecord\n              prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n              prjVTab.SetValue(prjVTab.FindField(\"zone\"), newRec, cooZone)\n              prjVTab.SetValue(prjVTab.FindField(\"sfcl\"), newRec, SFCL)\n             
 prjVTab.SetValue(prjVTab.FindField(\"ollat\"), newRec, OLLat)\n              prjVTab.SetValue(prjVTab.FindField(\"ollong\"), newRec, OLLong)\n              prjVTab.SetValue(prjVTab.FindField(\"lopo\"), newRec, LOPO)\n              prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n              prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n              prjVTab.SetValue(prjVTab.FindField(\"ol\"), newRec, ob)\n            end\n          end\n        end' checking if projection parameters where set\n      
end 'if Oblique Line Point  \n    end 'checking if Oblique line type is set\n  end' for Oblique Mercator\n  \n\n  if ((cooName = \"Polar Stereographic\") or (cooName = \"Polar\") or (cooName = \"UNIVERSAL_POLAR\")) then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    itemList = {\"4.1.2.1.2.13 Straight-Vertical Longitude from Pole\",\"4.1.2.1.2.1 Standard_Parallel\",\"4.1.2.1.2.14 Scale_Factor_at_Projection_Origin\",\"4.1.2.1.2.4 False_Easting\",\"4.1.2.1.2.5 False_Northing\"}\n    defList = {svlp,coosp
1,sfpo,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop\n    \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecti
ng metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing 
file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      SVLP = prjList.Get(0)\n      cooSP1 = prjList.Get(1)\n      sfpo = prjList.Get(2)\n      cooFE = prjList.Get(3)\n      cooFN = PrjList.Get(4)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID fo
r future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"sp1\"), newRec, coosp1)\n          prjVTab.SetValue(prjVTab.FindField(\"svlp\"), newRec, SVLP)\n          prjVTab.SetValue(prjVTab.FindField(\"sfpo\"), newRec, sfpo)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end\n  end 'Polar Ster
eographic\n\n  if ((cooName.Contains(\"Space Oblique Mercator\")) or (cooName.Contains(\"Space_Oblique\"))) then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    itemList = {\"4.1.2.1.2.15 Landsat_Number:\",\"4.1.2.1.2.16 Path_Number:\",\"4.1.2.1.2.4 False_Easting:\",\"4.1.2.1.2.5 False_Northing:\"}\n    defList = {ln,pn,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for 
each loop  \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.
Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from existing file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      ln = prjList.Get(0)\n      pn = prjList.Get(1)\n      cooFE = prjList.Get(2)
\n      cooFN = prjList.Get(3)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRecord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"ln\"), newRec, ln)\n          prjVTab.SetValue(prjVTa
b.FindField(\"pn\"), newRec, pn)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end' checking if projection parameters where set \n  end 'for Space Oblique Mercator\n  \n\n  if (cooName.Contains(\"Grinten\")) then\n    plsys = \"Map_Projection\"\n    mapPrj = cooName.Substitute(\" \",\"_\")\n    itemList = {\"4.1.2.1.2.2 Longitude_of_Central_Meridian:\",\"4.1.2.1.2.4 False_Easting\",\"4.1.2.1.2.5 False_Northing\"}\n    
defList = {lcm,coofe,coofn}\n    newDefs = {}\n    for each d in defList\n      if (d.AsString.Left(1) = \"\") then\n        newDefs.Add(\" \")\n      else\n        newDefs.Add(d)\n      end\n    end ' for each loop\n    \n    if (fromFile = true) then\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString,\"Projection Parameters\",itemList,newDefs)\n      if (prjList.Count = 0) then\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue 
collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n          getInfo = false\n        else\n          system.Beep\n          tmpmeta.Close\n          tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end  \n    else\n      prjList = MsgBox.MultiInput(\"Enter Projection Parameters for:\"++cooName.AsString++\"Cancel to retrieve information from e
xisting file\",\"Projection Parameters\",itemList,newDefs)\n    end\n    if (prjList.Count > 0) then\n      keepon = false\n      lcm = prjList.Get(0)\n      cooFE = prjList.Get(1)\n      cooFN = PrjList.Get(2)\n      if (fromFile = false) then\n        addRec = MsgBox.YesNo(\"Do you want to store the previous data, for future use?\",\"Store Data\",false)\n        if (addRec = True) then\n          prjid = MsgBox.Input(\"Enter ID for\"++cooName.AsString++\"(future use)\",\"ID for future use\",\"\")\n          newRec = prjVTab.AddRec
ord\n          prjVTab.SetValue(prjVTab.FindField(\"prj_id\"), newRec, prjId)\n          prjVTab.SetValue(prjVTab.FindField(\"lcm\"), newRec, lcm)\n          prjVTab.SetValue(prjVTab.FindField(\"fe\"), newRec, cooFE)\n          prjVTab.SetValue(prjVTab.FindField(\"fn\"), newRec, cooFN)\n        end\n      end\n    end\n  end 'van der Grinten\n\n\n  if ((prjList.Count = 0) and (getInfo = true)) then\n  msgbox.info(\"we are in the last trap\",\"\")\n    if (idList.Count = 0) then\n      goBack = MsgBox.YesNo(\"There are no files to cho
ose from.  Do you want to enter Projection Information for\"++cooName.AsString,\"Projection Information\",true)\n      if (goBack = false) then\n        keepon = false\n      end\n    else\n      fromFile = true\n      prjid = MsgBox.ListAsString(idList,\"The Projection is\"++cooName.AsString+\". Select Projection Id for previously collected information.\",\"Projection Information\")\n      idSet = false\n      if(prjId <> NIL) then 'retrieve values\n        Querystr = \"([Prj_id] =\"++prjid.Quote+\")\"\n        prjVTab.GetSelect
ion.SetAll\n        prjBitMap = prjVTab.GetSelection\n        prjVTab.Query(Querystr,prjBitMap,#VTAB_SELTYPE_NEW)\n        prjVTab.UpdateSelection\n        QueryBitmap = prjVTab.GetSelection\n         \n        for each b in QueryBitmap\n          if (cooZone = \" \") then\n            cooZone = prjVTab.ReturnValue(prjVTab.FindField(\"zone\"),b)\n          end\n          if (cooSP1 = \" \") then\n            cooSP1 = prjVTab.ReturnValue(prjVTab.FindField(\"sp1\"),b)\n          end\n          if (cooSP2 = \" \") then\n            c
ooSP2 = prjVTab.ReturnValue(prjVTab.FindField(\"sp2\"),b)\n          end\n          if (sfcm = \" \") then\n            SFCM = prjVTab.ReturnValue(prjVTab.FindField(\"sfcm\"),b)\n          end\n          if (sfcl = \" \") then\n            SFCL = prjVTab.ReturnValue(prjVTab.FindField(\"sfcl\"),b)\n          end\n          if (lcm = \" \") then\n            LCM = prjVTab.ReturnValue(prjVTab.FindField(\"lcm\"),b)\n          end\n          if (lopo = \" \") then\n            LOPO = prjVTab.ReturnValue(prjVTab.FindField(\"lopo\"),b)\n       
   end\n          if (svlp = \" \") then\n            SVLP = prjVTab.ReturnValue(prjVTab.FindField(\"svlp\"),b)      \n          end\n          if (coofe = \" \") then\n            cooFE = prjVTab.ReturnValue(prjVTab.FindField(\"fe\"),b)\n          end\n          if (coofn = \" \") then\n            cooFN = prjVTab.ReturnValue(prjVTab.FindField(\"fn\"),b)\n          end\n          if (ol = \" \") then\n            OL = prjVTab.ReturnValue(prjVTab.FindField(\"ol\"),b)\n          end\n          if (ollat = \" \") then\n            OLLat = p
rjVTab.ReturnValue(prjVTab.FindField(\"ollat\"),b)\n          end\n          if (ollong = \" \") then\n            OLLong = prjVTab.ReturnValue(prjVTab.FindField(\"ollong\"),b)\n          end\n          if (aa = \" \") then\n            AA = prjVTab.ReturnValue(prjVTab.FindField(\"aa\"),b)\n          end\n          if (ampl = \" \") then\n            AMPL = prjVTab.ReturnValue(prjVTab.FindField(\"ampl\"),b)\n          end\n          if (hppas = \" \") then\n            hppas = prjVTab.ReturnValue(prjVTab.FindField(\"hppas\"),b)\n        
  end\n          if (longpc = \" \") then\n            longpc = prjVTab.ReturnValue(prjVTab.FindField(\"longpc\"),b)\n          end\n          if (latpc = \" \") then\n            latpc = prjVTab.ReturnValue(prjVTab.FindField(\"latpc\"),b)\n          end\n          if (sfe = \" \") then\n            sfe = prjVTab.ReturnValue(prjVTab.FindField(\"sfe\"),b)\n          end\n          if (sfpo = \" \") then\n            sfpo = prjVTab.ReturnValue(prjVTab.FindField(\"sfpo\"),b)\n          end\n          if (ln = \" \") then\n            ln = pr
jVTab.ReturnValue(prjVTab.FindField(\"ln\"),b)\n          end\n          if (pn = \" \") then\n            pn = prjVTab.ReturnValue(prjVTab.FindField(\"pn\"),b)\n          end\n          \n        end 'end set values from bitmap\n      else 'prjid is not set\n        goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n        if (goon = true) then\n          keepon = false\n        else\n          system.Beep\n          tmpmeta.Close\n   
       tmphtml.Close\n          metafile.Close\n          htmlFile.Close\n          File.Delete(tmpName.AsFileName)\n          File.Delete(htmpName.AsFileName)\n          exit\n        end\n      end 'checking if prjid gets set from list of Ids\n    end 'checking if idList is empty\n  end' prjList = 0\nend 'big while loop\nprjVTab.SetEditable(false)\n\n\nif (HCDef = \"Geographic\") then\n  tmpmeta.WriteElt(\"\")\n  tmpmeta.WriteElt(\"SPATIAL_REFERENCE_INFORMATION\")\n  tmpmeta.WriteElt(\"\")\n  tmpmeta.WriteElt(\"  Horizontal_Coordin
ate_System_Definition\")\n  tmpmeta.WriteElt(\"    \"+HCDef)\n  tmphtml.WriteElt(\"\")\n  tmphtml.WriteElt(\"

SPATIAL_REFERENCE_INFORMATION

\")\n tmphtml.WriteElt(\"\")\n tmphtml.WriteElt(\" Horizontal_Coordinate_System_Definition\")\n tmphtml.WriteElt(\" \"+HCDef+\"\")\n \n \n if (latRes = NIL) then\n theLabs = {\"4.1.1.1 Latitude_Resolution\",\"4.1.1.2 Longitude_Resolution\"}\n theDefs = {\" \",\" \"}\n lResList = MsgBox.MultiInput(\"Enter Coordinate Resolution for Geographic Coordinate System:\",\"Coordinate_Resolution\",theLabs,theDefs)\n if (lResList.Count > 0) then\n latRes = lResList.Get(0)\n longRes = lResList.Get(1)\n else\n latRes = \"\"\n longRes = \"\"\n end\n end ' checking if latRes has been set!!\n tmpmeta.WriteElt(\" Latitude_Resolution:\"++latRes)\n tmpmeta.WriteElt(\" Longitude_Resolution:\"++longRes)\n tmpmeta.WriteElt(\" Geographic_Coordinate_Units:\"++plUnits)\n tmphtml.WriteElt(\" Latitude_Resolution:\"++latRes)\n tmphtml.WriteElt(\" Longitude_Resolution:\"++longRes)\n tmphtml.WriteElt(\" Geographic_Coordinate_Units:\"++plUnits)\n'end' for HCDef Geographic\n\n\n\n\nelseif (plsys = \"Grid_Coordinate_System\") then\n tmpmeta.WriteElt(\"\")\n tmpmeta.WriteElt(\"SPATIAL_REFERENCE_INFORMATION\")\n tmpmeta.WriteElt(\"\")\n tmpmeta.WriteElt(\" Horizontal_Coordinate_System_Definition\")\n tmpmeta.WriteElt(\" \"+HCDef)\n tmpmeta.WriteElt(\" Grid_Coordinate_System\")\n tmpmeta.WriteElt(\" Grid_Coordinate_System_Name:\"++cooName)\n tm pmeta.WriteElt(\" \"+GCS+\":\")\n \n tmphtml.WriteElt(\"\")\n tmphtml.WriteElt(\"

SPATIAL_REFERENCE_INFORMATION

\")\n tmphtml.WriteElt(\" Horizontal_Coordinate_System_Definition\")\n tmphtml.WriteElt(\" \"+HCDef+\"\")\n tmphtml.WriteElt(\" Grid_Coordinate_System\")\n tmphtml.WriteElt(\" Grid_Coordinate_System_Name:\"++cooName)\n tmphtml.WriteElt(\" \"+GCS+\":\")\n \n if (GCS = \"Universal_Transverse_Mercator\") then\n tmpmeta.WriteElt(\" UTM_Zone_Number:\"++cooZone)\n tmpmeta.WriteElt(\" \"+theProjection)\n tmpmeta.WriteElt(\" Scale_Factor_at_Central_Meridian:\"++SFCM)\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmpmeta.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN)\n \n tmphtml.WriteElt(\" UTM_Zone_Number:\"++cooZone)\n tmphtml.WriteElt(\" \"+theProjection+\"\")\n tmphtml.WriteElt(\" Scale_Factor_at_Central_Meridian:\"++SFCM)\n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmphtml.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN) \n end' UTM\n \n if (GCS = \"Universal_Polar_Stereographic\") then\n tmpmeta.WriteElt(\" UPS_Zo ne_Identifier:\"++cooZone)\n tmpmeta.WriteElt(\" \"+theProjection)\n tmpmeta.WriteElt(\" Standard_Parallel:\"++cooSP1) \n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN)\n \n tmphtml.WriteElt(\" UPS_Zone_Identifier:\"++cooZone)\n tmphtml.WriteElt(\" \"+theProjection+\"\")\n tmphtml.WriteElt(\" Standard_Pa rallel:\"++cooSP1) \n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end' UPS\n \n if (GCS.Contains(\"State_Plane_Coordinate_System\")) then\n tmpmeta.WriteElt(\" SPCS_Zone_Identifier:\"++cooZone)\n tmpmeta.WriteElt(\" \"+theProjection)\n if (theProjection = \"Lambert_Conformal_Conic\") then\n tmpmeta.WriteElt(\" Standard_Parallel:\"++cooSP1)\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmpmeta.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN)\n \n tmphtml.WriteElt(\" Standard_Parallel:\"++cooSP1)\n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmphtml.WriteElt(\" Latitude_of_Pr ojection_Origin:\"++LOPO)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end 'if Lambert Conformal Conic\n \n if (theProjection = \"Transverse_Mercator\") then\n tmpmeta.WriteElt(\" Scale_Factor_at_Central_Meridian:\"++SFCM)\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmpmeta.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN)\n \n tmphtml.WriteElt(\" Scale_Factor_at_Central_Meridian:\"++SFCM)\n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmphtml.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end 'if Transverse Mercat or\n \n if (theProjection = \"Oblique_Mercator\") then\n tmpmeta.WriteElt(\" Scale_Factor_at_Center_Line:\"++SFCL)\n tmpmeta.WriteElt(\" \"+OL)\n tmphtml.WriteElt(\" Scale_Factor_at_Center_Line:\"++SFCL)\n tmphtml.WriteElt(\" \"+OL)\n if (OL = \"Oblique Line Azimuth\") then\n tmpmeta.WriteElt(\" Azimuthal_Angle:\"++AA)\n tmpmeta.WriteElt(\" Azimuthal_Measure_Point_Longitude:\"++AMPL)\n tmphtml.WriteE lt(\" Azimuthal_Angle:\"++AA)\n tmphtml.WriteElt(\" Azimuthal_Measure_Point_Longitude:\"++AMPL)\n end\n if (OL = \"Oblique Line Point\") then\n tmpmeta.WriteElt(\" Oblique_Line_Latitude:\"++OLLat)\n tmpmeta.WriteElt(\" Oblique_Line_Longitude:\"++OLLong)\n tmphtml.WriteElt(\" Oblique_Line_Latitude:\"++OLLat)\n tmphtml.WriteElt(\" Oblique_Line_Longitude:\"++OLLong)\n end\n tmpmeta.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN)\n tmphtml.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end ' if Oblique Mercator \n \n if (theProjection = \"Polyconic\") then\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmpmeta.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN)\n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmphtml.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" Fa lse_Northing:\"++cooFN)\n end 'if Polyconic\n end' State Plane \n\nelseif (plsys = \"Map_Projection\") then\n tmpmeta.WriteElt(\"\")\n tmpmeta.WriteElt(\"SPATIAL_REFERENCE_INFORMATION\")\n tmpmeta.WriteElt(\"\")\n tmpmeta.WriteElt(\" Horizontal_Coordinate_System_Definition\")\n tmpmeta.WriteElt(\" \"+HCDef)\n tmpmeta.WriteElt(\" Map_Projection:\")\n tmpmeta.WriteElt(\" Map_Projection_Name:\"++cooName)\n tmpmeta.WriteElt(\" \"+mapPrj+\":\")\n \n tmphtml.WriteElt(\"\")\n tmphtml.WriteElt(\"

SPATIAL_REFERENCE_INFORMATION

\")\n tmphtml.WriteElt(\" Horizontal_Coordinate_System_Definition\")\n tmphtml.WriteElt(\" \"+HCDef+\"\")\n tmphtml.WriteElt(\" Map_Projection\")\n tmphtml.WriteElt(\" Map_Projection_Name:\"++cooName)\n tmphtml.WriteElt(\" \"+mapPrj+\":\")\n\n if ((cooName = \"Albers Conical Equal Area\") or (cooName = \"Equidistant Conic\") or (cooName = \"Equidistant_Conic\") or (cooName = \"Lambert Conformal Conic\")) then\n tmpmeta.WriteElt(\" 1st_Standard_Parallel:\"++coosp1)\n tmpmeta.WriteElt(\" 2nd_Standard_Parallel:\"++coosp2)\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmpmeta.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN)\n \n tmphtml.WriteElt(\" 1st_Standard_Parallel:\"++coosp1)\n tmphtml.WriteElt(\" 2nd_Standard_Parallel:\"++coosp2)\n tm phtml.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmphtml.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end ' if Albers, Equidistant, Lambert\n \n if ((cooName.Contains(\"Azimuthal Equidistant\")) or (cooName.Contains(\"Polyconic\"))) then\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmpmeta.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN)\n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmphtml.WriteElt(\" Latitude_of_Projection_Origin:\"++LOPO)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end 'Azimuthal, Polyconic\n \n if (cooName = \"Equirectangular\") then\n tmp meta.WriteElt(\" Standard_Parallel:\"++cooSp1)\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++lcm)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN) \n tmphtml.WriteElt(\" Standard_Parallel:\"++coosp1)\n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end ' Equirectangular\n \n if(cooName = \"General Vertical Near-sided Perspective\") then\n tmpmeta.WriteElt(\" Height_of_Perspective_Point_Above_Surface:\"++hppas)\n tmpmeta.WriteElt(\" Longitude_of_Projection_Center:\"++longpc)\n tmpmeta.WriteElt(\" Latitude_of_Projection_Center:\"++latpc)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN) \n tmphtml.WriteElt(\" Height_of_Perspective_Point_Above_Surfac e:\"++hppas)\n tmphtml.WriteElt(\" Longitude_of_Projection_Center:\"++longpc)\n tmphtml.WriteElt(\" Latitude_of_Projection_Center:\"++latpc)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end 'GVNSP\n \n if ((cooName = \"Gnomonic\") or (cooName = \"Lambert Azimuthal Equal Area\") or (cooName = \"Orthographic\") or (cooName = \"Stereographic\")) then\n tmpmeta.WriteElt(\" Longitude_of_Projec tion_Center:\"++longpc)\n tmpmeta.WriteElt(\" Latitude_of_Projection_Center:\"++latpc)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN) \n tmphtml.WriteElt(\" Longitude_of_Projection_Center:\"++longpc)\n tmphtml.WriteElt(\" Latitude_of_Projection_Center:\"++latpc)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end '\n if ( cooName = \"Mercator\") then\n tmpmeta.WriteElt(\" Standard_Parallel:\"++cooSp1)\n tmpmeta.WriteElt(\" Scale_Factor_at_Equator:\"++sfe)\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++lcm)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN) \n tmphtml.WriteElt(\" Standard_Parallel:\"++coosp1)\n tmphtml.WriteElt(\" Scale_Factor_at_Equator:\"++sfe)\n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end '\n if (cooName = \"Modified Stereographic for Alaska\") then\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN) \n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end '\n\n if ((cooName.Contains(\" Miller\")) or cooName.Contains(\"Sinusoidal\")) then\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++lcm)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN) \n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++LCM)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end '\n \n if (cooName.Contains(\"Polar\")) then\n tmpmeta.WriteElt(\" Straight-Vertical_Longitude_from_Pole:\"++svlp)\n tmpmeta.WriteElt(\" Standard_Parallel:\"++cooSp1)\n tmpmeta.WriteElt(\" Scale_Factor_at_Projection_Origin:\"++sfpo)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN)\n tmphtml.WriteElt(\" Straight-Vertical_Longitude_from_Pole:\"++svlp) \n tmphtml.WriteElt(\" Standard_Parallel:\"++coosp1)\n tmphtml.WriteElt(\" Scale_Factor_at _Projection_Origin:\"++sfpo)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end ' \n \n if (cooName = \"Robinson\") then\n tmpmeta.WriteElt(\" Longitude_of_Projection_Center:\"++longpc)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN) \n tmphtml.WriteElt(\" Longitude_of_Projection_Center:\"++longpc)\n tmphtml.WriteElt(\" Fa lse_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end \n if (cooName = \"Space Oblique Mercator\") then\n tmpmeta.WriteElt(\" Landsat_Number:\"++ln)\n tmpmeta.WriteElt(\" Path_Number:\"++pn)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN) \n tmphtml.WriteElt(\" Landsat_Number:\"++ln)\n tmphtml.WriteElt(\" Path_Number:\"++pn)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end\n \n if (cooName = \"Transverse Mercator\") then\n tmpmeta.WriteElt(\" Scale_Factor_at_Central_Meridian:\"++sfcm)\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++lcm)\n tmpmeta.WriteElt(\" Latitude_of_Projection_Origin:\"++lopo)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN)\n tmphtml.WriteElt(\" Scale_Factor_at_Central_Meridian:\"++sfcm) \n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++lcm)\n tmphtml.WriteElt(\" Latitude_of_Projection_Origin:\"++lopo)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end '\n\n if (cooName.Contains(\"Grinten\")) then\n tmpmeta.WriteElt(\" Longitude_of_Central_Meridian:\"++lcm)\n tmpmeta.WriteElt(\" False_Easting:\"++cooFE)\n tmpmeta.WriteElt(\" False_Northing:\"++cooFN) \n tmphtml.WriteElt(\" Longitude_of_Central_Meridian:\"++lcm)\n tmphtml.WriteElt(\" False_Easting:\"++cooFE)\n tmphtml.WriteElt(\" False_Northing:\"++cooFN)\n end \n\n\nelse 'write out empty tags for Spatial Reference Information\n tmpmeta.WriteElt(\"\")\n tmpmeta.WriteElt(\"SPATIAL_REFERENCE_INFORMATION\")\n tmpmeta.WriteElt(\"\")\n tmpmeta.WriteElt(\" Horizontal_Coordinate_System_Definition\")\n tmpmeta.WriteElt (\" Planar\")\n tmpmeta.WriteElt(\" Grid_Coordinate_System\")\n tmpmeta.WriteElt(\" Grid_Coordinate_System_Name:\")\n \n tmphtml.WriteElt(\"\")\n tmphtml.WriteElt(\"SPATIAL_REFERENCE_INFORMATION\")\n tmphtml.WriteElt(\"\")\n tmphtml.WriteElt(\" Horizontal_Coordinate_System_Definition\")\n tmphtml.WriteElt(\" Planar\")\n tmphtml.WriteElt(\" Grid_Coordinate_System\")\n tmphtml.WriteElt(\" Grid_Coordinate_System_Name:\")\n\n\nend 'for writing out Metadata for Grid Coordinate info\n\n\n\n'Planar_Coordinate_Information\nif (HCDef = \"Planar\") then\n if (_refMeth = \"Vector\") then\n encodeDef = \"Coordinate pair\"\n else\n encodeDef = \"Row and column\"\n end\n tmpMeta.WriteElt(\" Planar_Coordinate_Information\")\n tmpMeta.WriteElt(\" Planar_Coordinate_Encoding_Method:\"++encodeDef)\n tmpMeta.WriteElt(\" Coordinate_Representation:\")\n tmpHtml.WriteElt(\" Planar_Coordinate_Information\")\n tmpHtml.WriteElt(\" Planar_Coordinate _Encoding_Method:\"++encodeDef)\n tmpHtml.WriteElt(\" Coordinate_Representation:\")\n \n theLabs = {\"4.1.2.4.2.1 Abscissa Resolution\",\"4.1.2.4.2.2 Ordinate_Resolution:\"}\n theDefs = {\" \",\" \"}\n res = MsgBox.MultiInput(\"Enter Resolution Information for Planar Coordinate System:\",\"Resolution Information\",theLabs,theDefs)\n if (res.Count > 0) then\n abRes = res.Get(0)\n orRes = res.Get(1)\n tmpMeta.WriteElt(\" Abscissa_Resolution:\"++abRes)\n tmpMeta.WriteElt(\" Ordinate_R esolution:\"++orRes)\n tmpMeta.WriteElt(\" Planar_Distance_Units:\"++plUnits)\n tmpHtml.WriteElt(\" Abscissa_Resolution:\"++abRes)\n tmpHtml.WriteElt(\" Ordinate_Resolution:\"++orRes)\n tmpHtml.WriteElt(\" Planar_Distance_Units:\"++plUnits)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = true) then\n keepon = false\n tmpMeta.WriteE lt(\" Abscissa_Resolution:\")\n tmpMeta.WriteElt(\" Ordinate_Resolution:\")\n tmpHtml.WriteElt(\" Abscissa_Resolution:\")\n tmpHtml.WriteElt(\" Ordinate_Resolution:\")\n else\n system.Beep\n tmpmeta.Close\n tmphtml.Close\n metafile.Close\n htmlFile.Close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n exit\n end\n end\nend 'checking in Horizontal Coordinate definition if Planar\n\n\n'Geodetic Model I nformation\n\nif (cooDatum = NIL) then\n datList = {\"North American Datum of 1927\",\"North American Datum of 1983\"}\n cooDatum = MsgBox.ChoiceAsString(datList,\"Select the Horizontal_Datum 4.1.4.1:\",\"Horizontal_Datum\")\n if (cooDatum = \"North American Datum of 1927\") then\n cooDatum = \"North American Datum 1927\"\n cooEllip = \"Clarke 1866\"\n cooAxis = \"6378206.4\"\n cooFlat = \"294.98\"\n\n elseif (cooDatum = \"North American Datum of 1983\") then\n cooDatum = \"North American Datum 1983\"\n cooEllip = \"Geod etic Reference System 1980\"\n cooAxis = \"6378137\"\n cooFlat = \"298.257\"\n end' checking datum\nend 'checking if cooDatum has been set\n\nif (cooDatum <> NIL) then\n tmpMeta.WriteElt(\" Geodetic_Model\")\n tmpMeta.WriteElt(\" Horizontal_Datum_Name:\"++cooDatum)\n tmpMeta.WriteElt(\" Ellipsoid_Name:\"++cooEllip)\n tmpMeta.WriteElt(\" Semi-major_Axis:\"++cooAxis)\n tmpMeta.WriteElt(\" Denominator_of_Flattening_Ratio:\"++cooFlat)\n tmpHtml.WriteElt(\" Geodetic_Model\")\n tmpHtml.WriteElt(\" Horizontal_Datum_Name:\"++cooDatum)\n tmpHtml.WriteElt(\" Ellipsoid_Name:\"++cooEllip)\n tmpHtml.WriteElt(\" Semi-major_Axis:\"++cooAxis)\n tmpHtml.WriteElt(\" Denominator_of_Flattening_Ratio:\"++cooFlat)\nend 'checking if cooDatum is Set\n\n\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"

Top

\")\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"
\")\n\n\ntmpMeta.Close\ntmpHtml.Close\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_ READ)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_READ)\nWhile (tmpMeta.IsAtEnd.NOT)\n theElt = tmpMeta.ReadElt\n metafile.WriteElt(theElt)\nend\nWhile (tmpHtml.IsAtEnd.NOT)\n theElt = tmpHtml.ReadElt\n htmlFile.WriteElt(theElt)\nend\ntmpMeta.Close\ntmpHtml.Close\nFile.Delete(tmpName.AsFileName)\nFile.Delete(htmpName.AsFileName)\n\nnextSect = MsgBox.YesNo(\"Section 4 SPATIAL_REFERENCE_INFORMATION is complete! Do you want to create section 5 ENTITY_AND_ATTRIBUTE_INFORMATION?\",\"Next Section\",true)\nif (nextse ct = true) then\n av.Run(\"meta.Sec5\",{metafile,htmlFile})\nelse\n metafile.Close\n htmlFile.Close\n exit\nend\n\n" ) (Script.35 Name: "meta.Sec5" SourceCode: "'Retrive ENTITY_and_Attribute Information\nMetaFile = Self.Get(0)\nHtmlFile = Self.Get(1)\ntmpName = _workDir.AsString+_pathDel+\"xxtmpm.tmp\"\nhtmpName = _workdir.AsString+_pathDel+\"xxtmph.tmp\"\nif (File.Exists(tmpName.AsFileName)) then\n File.Delete(tmpName.AsFileName)\nend\nif (File.Exists(htmpName.AsFileName)) then\n File.Delete(htmpName.AsFileName)\nend\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml.WriteElt(\"
\")\n\n\nav.ShowMsg
(\"Retrieving Attribute Information\")\ntmpMeta.WriteElt(\"\")\ntmpMeta.WriteElt(\"ENTITY_AND_ATTRIBUTE_INFORMATION\")\ntmpMeta.WriteElt(\"\")\ntmpMeta.WriteElt(\"  Detailed_Description\")\ntmpHtml.WriteElt(\"\")\ntmpHtml.WriteElt(\"

ENTITY_AND_ATTRIBUTE_INFORMATION

\")\ntmpHtml.WriteElt(\" Detailed_Description\")\n\n\n\n'tmpMeta.WriteElt(\" Attribute\")\n\nif (_theClass <> \"Image\") then\n\n \n if (_theFTab <> NIL) then\n tmpMeta.WriteElt(\" Entity_Type\")\n tmpHtml.WriteElt(\" Entity_Type\")\n \n etLab = _theFTab.GetBaseTableFileName.GetBaseName\n tmpMeta.WriteElt(\" Entity_Type_Label:\"++etLab)\n tmpHtml.WriteElt(\" Entity_Type_Label:\"++etLab)\n\n if (etLab.Contains(\".aat\")) then\n etDef = \"Arc Attribute Table\"\n elseif ((etLab.Contains(\".pat\")) and (_shpClass = \"Polygon\")) then\n etDef = \"Polygon Attribute Table\"\n elseif ((etLab.Contains(\".pat\")) and (_shpClass = \"Point\")) then\n etDef = \"Point Attribute Table\"\n elseif (etLab.Contains(\".vat\")) then\n etDef = \"GRID Value Attribute Table\"\n elseif (etLab.Contains(\".dbf\")) then\n etDef = \"Shapefile Attribute Table\"\n end 'end for determining shpClass\n tmpMeta.WriteElt(\" Entity_Type_Definition:\"++etDef)\n tmpMeta.WriteElt(\" Entity_Type_Definition_Source: None\")\n tmpHtml.WriteElt(\" Entity_Type_Definition:\"++etDef)\n tmpHtml.WriteElt(\" Entity_Type_Definition_Source: None\")\n \n \n\n for each f in _theFTab.GetFields\n if (f.AsString <> \"Shape\") then\n tmpMeta.WriteElt(\" Attribute\") \n tmpMeta.WriteElt(\" Attribute_Label:\"++f.AsString)\n tmpHtml.WriteElt(\" Attribute\") \n tmpHtml.WriteElt(\" Attribute_Label:\"++f.AsString)\n\n if (f.AsString = \"Length\") then\n tmpMeta.WriteElt(\" Attribute_Definition: Length of line\")\n tmpMeta.WriteElt(\" Attribute_Definition_Source: Software computed\")\n tmpHtml.WriteElt(\" Attribute_Definition: Length of line\")\n tmpHtml.WriteElt(\" Attribu te_Definition_Source: Software computed\")\n elseif (f.AsString.Contains(\"FNODE\")) then\n tmpMeta.WriteElt(\" Attribute_Definition: From-node identifier of linear feature\")\n tmpMeta.WriteElt(\" Attribute_Definition_Source: Software computed\")\n tmpHtml.WriteElt(\" Attribute_Definition: From-node identifier of linear feature\")\n tmpHtml.WriteElt(\" Attribute_Definition_Source: Software computed\")\n\n elseif (f.AsString.Contains(\"TNODE\")) then \n tmpMet a.WriteElt(\" Attribute_Definition: To-node identifier of linear feature\") \n tmpMeta.WriteElt(\" Attribute_Definition_Source: Software computed\")\n tmpHtml.WriteElt(\" Attribute_Definition: To-node identifier of linear feature\") \n tmpHtml.WriteElt(\" Attribute_Definition_Source: Software computed\")\n\n elseif (f.AsString.Contains(\"LPOLY\")) then\n tmpMeta.WriteElt(\" Attribute_Definition: Internal number of polygon to left of arc\")\n tmpMeta.WriteE lt(\" Attribute_Definition_Source: Software computed\")\n tmpHtml.WriteElt(\" Attribute_Definition: Internal number of polygon to left of arc\")\n tmpHtml.WriteElt(\" Attribute_Definition_Source: Software computed\")\n\n elseif (f.AsString.Contains(\"RPOLY\")) then\n tmpMeta.WriteElt(\" Attribute_Definition: Internal number of polygon to right of arc\")\n tmpMeta.WriteElt(\" Attribute_Definition_Source: Software computed\")\n tmpHtml.WriteElt(\" Attribu te_Definition: Internal number of polygon to right of arc\")\n tmpHtml.WriteElt(\" Attribute_Definition_Source: Software computed\")\n\n elseif (f.AsString.Contains(\"Area\")) then\n tmpMeta.WriteElt(\" Attribute_Definition: Area of polygon\")\n tmpMeta.WriteElt(\" Attribute_Definition_Source: Software computed\")\n tmpHtml.WriteElt(\" Attribute_Definition: Area of polygon\")\n tmpHtml.WriteElt(\" Attribute_Definition_Source: Software computed\") \n elseif (f.AsString.Contains(\"Perimeter\")) then\n tmpMeta.WriteElt(\" Attribute_Definition: Perimeter of polygon\")\n tmpMeta.WriteElt(\" Attribute_Definition_Source: Software computed\")\n tmpHtml.WriteElt(\" Attribute_Definition: Perimeter of polygon\")\n tmpHtml.WriteElt(\" Attribute_Definition_Source: Software computed\") \n elseif ((f.AsString = \"Value\") and (_theClass = \"Grid\")) then\n tmpMeta.WriteElt(\" Attribute_Definition: Pixel value\")\n tmpMeta.WriteElt(\" Attribute_Definition_Source: Software computed\")\n tmpHtml.WriteElt(\" Attribute_Definition: Pixel value\")\n tmpHtml.WriteElt(\" Attribute_Definition_Source: Software computed\") \n elseif ((f.AsString.Contains(\"count\")) and (_theClass = \"Grid\")) then\n tmpMeta.WriteElt(\" Attribute_Definition: Number of pixel with same value\")\n tmpMeta.WriteElt(\" Attribute_Definition_Source: Software computed\")\n tmpHtml.WriteElt(\" Attribute_Definition: Number of pixel with same value\")\n tmpHtml.WriteElt(\" Attribute_Definition_Source: Software computed\") \n elseif (f.AsString.Contains(_tName+\"#\")) then\n tmpMeta.WriteElt(\" Attribute_Definition: Internal feature number\")\n tmpMeta.WriteElt(\" Attribute_Definition_Source: Software computed\")\n tmpHtml.WriteElt(\" Attribute_Definition: Internal feature number\")\n tmpHtml.WriteElt(\" Attribute_Definition_Source: So ftware computed\")\n elseif (f.AsString.Contains(_tName+\"-id\")) then\n tmpMeta.WriteElt(\" Attribute_Definition: Feature identification number\")\n tmpMeta.WriteElt(\" Attribute_Definition_Source: User Defined\")\n tmpHtml.WriteElt(\" Attribute_Definition: Feature identification number\")\n tmpHtml.WriteElt(\" Attribute_Definition_Source: User Defined\") \n else\n attDef = MsgBox.Input(\"5.1.2.2 Enter the Attribute_Definition for field\"++f.Asstring,\"Attribute _Definition\",\"\") \n if (attDef <> NIL) then\n tmpMeta.WriteElt(\" Attribute_Definition:\"++attDef)\n tmpHtml.WriteElt(\" Attribute_Definition:\"++attDef)\n else\n tmpMeta.WriteElt(\" Attribute_Definition:\")\n tmpHtml.WriteElt(\" Attribute_Definition:\")\n end\n tmpMeta.WriteElt(\" Attribute_Definition_Source: User Defined\")\n tmpHtml.WriteElt(\" Attribute_Definition_Source: User Defined\") \n end ' for software generated fields \n if (f.IsTypeNumber) then\n theField = f\n theVTab = _theFTab\n thePrecision = \"d.dddddddddd\"\n theFieldPrecision = theField.GetPrecision\n Script.The.SetNumberFormat( thePrecision.Left( theFieldPrecision + 2 ) )\n \n if ( theVTab.GetSelection.Count = 0 ) then\n theSet = theVTab\n else\n theSet = theVTab.GetSelection\n end\n \n theSum = 0\n theCount = 0\n theMinimum = nil\n theMaximum = nil\n for each rec in theSet\n theValue = theVTab.ReturnValueNumber( theField, rec )\n if ( not ( theValue.IsNull ) ) then\n if ( theMinimum = nil ) then\n theMinimum = theValue\n theMaximum = theValue\n else\n theMinimum = theMinimum min theValue\n theMaximum = theMaximum max theValue\n end\n theSum = theValue + theSum\n theCount = theCount + 1\n end\n end\n theMean = theSum / theCount\n tmpMeta.WriteElt(\" Attr ibute_Domain_Values\")\n tmpMeta.WriteElt(\" Range_Domain\")\n tmpMeta.WriteElt(\" Range_Domain_Minimum:\"++theMinimum.AsString)\n tmpMeta.WriteElt(\" Range_Domain_Maximum:\"++theMaximum.AsString)\n tmpHtml.WriteElt(\" Attribute_Domain_Values\")\n tmpHtml.WriteElt(\" Range_Domain\")\n tmpHtml.WriteElt(\" Range_Domain_Minimum:\"++theMinimum.AsString)\n tmpHtml.WriteElt(\" Range_Domain_Maximum:\"++theMaximum.AsStrin g)\n else\n tmpMeta.WriteElt(\" Attribute_Domain_Values\")\n tmpMeta.WriteElt(\" Unrepresentable_Domain: Character field\")\n tmpHtml.WriteElt(\" Attribute_Domain_Values\")\n tmpHtml.WriteElt(\" Unrepresentable_Domain: Character field\") \n end 'end for checking if field is number\n end 'end for checking for shape field\n end 'for each field in FTab\n end 'for checking if FTab is NIL\nend 'for test if IMAGE\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"

Top

\")\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"
\")\n\ntmpMeta.Close\ntmpHtml.Close\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_READ)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_READ)\nWhile (tmpMeta.IsAtEnd.NOT)\n theElt = tmpMeta.ReadElt\n MetaFile.WriteElt(theElt)\nend\nWhile (tmpHtml.IsAtEnd.NOT)\n theElt = tmpHtml.ReadElt\n HTMLFile.WriteElt(theElt)\nend\ntmpMeta.Close\ntmpHtml.Close\nFile.Delete(tmpName.AsFileName)\nFile.Delete(htmpName.AsFileNa me)\n\nnextSect = MsgBox.YesNo(\"Section 5 ENTITY_AND_ATTRIBUTE_INFORMATION is complete! Do you want to create section 6 DISTRIBUTION_INFORMATION?\",\"Next Section\",true)\nif (nextsect = true) then\n av.Run(\"meta.Sec6\",{MetaFile,HtmlFile})\nelse\n metaFile.Close\n htmlFile.Close\n exit\nend\n" ) (Script.36 Name: "meta.Sec6" SourceCode: "'DISTRIBUTION_INFORMATION\nMetaFile = Self.Get(0)\nHtmlFile = Self.Get(1)\ntmpName = _workDir.AsString+_pathDel+\"xxtmpm.tmp\"\nhtmpName = _workdir.AsString+_pathDel+\"xxtmph.tmp\"\nif (File.Exists(tmpName.AsFileName)) then\n File.Delete(tmpName.AsFileName)\nend\nif (File.Exists(htmpName.AsFileName)) then\n File.Delete(htmpName.AsFileName)\nend\n\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml.WriteElt(\"
\")\n\n\nav.ShowMsg(\" \")\nconFile =
 _workdir+_pathDel+\"distrib.dbf\"\nconVTab = VTab.Make(conFile.AsFileName,false,false)\ndisCnt = {}\nidSet = true\nif (conVTab.GetSelection = NIL) then\n  conid = NIL\n  conEx = NIL\nelse\n  conList = {}\n  conEx = true\n  conidField = conVTab.FindField(\"con_Id\")\n  for each o in conVTab\n    conid = conVTab.ReturnValue(conidField,o)\n    conList.Add(conid)\n    if (conid.Contains(\"Distribution_Id\")) then\n      disCnt.Add(conid)\n    end\n  end\n  conid = MsgBox.ListAsString(conList,\"Select Distribution_Information Id or Can
cel to create new record.\",\"Distribution_Information\")\nend\ndisDef = \"Distribution_Id\"+(disCnt.Count + 1).AsString\nif (conid = NIL) then\n  theconList = {\"contact_Id (future use)\",\"10.1.2 Contact_Organization:\",\"10.1.1 Contact_Person:\",\"10.3 Contact_Position\",\"10.4.2 Address:\",\"10.4.3 City:\",\"10.4.4 State_or_Province:\",\"10.4.5 Postal_Code:\",\"10.4.6 Country:\",\"10.5 Contact_Voice_Telephone:\",\"10.7 Contact_Facsimile_Telephone:\",\"10.8 Contact_Electronic_Mail_Adress:\",\"10.9 Hours_of_Service:\"}\n  theDefs = {disDef,
\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n  piList = MsgBox.MultiInput(\"Enter Contact_Information:\",\"Contact_Information\",theconList,theDefs)\n  if (piList.Count > 0) then\n    idSet = False\n    conid = piList.Get(0)\n    conOrg = piList.Get(1)\n    conPer = piList.Get(2)\n    conPos1 = piList.Get(3)\n    Add = piList.Get(4)\n    City = piList.Get(5)\n    State = piList.Get(6)\n    Pcode = piList.Get(7)\n    Country = piList.Get(8)\n    Vtele = piList.Get(9)\n    Ftele = piList.Get(10)\n    Email = piList.Get(11)
\n    Hours = piList.Get(12)\n    if (conEx = NIL) then\n      conVTab = VTab.MakeNew(confile.AsFileName,dBASE)\n      conIdField = Field.Make(\"con_Id\",#FIELD_VCHAR,20,0)\n      conOrgField = Field.Make(\"organ\",#FIELD_VCHAR,50,0)\n      conPerField = Field.Make(\"person\",#FIELD_VCHAR,50,0)\n      conPos1Field = Field.Make(\"position1\",#FIELD_VCHAR,50,0)\n      AddField = Field.Make(\"address\",#FIELD_VCHAR,50,0)\n      CityField = Field.Make(\"city\",#FIELD_VCHAR,50,0)\n      StateField = Field.Make(\"state\",#FIELD_VCHAR,50
,0)\n      PcodeField = Field.Make(\"pcode\",#FIELD_VCHAR,12,0)\n      CountryField = Field.Make(\"country\",#FIELD_VCHAR,25,0)\n      VteleField = Field.Make(\"tele\",#FIELD_VCHAR,20,0)\n      FteleField = Field.Make(\"fax\",#FIELD_VCHAR,20,0)\n      EmailField = Field.Make(\"email\",#FIELD_VCHAR,50,0)\n      HoursField = Field.Make(\"hours\",#FIELD_VCHAR,50,0)\n      FieldList = {conIdField,conOrgField,conPerField,conPos1Field,AddField,cityField,StateField,PcodeField,CountryField,VteleField,FteleField,EmailField,HoursField}
\n      conVTab.AddFields(FieldList)\n    else\n      conVTab = VTab.Make(conFile.AsFileName,false,false)\n    end\n    conVTab.Seteditable(true)\n    newRec = conVTab.AddRecord\n    conVTab.SetValue(conVTab.FindField(\"con_Id\"), newRec, conid)\n    conVTab.SetValue(conVTab.FindField(\"organ\"), newRec, conOrg)\n    conVTab.SetValue(conVTab.FindField(\"person\"),newRec, conPer)\n    conVTab.SetValue(conVTab.FindField(\"position1\"),newRec, conPos1)\n    conVTab.SetValue(conVTab.FindField(\"address\"), newRec, add)\n    conVTab.
SetValue(conVTab.FindField(\"city\"), newRec, city)\n    conVTab.SetValue(conVTab.FindField(\"state\"), newRec, state)\n    conVTab.SetValue(conVTab.FindField(\"pcode\"), newRec, pcode)\n    conVTab.SetValue(conVTab.FindField(\"country\"), newRec, country)\n    conVTab.SetValue(conVTab.FindField(\"tele\"), newRec, vtele)\n    conVTab.SetValue(conVTab.FindField(\"fax\"), newRec, ftele)\n    conVTab.SetValue(conVTab.FindField(\"email\"), newRec, email)\n    conVTab.SetValue(conVTab.FindField(\"hours\"), newRec, hours)\n    conVTab.S
etEditable(false)\n  else\n    goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n    if (goon = False) then\n      System.Beep\n      tmpHtml.Close\n      tmpMeta.Close\n      MetaFile.Close\n      HtmlFile.Close\n      File.Delete(tmpName.AsFileName)\n      File.Delete(htmpName.AsFileName)\n      Exit\n    end\n  end 'checking in piList is empty\nend\nif (conid <> NIL) then\n  Querystr = \"([con_id] =\"++conid.Quote+\")\"\n  conVTab.Get
Selection.SetAll\n  conBitMap = conVTab.GetSelection\n  conVTab.Query(Querystr,conBitMap,#VTAB_SELTYPE_NEW)\n  conVTab.UpdateSelection\n  QueryBitmap = conVTab.GetSelection\n  for each b in QueryBitmap\n    org = conVTab.ReturnValue(conVTab.FindField(\"organ\"),b)\n    person = conVTab.ReturnValue(conVTab.FindField(\"person\"),b)\n    conPos1 = conVTab.ReturnValue(conVTab.FindField(\"position1\"),b)\n    add = conVTab.ReturnValue(conVTab.FindField(\"address\"),b)\n    city = conVTab.ReturnValue(conVTab.FindField(\"city\"),b)\n 
   state = conVTab.ReturnValue(conVTab.FindField(\"state\"),b)\n    pcode = conVTab.ReturnValue(conVTab.FindField(\"pcode\"),b)\n    country = conVTab.ReturnValue(conVTab.FindField(\"country\"),b)\n    tele = conVTab.ReturnValue(conVTab.FindField(\"tele\"),b)\n    fax = conVTab.ReturnValue(conVTab.FindField(\"fax\"),b)\n    email = conVTab.ReturnValue(conVTab.FindField(\"email\"),b)\n    hours = conVTab.ReturnValue(conVTab.FindField(\"hours\"),b)  \n  end\n  \n  \n  theconList = {\"10.1.2 Contact_Organization:\",\"10.1.1 Contact_Pers
on:\",\"10.3 Contact_Position:\",\"10.4.2 Address:\",\"10.4.3 City:\",\"10.4.4 State_or_Province:\",\"10.4.5 Postal_Code:\",\"10.4.6 Country:\",\"10.5 Contact_Voice_Telephone:\",\"10.7 Contact_Facsimile_Telephone:\",\"10.8 Contact_Electronic_Mail_Adress:\",\"10.9 Hours_of_Service:\"}\n  theDefs = {org.AsString,person.AsString,conpos1.AsString,add.AsString,city.AsString,state.AsString,pcode.AsString,country.AsString,tele.AsString,fax.AsString,email.AsString,hours.AsString}\n  \n  newDefs = {}\n  for each d in theDefs\n    if (d.AsStr
ing.Left(1) = \"\") then\n      newDefs.Add(\" \")\n    else\n      newDefs.Add(d)\n    end\n  end ' for each loop\n  if (idSet = True) then\n    piList = MsgBox.MultiInput(\"Enter Contact_Information:\",\"Contact_Information\",theconList,newDefs)\n    if (piList.Count > 0) then\n      org = piList.Get(0)\n      person = piList.Get(1)\n      conPos1 = piList.Get(2)\n      add = piList.Get(3)\n      city = piList.Get(4)\n      state = piList.Get(5)\n      pcode = piList.Get(6)\n      country = piList.Get(7)\n      tele = piList.Get(
8)\n      fax = piList.Get(9)\n      email = piList.Get(10)\n      hours = piList.Get(11)\n    else 'piList is empty based on conId\n      goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n      if (goon = False) then\n        System.Beep\n        tmpHtml.Close\n        tmpMeta.Close\n        MetaFile.Close\n        HtmlFile.Close\n        File.Delete(tmpName.AsFileName)\n        File.Delete(htmpName.AsFileName)\n        Exit\n    
  else\n        conId = NIL\n        org = NIL\n      end\n    end 'checking piList based on conID\n  end 'Id set\n  if (org <> NIL) then 'write out data\n    tmpMeta.WriteElt(\"\")\n    tmpMeta.WriteElt(\"DISTRIBUTION_INFORMATION\")\n    tmpMeta.WriteElt(\"\")\n    tmpMeta.WriteElt(\"  Distributor\")\n    tmpMeta.WriteElt(\"    Contact_Information\")\n    tmpMeta.WriteElt(\"      Contact_Organization_Primary\")\n    tmpMeta.WriteElt(\"        Contact_Organization:\"++org)\n    tmpMeta.WriteElt(\"        Contact_Person:\"++person)\n    t
mpMeta.WriteElt(\"      Contact_Position:\"++conPos1)\n    tmpMeta.WriteElt(\"      Contact_Address\")\n    tmpMeta.WriteElt(\"        Address_Type: mailing and physical address\")\n    tmpMeta.WriteElt(\"        Address:\"++add)\n    tmpMeta.WriteElt(\"        City:\"++city)\n    tmpMeta.WriteElt(\"        State_or_Province:\"++state)\n    tmpMeta.WriteElt(\"        Postal_Code:\"++pcode)\n    tmpMeta.WriteElt(\"        Country:\"++country)\n    tmpMeta.WriteElt(\"      Contact_Voice_Telephone:\"++tele)\n    tmpMeta.WriteElt(\"      
Contact_Facsimile_Telephone:\"++fax)\n    tmpMeta.WriteElt(\"      Contact_Electronic_Mail_Address:\"++email)\n    tmpMeta.WriteElt(\"      Hours_of_Service:\"++hours)\n    tmpHtml.WriteElt(\"\")\n    tmpHtml.WriteElt(\"

DISTRIBUTION_INFORMATION

\")\n tmpHtml.WriteElt(\" Distributor\")\n tmpHtml.WriteElt(\" Contact_Information\")\n tmpHtml.WriteElt(\" Contact_Organization_Primary\")\n tmpHtml.WriteElt(\" Contact_Organization:\"++org)\n tmpHtml.WriteElt( \" Contact_Person:\"++person)\n tmpHtml.WriteElt(\" Contact_Position:\"++conPos1) \n tmpHtml.WriteElt(\" Contact_Address\")\n tmpHtml.WriteElt(\" Address_Type: mailing and physical address\")\n tmpHtml.WriteElt(\" Address:\"++add)\n tmpHtml.WriteElt(\" City:\"++city)\n tmpHtml.WriteElt(\" State_or_Province:\"++state)\n tmpHtml.WriteElt(\" Postal_Code:\"++pcode)\n tmpHtml.WriteElt(\" Countr y:\"++country)\n tmpHtml.WriteElt(\" Contact_Voice_Telephone:\"++tele)\n tmpHtml.WriteElt(\" Contact_Facsimile_Telephone:\"++fax)\n tmpHtml.WriteElt(\" Contact_Electronic_Mail_Address:\"++email)\n tmpHtml.WriteElt(\" Hours_of_Service:\"++hours)\n end 'checking if org is still set\nend ' checking if conid was set by user\n\nif (conid = NIL) then 'conid was not set, write empty tags\n tmpMeta.WriteElt(\"\")\n tmpMeta.WriteElt(\"DISTRIBUTION_INFORMATION\")\n tmpMeta. WriteElt(\"\")\n tmpMeta.WriteElt(\" Distributor\")\n tmpMeta.WriteElt(\" Contact_Information\")\n tmpMeta.WriteElt(\" Contact_Organization_Primary\")\n tmpMeta.WriteElt(\" Contact_Organization:\")\n tmpMeta.WriteElt(\" Contact_Person:\")\n tmpMeta.WriteElt(\" Contact_Position:\")\n tmpMeta.WriteElt(\" Contact_Address\")\n tmpMeta.WriteElt(\" Address_Type: mailing and physical address\")\n tmpMeta.WriteElt(\" Address:\")\n tmpMeta.WriteElt(\" City:\")\n tmpMeta.WriteElt(\" State_or_Province:\")\n tmpMeta.WriteElt(\" Postal_Code:\")\n tmpMeta.WriteElt(\" Country:\")\n tmpMeta.WriteElt(\" Contact_Voice_Telephone:\")\n tmpMeta.WriteElt(\" Contact_Facsimile_Telephone:\")\n tmpMeta.WriteElt(\" Contact_Electronic_Mail_Address:\")\n tmpMeta.WriteElt(\" Hours_of_Service:\")\n tmpHtml.WriteElt(\"\")\n tmpHtml.WriteElt(\"

DISTRIBUTION_INFORMATION

\")\n tmpHtml.WriteElt(\"\")\n tmpHtml.WriteElt(\" Distributor\")\n tmpHtml.WriteElt(\" Co ntact_Information\")\n tmpHtml.WriteElt(\" Contact_Organization_Primary\")\n tmpHtml.WriteElt(\" Contact_Organization:\")\n tmpHtml.WriteElt(\" Contact_Person:\")\n tmpHtml.WriteElt(\" Contact_Position:\")\n tmpHtml.WriteElt(\" Contact_Address\")\n tmpHtml.WriteElt(\" Address_Type: mailing and physical address\")\n tmpHtml.WriteElt(\" Address:\")\n tmpHtml.WriteElt(\" City:\")\n tmpHtml.WriteElt(\" State_or _Province:\")\n tmpHtml.WriteElt(\" Postal_Code:\")\n tmpHtml.WriteElt(\" Country:\")\n tmpHtml.WriteElt(\" Contact_Voice_Telephone:\")\n tmpHtml.WriteElt(\" Contact_Facsimile_Telephone:\")\n tmpHtml.WriteElt(\" Contact_Electronic_Mail_Address:\")\n tmpHtml.WriteElt(\" Hours_of_Service:\")\nend 'writing data for Distribution_Information\n'Resource_Description and Standard_Order_Process\ndisFile = _workdir+_pathDel+\"resource.dbf\"\ndisVTab = VTab. Make(disFile.AsFileName,false,false)\nresCnt = {}\nidSet = True\nif (disVTab.GetSelection = NIL) then\n disid = NIL\n disEx = NIL\nelse\n disList = {}\n disEx = true\n disidField = disVTab.FindField(\"res_Id\")\n for each o in disVTab\n disid = disVTab.ReturnValue(disidField,o)\n disList.Add(disid)\n if (disid.Contains(\"Resource_Id\")) then\n resCnt.Add(disid)\n end\n end\n disid = MsgBox.ListAsString(disList,\"Please select Resource_Description Id.\",\"Resource_Description\")\nend\nresDef = \"Resource_Id\"+(r esCnt.Count + 1).AsString\nif (disid = NIL) then\n thedisList = {\"resource_Id (future use)\",\"6.2 Resource_Description:\",\" \",\"6.3 Distribution_Liability:\",\" \",\"6.4.2.1.1 Format_Name\",\"6.4.2.2.2.1 Offline_Media:\",\"6.4.3 Fees:\"}\n theDefs = {resDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \"}\n piList = MsgBox.MultiInput(\"Enter Resource_Description Information:\",\"Resource_Description\",thedisList,theDefs)\n if (piList.Count > 0) then\n idSet = False\n disid = piList.Get(0)\n des1 = piList.Get(1)\n des2 = piList. Get(2)\n lia1 = piList.Get(3)\n lia2 = piList.Get(4)\n format = piList.Get(5)\n media = piList.Get(6)\n fee = piList.Get(7)\n if (disEx = NIL) then\n disVTab = VTab.MakeNew(disfile.AsFileName,dBASE)\n disIdField = Field.Make(\"res_Id\",#FIELD_VCHAR,20,0)\n des1Field = Field.Make(\"descript1\",#FIELD_VCHAR,50,0)\n des2Field = Field.Make(\"descript2\",#FIELD_VCHAR,50,0)\n lia1Field = Field.Make(\"liability1\",#FIELD_VCHAR,50,0)\n lia2Field = Field.Make(\"liability2\",#FIELD_VCHAR,50, 0)\n formatField = Field.Make(\"format\",#FIELD_VCHAR,50,0)\n mediaField = Field.Make(\"media\",#FIELD_VCHAR,50,0)\n feeField = Field.Make(\"fees\",#FIELD_VCHAR,12,0)\n FieldList = {disIdField,des1Field,des2Field,lia1Field,lia2Field,formatField,mediaField,feeField}\n disVTab.AddFields(FieldList)\n else\n disVTab = VTab.Make(disFile.AsFileName,false,false)\n end\n disVTab.Seteditable(true)\n newRec = disVTab.AddRecord\n disVTab.SetValue(disVTab.FindField(\"res_Id\"), newRec, disid)\n disVTab.SetValue(disVTab.FindField(\"descript1\"), newRec, des1)\n disVTab.SetValue(disVTab.FindField(\"descript2\"),newRec, des2)\n disVTab.SetValue(disVTab.FindField(\"liability1\"), newRec, lia1)\n disVTab.SetValue(disVTab.FindField(\"liability2\"), newRec, lia2)\n disVTab.SetValue(disVTab.FindField(\"format\"), newRec, format)\n disVTab.SetValue(disVTab.FindField(\"media\"), newRec, media)\n disVTab.SetValue(disVTab.FindField(\"fees\"), newRec, fee) \n disVTab.SetEditable(false)\n else\n goon = M sgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n MetaFile.Close\n HtmlFile.Close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end' checking if piList is empty\nend \nif (disid <> NIL) then\n Querystr = \"([res_Id] =\"++disid.Quote+\")\"\n disVTab.GetSelection.SetAll\n disBitMap = disVT ab.GetSelection\n disVTab.Query(Querystr,disBitMap,#VTAB_SELTYPE_NEW)\n disVTab.UpdateSelection\n QueryBitmap = disVTab.GetSelection\n for each b in QueryBitmap\n des1 = disVTab.ReturnValue(disVTab.FindField(\"descript1\"),b)\n des2 = disVTab.ReturnValue(disVTab.FindField(\"descript2\"),b)\n lia1 = disVTab.ReturnValue(disVTab.FindField(\"liability1\"),b)\n lia2 = disVTab.ReturnValue(disVTab.FindField(\"liability2\"),b)\n format = disVTab.ReturnValue(disVTab.FindField(\"format\"),b)\n media = disVTab.Retur nValue(disVTab.FindField(\"media\"),b)\n fee = disVTab.ReturnValue(disVTab.FindField(\"fees\"),b) \n end\n \n \n thedisList = {\"6.2 Resource_Description:\",\" \",\"6.3 Distribution_Liability:\",\" \",\"6.4.2.1.1 Format_Name\",\"6.4.2.2.2.1 Offline_Media:\",\"6.4.3 Fees:\"}\n theDefs = {des1.AsString,des2.AsString,lia1.AsString,lia2.AsString,format.AsString,media.AsString,fee.AsString}\n \n newDefs = {}\n for each d in theDefs\n if (d.AsString.Left(1) = \"\") then\n newDefs.Add(\" \")\n else\n newDefs.Add(d)\n e nd\n end ' for each loop\n if (idSet = True) then\n piList = MsgBox.MultiInput(\"Resource_Description Information based on:\"++disId.AsString,\"Resource_Description\",thedisList,newDefs)\n if (piList.Count > 0) then\n des1 = piList.Get(0)\n des2 = piList.Get(1)\n lia1 = piList.Get(2)\n lia2 = piList.Get(3)\n format = piList.Get(4)\n media = piList.Get(5)\n fee = piList.Get(6)\n else \n goon = MsgBox.YesNo(\"If you exit now, this section will have to be recreated. Do you wan t to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n MetaFile.Close\n HtmlFile.Close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n else\n disId = NIL\n des1 = NIL\n end\n end ' checking piList\n end' checking idSet \n if (des1 <> NIL) then \n tmpMeta.WriteElt(\" Resource_Description:\")\n if (des1 <> NIL) then\n if (des1.l eft(1) = \" \") then\n else\n tmpMeta.WriteElt(\" \"++des1)\n end\n end\n if (des2 <> NIL) then\n if (des2.left(1) = \" \") then\n else\n tmpMeta.WriteElt(\" \"++des2)\n end\n end\n \n tmpMeta.WriteElt(\" Distribution_Liability:\")\n if (lia1 <> NIL) then\n if (lia1.left(1) = \" \") then\n else\n tmpMeta.WriteElt(\" \"++lia1)\n end\n end\n if (lia2 <> NIL) then\n if (lia2.left(1) = \" \") then\n else\n tmpMeta.WriteElt(\" \"++lia2)\n end\n end\n tmpMeta.WriteElt(\" Standard_Order_Process\")\n tmpMeta.WriteElt(\" Digital_Form\")\n tmpMeta.WriteElt(\" Digital_Transfer_Information\")\n tmpMeta.WriteElt(\" Format_Name:\"+format)\n tmpMeta.WriteElt(\" Digital_Transfer_Option\")\n tmpMeta.WriteElt(\" Offline_Option\")\n tmpHtml.WriteElt(\" Resource_Description:\")\n if (des1 <> NIL) then\n if (des1.left(1) = \"\") then\n else\n tmpHtml.WriteElt(\" \"++des1)\n end\n end\n if (des2 <> NIL) then\n if (des2.left(1) = \"\") then\n else\n tmpHtml.WriteElt(\" \"++des2)\n end\n end\n tmpHtml.WriteElt(\" Distribution_Liability:\")\n if (lia1 <> NIL) then\n if (lia1.left(1) = \"\") then\n else\n tmpHtml.WriteElt(\" \"++lia1)\n end\n end\n if (lia2 <> NIL) then\n if (lia2.left(1) = \"\") then\n else\n tmpHtml.WriteElt(\" \"++lia2)\n end\n end\n tmpHtml.WriteElt(\" Standard_Order_Process\")\n t mpHtml.WriteElt(\" Digital_Form\")\n tmpHtml.WriteElt(\" Digital_Transfer_Information\")\n tmpHtml.WriteElt(\" Digital_Transfer_Information\")\n tmpHtml.WriteElt(\" Format_Name:\"+format)\n tmpHtml.WriteElt(\" Digital_Transfer_Option\")\n tmpHtml.WriteElt(\" Offline_Option\") \n if (media.Contains(\"cd\")) then\n tmpMeta.WriteElt(\" Offline_Media:\"++media)\n tmpMeta.WriteElt(\" Recording_Format: ISO 9660\")\n tmpMeta.WriteElt(\" Compatibility_Information: ISO 9660 format allows the CDROM\")\n tmpMeta.WriteElt(\" to be read by most computer operating systems.\")\n tmpHtml.WriteElt(\" Offline_Media:\"++media)\n tmpHtml.WriteElt(\" Recording_Format: ISO 9660\")\n tmpHtml.WriteElt(\" Compatibility_Information: ISO 966 format allows the CDROM\")\n tmpHtml.WriteElt(\" to be read by most computer operating systems.\")\n else\n theLabs = {\"6.4.2.2.2.1 Offline_Media\",\"6.4.2.2.2.3 Recording_Format\",\"6.4.2.2.2.4 Compatibility_Information\",\" \"}\n theDefs = {\" \",\" \",\" \",\" \"}\n medInfo = MsgBox.MultiInput(\"Enter Media_Information\",\"Media_Information\",theLabs,theDefs)\n if (medInfo.Count > 0) then\n tmpMeta.WriteElt(\" Offline_Media:\"++medInfo.Get(0).AsString)\n tmpMeta.WriteElt(\" Recording_Format:\"++medInfo.Get(1).AsString)\n tmpMeta.WriteElt(\" Compatibi lity_Information:\"++medInfo.Get(2).AsString)\n if (medInfo.Get(3).left(1) = \" \") then\n else \n tmpMeta.WriteElt(\" \"++medInfo.Get(3).AsString) \n end\n tmpHtml.WriteElt(\" Offline_Media:\"++medInfo.Get(0).AsString)\n tmpHtml.WriteElt(\" Recording_Format:\"++medInfo.Get(1).AsString)\n tmpHtml.WriteElt(\" Compatibility_Information:\"++medInfo.Get(2).AsString)\n if (medInfo.Get(3).left(1) = \" \") then\n else \n tmpHtml.WriteElt(\" \"++medInfo.Get(3).AsString) \n end \n end \n end\n tmpMeta.WriteElt(\" Fees:\"++fee)\n tmpHtml.WriteElt(\" Fees:\"++fee)\n end 'checking 'if des1 got set from list\nend 'checking if disid was set by user\nif (disId = NIL) then 'disid is NIL \n tmpMeta.WriteElt(\" Resource_Description:\")\n tmpMeta.WriteElt(\" Distribution_Liability:\")\n tmpMeta.WriteElt(\" Standard_Order_Process\")\n tmpMe ta.WriteElt(\" Digital_Form\")\n tmpMeta.WriteElt(\" Digital_Transfer_Option\")\n tmpMeta.WriteElt(\" Fees:\")\n tmpHtml.WriteElt(\" Resource_Description:\")\n tmpHtml.WriteElt(\" Distribution_Liability:\")\n tmpHtml.WriteElt(\" Standard_Order_Process\")\n tmpHtml.WriteElt(\" Digital_Form\")\n tmpHtml.WriteElt(\" Digital_Transfer_Option\")\n tmpHtml.WriteElt(\" Fees:\")\nend\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"

Top

\")\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"
\")\n\ntmpMeta.Close\ntmpHtml.Close\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_READ)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_READ)\nWhile (tmpMeta.IsAtEnd.NOT)\n theElt = tmpMeta.ReadElt\n MetaFile.WriteElt(theElt)\nend\nWhile (tmpHtml.IsAtEnd.NOT)\n theElt = tmpHtml.ReadElt\n HTMLFile.WriteElt(theElt)\nend\ntmpMeta.Close\ntmpHtml.Close\nFile.Delete(tmpName.AsFileName)\nFile.Delete(htmpName.AsFileName)\n\nnextSect = MsgBox.YesNo(\"Section 6 DIS TRIBUTION_INFORMATION is complete! Do you want to create section 7 METADATA_REFERENCE_INFORMATION?\",\"Next Section\",true)\nif (nextsect = true) then\n av.Run(\"meta.Sec7\",{MetaFile,HtmlFile})\nelse\n metaFile.Close\n htmlFile.Close\n exit\nend" ) (Script.37 Name: "meta.sec7" SourceCode: "'METADATA_REFERENCE_INFORMATION\nMetaFile = Self.Get(0)\nHtmlFile = Self.Get(1)\ntmpName = _workDir.AsString+_pathDel+\"xxtmpm.tmp\"\nhtmpName = _workdir.AsString+_pathDel+\"xxtmph.tmp\"\nif (File.Exists(tmpName.AsFileName)) then\n File.Delete(tmpName.AsFileName)\nend\nif (File.Exists(htmpName.AsFileName)) then\n File.Delete(htmpName.AsFileName)\nend\n\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_WRITE)\ntmpHtml.WriteElt(\"
\")\n\n\n\ntmpMeta.WriteElt(\"
\")\ntmpMeta.WriteElt(\"METADATA_REFERENCE_INFORMATION\")\ntmpMeta.WriteElt(\"\")\ntmpHtml.WriteElt(\"\")\ntmpHtml.WriteElt(\"

METADATA_REFERENCE_INFORMATION

\")\nrefList = {\"7.1 Metadata_Date:\",\"7.2 Metadata_Review_Date:\"}\ntheDefs = {\" \",\" \"}\nrefInfo = MsgBox.Multiinput(\"Enter Metadata_Reference_Information:\",\"Metadata Reference_Information\", refList,theDefs)\nif (refInfo.Count > 0) then\n refdate = refInfo.Get(0)\n review = refInfo.Get(1)\n tmpMeta.WriteElt(\" Metadata_Date:\"++refdate)\n tmpMeta.Wr iteElt(\" Metadata_Review_Date:\"++review)\n tmpHtml.WriteElt(\" Metadata_Date:\"++refdate)\n tmpHtml.WriteElt(\" Metadata_Review_Date:\"++review)\nelse\n tmpMeta.WriteElt(\" Metadata_Date:\")\n tmpMeta.WriteElt(\" Metadata_Review_Date:\")\n tmpHtml.WriteElt(\" Metadata_Date:\")\n tmpHtml.WriteElt(\" Metadata_Review_Date:\")\n\nend \n\n'retrieve Metadata_Contact_Information\ndisFile = _workdir+_pathDel+\"referenc.dbf\"\ndisVTab = VTab.Make(disFile.AsFileName,false,false)\nrefCnt = {}\nidSet = tru e\nif (disVTab.GetSelection = NIL) then\n conid = NIL\n disex = NIL\nelse\n disList = {}\n disEx = true\n disidField = disVTab.FindField(\"ref_Id\")\n for each o in disVTab\n disid = disVTab.ReturnValue(disidField,o)\n disList.Add(disid)\n if (disid.Contains(\"Reference_Id\")) then\n refCnt.Add(disid)\n end\n end\n conid = MsgBox.ListAsString(disList,\"Select Metadata_Contact Id or Cancel to create new record.\",\"Metadata_Contact\")\nend\nrefDef = \"Reference_Id\"+(refcnt.Count + 1).AsString\nif (conid = NIL) then\n thedisList = {\"contact_Id (future use)\",\"10.1.2 Contact_Organization:\",\"10.1.1 Contact_Person:\",\"10.3 Contact_Position\",\"10.4 Address_Type\",\"10.4.2 Address:\",\"10.4.3 City:\",\"10.4.4 State_or_Province:\",\"10.4.5 Postal_Code:\",\"10.4.6 Country:\",\"10.5 Contact_Voice_Telephone:\",\"10.7 Contact_Facsimile_Telephone:\",\"10.8 Contact_Electronic_Mail_Adress:\",\"10.9 Hours_of_Service:\",\"7.5 Metadata_Standard_Name:\",\"7.6 Metadata_Standard_Version:\"}\n theDefs = {refDef,\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \",\" \" ,\" \",\"FGDC CSDGM\",\"19940608\"}\n piList = MsgBox.MultiInput(\"Enter Metadata Contact_Information:\",\"Metadata Contact_Information\",thedisList,theDefs)\n if (piList.Count > 0) then\n idSet = False\n conid = piList.Get(0)\n conOrg = piList.Get(1)\n conPer = piList.Get(2)\n conPos = piList.Get(3)\n addType = piList.Get(4)\n add = piList.Get(5)\n city = piList.Get(6)\n state = piList.Get(7)\n pcode= piList.Get(8)\n country= piList.Get(9)\n vtele = piList.Get(10)\n fax = piList.Get(11)\n email = piList.Get(12)\n hours = piList.Get(13)\n stand= piList.Get(14)\n version = piList.Get(15)\n if (disEx = NIL) then\n disVTab = VTab.MakeNew(disfile.AsFileName,dBASE)\n disIdField = Field.Make(\"ref_Id\",#FIELD_VCHAR,20,0)\n orgField = Field.Make(\"organ\",#FIELD_VCHAR,50,0)\n perField = Field.Make(\"person\",#FIELD_VCHAR,50,0)\n posField = Field.Make(\"position\",#FIELD_VCHAR,50,0)\n addTypeField = Field.Make(\"addtype\",#FIELD_VCHAR,50,0)\n addField = Field.Make(\"address\" ,#FIELD_VCHAR,50,0)\n cityField = Field.Make(\"city\",#FIELD_VCHAR,50,0)\n stateField = Field.Make(\"state\",#FIELD_VCHAR,50,0) \n pcodeField = Field.Make(\"pcode\",#FIELD_VCHAR,50,0)\n countryField = Field.Make(\"country\",#FIELD_VCHAR,50,0)\n vteleField = Field.Make(\"tele\",#FIELD_VCHAR,50,0)\n faxField = Field.Make(\"fax\",#FIELD_VCHAR,50,0)\n emailField = Field.Make(\"email\",#FIELD_VCHAR,50,0)\n hoursField = Field.Make(\"hours\",#FIELD_VCHAR,50,0)\n standardField = Field.Make(\"stan dard\",#FIELD_VCHAR,50,0)\n verField = Field.Make(\"version\",#FIELD_VCHAR,50,0)\n FieldList = {disIdField,orgField,perField,posField,addTypeField,addField,cityField,stateField,pcodeField,countryField,vteleField,faxField,emailField,hoursField,standardField,verField}\n disVTab.AddFields(FieldList)\n else\n disVTab = VTab.Make(disFile.AsFileName,false,false)\n end\n disVTab.Seteditable(true)\n newRec = disVTab.AddRecord\n disVTab.SetValue(disVTab.FindField(\"ref_Id\"), newRec, conid)\n disVTab.SetValue(disVTab.FindField(\"organ\"), newRec, conOrg)\n disVTab.SetValue(disVTab.FindField(\"person\"),newRec, conPer)\n disVTab.SetValue(disVTab.FindField(\"position\"),newRec, conPos)\n disVTab.SetValue(disVTab.FindField(\"addtype\"),newRec, addType)\n disVTab.SetValue(disVTab.FindField(\"address\"), newRec, add)\n disVTab.SetValue(disVTab.FindField(\"city\"),newRec, city)\n disVTab.SetValue(disVTab.FindField(\"state\"), newRec, state)\n disVTab.SetValue(disVTab.FindField(\"pcode\"),newRec, pcode)\n disVTab.SetValue(disVTab.FindField(\"country\"),newRec, country)\n disVTab.SetValue(disVTab.FindField(\"tele\"),newRec, vtele)\n disVTab.SetValue(disVTab.FindField(\"fax\"),newRec, fax)\n disVTab.SetValue(disVTab.FindField(\"email\"),newRec, email)\n disVTab.SetValue(disVTab.FindField(\"hours\"),newRec, hours)\n disVTab.SetValue(disVTab.FindField(\"standard\"),newRec, stand)\n disVTab.SetValue(disVTab.FindField(\"version\"), newRec, version)\n disVTab.SetEditable(false)\n else\n goon = MsgBox.YesNo(\"I f you exit now, this section will have to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n MetaFile.Close\n HtmlFile.Close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n end\n end 'checking if piList is empty\nend\nif (conid <> NIL) then\n Querystr = \"([ref_Id] =\"++conid.Quote+\")\"\n disVTab.GetSelection.SetAll\n disBitMap = disVTab.GetSelection \n disVTab.Query(Querystr,disBitMap,#VTAB_SELTYPE_NEW)\n disVTab.UpdateSelection\n QueryBitmap = disVTab.GetSelection\n for each b in QueryBitmap\n org = disVTab.ReturnValue(disVTab.FindField(\"organ\"),b)\n per = disVTab.ReturnValue(disVTab.FindField(\"person\"),b)\n pos = disVTab.ReturnValue(disVTab.FindField(\"position\"),b)\n addType = disVTab.ReturnValue(disVTab.FindField(\"addType\"),b)\n add = disVTab.ReturnValue(disVTab.FindField(\"address\"),b)\n city = disVTab.ReturnValue(disVTab.FindField(\"city \"),b)\n state = disVTab.ReturnValue(disVTab.FindField(\"state\"),b)\n pcode = disVTab.ReturnValue(disVTab.FindField(\"pcode\"),b)\n country = disVTab.ReturnValue(disVTab.FindField(\"country\"),b)\n tele = disVTab.ReturnValue(disVTab.FindField(\"tele\"),b)\n fax = disVTab.ReturnValue(disVTab.FindField(\"fax\"),b)\n email = disVTab.ReturnValue(disVTab.FindField(\"email\"),b)\n hours = disVTab.ReturnValue(disVTab.FindField(\"hours\"),b)\n stand = disVTab.ReturnValue(disVTab.FindField(\"standard\"),b)\n ver = disVTab.ReturnValue(disVTab.FindField(\"version\"),b) \n end\n \n thedisList = {\"10.1.2 Contact_Organization:\",\"10.1.1 Contact_Person:\",\"10.3 Contact_Position\",\"10.4 Address_Type\",\"10.4.2 Address:\",\"10.4.3 City:\",\"10.4.4 State_or_Province:\",\"10.4.5 Postal_Code:\",\"10.4.6 Country:\",\"10.5 Contact_Voice_Telephone:\",\"10.7 Contact_Facsimile_Telephone:\",\"10.8 Contact_Electronic_Mail_Adress:\",\"10.9 Hours_of_Service:\",\"7.5 Metadata_Standard_Name:\",\"7.6 Metadata_Standard_Version:\"}\n theDefs = {org.AsString,per.AsStri ng,pos.AsString,addType.AsString,add.AsString,city.AsString,state.AsString,pcode.AsString,country.AsString,tele.AsString,fax.AsString,email.AsString,hours.AsString,stand.AsString,ver.AsString}\n \n newDefs = {}\n for each d in theDefs\n if (d.AsString.Left(1) = \"\") then\n newDefs.Add(\" \")\n else\n newDefs.Add(d)\n end\n end ' for each loop\n \n if (idSet= true) then\n piList = MsgBox.MultiInput(\"Enter Metadata Contact_Information:\",\"Metadata Contact_Information\",thedisList,newDefs)\n if (p iList.Count > 0) then\n org = piList.Get(0)\n per = piList.Get(1)\n pos = piList.Get(2)\n addType = piList.Get(3)\n add = piList.Get(4)\n city = piList.Get(5)\n state = piList.Get(6)\n pcode= piList.Get(7)\n country= piList.Get(8)\n tele = piList.Get(9)\n fax = piList.Get(10)\n email = piList.Get(11)\n hours = piList.Get(12)\n stand= piList.Get(13)\n version = piList.Get(14)\n else\n goon = MsgBox.YesNo(\"If you exit now, this section will hav e to be recreated. Do you want to continue collecting metadata?\",\"Continue\",true)\n if (goon = False) then\n System.Beep\n tmpHtml.Close\n tmpMeta.Close\n MetaFile.Close\n HtmlFile.Close\n File.Delete(tmpName.AsFileName)\n File.Delete(htmpName.AsFileName)\n Exit\n else\n conId = NIL\n org = NIL\n end\n end 'piList \n end 'idSet = true\n if (org <> NIL) then \n tmpMeta.WriteElt(\" Metadata_Contact\")\n tmpMeta.WriteElt(\" Contact _Information\")\n tmpMeta.WriteElt(\" Contact_Organization_Primary\")\n tmpMeta.WriteElt(\" Contact_Organization:\"++org)\n tmpMeta.WriteElt(\" Contact_Person:\"++per)\n tmpMeta.WriteElt(\" Contact_Position:\"++pos)\n tmpMeta.WriteElt(\" Contact_Address\")\n tmpMeta.WriteElt(\" Address_Type: mailing and physical address\")\n tmpMeta.WriteElt(\" Address:\"++add)\n tmpMeta.WriteElt(\" City:\"++city)\n tmpMeta.WriteElt(\" State_or_Province:\"++state)\n tmpMeta.WriteElt(\" Postal_Code:\"++pcode)\n tmpMeta.WriteElt(\" Country:\"++country)\n tmpMeta.WriteElt(\" Contact_Voice_Telephone:\"++tele)\n tmpMeta.WriteElt(\" Contact_Facsimile_Telephone:\"++fax)\n tmpMeta.WriteElt(\" Contact_Electronic_Mail_Address:\"++email)\n tmpMeta.WriteElt(\" Hours_of_Service:\"++hours)\n tmpMeta.WriteElt(\" Metadata_Standard_Name:\"++stand)\n tmpMeta.WriteElt(\" Metadata_Standard_Version:\"++ver) \n tmpHtml.WriteElt(\" Metadata_Contact\")\n tmpHtml.WriteElt(\" Contact_Information\")\n tmpHtml.WriteElt(\" Contact_Organization_Primary\")\n tmpHtml.WriteElt(\" Contact_Organization:\"++org)\n tmpHtml.WriteElt(\" Contact_Person:\"++per)\n tmpHtml.WriteElt(\" Contact_Position:\"++pos)\n tmpHtml.WriteElt(\" Contact_Address\")\n tmpHtml.WriteElt(\" Address_Type: mailing and physical address\")\n tmpHtml.WriteElt(\" Address:\"++add)\n tmpHtml. WriteElt(\" City:\"++city)\n tmpHtml.WriteElt(\" State_or_Province:\"++state)\n tmpHtml.WriteElt(\" Postal_Code:\"++pcode)\n tmpHtml.WriteElt(\" Country:\"++country)\n tmpHtml.WriteElt(\" Contact_Voice_Telephone:\"++tele)\n tmpHtml.WriteElt(\" Contact_Facsimile_Telephone:\"++fax)\n tmpHtml.WriteElt(\" Contact_Electronic_Mail_Address:\"++email)\n tmpHtml.WriteElt(\" Hours_of_Service:\"++hours) \n tmpHtml. WriteElt(\" Metadata_Standard_Name:\"++stand)\n tmpHtml.WriteElt(\" Metadata_Standard_Version:\"++ver)\n end 'org is set \nend' checking if conid was set by user\n\nIf (conid = NIL) then'write out empty tags\n tmpMeta.WriteElt(\" Metadata_Contact\")\n tmpMeta.WriteElt(\" Contact_Information\")\n tmpMeta.WriteElt(\" Contact_Organization_Primary\")\n tmpMeta.WriteElt(\" Contact_Organization:\")\n tmpMeta.WriteElt(\" Contact_Person:\")\n tmpMeta.WriteElt(\" Contact_Position:\")\n tmp Meta.WriteElt(\" Contact_Address:\")\n tmpMeta.WriteElt(\" Address_Type:\")\n tmpMeta.WriteElt(\" Address:\")\n tmpMeta.WriteElt(\" City:\")\n tmpMeta.WriteElt(\" State_or_Province:\")\n tmpMeta.WriteElt(\" Postal_Code:\")\n tmpMeta.WriteElt(\" Country:\")\n tmpMeta.WriteElt(\" Contact_Voice_Telephone:\")\n tmpMeta.WriteElt(\" Contact_Facsimile_Telephone:\")\n tmpMeta.WriteElt(\" Contact_Electronic_Mail_Address:\")\n tmpMeta.WriteElt(\" Hours_of_Service:\")\n tmp Meta.WriteElt(\" Metadata_Standard_Name:\")\n tmpMeta.WriteElt(\" Metadata_Standard_Version:\") \n tmpHtml.WriteElt(\" Metadata_Contact\")\n tmpHtml.WriteElt(\" Contact_Information\")\n tmpHtml.WriteElt(\" Contact_Organization_Primary\")\n tmpHtml.WriteElt(\" Contact_Organization:\")\n tmpHtml.WriteElt(\" Contact_Person:\")\n tmpHtml.WriteElt(\" Contact_Position\")\n tmpHtml.WriteElt(\" Contact_Address\")\n tmpHtml.WriteElt(\" A ddress_Type:\")\n tmpHtml.WriteElt(\" Address:\")\n tmpHtml.WriteElt(\" City:\")\n tmpHtml.WriteElt(\" State_or_Province:\")\n tmpHtml.WriteElt(\" Postal_Code:\")\n tmpHtml.WriteElt(\" Country:\")\n tmpHtml.WriteElt(\" Contact_Voice_Telephone:\")\n tmpHtml.WriteElt(\" Contact_Facsimile_Telephone:\")\n tmpHtml.WriteElt(\" Contact_Electronic_Mail_Address:\")\n tmpHtml.WriteElt(\" Hours_of_Service:\") \n tmp Html.WriteElt(\" Metadata_Standard_Name:\")\n tmpHtml.WriteElt(\" Metadata_Standard_Version:\") \nend\n\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"

Top

\")\ntmpHtml.WriteElt(\"
\")\ntmpHtml.WriteElt(\"\")\ntmpHtml.WriteElt(\"\")\n\ntmpMeta.Close\ntmpHtml.Close\ntmpMeta = LineFile.Make(tmpName.AsFileName,#FILE_PERM_READ)\ntmpHtml = LineFile.Make(htmpName.AsFileName,#FILE_PERM_READ)\nWhile (tmpMeta.IsAtEnd.NOT)\n theElt = tmpMeta.ReadElt\n MetaFile. WriteElt(theElt)\nend\nWhile (tmpHtml.IsAtEnd.NOT)\n theElt = tmpHtml.ReadElt\n HTMLFile.WriteElt(theElt)\nend\ntmpMeta.Close\ntmpHtml.Close\nFile.Delete(tmpName.AsFileName)\nFile.Delete(htmpName.AsFileName)\n\nHtmlFile.Close\n\n\nMsgBox.info(MetaFile.Asstring++\"was written successfully.\",\"File Closed\")\ndelYN = MsgBox.YesNo(\"Do you want to create an HTML called\"++HtmlFile.AsString+\"?\",\"Create HTML\", true)\nif ((delYN = false) and (File.CanDelete(HtmlFile.getFileName) = true)) then\n File.Delete(HtmlFile.getFileName)\nend \nmetafile.gotobeg\nWhile (MetaFile.IsAtEnd.NOT)\n theElt = MetaFile.ReadElt\n MetaFile.GotoEnd\nend\nif (_theType = \"Coverage\") then\n makeInf = msgbox.yesno(\"Do you want to create a metadata INFO file in the coverage's workspace?\",\"Create INFO\",true)\n if (makeInf = true) then\n themePath = _theTheme.GetSrcName.GetFileName.GetFullName.AsFileName\n theBase = themePath.GetBaseName.AsString\n thePath = themePath.AsString.substitute(theBase,\"\")\n infName = thePath+\"info\"+_pathDel+_theTheme.AsString+\".met\" \n inf = VTab.MakeNew(infName.AsFileName,INFO)\n inf.SetEditable(true)\n metaField = Field.Make(\"meta\",#FIELD_CHAR,200,0)\n inf.Addfields({metaField})\n MetaFile.GotoBeg\n While (MetaFile.IsAtEnd.NOT)\n newrec = inf.AddRecord\n theElt = MetaFile.ReadElt\n inf.SetValue(metaField,newRec,theElt) \n end\n MetaFile.Close\n end\nelse\n MetaFile.Close\nend\n " ) (Script.38 Name: "meta.Main" SourceCode: "thePrj = av.GetProject\n_workdir = thePrj.GetWorkDir.AsString\ncwd = _workdir.AsFileName.SetCWD\n_theView = av.GetActiveDoc\n\nMsgBox.report(\"Welcome to NOAA Coastal Services Center's ArcView Metadata Collector. This tool collects metadata, and compiles it into FGDC compliant format.\"+NL+\"\"+NL+\"Helpful Hints \"+NL+\"1. If an element is unclear, refer to the FGDC Content Standard for Digital Geospatial Workbook for its definition. \"+NL+\"2. The numbering scheme used throughout this tool is the same numbering sche me used in the FGDC Content Standard for Geospatial Metadata Workbook. \"+NL+\"3. Tabs should always be used to scroll through menus.\",\"Helpful Hints\")\n\n\n'Get the current source units and make sure they are not unknown\n\n_sourceunits = av.getactivedoc.getdisplay.getunits\n\nif (_sourceunits = #UNITS_LINEAR_UNKNOWN) then\n MsgBox.Error(\"You must set the View units, under View Properties before continuing. Stopping.\",\n \"Error!\")\n return nil\nend\n\n\n\n'Get the theme to collect MetaData for.\ntheThemes = _theView.GetThemes\nthemeList = {}\n\n'Uncomment the following code for GRIDS, if Spatial Analyst is loaded!!!\n'if (av.FindScript(\"Spatial.ConverttoGrid\") <> NIL) then\n' gridOK = True\n' themeList = theThemes\n'else\n' gridOK = False\n' for each t in theThemes\n' if(t.Is(GTHEME).NOT) then ' Spatial Analyst is not loaded, can't do GRIDS!!!\n' themeList.Add(t)\n' end\n' end\n'end\n\n'Ask user for theme to collect metadata\nmetaTheme = MsgBox.ListAsString(theThemes,\"Please Select theme for MetaData\",\"MetaThe me\")\nif (metaTheme = NIL) then\n system.beep\n exit\nend\n\n_theTheme = _theView.FindTheme(metaTheme.AsString)\nsName = _theTheme.GetSrcName.GetDataSource.AsString\ntoke = sName.AsTokens(\".\")\nbName = toke.Get(0)\nif (_theTheme.Is(FTHEME)) then\n _theClass = _theTheme.GetSrcName.GetSubName\n _theFTab = _theTheme.GetFTab\n _numRec = _theFTab.GetNumRecords\n if (_theClass = \"Point\") then\n _refMeth = \"Point\"\n else\n _refMeth = \"Vector\"\n end\n theATab = _theFTab.GetBaseTableFileName.GetBaseName\n if (theATab.Co ntains(\".dbf\")) then\n _theType = \"Shapefile\"\n else\n _theType = \"Coverage\"\n end\nend\n\n\n\n'In order to collect metadata for grids you must load Spatial Analyst, load\n'it and uncomment the following lines!!!\n'if (gridOK = True) then\n' if (theTheme.Is(GTHEME)) then\n' theClass = \"Grid\"\n' theType = \"Grid\"\n' refMeth = \"Raster\"\n' end\n'end\n\nif (_theTheme.Is(ITHEME)) then\n _theClass = \"Image\"\n _theType = \"Image\"\n _refMeth = \"Raster\"\nend\n\nif ((_refMeth = \"Vector\") or (_refMeth = \"Point\")) then\n _t heFTab = _theTheme.GetFTab\n _shpClass = _theFTab.GetShapeClass.GetClassName\n _tName = _theTheme.GetSrcName.AsString\nelseif (_theClass = \"Grid\") then\n _tName = _theTheme.GetSrcName.AsString\n if (_theTheme.HasTable) then\n _theFTab = _theTheme.GetVTab\n else\n _theFTab = NIL\n end\nelseif (_theClass = \"Image\") then\n _theFTab = NIL\nend\n\n\n\n'Create the new MetaData File\nft = \"\"\nif (_theType = \"Coverage\") then\n if (_shpClass = \"Point\") then\n ft = \"pt\"\n elseif (_shpClass = \"Polygon\") then\n ft = \"p\" \n elseif (_shpClass = \"Polyline\") then\n ft = \"l\"\n end\nelse\n ft = \"\"\nend\n\n'Create default file name for output Metadata\nd = _theTheme.GetSrcName.GetDataSource.AsFileName\ntheE = d.GetExtension\ndSub = d.AsString.Substitute(\".\"+theE,\"\")\nFilestr = dSub+ft+\".met\"\nthemeExten = _theTheme.GetSrcName.GetDataSource.AsFileName.GetExtension\nthemeName = _theTheme.AsString.Substitute(\".\"+themeExten,\"\")\nmetaName = themeName.AsString+ft+\".met\"\nexFile = FileStr.AsFileName\nsectList = {} 'Create list to store sections th at have already been collected\nif (File.Exists(exFile) = True) then 'check if default file exists\n findfile = true\nelse\n findFile = MsgBox.YesNo(\"Have you used this tool to begin collecting Metadata for:\"++_theTheme.AsString,\"Collect Metadata\",False)\n if (findFile = true) then\n exFile = FileDialog.Show(\"*.*\",\" \",\"Select Metadata file\")\n if (exFile = NIL) then\n system.Beep\n exit\n end\n end\nend\nif(File.Exists(exFile) = True) then 'check if file user specified has any metadata elements\n opFile = LineFile.Make(exFile,#FILE_PERM_APPEND)\n While (opFile.IsAtEnd.NOT)\n theElt = opFile.ReadElt\n if ((theElt.Contains(\"Identification_Information\")) or (theElt.Contains(\"Data_Quality_Information\")) or (theElt.Contains(\"Spatial_Data_Organization_Information\")) or (theElt.Contains(\"Spatial_Reference_Information\")) or (theElt.Contains(\"Entity_and_Attribute_Information\")) or (theElt.Contains(\"Distribution_Information\")) or (theElt.Contains(\"Metadata_Reference_Information\"))) then\n sectList.Ad d(theElt)\n end\n end\n metaFile = LineFile.Make(exFile,#FILE_PERM_APPEND)\n metaTokes = exFile.GetFullName.AsTokens(\".\")\n htmStr = metaTokes.Get(0).AsString+\".htm\"\n HTMLFile = LineFile.Make(htmstr.AsFileName, #FILE_PERM_APPEND)\nend\nif (FindFile = false) then 'create new metadata file\n 'outFile = msgbox.Input(\"Creating metadata for\"++_theTheme.AsString+\". Enter output file name:\",\"Creating MetaData for\"++_theTheme.AsString,FileStr.AsString)\n themePath = _theTheme.GetSrcName.GetFileName.GetFullName.As FileName\n theBase = themePath.GetBaseName.AsString\n thePath = themePath.AsString.substitute(theBase,\"\")\n thePath.AsFileName.SetCWD\n outFile = FileDialog.Put(metaName.AsFileName,\" \",\"Select Metadata file\")\n if(outFile = NIL) then\n system.beep\n exit\n end\n \n \n 'create Metadata and HTML file, outFile\n MetaFile = LineFile.Make(outFile, #FILE_PERM_WRITE)\n metaTokes = outFile.AsString.AsTokens(\".\")\n if (metaTokes.Count > 0) then\n htmStr = metaTokes.Get(0).AsString+\".htm\"\n else\n htmStr = ou tFile+\".htm\"\n end\n HTMLFile = LineFile.Make(htmstr.AsFileName, #FILE_PERM_WRITE)\nend\n\nif (sectList.Count > 0) then 'show the user what sections they have created\n goon = msgBox.ListAsString(sectList,\"You have completed the following sections of Metadata:\",\"Completed Sections\")\n if (goon = NIL) then\n system.Beep\n metaFile.Close\n htmlFile.Close\n exit\n end\nend\n\n'Determine the OS so that the correct path delimiter is used, ie /,\\, or :\n\nif (System.GetOS = #SYSTEM_OS_UNIX) then\n _pathDel = \"/\"\n end\nif (System.GetOS = #SYSTEM_OS_MAC) then\n _pathDel = \":\"\nend\nif (System.GetOS = #SYSTEM_OS_MSW) then\n _pathDel = \"\\\"\nend\n\n\nif (sectList.Count = 0) then\n av.Run(\"meta.sec1\",{metaFile,htmlFile})\nend\nif (sectList.Count = 1) then\n av.Run(\"meta.sec2\",{metaFile,htmlFile})\nend\nif (sectList.Count = 2) then\n av.Run(\"meta.sec3\",{metaFile,htmlFile})\nend\nif (sectList.Count = 3) then\n av.Run(\"meta.sec4\",{metaFile,htmlFile})\nend\nif (sectList.Count = 4) then\n av.Run(\"meta.sec5\",{metaFile,htmlFile})\nend\nif (sectL ist.Count = 5) then\n av.Run(\"meta.sec6\",{metaFile,htmlFile})\nend\n\nif (sectList.Count = 6) then\n av.Run(\"meta.sec7\",{metaFile,htmlFile})\nend\nif (sectList.Count = 7) then\n msgBox.Info(metaFile.AsString++\"is complete\",\"Metadata Complete\")\nend" ) (Script.39 Name: "meta.Link" SourceCode: "theView = av.GetActiveDoc\nfor each theTheme in theView.GetActiveThemes\n if (theTheme.Is(FTHEME)) then\n theClass = theTheme.GetSrcName.GetSubName\n theFTab = theTheme.GetFTab\n numRec = theFTab.GetNumRecords\n shpClass = theFTab.GetShapeClass.GetClassName\n refMeth = \"Vector\"\n theATab = theFTab.GetBaseTableFileName.GetBaseName\n if (theATab.Contains(\".dbf\")) then\n theType = \"Shapefile\"\n else\n theType = \"Coverage\"\n end\n end\n 'if (theTheme.Is(GTHEME)) then\n ' theClass = \"Gr id\"\n ' theType = \"Grid\"\n ' refMeth = \"Raster\"\n 'end\n if (theTheme.Is(ITHEME)) then\n theClass = \"Image\"\n theType = \"Image\"\n refMeth = \"Raster\"\n end\n\n\n ft = \"\"\n if (theType = \"Coverage\") then\n if (shpClass = \"Point\") then\n ft = \"pt\"\n elseif (shpClass = \"Polygon\") then\n ft = \"p\"\n elseif (shpClass = \"Polyline\") then\n ft = \"l\"\n end\n else\n ft = \"\"\n end\n d = theTheme.GetSrcName.GetDataSource.AsFileName\n theE = d.GetExtension\n dSub = d.AsString.Substitute(\".\"+the E,\"\")\n Filestr = dSub+ft+\".met\"\n if (File.Exists(Filestr.AsFilename)) then\n av.Run(\"link.TextFile\",Filestr)\n else\n exFile = FileDialog.Show(\"*.*\",\" \",\"Select Metadata file\")\n if (exFile <> NIL) then\n av.Run(\"link.TextFile\",exFile.AsString)\n else\n exit\n end\n end\nend\n\n\n" ) (Script.40 Name: "meta.ViewHelp" SourceCode: "if (av.GetProject.FindDoc(\"meta.Help\") = NIL) then\n theScript = av.FindScript(\"meta.Help\")\n theStr = theScript.AsString\n newSed = Sed.MakeFromSource(theStr,\"meta.Help\")\n newWin = newSed.GetWin\n newWin.ReSize(650,500)\n newWin.MoveTo(100,20)\n newWin.Open\nelse\n theDoc = av.GetProject.FindDoc(\"meta.Help\")\n theWin = theDoc.GetWin\n theWin.Open\nend\n" ) (Script.41 Name: "My Extension Install" SourceCode: "'DO NOT EDIT!!!\n\nif (av.getproject=nil) then return(nil) end\n\n\ntheDocs = SELF.get(0)\ntheControlList = SELF.get(1)\ntheMenuList = SELF.get(2)\ntheToolMenuList=SELF.Get(3)\ntheProject=Av.getproject\n\n\n'Add the Docs\n'\nfor each adoc in theDocs\n theProject.addDoc(adoc)\nend\n\n'Add the Controls\n'\nfor each totalControl in theControlList\n 'The Control list\n acontrol=totalControl.get(0)\n \n 'The physical control\n theControl = totalControl.get(1)\n \n 'The control Index\n theCindex=totalControl.get(2)\n\n 'Find the DocGUI\n theControlDoc=av.getproject.findGUI(aControl.get(0))\n if (theControlDoc=NIL) then \n MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the current project.\",\"Script Eror\")\n return(nil)\n end\n \n 'This finds the control set \n thecommand=\"av.getproject.findGUI(\"\"\"+aControl.get(0)+\"\"\").Get\"+acontrol.get(1)\n thescript1=Script.Make(thecommand)\n thecontrolset=thescript1.doit(\"\")\n \n 'Add the control to the control set\n theControlSet.Add(theControl,theCindex )\nend\n\n\n'Add the menus\nfor each totalcontrol in theMenuList\n \n 'The Control list\n acontrol=totalControl.get(0)\n mDoc=acontrol.get(0)\n mMenu=acontrol.get(1)\n mMenuItem=acontrol.get(2)\n\n 'The physical control\n theControl = totalControl.get(1)\n \n 'The control Index\n theCindex=totalControl.get(2)\n\n 'Find the DocGUI\n theControlDoc=av.getproject.findGUI(aControl.get(0))\n if (theControlDoc=NIL) then \n MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the c urrent project.\",\"Script Eror\")\n return(nil)\n end\n \n theMbar=av.getproject.findGUI(mDoc).GetMenuBar\n themenu=theMbar.findbylabel(mMenu)\n if (themenu=NiL) then\n themenu=menu.make\n themenu.setlabel(mMenu)\n theMbar.add(themenu,999)\n end\n \n themenu.add(thecontrol, theCindex)\nend\n \n \n'Add the Tool Menus\n\nfor each totalControl in theToolMenuList\n 'The Control list\n acontrol=totalControl.get(0)\n \n 'The physical control\n theControl = totalControl.get(1)\n \n 'The con trol Index\n theCindex=totalControl.get(2)\n\n 'Find the DocGUI\n theControlDoc=av.getproject.findGUI(aControl.get(0))\n if (theControlDoc=NIL) then \n MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the current project.\",\"Script Eror\")\n return(nil)\n end\n \n 'This finds the control set \n thecommand=\"av.getproject.findGUI(\"\"\"+aControl.get(0)+\"\"\").Get\"+acontrol.get(1)\n thescript1=Script.Make(thecommand)\n thecontrolset=av.getproject.findGUI(aControl.get(0)).GetToolBa r\n \n 'Add the control to the control set\n theControlSet.Add(theControl,theCindex)\nend\n\n\nav.getproject.setmodified(true)\n\n\n'And the scripts add themselves\n" ) (Script.42 Name: "My Extension Uninstall" SourceCode: "'DO NOT EDIT!!!\n\n'The SELF is the Extension\n\ntheDocs = SELF.get(0)\ntheControlList = SELF.get(1)\ntheMenuList = SELF.get(2)\ntheToolMenuList=SELF.get(3)\ntheProject=Av.getproject\n\n\n'Add the Docs\n'\nfor each adoc in theDocs\n If (theProject.finddoc(adoc.getname)<>NIL) then \n theAnswer=msgbox.yesno(\"Remove the Document \"+adoc.getname+\"?\",\"Remove Document?\",TRUE)\n if (theAnswer=TRUE) then theProject.RemoveDoc(adoc) end\n end\nend\n\n'Removethe Controls\n'\nfor each totalControl in theControlList\n 'Get the control list from the Ext\n acontrol=totalControl.get(0)\n \n 'Get the physical Control\n theControl = totalControl.get(1)\n \n 'Get the Controls Index\n theCindex=totalControl.get(2)\n\n 'Find the DocGUI for the Control\n theControlDoc=av.getproject.findGUI(aControl.get(0))\n if (theControlDoc=NIL) then \n MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the current project.\",\"Script Eror\")\n return(nil)\n end\n \n 'This sequence finds the appropiate control set\n thecommand= \"av.getproject.findGUI(\"\"\"+aControl.get(0)+\"\"\").Get\"+acontrol.get(1)\n thescript1=Script.Make(thecommand)\n thecontrolset=thescript1.doit(\"\")\n\n 'See if the control is in the set , if so remove it\n if (theControlSet.GetControls.find(theControl)<>NIL) then\n theControlSet.remove(theControl)\n if (thecontrol = \"ToolBar\") then\n theControlSet.selectdefault\n end\n end\nend\n\n\n'Remove the Menus\n'\nfor each totalcontrol in theMenuList\n \n 'The Control list\n acontrol=totalControl.get(0 )\n mDoc=acontrol.get(0)\n mMenu=acontrol.get(1)\n mMenuItem=acontrol.get(2)\n\n 'The physical control\n theControl = totalControl.get(1)\n \n 'The control Index\n theCindex=totalControl.get(2)\n\n 'Find the DocGUI\n theControlDoc=av.getproject.findGUI(aControl.get(0))\n if (theControlDoc=NIL) then \n MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the current project.\",\"Script Eror\")\n return(nil)\n end\n \n theMbar=av.getproject.findGUI(mDoc).GetMenuBar\n themenu=theMbar.findbylabel(mMenu)\n if (themenu=NiL) then\n MsgBox.Warning(\"The menu named \"+mMenu+\" is not here.\",\"Script Eror\")\n 'return(nil)\n else\n \n thething=themenu.getcontrols.find(thecontrol)\n if (thething<>NIL) then \n themenu.remove(thecontrol) \n end\n 'msgbox.info(themenu.GetControls.count.asstring,\"\")\n if (themenu.GetControls.count<1) then\n theMbar.remove(themenu)\n end\n end\nend\n \nfor each totalControl in theToolMenuList\n 'Get the control list from the Ext\n acontrol=totalControl.get(0)\n \n 'Get the physical Control\n theControl = totalControl.get(1)\n \n 'Get the Controls Index\n theCindex=totalControl.get(2)\n\n 'Find the DocGUI for the Control\n theControlDoc=av.getproject.findGUI(aControl.get(0))\n if (theControlDoc=NIL) then \n MsgBox.Warning(\"The GUI \"+aControl.get(0)+\" cannot be found in the current project.\",\"Script Eror\")\n return(nil)\n end\n \n 'This sequence finds the appropiate control set\n thecontrolset=av.getp roject.findGUI(aControl.get(0)).GetToolBar\n\n \n 'See if the control is in the set , if so remove it\n if (theControlSet.GetControls.find(theControl)<>NIL) then\n \n theControlSet.remove(theControl)\n theControlSet.selectdefault\n end\n\nend\n \n\n'And the scripts delete themselves\n\n\nav.getproject.setmodified(true)\n" )