home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 July & August / Pcwk78b98.iso / Smart30 / ENGLISH / PRODUCTS / LOTUS018.DSK / CROSSREF.SMM < prev    next >
INI File  |  1992-06-17  |  6KB  |  443 lines

  1. [ver]
  2.     4
  3. [sty]
  4.     _macro.sty
  5. [files]
  6. [charset]
  7.     82
  8.     ANSI (Windows, IBM CP 1252)
  9. [revisions]
  10.     0
  11. [prn]
  12.     PostScript Printer
  13. [port]
  14.     LPT1:
  15. [lang]
  16.     1
  17. [desc]
  18.     Generate cross references between files in a master document that has less than 8 files.
  19.     Lotus Word Processing Division
  20.     Advanced
  21.     FileOpen, MasterDocument
  22.     noautorun
  23.     708809780
  24.     36
  25.     672617318
  26.     408
  27.     3
  28.     325
  29.     2164
  30.     5
  31.     7
  32.     
  33.     
  34.     
  35.     
  36.     
  37.     
  38.     0
  39. [fopts]
  40.     0
  41.     1
  42.     0
  43.     0
  44. [lnopts]
  45.     2
  46.     Body Text
  47.     1
  48. [docopts]
  49.     5
  50.     2
  51. [GramStyle]
  52.     
  53. [ParaNum]
  54.     1
  55. [l1]
  56.     0
  57. [pg]
  58.     3
  59.     45 0 12 0 0 1 0 65535 65535 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  60.     90 0 4 0 0 0 0 65535 65535 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  61.     91 0 12 1025 0 0 0 65535 65535 Standard    65535 0 0    0 0 0 0 0 0 0 65535 0 0 65535 0 0 0 0 0
  62. [edoc]
  63. <+@><:#284,9360>' Xref - cross reference between files in a master document. Because the field
  64.  
  65. <+@><:#284,9360>'"Pageref" can only work with bookmarks in  the current file, when you need the page
  66.  
  67. <+@><:#284,9360>'number of  a bookmark in another file, you can insert  the powerfield    
  68.  
  69. <+@><:#284,9360>'getglobalvar$("BookmarkName")  after running this macro.  (Insert the name of  your
  70.  
  71. <+@><:#284,9360> 'bookmark in place of BookmarkName.) 
  72.  
  73. <+@><:#284,9360>'
  74.  
  75. <+@><:#284,9360>'This macro will run through all files in the master, and for each bookmark it will
  76.  
  77. <+@><:#284,9360> 'determine the actual page number, then create a global variable by that same name,
  78.  
  79. <+@><:#284,9360> 'and assign the  page number to it. Also the macro updates powerfields previously
  80.  
  81. <+@><:#284,9360> 'inserted 
  82.  
  83. <:#284,9360>
  84.  
  85. <:#284,9360>'This version is limited to 9 files
  86.  
  87. <:#284,9360>
  88.  
  89. <:#284,9360>Declare DebugArray(Array)
  90.  
  91. <:#284,9360>define IsOKToRun(menuname)    GetInfo(217, 24, %1);
  92.  
  93. <:#284,9360>
  94.  
  95. @Function@<:#293,9360>FUNCTION Xref()
  96.  
  97. IF IsNewWave()
  98.  
  99.     Message("Macro not available while running under HP NewWave.")
  100.  
  101.     Exit Function
  102.  
  103. ENDIF
  104.  
  105. @Subhead@result=IsOKToRun(SaveAs)
  106.  
  107. @Subhead@<:#284,9360>if result !=1 exit function
  108.  
  109. @Subhead@<:#284,9360>endif
  110.  
  111. <:#284,9360>defstr mascount;
  112.  
  113. <:#284,9360>totpages = 0
  114.  
  115. <:#284,9360>
  116.  
  117. <:#284,9360>if (0 = Assign(&mascount, GetMasterFilesCount()))
  118.  
  119. <:#284,9360>    message("Not a master document")
  120.  
  121. <:#284,9360>    return -1;
  122.  
  123. <:#284,9360>else
  124.  
  125. <:#284,9360>dim    masfiles(mascount)
  126.  
  127. <:#284,9360>GetMasterFiles(&masfiles)
  128.  
  129. <:#284,9360>DebugArray(&MasFiles)
  130.  
  131. <:#284,9360>mascount = arraysize(&masfiles)
  132.  
  133. <:#284,9360>for i = 1 to mascount    ' Generate left the last one up
  134.  
  135. <:#284,9360>ifopen = 0
  136.  
  137. <:#284,9360>    Count = GetOpenFileCount()
  138.  
  139. <:#284,9360>    IF Count <;> 0
  140.  
  141. <:#284,9360>    DIM Filess(Count)
  142.  
  143. <:#284,9360>    GetOpenFileNames(&Filess)
  144.  
  145. <:#284,9360>    FOR II = 1 to Count
  146.  
  147. <:#284,9360>    f = filess(II)
  148.  
  149. <:#284,9360>    if  f =  ucase$(masfiles(i)) and ifopen = 0 then
  150.  
  151. <:#284,9360>        ifopen = 1
  152.  
  153. <:#284,9360>    endif
  154.  
  155. <:#284,9360>    NEXT    
  156.  
  157. <:#284,9360>    endif
  158.  
  159. <:#284,9360>    if ifopen = 0 then
  160.  
  161. <:#284,9360>        FileOpen(masfiles(i), 1, "")
  162.  
  163. <:#284,9360>    else
  164.  
  165. <:#284,9360>    file = masfiles(i)
  166.  
  167. <:#284,9360>    selectwindow(file)
  168.  
  169. <:#284,9360>    endif
  170.  
  171. <:#284,9360>    DarkMode(1)
  172.  
  173. <:#284,9360>    type("<[>ctrlend]")    ' Force load to finish
  174.  
  175. <:#284,9360>    type("<[>ctrlhome]")    ' Back to the top for looks
  176.  
  177. <:#284,9360>    DarkMode(0)
  178.  
  179. <:#284,9360>    call CreateGlobals(totpages)
  180.  
  181. <:#284,9360>    totpages = totpages + evalfield("numpages")
  182.  
  183. <:#284,9360>    FieldUpdateAll()
  184.  
  185. <:#284,9360>next
  186.  
  187. <:#284,9360>endif
  188.  
  189. <:#284,9360>END FUNCTION
  190.  
  191. @Function@<:#293,9360>FUNCTION CreateGlobals(totpages)
  192.  
  193. <:#284,9360>defstr bookcnt
  194.  
  195. <:#284,9360>bookcnt = getbookmarkcount()
  196.  
  197. <:#284,9360>if  bookcnt = 0 
  198.  
  199. <:#284,9360>    return 0;    ' No bookmarks, fast exit here
  200.  
  201. <:#284,9360>else
  202.  
  203. <:#284,9360>dim booknames(bookcnt)
  204.  
  205. <:#284,9360>GetBookMarkNames(&booknames)
  206.  
  207. <:#284,9360>for i = 1 to bookcnt
  208.  
  209. <:#284,9360>    ' get the GetBookMarkPage returns the page number of the
  210.  
  211. <:#284,9360>    ' bookmark relative to this file, use PhysicalToLogical
  212.  
  213. <:#284,9360>    ' to the the logical page.  Then create a global var
  214.  
  215. <:#284,9360>    ' using the bookmark name, then assign that page number.
  216.  
  217. <:#284,9360>    page = totpages + getbookmarkpage(booknames(i))
  218.  
  219. <:#284,9360>    AllocGlobalVar(booknames(i), 1)    
  220.  
  221. <:#284,9360>    SetGlobalVar(booknames(i), page)
  222.  
  223. <:#284,9360>next
  224.  
  225. <:#284,9360>endif
  226.  
  227. <:#284,9360>END FUNCTION
  228.  
  229. <:#284,9360>
  230.  
  231. @Function@<:#293,9360>Function DebugArray(MasFiles)
  232.  
  233. <:#284,9360>Count = ArraySize(&MasFiles)
  234.  
  235. <:#284,9360>For t = 1 to count
  236.  
  237. <:#284,9360>    Info = *MasFiles(T)
  238.  
  239. <:#284,9360>    Message("{T} = {Info}")
  240.  
  241. <:#284,9360>Next
  242.  
  243. <:#284,9360>End Function
  244.  
  245. >
  246.  
  247. [Embedded]
  248. 00004727
  249. >
  250. [macsum] 3
  251. Xref 0 0 12 16
  252. CreateGlobals 966 1 5 64
  253. DebugArray 1285 1 4 84
  254. [macse]
  255. 14 Xref
  256. 0 1317
  257. 13
  258. 11 00000105
  259. 0 3 "Macro not available while running under HP NewWave."
  260. 6 0
  261. 15
  262. 9
  263. 0 1313 217 24 104
  264. 13
  265. 8 1
  266. 6 1
  267. 5 1
  268. 18 1
  269. 11 00000174
  270. 6 0
  271. 15
  272. 9
  273. 5 0
  274. 8 3
  275. 5 0
  276. 0 1047
  277. 13
  278. 0 805 &2 [X]
  279. 13
  280. 18 0
  281. 11 00000293
  282. 0 3 "Not a master document"
  283. 5 -1
  284. 15
  285. 9
  286. 10 00000954
  287. 6 2
  288. 21 4 [X]
  289. 0 1048 &4
  290. 16 DebugArray &4
  291. 0 1046 &4
  292. 13
  293. 8 2
  294. 5 1
  295. 8 5
  296. 6 2
  297. 6 5
  298. 18 2
  299. 12 00000442
  300. 10 00000954
  301. 5 1
  302. 6 5
  303. 3 0
  304. 8 5
  305. 10 00000367
  306. 5 0
  307. 8 6
  308. 0 1050
  309. 13
  310. 8 7
  311. 6 7
  312. 5 0
  313. 18 3
  314. 11 00000720
  315. 6 7
  316. 21 8 [X]
  317. 0 1051 &8
  318. 5 1
  319. 8 9
  320. 6 7
  321. 6 9
  322. 18 2
  323. 12 00000609
  324. 10 00000720
  325. 5 1
  326. 6 9
  327. 3 0
  328. 8 9
  329. 10 00000534
  330. 6 9
  331. 22 8
  332. 8 10
  333. 6 10
  334. 6 5
  335. 22 4
  336. 0 18 [X]
  337. 13
  338. 18 0
  339. 6 6
  340. 5 0
  341. 18 0
  342. 1 1
  343. 11 00000707
  344. 5 1
  345. 8 6
  346. 10 00000576
  347. 6 6
  348. 5 0
  349. 18 0
  350. 11 00000791
  351. 6 5
  352. 22 4
  353. 2 102 1 [X] 1 ""
  354. 10 00000822
  355. 6 5
  356. 22 4
  357. 8 11
  358. 0 796 "{11}"
  359. 0 292 1
  360. 0 6 "[16419]"
  361. 0 6 "[16420]"
  362. 0 292 0
  363. 16 CreateGlobals "{3}"
  364. 6 3
  365. 0 1289 "numpages"
  366. 13
  367. 3 0
  368. 8 3
  369. 2 267 1
  370. 10 00000409
  371. 6 0
  372. 15
  373. 9
  374. 14 CreateGlobals
  375. 0 1039
  376. 13
  377. 8 2
  378. 6 2
  379. 5 0
  380. 18 0
  381. 11 00000089
  382. 5 0
  383. 15
  384. 9
  385. 10 00000307
  386. 6 2
  387. 21 3 [X]
  388. 0 1040 &3
  389. 5 1
  390. 8 4
  391. 6 2
  392. 6 4
  393. 18 2
  394. 12 00000200
  395. 10 00000307
  396. 5 1
  397. 6 4
  398. 3 0
  399. 8 4
  400. 10 00000125
  401. 6 0
  402. 6 4
  403. 22 3
  404. 0 1049 [X]
  405. 13
  406. 3 0
  407. 8 5
  408. 6 4
  409. 22 3
  410. 0 271 [X] 1
  411. 6 4
  412. 22 3
  413. 0 264 [X] "{5}"
  414. 10 00000167
  415. 6 1
  416. 15
  417. 9
  418. 14 DebugArray
  419. 0 1046 &0
  420. 13
  421. 8 2
  422. 5 1
  423. 8 3
  424. 6 2
  425. 6 3
  426. 18 2
  427. 12 00000120
  428. 10 00000166
  429. 5 1
  430. 6 3
  431. 3 0
  432. 8 3
  433. 10 00000045
  434. 6 3
  435. 22 0
  436. 8 4
  437. 0 3 "{3} = {4}"
  438. 10 00000087
  439. 6 1
  440. 15
  441. 9
  442. 00004752
  443.