{ "header": { "version": 1, "type": "record" }, "body": { "record1": { "<1>": "declare subroutine rlist, activate_save_select,SetInitDirOptions\r\ndeclare function msg, create_dialog, Set_Property,format\r\ndeclare function dialog_box,fieldcount, dirlist\r\n$insert rlist_equates\r\n$insert msg_equates\r\n$insert dict_equates\r\n\r\nCrLf = Char(13):Char(10)\r\nTb = Char(9)\r\nGoSub LoadErrorValues\r\nTblNme = \"SYSTABLES\"\r\nListsId = 'JLT_TABLENAMES'\r\n.reports_completed->text = ''\r\n\r\nReportPath = .dict_reports_path->text\r\nExcelStart = .dict_spreadsheets_path->text\r\nIf ReportPath[-1,1] # \"\\\" Then ReportPath := \"\\\"\r\nFileName = ReportPath:\"File.Txt\"\r\nOsWrite \"OK\" To FileName\r\nIf Status() Then\r\n GoSub ProcessError\r\n Return 0\r\nEnd\r\nFileName = ''\r\n\r\nrlist( 'Select SYSTABLES BY @ID',target_savelist$, ListsId, '', '' )\r\nactivate_save_select( ListsId )\r\n\r\nInitDir ReportPath:\"*.*\"\r\nLoop\r\n Files = DirList()\r\nWhile Files\r\n For K = 1 To FieldCount(Files, @FM)\r\n FileName = ReportPath:Files\r\n OsDelete FileName\r\n If Status() Then\r\n GoSub ProcessError\r\n Return 0\r\n End\r\n Next\r\nRepeat\r\n\r\n.tot_table->Text = @Reccount\r\nBldMsg = ''\r\nFlaBrk = 80 \r\nEndTables = 0\r\nFileCtr = 0\r\nGoSub SetPointers\r\nBugSwt = 0\r\nLoop\r\n ReadNext TblNme Else EndTables = 1 \r\nUntil EndTables\r\n FileCtr += 1\r\n .table_count->text = FileCtr\r\n FldCtr = 0\r\n If TblNme[1,1] = '!' Then GoTo GET.NEXT.TABLE \r\n If TblNme[1,1] = '$' Then GoTo GET.NEXT.TABLE \r\n If TblNme[1,5] = \"DICT.\" Then GoTo GET.NEXT.TABLE\r\n If TblNme[1,3] = \"SYS\" Then GoTo GET.NEXT.TABLE\r\n Swap \".\" With \"\" In TblNme\r\n Open \"DICT.\":TblNme To TblDct Then\r\n OsCtr = 1\r\n OsExt = \".\":Fmt(OsCtr,'R(0)#3')\r\n OsFile = ReportPath:TblNme[1,8]:OsExt\r\n Loop While Dir(OsFile)\r\n OsCtr += 1\r\n OsExt = \".\":Fmt(OsCtr,'R(0)#3')\r\n OsFile = ReportPath:TblNme[1,8]:OsExt\r\n Repeat\r\n OsWrite \"\" To OsFile\r\n OsOpen OsFile To WritFile Else\r\n Void = msg( '', 'Unable to open ':OsFile)\r\n Return\r\n End\r\n DictName = \"DICT.\":TblNme\r\n BldMsg = ReportPath:Tb:ExcelStart:Tb:TblNme:CrLf\r\n BldMsg := \"Column Number \":Tb\r\n ColumnTitles = \"Field Name \":Tb\r\n FieldNumbers = ''\r\n For K = 1 to 11\r\n If DataPointers Then\r\n FieldNumbers := Fmt(DataPointers,'R#4'):Tb\r\n ColumnTitles := DataPointers:Tb\r\n End\r\n Next\r\n BldMsg := FieldNumbers:CrLf:ColumnTitles:CrLf\r\n WritByte = 0\r\n Select DictName By \"@ID\":@FM:\"TYPE\" Setting CursorTwo Else\r\n Void = msg( '', 'Unable to open ':DictName)\r\n Return\r\n End\r\n EndDict = 0\r\n Loop\r\n ReadNext FldNme Using CursorTwo By 0 Else EndDict = 1 \r\n Until EndDict\r\n If FldNme[1,1] = \"!\" Then GoTo GetNextField\r\n If FldNme[1,1] = \"%\" Then GoTo GetNextField\r\n If FldNme = \"AAA\" Then GoTo GetNextField\r\n FldCtr += 1\r\n Pntr = ''\r\n Read FldRcd From TblDct,FldNme Then\r\n BldMsg := FldNme:Tb\r\n If Index('~F~S~F~',FldRcd<1>,1) Then\r\n Pntr = DataPointers\r\n End Else\r\n BldMsg := 'Has Bad Field Type!'\r\n End \r\n For K = 1 To 11\r\n TmpVar = FldRcd< Pntr >:Tb\r\n If Pntr = 'Formula' Then\r\n Swap @VM With \"; \" In TmpVar\r\n End\r\n BldMsg := TmpVar\r\n MsgLen=Len(BldMsg)\r\n If MsgLen > 32000 Then GoSub WriteNow\r\n Next\r\n End\r\n BldMsg := CrLf\r\n GetNextField:\r\n Repeat\r\n BldMsg := CrLf\r\n MsgLen=Len(BldMsg)\r\n GoSub WriteIt\r\n End \r\n \r\nGET.NEXT.TABLE:\r\n \r\nRepeat\r\n\r\n.reports_completed->text = \"Dictionary Reports Are Completed\"\r\n\r\nReturn 0\r\n\r\n\r\n*==================================\r\n*GoSubs\r\n*==================================\r\nWriteIt:\r\n*==================================\r\nGoSub WriteNow\r\nOsClose WritFile\r\nReturn\r\n\r\n*==================================\r\nWriteNow:\r\n*==================================\r\nOsBWrite BldMsg To WritFile At WritByte\r\nWritByte += MsgLen \r\nBldMsg = ''\r\nReturn\r\n\r\n\r\n*==================================\r\nSetPointers: \r\n*==================================\r\nDataPointers = ''\r\nDataPointers< 1,1> = 1 ;DataPointers< 1,2> = 'Type'\r\nDataPointers< 2,1> = 2 ;DataPointers< 2,2> = 'FMC'\r\nDataPointers< 3,1> = 3 ;DataPointers< 3,2> = 'Column Heading'\r\nDataPointers< 4,1> = 4 ;DataPointers< 4,2> = 'S/M'\r\nDataPointers< 5,1> = 5 ;DataPointers< 5,2> = 'Key Part'\r\nDataPointers< 6,1> = 6 ;DataPointers< 6,2> = 'Btree'\r\nDataPointers< 7,1> = 7 ;DataPointers< 7,2> = 'Output'\r\nDataPointers< 8,1> = 8 ;DataPointers< 8,2> = 'Formula'\r\nDataPointers< 9,1> = 9 ;DataPointers< 9,2> = 'Just'\r\nDataPointers<10,1> = 11 ;DataPointers<10,2> = 'Length'\r\nDataPointers<11,1> = 14 ;DataPointers<11,2> = 'Description'\r\n\r\nReturn\r\n\r\n\r\n*==================================\r\nProcessError:\r\n*==================================\r\nErrNum = Status()\r\nMsgTtl := MsgErr: FileName\r\nMsgStruc = \"\"\r\nMsgStruc = MsgTtl\r\nMsgStruc = \"BStop\"\r\nMsgStruc = \"H\"\r\nMsgStruc = \"FILE ERROR - ABORTING\"\r\n\r\nVoid = msg( '', MsgStruc)\r\n\r\n.reports_completed->text = MsgErr\r\n\r\nReturn\r\n \r\n*==================================\r\nLoadErrorValues:\r\n*==================================\r\nMsgTtl = \"Can Not Delete OS FIle \":CrLf\r\nMsgErr = \"\"\r\nMsgErr<1> = \"Bad operating system filename: \"\r\nMsgErr<2> = \"Access denied by operating system: \"\r\nMsgErr<3> = \"Disk or directory full... \"\r\nMsgErr<4> = \"Operating system file does not exist: \"\r\nMsgErr<5> = \"Undefined error on operating system file: \"\r\n\r\nReturn\r\n\r\n\r\n*==================================\r\nBreakDown:\r\n*==================================\r\nIf Len(TmpChk) > FlaBrk Then\r\n X=0\r\n Loop While Len(TmpChk) > FlaBrk\r\n TmpVar = TmpChk[1,FlaBrk]\r\n Ysav = TmpChk[1,FlaBrk]\r\n Ysav[1,FlaBrk] = ''\r\n TmpChk = Ysav\r\n If Len(TmpChk) Then TmpVar = Str(Tb,K)\r\n X+=1\r\n Repeat\r\n TmpVar = ''\r\nEnd \r\n\r\nReturn \r\n" } } }