home *** CD-ROM | disk | FTP | other *** search
/ Australian Personal Computer 1999 April / APC443.iso / features / grpware / notes / 50lbwis.exe / DATA1.CAB / DominoDataFiles / dspa.ntf (.txt) < prev    next >
Encoding:
Lotus Notes Storage Facility  |  1999-01-28  |  1.8 MB  |  16,228 lines

  1. Server.Planner: Analyst
  2. #1Server.Planner: Analyst
  3. c:\data463\dspa4636.ntf
  4. {RapP
  5. `TM0H
  6. -;+~V
  7. CN=Lotus Notes Template Development/O=Lotus Notes
  8. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus NotesCN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus NotesCN=Richard Kanosky/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes
  9. R3u##############################
  10. $Modified
  11.     1S2S3S
  12. $TITLE$FormPrivs$FormUsers$Body$Flags$Class$Modified$Comment$AssistTrigger$AssistType$AssistFlags$UpdatedBy$$FormScript_O
  13. $Flags
  14.     0SL1S4S5S3724
  15. $TITLE
  16. CN=Carol Zimmet/O=Iris#########################
  17. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes###############################################
  18. lQuery on Data
  19. CN=Carol Zimmet/O=Iris
  20. ATDDDDDDDDDDA
  21. ########################
  22. Query on Data
  23. LayoutServerTasks
  24. Replication Hub
  25. Mail Hub
  26. User Tasks
  27.     1S4S5S6S7S8S10S11S12S13S14S
  28. queryidLayoutDateLayoutAuthorLayoutSummary$1$Conflict$REF
  29. Query on Data
  30.     L1S2S3S1
  31. queryidLayoutDateDate/TimeLayoutAuthorAuthorLayoutSummaryQuery Summary$1Server Task(s)
  32. LayoutServerTasks
  33. Replication Hub
  34. Mail Hub
  35. User Tasks
  36.     1S4S5S6S7S8S10S11S12S13S14S&
  37. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes#################
  38. (All Documents\List)X
  39. ListListType$Conflict$REF
  40. (List)
  41.     L1S2S3S1
  42. ListListType&
  43. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes##############################
  44. (All Documents\All)>
  45. FormList$Conflict$REF
  46.     L1S1
  47. FormList&
  48. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes-
  49. ##########################################################
  50. (List)|ListX
  51. ListTypeList$Conflict$REF
  52. (List)
  53.     L1S2S3S1 
  54. ListTypeList
  55. 0ListTypeList NameListList&
  56. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes####################################
  57. ;VendorSelectionC
  58. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes###############################
  59. CN=Carol Zimmet/O=Iris2
  60. 30719
  61. ####################################
  62. CN=Carol Zimmet/O=Iris
  63. CN=Carol Zimmet/O=Iris2
  64. 30719
  65. ###############
  66. EXT27798.lsssd.k
  67. EXT27798.lso
  68. ^Query on DataZ
  69. LayoutCostSheetLayoutResponseSheetOutCommentsLayoutDateOutCreationDateLayoutAuthorReturnReceiptDeliveryReportDeliveryPrioritySubjectBlindCopyToCopyToSendTogreasong_25greason_25gmachid_25gvendor_25greasong_24greason_24gmachid_24gvendor_24greasong_23greason_23gmachid_23gvendor_23greasong_22greason_22gmachid_22gvendor_22greasong_21greason_21gmachid_21gvendor_21greasong_20greason_20gmachid_20gvendor_20greasong_19greason_19gmachid_19gvendor_19greasong_18greason_18gmachid_18gvendor_18greasong_17greason_17gmachid_17gvendor_17greasong_16greason_16gmachid_16gvendor_16greasong_15greason_15gmachid_15gvendor_15greasong_14greason_14gmachid_14gvendor_14greasong_13greason_13gmachid_13gvendor_13greasong_12greason_12gmachid_12gvendor_12greasong_11greason_11gmachid_11gvendor_11greasong_10greason_10gmachid_10gvendor_10greasong_9greason_9gmachid_9gvendor_9greasong_8greason_8gmachid_8gvendor_8greasong_7greason_7gmachid_7gvendor_7greasong_6greason_6gmachid_6gvendor_6greasong_5greason_5gmachid_5gvendor_5greasong_4greason_4gmachid_4gvendor_4greasong_3greason_3gmachid_3gvendor_3greasong_2greason_2gmachid_2gvendor_2greasong_1greason_1gmachid_1gvendor_1PerGrowthProj_1reason_25machid_25vendor_25reason_24machid_24vendor_24reason_23machid_23vendor_23reason_22machid_22vendor_22reason_21machid_21vendor_21reason_20machid_20vendor_20reason_19machid_19vendor_19reason_18machid_18vendor_18reason_17machid_17vendor_17reason_16machid_16vendor_16reason_15machid_15vendor_15reason_14machid_14vendor_14reason_13machid_13vendor_13reason_12machid_12vendor_12reason_11machid_11vendor_11reason_10machid_10vendor_10reason_9machid_9vendor_9reason_8machid_8vendor_8reason_7machid_7vendor_7reason_6machid_6vendor_6reason_5machid_5vendor_5reason_4machid_4vendor_4reason_3machid_3vendor_3reason_2machid_2vendor_2reason_1machid_1vendor_1LayoutCostChartLayoutResponseChartOutSummaryOutResults10_1OutResults10_5OutResults9_1OutResults9_5OutResults8_1OutResults8_5OutResults7_1OutResults7_5OutResults6_1OutResults6_5OutResults5_1OutResults5_5OutResults4_1OutResults4_5OutResults3_1OutResults3_5OutResults2_1OutResults2_5OutResults1_1OutResults1_5E10OutResults10_4OutResults10_3OutResults10_6OutResults10OutResults10_2E9OutResults9_4OutResults9_3OutResults9_6OutResults9OutResults9_2E8OutResults8_4OutResults8_3OutResults8_6OutResults8OutResults8_2E7OutResults7_4OutResults7_3OutResults7_6OutResults7OutResults7_2E6OutResults6_4OutResults6_3OutResults6_6OutResults6OutResults6_2E5OutResults5_4OutResults5_3OutResults5_6OutResults5OutResults5_2E4OutResults4_4OutResults4_3OutResults4_6OutResults4OutResults4_2E3OutResults3_4OutResults3_3OutResults3_6OutResults3OutResults3_2E2OutResults2_4OutResults2_3OutResults2_6OutResults2OutResults2_2E1OutResults1_4OutResults1_3OutResults1_6OutResults1OutResults1_2OtherAmt3OtherAmt2OtherDesc3OtherDesc2OtherAmt1OtherDesc1LayoutSummaryLayoutR5MDB_3LayoutR5MDB_2LayoutR5MDB_1LayoutTotalProfile_3LayoutTotalProfile_2LayoutTotalProfile_1LayoutWB_3LayoutWB_2LayoutWB_1LayoutWW_3LayoutWW_2LayoutWW_1LayoutCS_3LayoutCS_2LayoutCS_1LayoutDatabase_3LayoutDatabase_2LayoutDatabase_1LayoutGroupware_3LayoutGroupware_2LayoutMailDB_3LayoutMailDB_2LayoutMail_3LayoutMail_2LayoutNumActiveUsersLayoutGroupware_1LayoutMailDB_1LayoutMail_1LayoutR5MDBLayoutWBLayoutWWLayoutDatabaseLayoutCSLayoutGroupwareLayoutMailDBLayoutMailLayoutReplHubLayoutMBReplHourLayoutReplHourLayoutMailHubLayoutMBMessagesHourLayoutMessagesHourPerGrowthProjEstimatedChoicesLayoutTolerance_ResponseLayoutDiskConfigurationLayoutToleranceLayoutOSPlatformLayoutPercentRangeLayoutUserResponseTimeLayoutServerTasksOutputSaveResultsOutputFilenameOutputServerGraphResultsVendorListsVendorListMailFlagUniqueCountCertifyCheckOnFormNewLocationQueryAlreadyExistsSaveOptionsnumresultsmodifiedauthorqueryid
  70. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes###############################################
  71. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes###############################################
  72. Query on DataG3
  73. CN=Richard Kanosky/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes#####################
  74. (List)C
  75. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes
  76. Conversion Guidelines|GuidelineView
  77. ProfileAdjust_ReplHubAdjust_MailHubAdjust_CSAdjust_DatabaseAdjust_GroupwareAdjust_MailAdjust_MailDBAdjust_WBAdjust_WW$Conflict$REF
  78. Conversion Guidelines
  79.     L1S2S3S1
  80. CN=Richard Kanosky/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes##
  81. ##########################################################
  82. ##########################################################
  83. O=Lotus Notes
  84. O=Lotus Notes
  85. PURSAFO
  86. |.:#U
  87. O=Lotus Notes
  88. CN=Lotus Notes Template Development/O=Lotus Notes
  89. PURSAFO
  90. $ACLDigest
  91. Times New Roman
  92. bodytext_dd
  93. bll_onl
  94. Task List
  95. &Switch To
  96. Using the Domino Server.Planner Analyst Database
  97.        
  98.   The Domino Server.Planner Analyst Database is a tool for creating
  99.         and managing queries that you make against Vendor Databases.  It
  100.         stores the results in a Decision Maker Database.
  101. body text
  102.         The Analyst Database presents two views:
  103.            
  104. Query on Data
  105. Conversion Guidelines
  106.            
  107.         You use the Query on Data view to create, use, and manage your
  108.         queries.
  109.         You use the Conversion Guidelines view to adjust the search
  110.         parameters to convert laboratory results to real-life requirements,
  111.         for specific workloads. (Optional)
  112.         Each view has an action button bar for ease of use.  You can also
  113.         perform any of these actions from the menu bar.
  114.         Server.Planner queries only certified Vendor Data and Machine
  115.         Identification forms.
  116.                    
  117. Using the Analyst Database Query on Data View
  118.         You use the Query on Data view to perform a variety of activities
  119.         with the queries you have created to analyze the vendor data.
  120. To create a new query, follow the instructions choose 
  121. Create 
  122. on the menu bar, 
  123.  and select 
  124. Create a Query
  125. To open an existing query, select the 
  126. Query on Data
  127.  view and double-click 
  128. on the query entry in the View pane list.
  129. To modify an existing query, open it and make the desired changes.  You can 
  130. overwrite the old version, or save the modified version as an additional query.
  131.  To perform a query, open a query - or create a new query, -  and click on the 
  132. Query 
  133. button on the button bar.  After you have run a query,  you can use the 
  134. Graph Results
  135.  button to create graphs based on Response or Cost data.
  136.  To save the results, along with the query that produced them, in the Decision Maker 
  137. database, use the 
  138. Save Query & Results
  139.  button. 
  140. (If a Decision Maker database does not exist in the Notes Data directory, 
  141. Server.Planner creates one.)
  142. To remove a query, select it and press the Delete key, or use 
  143. Edit Cut 
  144. from the menu bar.
  145.           
  146.                
  147. Using the Analyst Database Conversion Guidelines View
  148.         Select the Conversion Guidelines view pane if you wish to change
  149.         the conversion algorithms.  This feature of Server.Planner allows
  150.         you to adjust the queries to reflect real-life usage instead of the
  151.         laboratory environment of the benchmark scenarios where the vendor
  152.         data was created.
  153.         The initial value for each workload is 1, resulting in no actual
  154.         adjustment of the workload results during the query.  You can
  155.         adjust the conversion factors of any or all of the workloads.
  156.         The conversion guidelines that were used in a query are stored
  157.         along with the results of that query when you save them to the
  158.         Decision Maker Database.
  159. Double-click on the Conversion Guidelines document in the view pane.
  160. Make your adjustments in the table entries.
  161. Close and save the guidelines.
  162.           
  163. O=Lotus Notes
  164. O=Lotus Notes
  165. PURSAFO
  166. |.:#U
  167. O=Lotus Notes
  168. CN=Lotus Notes Template Development/O=Lotus Notes
  169. PURSAFO
  170. Fde!f^^
  171. $Info
  172. $Body
  173. '++LotusScript Development Environment:2:5:(Options):0:66
  174. '++LotusScript Development Environment:2:5:(Forward):0:1
  175. Declare Sub Queryopen(Source As Notesuiview, Continue As Variant)
  176. '++LotusScript Development Environment:2:5:(Declarations):0:2
  177. '++LotusScript Development Environment:2:2:BindEvents:1:129
  178. Private Sub BindEvents(Byval Objectname_ As String)
  179.      Static Source As NOTESUIVIEW
  180.      Set Source = Bind(Objectname_)
  181.      On Event Queryopen From Source Call Queryopen
  182. End Sub
  183. '++LotusScript Development Environment:2:2:Queryopen:1:12
  184. Sub Queryopen(Source As Notesuiview, Continue As Variant)
  185.      Dim ThisViewBE As NotesView
  186.      
  187.      Set ThisViewBE = Source.View
  188.      Call ThisViewBE.Refresh
  189.      
  190. End Sub
  191. O=Lotus Notes
  192. O=Lotus Notes
  193. PURSAFO
  194. |.:#U
  195. O=Lotus Notes
  196. CN=Lotus Notes Template Development/O=Lotus Notes
  197. PURSAFO
  198. Fde!f^^
  199. $TITLE
  200. $Index
  201. $Formula
  202. $FormulaClass
  203. $ViewFormat
  204. $Comment
  205. $ViewGlobalScript_O
  206. $ViewScript
  207. $ViewScript_O
  208. O=Lotus Notes
  209. O=Lotus Notes
  210. PURSAFO
  211. |.:#U
  212. O=Lotus Notes
  213. CN=Lotus Notes Template Development/O=Lotus Notes
  214. PURSAFO
  215. $TITLE
  216. $Index
  217. $Formula
  218. $FormulaClass
  219. $ViewFormat
  220. $Comment
  221. O=Lotus Notes
  222. O=Lotus Notes
  223. PURSAFO
  224. |.:#U
  225. O=Lotus Notes
  226. CN=Lotus Notes Template Development/O=Lotus Notes
  227. PURSAFO
  228. Fde!f^^
  229. $TITLE
  230. $Index
  231. $Formula
  232. $FormulaClass
  233. $ViewFormat
  234. $Comment
  235. O=Lotus Notes
  236. O=Lotus Notes
  237. PURSAFO
  238. |.:#U
  239. O=Lotus Notes
  240. CN=Lotus Notes Template Development/O=Lotus Notes
  241. PURSAFO
  242. Fde!f^^
  243. (6I"J!
  244. $TITLE
  245. $Index
  246. $Formula
  247. $FormulaClass
  248. $ViewFormat
  249. $Comment
  250. Footlight MT Light
  251. VendorSelection'++LotusScript Development Environment:2:5:(Options):0:66
  252. '++LotusScript Development Environment:2:5:(Forward):0:1
  253. Declare Sub Terminate
  254. Declare Sub Postopen(Source As Notesuidocument)
  255. '++LotusScript Development Environment:2:5:(Declarations):0:2
  256. '++LotusScript Development Environment:2:2:BindEvents:1:129
  257. Private Sub BindEvents(Byval Objectname_ As String)
  258.      Static Source As NOTESUIDOCUMENT
  259.      Set Source = Bind(Objectname_)
  260.      On Event Postopen From Source Call Postopen
  261. End Sub
  262. '++LotusScript Development Environment:2:2:Terminate:1:10
  263. Sub Terminate
  264.      
  265. End Sub
  266. '++LotusScript Development Environment:2:2:Postopen:2:12
  267. %INCLUDE "pstoarr.lss"
  268. Sub Postopen(Source As Notesuidocument)
  269.      Dim Workspace As New NotesUIWorkspace
  270.      Dim ThisDoc As NotesUIDocument
  271.      Dim OutputArray As Variant
  272.      Dim db As NotesDatabase
  273.      Dim Session As New NotesSession
  274.      Dim View As NotesView
  275.      Dim ListDoc As NotesDocument
  276.      Dim TempVendorList As Variant
  277.      
  278.      
  279.      Set ThisDoc = Workspace.CurrentDocument
  280.      
  281.      Set db = Session.CurrentDatabase
  282.      Set View = db.GetView("(List)")
  283.      Set ListDoc = View.GetFirstDocument
  284.      TempVendorList = ListDoc.List
  285.   'Call ThisDoc.FieldSetText("VendorList",TempVendorList)
  286.           'ThisDoc.VendorList = ListDoc.List
  287. %END REM
  288. End Sub
  289. '++LotusScript Development Environment:2:5:(Options):0:66
  290. '++LotusScript Development Environment:2:5:(Forward):0:1
  291. Declare Sub Exiting(Source As Field)
  292. Declare Sub Terminate
  293. Declare Sub Entering(Source As Field)
  294. Declare Sub Initialize
  295. '++LotusScript Development Environment:2:5:(Declarations):0:2
  296. '++LotusScript Development Environment:2:2:BindEvents:1:129
  297. Private Sub BindEvents(Byval Objectname_ As String)
  298.      Static Source As FIELD
  299.      Set Source = Bind(Objectname_)
  300.      On Event Exiting From Source Call Exiting
  301.      On Event Entering From Source Call Entering
  302. End Sub
  303. '++LotusScript Development Environment:2:2:Exiting:1:12
  304. Sub Exiting(Source As Field)
  305.      
  306. End Sub
  307. '++LotusScript Development Environment:2:2:Terminate:1:10
  308. Sub Terminate
  309.      Dim workspace As New notesuiworkspace
  310.      Dim ThisDoc As notesuidocument
  311.      
  312.      Set ThisDoc = workspace.CurrentDocument
  313.      TempString$ = ThisDoc.FieldGetText("VendorList")
  314.      
  315.      
  316. End Sub
  317. '++LotusScript Development Environment:2:2:Entering:1:12
  318. Sub Entering(Source As Field)
  319.      
  320. End Sub
  321. '++LotusScript Development Environment:2:2:Initialize:1:10
  322. Sub Initialize
  323.      
  324. End Sub
  325. VendorList
  326. LookupView
  327. (List)
  328.     1S2S
  329. LookupView
  330. Database
  331.     0R4S6S8S10S
  332. Specify Vendors to Include:
  333. O=Lotus Notes
  334. O=Lotus Notes
  335. PURSAFO
  336. |.:#U
  337. O=Lotus Notes
  338. CN=Lotus Notes Template Development/O=Lotus Notes
  339. PURSAFO
  340. Fde!f^^
  341. FJ:_G
  342. $TITLE
  343. $Info
  344. $$Script_O
  345. $$ScriptName
  346. $$FormScript
  347. $$$FormScript_O
  348. $$VendorList
  349. $VendorList_O
  350. $Body
  351. '++LotusScript Development Environment:2:5:(Options):0:74
  352. '%INCLUDE "econsts.txt"
  353. '++LotusScript Development Environment:2:5:(Forward):0:1
  354. '++LotusScript Development Environment:2:5:(Declarations):0:2
  355. '++LotusScript Development Environment:2:2:BindEvents:1:129
  356. Private Sub BindEvents(Byval Objectname_ As String)
  357.      Static Source As LTSSHEET
  358.      Set Source = Bind(Objectname_)
  359. End Sub
  360. PCS704-200MHZ1P6-512MB
  361. Pentium Pro (P6)/200 x  1
  362. NT 4.0
  363. PCS325-233MHZ1P6-384MB
  364. Pentium II/233 x  1
  365. NT 4.0
  366. NF3500-233MHZ1P6-320MB
  367. Pentium II/233 x  1
  368. NT 4.0
  369. IBMPCC
  370. PCS704-200MHZ1P6-512MB
  371. Pentium Pro (P6)/200 x  1
  372. NT 4.0
  373. IBMPCC
  374. PCS325-233MHZ1P6-384MB
  375. Pentium II/233 x  1
  376. NT 4.0
  377. IBMPCC
  378. NF3500-233MHZ1P6-320MB
  379. Pentium II/233 x  1
  380. NT 4.0
  381. IBMPCC
  382. PCS330-300MHZ1PII-512MB
  383. Pentium II (PII)/300 x  1
  384. NT 4.0
  385. COMPAQ
  386. CMPQPL800-200MHZ1P6-512MB
  387. Pentium Pro (P6)/200 x  1
  388. NT 4.0
  389. RICH2
  390. PCS704-200MHZ1P6-512MB
  391. Pentium Pro (P6)/200 x  1
  392. NT 4.0
  393. PCS704-200MHZ1P6-512MB
  394. Pentium Pro (P6)/200 x  1
  395. NT 4.0
  396. LayoutServerTasks
  397.     4S5S
  398. PCS704-200MHZ1P6-512MB
  399. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  400. LayoutServerTasks
  401.     4S5S
  402. PCS325-233MHZ1P6-384MB
  403. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  404. LayoutServerTasks
  405.     4S5S
  406. NF3500-233MHZ1P6-320MB
  407. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  408. LayoutServerTasks
  409.     4S5S
  410. PCS704-200MHZ1P6-512MB
  411. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  412. LayoutServerTasks
  413.     4S5S
  414. PCS325-233MHZ1P6-384MB
  415. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  416. LayoutServerTasks
  417.     4S5S
  418. NF3500-233MHZ1P6-320MB
  419. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  420. LayoutServerTasks
  421.     4S5S
  422. PCS330-300MHZ1PII-512MB
  423. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  424. LayoutServerTasks
  425.     4S5S
  426. CMPQPL800-200MHZ1P6-512MB
  427. Compaq ProLiant 800 with 1 CPU (P6/200MHz) and 512MB RAM
  428. LayoutServerTasks
  429.     4S5S
  430. PCS704-200MHZ1P6-512MB
  431. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  432. LayoutServerTasks
  433.     4S5S
  434. PCS704-200MHZ1P6-512MB
  435. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  436. IBMPCC
  437. NF7000-200MHZ2P6-1280MB
  438. Medium
  439. Pentium Pro (P6)/200 x  2 (SMP)
  440. NT 4.0
  441. LayoutServerTasks
  442.     4S5S
  443. NF7000-200MHZ2P6-1280MB
  444. Netfinity 7000 with 2 CPUs (200 MHZ Pentium Pro), 1280 MB RAM, and 10 Hard Drives (4.5 GB) in a RAID5 array.
  445. LayoutServerTasks
  446.     4S5S
  447. LayoutServerTasks
  448.     4S5S
  449. LayoutServerTasks
  450.     4S5S
  451. LayoutServerTasks
  452.     4S5S
  453. LayoutServerTasks
  454.     4S5S
  455. LayoutServerTasks
  456.     4S5S
  457. LayoutServerTasks
  458.     4S5S
  459. LayoutServerTasks
  460.     4S5S
  461. LayoutServerTasks
  462.     4S5S
  463. '++LotusScript Development Environment:2:5:(Options):0:66
  464. '++LotusScript Development Environment:2:5:(Forward):0:1
  465. Declare Sub Click( Source As Button )
  466. Declare Function ProcessOneTask( sVendorDBBuffer As String, sOSPlatformWholeList As String )  As Integer
  467. Declare Sub Initialize
  468. Declare Function SearchForPossibleMatches( sLayoutServerTasks As String,  sSearchDB As String, sMachineID As String, sUserCount As String, sOther11 As String, sOther21 As String, bZeroBase As Integer, bMaxBase As Integer )  As NotesDocumentCollection 
  469. Declare Function VerifyForm( sOSPlatform As String ) As Integer
  470. Declare Function QueryOnDatabase( sSearchDB As String,  sMachineID As String, sLayoutServerTasks As String, sUserCount As String, sOther11 As String, sOther21 As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  471. Declare Function ProcessMultipleTasks( sVendorDBBuffer As String, sOSPlatformWholeList As String ) As Integer
  472. Declare Function ProcessMultipleTasksCore( sSearchDB As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  473. Declare Function UserTaskCount( ThisDoc ) As Integer
  474. Declare Sub ZeroFieldOut( ThisDoc As NotesUIDocument, sFieldNameOut As String )
  475. Declare Function ExtractVendorName( sSearchDB As String ) As String
  476. Declare Sub UserTaskArrayInitWhole ( doc As NotesDocument )
  477. '++LotusScript Development Environment:2:5:(Declarations):0:10
  478. %INCLUDE "pstoarr.lss" 
  479. Const MB_YESNO = 4
  480. Const IDYES = 6
  481. Const IDNO = 7
  482. Const MB_ICONEXCLAMATION = 48
  483. Const MB_ICONINFORMATION = 64
  484. Const MB_ICONQUESTION = 32
  485. Const numscripts = 10
  486. '++LotusScript Development Environment:2:2:BindEvents:1:129
  487. Private Sub BindEvents(Byval Objectname_ As String)
  488.      Static Source As BUTTON
  489.      Set Source = Bind(Objectname_)
  490.      On Event Click From Source Call Click
  491. End Sub
  492. '++LotusScript Development Environment:2:2:Click:1:12
  493. Sub Click( Source As Button )
  494.      Dim Workspace As New NotesUIWorkspace
  495.      Dim ThisDoc As NotesUIDocument
  496.      Dim DateTime As New NotesDateTime( "1/1/96" )
  497.      Dim Session As New NotesSession
  498.      Dim CurrentView As NotesView
  499.      Dim doc As NotesDocument
  500.      
  501.      Dim sOSPlatformWholeList As String
  502.      Dim sServerTasks As String
  503.      Dim VendorDBBuffer As String
  504.      Dim iPositionOfChar As Integer
  505.      Dim iOutputCount As Integer
  506.      Dim sSearchDB As String
  507.      
  508.      Set CurrentDB = Session.CurrentDatabase
  509.      Set CurrentView = CurrentDB.GetView( "(List)" )
  510.      Set doc = CurrentView.GetFirstDocument
  511.      If doc Is Nothing Then
  512.           Messagebox "List Information Missing", MB_ICONEXCLAMATION, "Query on Data"
  513.           Exit Sub
  514.      End If
  515.      While doc.ListType( 0 ) <> "Database"
  516.           Set doc = CurrentView.GetNextDocument( doc )
  517.           If doc Is Nothing Then
  518.                Messagebox "Vendor Database List Information Missing", MB_ICONEXCLAMATION, "Query on Data"
  519.                Exit Sub
  520.           End If
  521.      Wend
  522.      Set ThisDoc = Workspace.CurrentDocument
  523.      
  524.       '  extract rule of thumb information
  525.      Set CurrentView = CurrentDB.GetView( "Conversion Guidelines" )
  526.      Set doc = CurrentView.GetFirstDocument
  527.      If doc Is Nothing Then
  528.           Messagebox "Conversion Guidelines Document Missing", MB_ICONEXCLAMATION, "Query on Data"
  529.           Exit Sub
  530.      End If
  531.      While doc.Profile( 0 ) <> "Default"
  532.           Set doc = CurrentView.GetNextDocument( doc )
  533.           If doc Is Nothing Then
  534.                Messagebox "Conversion Guidelines Document Missing", MB_ICONEXCLAMATION, "Query on Data"
  535.                Exit Sub
  536.           End If
  537.      Wend
  538.      
  539.      vtemp = doc.Adjust_ReplHub
  540.      nAdjust_ReplHub = vtemp( 0 )
  541.      vtemp = doc.Adjust_MailHub
  542.      nAdjust_MailHub = vtemp( 0 )
  543.      
  544.      Call UserTaskArrayInitWhole (doc)
  545.      
  546.      If VerifyForm( sOSPlatformWholeList ) = False Then
  547.           Exit Sub
  548.      End If
  549.      
  550.      Set ListDoc =  CreateList( )         '  insure List form is present and up-to-date
  551.      
  552.      
  553.      sOSPlatformWholeList = ThisDoc.FieldGetText( "LayoutOSPlatform" )
  554.      If sOSPlatformWholeList = "" Then
  555.           sOSPlatformWholeList = "AIX/RS6000; AIX/SP2;  HP-UX; NetWare 3.12; Netware 4.1; NT 3.51; NT 4.0; OS/2 2.11 SMP; OS/2 Warp Connect; OS/2 Warp Server 4.0; Solaris 2.5; Win95 1.0"
  556.      End If
  557.      
  558.       'clear out the graphs as they won't be in sync with the output table generated
  559.      ThisDoc.GoToField( "LayoutCostChart" )
  560.      ThisDoc.FieldClear( "LayoutCostChart" )
  561.      
  562.      ThisDoc.GoToField( "LayoutCostSheet" )
  563.      ThisDoc.FieldClear( "LayoutCostSheet" )
  564.      
  565.      ThisDoc.GoToField( "LayoutResponseChart" )
  566.      ThisDoc.FieldClear( "LayoutResponseChart" )
  567.      
  568.      ThisDoc.GoToField( "LayoutResponseSheet" )
  569.      ThisDoc.FieldClear( "LayoutResponseSheet" )
  570.      
  571.      ThisDoc.GoToField( sFieldName )  '  position back at current field temporarily
  572.      
  573.  '    query against database
  574.      VendorDBBuffer = ThisDoc.FieldGetText( "VendorList" )
  575.      If Len( VendorDBBuffer ) = 0 Then
  576.  '        Messagebox "no vendors selected"
  577.  '        insert all vendors into list     
  578.  '        Find the list document which contains the dynamic list
  579.           If doc Is Nothing Then
  580.                Messagebox "No Vendors Selected/Found", MB_ICONEXCLAMATION, "Query on Data"
  581.           Else
  582.                While Not( doc Is Nothing )
  583.                     If doc.ListType( 0 ) = "Database" Then
  584.                          Set Listdoc = doc
  585.                          If Listdoc.list( 0 ) = "" Then
  586.                               Messagebox "Warning:  No Vendor Databases to Search", MB_ICONEXCLAMATION, "Database Search"
  587.                               ThisDoc.GotoField( "LayoutServerTasks" )
  588.                               Exit Sub
  589.                          End If
  590.                          
  591.                          Forall vendorname In Listdoc.list 
  592. '                             format the string, separated by ;
  593.                               If vendorname <> "" Then
  594.                                    If VendorDBBuffer <> "" Then
  595.                                         VendorDBBuffer = VendorDBBuffer & " ; "  
  596.                                    End If
  597.                                    VendorDBBuffer = VendorDBBuffer & vendorname
  598.                               End If
  599.                          End Forall
  600.                     End If
  601.                     Set doc = CurrentView.GetNextDocument( doc )
  602.                Wend
  603.           End If
  604.      End If
  605.      
  606.      '  count the vendors selected.  make sure there is always room for one entry each vendor
  607.      iVendorCount = 0
  608.      iPositionOfChar = 1
  609.      While iPositionOfChar <> 0
  610.           iPositionOfChar = Instr( iPositionOfChar, VendorDBBuffer, ";" )
  611.           If iPositionOfChar <> 0 Then
  612.                iPositionOfChar = iPositionOfChar + 1
  613.           End If
  614.           iVendorCount = iVendorCount + 1
  615.      Wend
  616.      
  617.      If iVendorCount > numoutputlines Then       'currently limit set at 10 output values
  618.           Messagebox "The number of output information exceeds the current display.  You should adjust your query specifications.",  MB_ICONEXCLAMATION, "Output Limit Reached"
  619.           ThisDoc.GotoField( "VendorList" )
  620.           Exit Sub
  621.      End If
  622.      
  623. '    initialize queryid field    
  624.      RandomValue = Cstr( Year( Today ) + Month( Today ) * 50 + Day( Today ) + Hour( Time ) * 360 + Minute( Time ) * 60 + Second( Time ) )
  625. '    Need **** to verify that random value is unique , verify it for this document and anywhere it is stored
  626.      ThisDoc.document.queryid =  RandomValue
  627.      
  628.      '  Calculate total amount specified
  629.      nTotalAmt = Csng( ThisDoc.FieldGetText( "OtherAmt1" ) ) + Csng( ThisDoc.FieldGetText( "OtherAmt2" ) ) + Csng( ThisDoc.FieldGetText( "OtherAmt3" ) )
  630.      
  631.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), ";" ) = 0 And UserTaskCount( ThisDoc ) < 2 Then
  632.           ' only one server task specified?
  633.           iOutputCount = ProcessOneTask( VendorDBBuffer, sOSPlatformWholeList )
  634.      Else 
  635.           iOutputCount = ProcessMultipleTasks( VendorDBBuffer, sOSPlatformWholeList )
  636.      End If
  637.      
  638.      If iOutputCount = 0  Then
  639.           Messagebox " No Query Results Found", MB_ICONEXCLAMATION,  "Query Results"
  640.      End If
  641.      
  642.      '     output total count of documents processed     
  643.      ThisDoc.document.numresults = Cstr( iOutputCount )
  644.      'Messagebox(ThisDoc.FieldGetText("OutResults1"))
  645.      
  646.      If iOutputCount > 0 Then
  647.           ThisDoc.GoToField( "OutResults1_2")
  648.      End If
  649.      
  650. End Sub
  651. '++LotusScript Development Environment:2:1:ProcessOneTask:2:8
  652. Function ProcessOneTask( sVendorDBBuffer As String, sOSPlatformWholeList As String )  As Integer
  653.           ' accept query parameters for one task
  654.      '  return results which will then need to be processed
  655.      
  656.      Dim ThisDoc As NotesUIDocument
  657.      Dim Workspace As New NotesUIWorkspace
  658.      
  659.      Dim iPositionOfChar As Integer
  660.      Dim iOutputCount As Integer
  661.      Dim iTotalCount As Integer
  662.      Dim sSearchDB As String
  663.      
  664.      Set ThisDoc = Workspace.CurrentDocument
  665.      
  666.      iOutputCount = 0
  667.      iTotalCount = 0
  668.      
  669.      While Len( sVendorDBBuffer )  > 0
  670.  '        extract filename only
  671.           iPositionOfChar = Instr( 1, sVendorDBBuffer, ";" )
  672.           If iPositionOfChar = 0 Then
  673.                sVendorDB = sVendorDBBuffer
  674.           Else
  675.                sVendorDB = Left( sVendorDBBuffer,( iPositionOfChar - 1 ) )
  676.           End If
  677.           
  678.           sVendorDB = Trim( sVendorDB )
  679.           sSearchDB = "CP" & sVendorDB
  680.           sSearchDB = sSearchDB & ".NSF"
  681.           
  682.           iVendorCount = iVendorCount - 1
  683.           
  684.           'Print Datatype (ThisDoc.Document.LayoutReplHub)
  685.           Dim vTemp As Variant
  686.           If( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "Replication Hub" ) Then
  687.                vTemp = ThisDoc.Document.LayoutReplHub
  688.          '               iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), ThisDoc.FieldGetText( "LayoutReplHub" ), ThisDoc.FieldGetText( "LayoutReplHour" ), ThisDoc.FieldGetText( "LayoutMBReplHour" ), sOSPlatformWholeList, iOutputCount )
  689.               '[ iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( ThisDoc.Document.LayoutReplHub ), "*", "*", sOSPlatformWholeList, iOutputCount )
  690.                iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( vTemp( 0 ) ), "*", "*", sOSPlatformWholeList, iOutputCount )
  691.           Elseif( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "Mail Routing Hub" ) Then
  692.                vTemp = ThisDoc.Document.LayoutMailHub
  693. '               iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), ThisDoc.FieldGetText( "LayoutMailHub" ), ThisDoc.FieldGetText( "LayoutMessagesHour" ), ThisDoc.FieldGetText( "LayoutMBMessagesHour" ),sOSPlatformWholeList, iOutputCount )
  694.                iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( vTemp( 0 ) ), "*", "*",sOSPlatformWholeList, iOutputCount )
  695.           Elseif( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "User Tasks" ) Then
  696.                For i = 1 To 7
  697.                     If sUserTaskArray( i, 2 ) <> "0" Then
  698.                          vTemp = ThisDoc.Document.LayoutNumActiveUsers
  699.                          iOutputCount = QueryOnDatabase( sSearchDB, "",   sUserTaskArray( i, 1 ), Cstr( vTemp( 0 ) ), "", "", sOSPlatformWholeList, iOutputCount )
  700.                          i = 7
  701.                     End If
  702.                Next i
  703.           End If
  704.           
  705.  '        process next filename          
  706.           If iPositionOfChar = 0 Then
  707.                sVendorDBBuffer = ""
  708.           Else
  709.                sVendorDBBuffer = Trim( Right( sVendorDBBuffer, Len( sVendorDBBuffer )- iPositionOfChar ) )
  710.           End If
  711.           
  712.           iTotalCount = iOutputCount
  713.           'iTotalCount = iTotalCount + iOutputCount   '  roll up total across all vendors
  714.      Wend
  715.      
  716.      ProcessOneTask = iTotalCount
  717.      
  718. End Function
  719. '++LotusScript Development Environment:2:2:Initialize:1:10
  720. Sub Initialize
  721.      
  722. End Sub
  723. '++LotusScript Development Environment:2:1:SearchForPossibleMatches:2:8
  724. Function SearchForPossibleMatches( sLayoutServerTasks As String,  sSearchDB As String, sMachineID As String, sUserCount As String, sOther11 As String, sOther21 As String, bZeroBase As Integer, bMaxBase As Integer )  As NotesDocumentCollection 
  725. '     iOutputCount keeps track of number of output entries     
  726.      Dim ThisDoc As NotesUIDocument
  727.      Dim Workspace As New NotesUIWorkspace
  728.      Dim DateTime As New NotesDateTime( "1/1/96" )
  729.      Dim VendorDB As NotesDatabase
  730.      
  731.      Set ThisDoc = Workspace.CurrentDocument
  732.      Set VendorDB = New NotesDatabase( "", sSearchDB )
  733.      
  734. '         process specific database
  735. '         Need to dynamically build query
  736.      
  737.      SearchFormula$ =  "Form = " & {"} & "Vendor Data" & {"}
  738.      
  739.      nSearchTolerance = Csng( ThisDoc.FieldGetText( "LayoutTolerance" ) )
  740.      'nSearchTolerance =(( nSearchTolerance/2 ) / 100 )        ' now a percent
  741.      nSearchTolerance =(( nSearchTolerance ) / 100 )        ' now a percent
  742.      
  743.      ' adjust sUserCount value translating real life-> benchmark  
  744.      If sLayoutServerTasks = "Replication Hub" Then
  745.           sUserCount = Cstr( Cint( sUserCount ) * nAdjust_ReplHub )
  746.      Elseif sLayoutServerTasks = "Replication Hub" Then
  747.           sUserCount = Cstr( Cint( sUserCount ) * nAdjust_MailHub )
  748.      Else
  749.           For i = 1 To 7
  750.                If sLayoutServerTasks = sUserTaskArray( i, 1 ) Then
  751.                     sUserCount = Cstr(( Cint( sUserCount ) * Cint( sUserTaskArray( i, 4 ) ) ) )
  752.                End If
  753.           Next
  754.      End If
  755.      
  756.      If sLayoutServerTasks = "Replication Hub"  Or  sLayoutServerTasks = "Mail Routing Hub" Then
  757.                      ' Server Task
  758.           SearchFormula$ = SearchFormula$ + " & DataUScript1  =  "+  {"} + sLayoutServerTasks +  {"}   
  759.           
  760.           ' Hub count with tolerance adjustment
  761.           '  handle case where base for search should start at 0
  762.           nUpper =  Cint( sUserCount ) +( Cint( sUserCount ) * nSearchTolerance )
  763.           nLower =  Cint( sUserCount ) -( Cint( sUserCount ) * nSearchTolerance )
  764.           If Cint( nLower ) = Cint( nUpper ) Then
  765.                If bZeroBase = False Then
  766.                     SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  =  "+  Cstr( Cint( nLower ) ) 
  767.                Else
  768.                     SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr( 0 ) 
  769.                End If
  770.           Else
  771.                If bZeroBase = False Then
  772.                     If bMaxBase = False Then
  773.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  774.                     Else
  775.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  
  776.                     End If
  777.                Else           '  start search with > 0 users    
  778.                     ' check if there is a max number of users to be searched for
  779.                     '  False means that check for a defined limit
  780.                     If bMaxBase = False Then
  781.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  " +  Cstr( 0 )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  782.                     Else
  783.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  " +  Cstr( 0 )  
  784.                     End If           
  785.                End If
  786.           End If
  787.           
  788.           
  789.           '  Replications/Hour with tolerance adjustment
  790.           If sOther11 <> "*"  And sOther11 <> "0" Then        ' don't process wildcard
  791.                nUpper =  Cint( sOther11 ) +( Cint( sOther11 ) * nSearchTolerance )
  792.                nLower =  Cint( sOther11 ) -( Cint( sOther11 ) * nSearchTolerance )
  793.                If Cint( nLower ) = Cint( nUpper ) Then
  794.                     SearchFormula$ = SearchFormula$ + " & DataUOther11  = " +  Cstr( Cint( nLower ) ) 
  795.                Else
  796.                     SearchFormula$ = SearchFormula$ + " & DataUOther11  > " +  Cstr(( Cint( nLower ) - 1 ) )  & " & DataUOther11  < " +  Cstr(( Cint( nUpper ) + 1 ) )
  797.                End If
  798.           End If
  799.           
  800.           ' MB Replications/Hour with tolerance adjustment
  801.           If sOther21 <> "*"  And sOther21 <> "0" Then        ' don't process wildcard
  802.                nUpper =  Cint( sOther21 ) +( Cint( sOther21 ) * nSearchTolerance )
  803.                nLower =  Cint( sOther21 ) -( Cint( sOther21 ) * nSearchTolerance )
  804.                If Cint( nLower ) = Cint( nUpper ) Then
  805.                     SearchFormula$ = SearchFormula$ + " & DataUOther21  >" +  Cstr( Cint( nLower ) ) 
  806.                Else
  807.                     SearchFormula$ = SearchFormula$ + " & DataUOther21  > " +  Cstr(( Cint( nLower ) - 1 ) )  & "DataUOther21  < " +  Cstr(( Cint( nUpper ) + 1 ) )
  808.                End If
  809.           End If
  810.      Else
  811.           If ThisDoc.FieldGetText( "LayoutNumActiveUsers" ) <> "" Then
  812.                ' User count with tolerance adjustment
  813.                nUpper =  Cint( sUserCount ) +( Cint( sUserCount ) * nSearchTolerance )
  814.                nLower =  Cint( sUserCount ) -( Cint( sUserCount ) * nSearchTolerance )
  815.                If Cint( nLower ) = Cint( nUpper ) Then
  816.                     If bZeroBase = False Then
  817.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  =  "+  Cstr( Cint( nLower ) ) 
  818.                     Else
  819.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr( 0 ) 
  820.                     End If
  821.                Else
  822.                     If bZeroBase = False Then
  823.                          If bMaxBase = False Then
  824.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  825.                          Else
  826.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  
  827.                          End If
  828.                     Else  
  829.                          If bMaxBase = False Then
  830.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  831.                          Else   
  832.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )                           
  833.                          End If
  834.                     End If
  835.                End If
  836.                 ' User Task
  837.                SearchFormula$ = SearchFormula$ + " & DataUScript1  =  "+  {"} +  sLayoutServerTasks +  {"}   
  838.           End If
  839.      End If
  840.      
  841.      If sMachineID <> "" Then
  842.           SearchFormula$ = SearchFormula$ + " & DataUServerID  =  "+  {"} +  SMachineID +  {"}   
  843.      End If
  844.      
  845.      If ThisDoc.FieldGetText( "LayoutUserResponseTime" )  <> "" Then
  846.           If ThisDoc.FieldGetText( "LayoutUserResponseTime" )  = "Fast ( < 1 sec)" Then
  847.                SearchFormula$ = SearchFormula$ + " &( DataUPercentFast * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" )  
  848.           Elseif ThisDoc.FieldGetText( "LayoutUserResponseTime" )  = "Medium (1 - 3 sec)" Then
  849.                SearchFormula$ = SearchFormula$ + " &( DataUPercentMedium * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" ) 
  850.           Elseif ThisDoc.FieldGetText( "LayoutUserResponseTime" )  =  "Slow (3.1 - 5 sec)" Then
  851.                SearchFormula$ = SearchFormula$ + " &( DataUPercentSlow * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" ) 
  852.           End If
  853.      End If
  854.      '          end of query
  855.      
  856.      '  keep track of vendors search.  decrement vendor count for each one searched
  857.      '  must make sure each vendor is represented
  858.      If i = numoutputlines Then
  859.           i = 1     ' wrap around
  860.      Else
  861.           i = i + 1
  862.      End If 
  863.      
  864.      Set SearchForPossibleMatches = VendorDB.Search( SearchFormula$, DateTime, 0 )
  865.      
  866. End Function
  867. '++LotusScript Development Environment:2:1:VerifyForm:1:8
  868. Function VerifyForm( sOSPlatform As String ) As Integer
  869.      Dim ThisDoc As NotesUIDocument
  870.      Dim Workspace As New NotesUIWorkspace
  871.      
  872.      Dim lBoxType As Long
  873.      Dim iAnswer As Integer
  874.      Dim vPlatformArray As Variant
  875.      Dim i As Integer
  876.      Dim j As Integer
  877.      Dim sFieldNameOut As String
  878.      
  879.      Set ThisDoc = Workspace.CurrentDocument
  880.      
  881.      ThisDoc.document.OutSummary = ""
  882.      
  883.      ThisDoc.document.OutResults1 = ""
  884.      For i = 1 To numoutputlines
  885.           sFieldNameOut = "OutResults"& Cstr( i )
  886.           Call ThisDoc.FieldSetText( sFieldNameOut, "" )
  887.           For j = 1 To 6
  888.                If j <> 5 Then      'somehow I skipped 5 - big mistake!
  889.                     sFieldNameOutx = sFieldNameOut & "_" & Cstr( j )
  890.                     Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  891.                End If
  892.           Next j
  893.      Next i
  894.      
  895.  '    Server Tasks or User Tasks need to have a value
  896.      If Len( ThisDoc.FieldGetText( "LayoutServerTasks" ) ) = 0 Then
  897.           Messagebox "Enter Task( s ) Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  898.           ThisDoc.GotoField( "LayoutServerTasks" )
  899.           VerifyForm = False
  900.           Exit Function
  901.      End If
  902.      
  903.      For j = 1 To 7
  904.           For i = 1 To 3
  905.                                '  make sure each field has at least a "0"
  906.                sTempName$ = sUserTaskArray( j, 3 ) + "_" + Cstr( i ) 
  907.                Call ZeroFieldOut( ThisDoc, sTempName$ )
  908.           Next i
  909.      Next j
  910.      
  911.  '    make sure data associated with Server Tasks is filled in
  912.      '  check on replhub
  913.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "R" ) > 0 Then
  914.           If Len( ThisDoc.FieldGetText( "LayoutReplHour" ) ) = 0 Then
  915.                Messagebox "Enter Replications/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  916.                ThisDoc.GotoField( "LayoutReplHour" )
  917.                VerifyForm = False
  918.                Exit Function
  919.           End If
  920.           If Len( ThisDoc.FieldGetText( "LayoutMBReplHour" ) ) = 0 Then
  921.                Messagebox "Enter MB Replicated/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  922.                ThisDoc.GotoField( "LayoutMBReplHour" )
  923.                VerifyForm = False
  924.                Exit Function
  925.           End If
  926.      End If
  927.           '  check on mailhub
  928.      If  Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "M" ) > 0  Then
  929.           If Len( ThisDoc.FieldGetText( "LayoutMessagesHour" ) ) = 0 Then
  930.                Messagebox "Enter Messages/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  931.                ThisDoc.GotoField( "LayoutMessagesHour" )
  932.                VerifyForm = False
  933.                Exit Function
  934.           End If
  935.           If Len( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) ) = 0 Then
  936.                Messagebox "Enter MB Messages/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  937.                ThisDoc.GotoField( "LayoutMBMessagesHour" )
  938.                VerifyForm = False
  939.                Exit Function
  940.           End If
  941.      End If
  942.           '  check on user tasks
  943.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ),  "U" ) > 0  Then
  944.           
  945.           If VerifyProfileMaster( ThisDoc ) = False Then
  946.                Exit Function
  947.           End If
  948.           
  949.            ' passes( almost ) all tests.  If User Tasks is specified, sum up the results
  950.           Dim iTemp As Integer
  951.           For i = 1 To 7
  952.                iTemp = 0
  953.                For j = 1 To 3
  954.                     sTempName$ = sUserTaskArray( i, 3 ) + "_" + Cstr( j )
  955.                     sTempProfile$ = "LayoutTotalProfile_" + Cstr( j )
  956.                     ' storing the user count
  957.                     iTemp =( Cint( ThisDoc.FieldGetText( sTempName$ ) )/100 ) *( Cint( ThisDoc.FieldGetText( sTempProfile$ ) ) ) + iTemp
  958.                Next j
  959.                sTempName$ = sUserTaskArray( i, 3 ) 
  960.                Call ThisDoc.FieldSetText( sTempName$, Cstr( iTemp ) )
  961.                '  workaround
  962.                If i = 1 Then
  963.                     Call ThisDoc.FieldSetText( "LayoutMail", Cstr( iTemp ) )
  964.                Elseif i = 2 Then
  965.                     Call ThisDoc.FieldSetText( "LayoutMailDB", Cstr( iTemp ) )
  966.                Elseif i = 3 Then
  967.                     Call ThisDoc.FieldSetText( "LayoutGroupware", Cstr( iTemp ) )
  968.                Elseif i = 4 Then
  969.                     Call ThisDoc.FieldSetText( "LayoutCS", Cstr( iTemp ) )
  970.                Elseif i = 5 Then
  971.                     Call ThisDoc.FieldSetText( "LayoutDatabase", Cstr( iTemp ) )
  972.                Elseif i = 6 Then
  973.                     Call ThisDoc.FieldSetText( "LayoutWW", Cstr( iTemp ) )
  974.                Elseif i = 7 Then
  975.                     Call ThisDoc.FieldSetText( "LayoutWB", Cstr( iTemp ) )
  976.                End If
  977.                '  insert information into summary field
  978.                sUserTaskArray( i, 2 ) = Cstr( iTemp )
  979.           Next i
  980.           
  981.      End If
  982.      
  983.  '    % Fall within range 
  984.  '    Make sure this is set    
  985.      LayoutPercentRange =  ThisDoc.FieldGetText( "LayoutPercentRange" )
  986. '     Messagebox LayoutPercentRange
  987.      If LayoutPercentRange = "" Then
  988.           Messagebox "Enter Percent Range", MB_ICONEXCLAMATION, "Verify Form"
  989.           ThisDoc.GotoField( "LayoutPercentRange" )
  990.           VerifyForm = False
  991.           Exit Function
  992.      End If
  993.      
  994. '    User Response Time
  995.      ResponseTimeFlag$ =  ThisDoc.FieldGetText( "LayoutUserResponseTime" )
  996.      If ResponseTimeFlag$ = "" Then
  997.           Messagebox "Enter Response Time", MB_ICONEXCLAMATION, "Verify Form"
  998.           ThisDoc.GotoField( "LayoutUserResponseTime" )
  999.           VerifyForm = False
  1000.           Exit Function
  1001.      End If
  1002.      
  1003.  '    OS Platform Parsing
  1004.      If ThisDoc.FieldGetText( "LayoutOSPlatform" ) = "" Then
  1005.           Messagebox "Specify OS Platform(s)", MB_ICONEXCLAMATION, "Query on Data"
  1006.           ThisDoc.Gotofield( "LayoutOSPlatform" )
  1007.      End If
  1008.      
  1009.      
  1010.      VerifyForm = True
  1011.      
  1012. End Function
  1013. '++LotusScript Development Environment:2:1:QueryOnDatabase:1:8
  1014. Function QueryOnDatabase( sSearchDB As String,  sMachineID As String, sLayoutServerTasks As String, sUserCount As String, sOther11 As String, sOther21 As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  1015. '     iOutputCount keeps track of number of output entries     
  1016.      Dim Workspace As New NotesUIWorkspace
  1017.      Dim ThisDoc As NotesUIDocument
  1018.      Dim DateTime As New NotesDateTime( "1/1/96" )
  1019.      Dim DataCollection As NotesDocumentCollection
  1020.      Dim MachineIDDoc As NotesDocument
  1021.      Dim DataDoc As NotesDocument
  1022.      Dim RTItem As NotesRichTextItem
  1023.      Dim sFieldNameOutOut As String
  1024.      
  1025.      Dim iPositionOfChar As Integer
  1026.      Dim iSkipCount As Integer
  1027.      Dim bZeroBase As Integer
  1028.      Dim bMaxBase As Integer
  1029.      Dim sCPUInfo As String
  1030.      Dim sMachineID2 As String
  1031.      Dim vVendorDB As Variant
  1032.      Dim vTemp1 As Variant
  1033.      Dim vTemp2 As Variant
  1034.      
  1035.      Dim nUpper As Single
  1036.      Dim nLower As Single
  1037.      Dim nSearchTolerance As Single
  1038.      
  1039.      Dim dDataUPercentFast As Double
  1040.      Dim dDataUPercentMedium As Double
  1041.      Dim dLayoutPercentRange As Double
  1042.      
  1043.      Set ThisDoc = Workspace.CurrentDocument
  1044.      
  1045.      temp = Trim( sSearchDB )
  1046.      sMachineID2 = sMachineID    '  save off original machine name
  1047.      
  1048.      Set VendorDB = New NotesDatabase( "", Trim( sSearchDB ) )
  1049.      
  1050.      bQueryFlag = True
  1051.      bZeroBase= False    '  search begins at user count > 0
  1052.      bMaxBase = True  '  search does have a max user count
  1053.      
  1054.      iSkipCount = 0  ' number of dups found
  1055.      
  1056.      '  call central routine to query on specified database for specified task
  1057.      Set DataCollection = SearchForPossibleMatches( sLayoutServerTasks, sSearchDB, sMachineID, sUserCount, sOther11, sOther21,  _
  1058.      bZeroBase, bMaxBase )
  1059.      
  1060.      For i = 1 To DataCollection.count
  1061.           If ( iVendorCount + iOutputCount ) = numoutputlines Then
  1062.                Messagebox "Warning:  Reached Limit on Output", MB_ICONEXCLAMATION, "Output Verification"
  1063.                QueryOnDatabase = iOutputCount 
  1064.                Exit Function
  1065.           End If
  1066.           
  1067.           'iCurrentRow = iOutputCount + 1  ' index into spreadsheet, under heading line
  1068.           
  1069.           Set DataDoc = DataCollection.GetNthDocument( i )
  1070.           '   verify that machine is not already specified
  1071.           sMachineID= DataDoc.DataUServerID( 0 )
  1072.           SkipOver = False
  1073.           For j = 1 To iOutputCount
  1074.                sFieldNameOutOut = "OutResults"& Cstr( j )
  1075.                If sMachineID = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  1076.                     '  now need to verify that vendors are not the same either
  1077.                     sFieldNameOutOut = "OutResults" & Cstr( j ) & "_2"
  1078.                     sVendor = ExtractVendorName( sSearchDB )
  1079.                     If sVendor = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  1080.                          SkipOver = True
  1081.                          iSkipCount = iSkipCount + 1
  1082.                     End If
  1083.                End If
  1084.           Next j
  1085.           
  1086.           vCertifyCheck = ThisDoc.Document.CertifyCheckOn
  1087.                               'when CertifyCheckOn = "0" - debug mode
  1088.           If ( vCertifyCheck( 0 ) = "1" And ThisDocBE.IsSigned ) Or vCertifyCheck( 0 ) = "0" Then
  1089. %END REM
  1090.           
  1091.           '  make sure the document is signed
  1092.           'vCertifyCheck = DataDoc.CertifyCheckOn
  1093.           vCertifyCheck=ThisDoc.Document.CertifyCheckOn
  1094.           vIsSignedField = DataDoc.IsSignedField
  1095.           If vCertifyCheck( 0 ) = "1" And vIsSignedField( 0 ) = "0" Then
  1096.                SkipOver=True
  1097.           End If
  1098.           
  1099.           '  make sure datadoc is within range
  1100.           vtemp1=DataDoc.DataUAverage
  1101.           If vtemp1( 0 ) > 5  Then
  1102.                SkipOver = True
  1103.                Elseif vtemp1( 0 ) > 3 And( ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Medium (1 - 3 sec)" Or _
  1104.           ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Fast ( < 1 sec)" ) Then
  1105.                SkipOver = True
  1106.           Elseif vtemp1( 0 ) > 1 And ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Fast ( < 1 sec)" Then
  1107.                SkipOver = True
  1108.           End If
  1109.           
  1110.           '  capture machine description, retrieve machine id info
  1111.           SearchFormula2$ = " Form = ""Machine Identifier""  & MachineID = " & {"} & sMachineID & {"} & " & ( "
  1112.           
  1113.                '  if replication hub selected, insert additional query parameters in
  1114.           
  1115.                '  check to see if document meets platform criteria
  1116.                '  check to see if multiple platforms are specified
  1117.           If Len( ThisDoc.FieldGetText( "LayoutOSPlatform" ) ) <> 0 Then
  1118.                sOSPlatform = ThisDoc.FieldGetText( "LayoutOSPlatform" )
  1119.           Else
  1120.                sOSPlatform = sOSPlatformWholeList
  1121.           End If
  1122.           
  1123.           If Instr( 1, sOSPlatform, ";" )  > 0 Then
  1124.                While Len( sOSPlatform ) > 0
  1125.                     iPositionOfChar2 = Instr( 1, sOSPlatform, ";" )
  1126.                     If iPositionOfChar2 = 0 Then
  1127.                          sOSPlatformTemp = Trim( sOSPlatform )
  1128.                          SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & sOSPlatformTemp & {"} 
  1129.                     Else
  1130.                          sOSPlatformTemp = Trim( Left( sOSPlatform,( iPositionOfChar2 - 1 ) ) )
  1131.                          SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & sOSPlatformTemp & {"} & "  |  "
  1132.                     End If
  1133.                     
  1134.                     If iPositionOfChar2 = 0 Then
  1135.                          sOSPlatform = ""
  1136.                     Else
  1137.                          sOSPlatform = Trim( Right( sOSPlatform,( Len( sOSPlatform ) - iPositionOfChar2 ) ) )
  1138.                     End If
  1139.                Wend
  1140.           Else
  1141.                     '  handle case where single specification
  1142.                SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & ThisDoc.FieldGetText( "LayoutOSPlatform" ) & {"} 
  1143.           End If
  1144.           
  1145.           If ThisDoc.FieldGetText( "LayoutDiskConfiguration" ) = "Includes RAID 5" Then
  1146.                SearchFormula2$ = SearchFormula2$ + " & ( MachineDiskType1 =  " +  {"} +  "Includes RAID 5" +  {"}  + _
  1147.                " | MachineDiskType2 = "   +  {"} +  "Includes RAID 5" +  {"} + _
  1148.                " | MachineDiskType3 = "   +  {"} +  "Includes RAID 5" +  {"} + _
  1149.                " | MachineDiskType4 = "   +  {"} +  "Includes RAID 5" +  {"} + " )"
  1150.           '  need to add on Type3 and Type4 *********
  1151.           End If
  1152.           
  1153.           SearchFormula2$ = SearchFormula2$ +  " )"
  1154.           
  1155.           'Messagebox SearchFormula2$
  1156.           Set MachineIDcollection = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  1157.           If(( MachineIDcollection.count > 0 ) And( SkipOver = False )  And(( iOutputCount + iVendorCount ) <( numoutputlines + 1 ) ) ) Then
  1158.                iOutputCount = iOutputCount + 1   '  position at next entry
  1159.                Redim Preserve AllResults( iOutputCount + 1 )
  1160.                AllResults( iOutputCount )=sMachineID
  1161.                     ' save off machine id
  1162.                sFieldNameOutOut = "OutResults"& Cstr( iOutputCount )
  1163.                Call ThisDoc.FieldSetText( sFieldNameOutOut, AllResults( iOutputCount ) )
  1164.                     ' save off machine description
  1165.                sFieldNameOutOut = sFieldNameOutOut & "_1"
  1166.                     ' ***must make sure do not exceed length of table
  1167.                     ' ****must make sure a check is made if the documents are not found when expected
  1168.                Set MachineIDDoc = MachineIDcollection.GetNthDocument( 1 )
  1169.                temp = MachineIDDoc.GetItemValue( "MachineDescription" )
  1170.                Call ThisDoc.FieldSetText( sFieldNameOutOut, temp( 0 ) )
  1171.                     'save off vendor name
  1172.                sFieldNameOutOut =  "OutResults" & Cstr( iOutputCount ) & "_2"
  1173.                sVendorDB = Mid$( SSearchDB, 3,( Len( sSearchDB ) - 6 ) )
  1174.                Call ThisDoc.FieldSetText( sFieldNameOutOut, sVendorDB )
  1175.                     ' save off cpu/# info
  1176.                sFieldNameOutOut =   "OutResults" & Cstr( iOutputCount ) & "_3"
  1177.                vCPUInfo = MachineIDDoc.GetItemValue( "MachineCPUType" ) 
  1178.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & "/"
  1179.                vTemp2 = MachineIDDoc.GetItemValue( "MachineCPUSpeed" ) 
  1180.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & vTemp2( 0 ) 
  1181.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & " x "
  1182.                vTemp1 = MachineIDDoc.GetItemValue( "MachineNumberofCPUs" )
  1183.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & " " & Cstr( vTemp1( 0 ) )
  1184.                If Cint( vTemp1( 0 ) ) > 1 Then
  1185.                     vCPUInfo( 0 ) = vCPUInfo( 0 ) & " (SMP)"
  1186.                End If
  1187.                
  1188.                Call ThisDoc.FieldSetText( sFieldNameOutOut, vCPUInfo( 0 ) )
  1189.                      ' save off OS info
  1190.                sFieldNameOutOut = "OutResults"& Cstr( iOutputCount ) & "_4"
  1191.                vCPUInfo1 = MachineIDDoc.GetItemValue( "MachinePlatform" )
  1192.                Call ThisDoc.FieldSetText( sFieldNameOutOut, vCPUInfo1( 0 ) )
  1193.                
  1194.                     'create doclink
  1195.                sFieldNameOutOut = "OR" & Cstr( iOutputCount ) & "_5"
  1196.                     ' *** not sure how to create doclink on notesuidocument - subform?
  1197.                
  1198.                '  save off Average Response Time info for graphing
  1199.                bQueryPerformed = True
  1200.                vAverageResponse( iOutputCount ) = DataDoc.DataUAverage
  1201.                
  1202.                '  save off Machine Cost for graphing
  1203.                vMachineCost( iOutputCount ) = MachineIDDoc.MachineCost
  1204.                
  1205.                '  display response time based on percent range specification
  1206.                sFieldNameOutOut = "OutResults" & Cstr( iOutputCount ) & "_6"
  1207.                vtemp1=DataDoc.DataUAverage
  1208.                
  1209.                If vtemp1( 0 ) < 1 Then
  1210.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Fast" )
  1211.                Elseif vtemp1( 0 ) < 3 Then
  1212.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Medium" )
  1213.                Elseif vtemp1( 0 ) < 5 Then
  1214.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Slow" )
  1215.                Else
  1216.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Out of Range" )
  1217.                End If
  1218.                
  1219.                '  save off link to datadoc
  1220.                'Set SaveDataDoc( iOutputCount ) = DataDoc
  1221.                'SaveDataDoc( iOutputCount ) = iOutputCount
  1222. '%REM
  1223.           Elseif MachineIDCollection.Count = 0 Then
  1224.                'If sMachineID = "" Then
  1225.                '  need to distinguish between disk configuration not RAID 5 and machine name not specified.  Need to re-query
  1226.                SearchFormula2$ = " Form = ""Machine Identifier""  & MachineID = " & {"} & sMachineID & {"} 
  1227.                Set MachineIDcollection = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  1228.                If( MachineIDcollection.count = 0 ) Then
  1229.                     sErrorMessage$ = "Warning:  Machine Identifier Form is missing for " & sMachineID & "   Continuing ....."
  1230.                     'sErrorMessage$ = "Machine Identifier Entry is missing for this associated Vendor Data.  Continuing..." 
  1231.                     Messagebox sErrorMessage$, MB_ICONEXCLAMATION, "Query on Data"
  1232.                End If
  1233.                'End If
  1234. '%END REM
  1235.           Elseif SkipOver = True Then
  1236.                '  make sure best response time is displayed, when there are multiple listings for any given machine
  1237.                For j = 1 To iOutputCount
  1238.                     sFieldNameOutOut = "OutResults"& Cstr( j )
  1239.                     If sMachineID = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  1240.                          sFieldNameOutOut = "OutResults" & Cstr( j ) & "_6"
  1241.                          vtemp1 = DataDoc.DataUAverage
  1242.                          
  1243.                          If vtemp1( 0 )  < 1 And  ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Fast" Then
  1244.                               Call ThisDoc.FieldSetText( sFieldNameOutOut, "Fast" )
  1245.                          Elseif vtemp1( 0 ) < 3.1  And vtemp1( 0 ) > .9  And( ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Fast"  And ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Medium" ) Then
  1246.                               Call ThisDoc.FieldSetText( sFieldNameOutOut, "Medium" )
  1247.                          Elseif vtemp1( 0 ) < 5  And vtemp1( 0 ) > 3  And ThisDoc.FieldGetText( sFieldNameOutOut ) = "Out of Range" Then
  1248.                               Call ThisDoc.FieldSetText( sFieldNameOutOut, "Slow" )
  1249.                          End If
  1250.                          
  1251.                     End If
  1252.                Next j
  1253.           End If
  1254.      Next i
  1255.      
  1256.      'QueryOnDatabase =(( iOutputCount ) - iSkipCount )          ' decrement for automatic positioning to next entry, and for number of dups
  1257.      QueryOnDatabase = iOutputCount                                  ' decrement for automatic positioning to next entry, and for number of dups
  1258.      
  1259. End Function
  1260. '++LotusScript Development Environment:2:1:ProcessMultipleTasks:1:8
  1261. Function ProcessMultipleTasks( sVendorDBBuffer As String, sOSPlatformWholeList As String ) As Integer
  1262.      Dim ThisDoc As NotesUIDocument
  1263.      Dim Workspace As New NotesUIWorkspace
  1264.      
  1265.      Dim iCountTasks As Integer
  1266.      Dim iPositionOfChar As Integer
  1267.      Dim iOutputCount As Integer
  1268.      Dim iTotalCount As Integer
  1269.      Dim sSearchDB As String
  1270.      Dim sMachineID As String
  1271.      Dim sVendorDBBufferSave As String
  1272.      
  1273.      Set ThisDoc = Workspace.CurrentDocument
  1274.      
  1275.      iTotalCount = 0
  1276.      
  1277.           ' need to determine if matching response values can be found within a given response range
  1278.      sVendorDBBufferSave = sVendorDBBuffer
  1279.      iOutputCount = 0
  1280.      iTotalCount = 0
  1281.      While Len( sVendorDBBuffer )  > 0
  1282.  '             extract filename only
  1283.           iPositionOfChar = Instr( 1, sVendorDBBuffer, ";" )
  1284.           If iPositionOfChar = 0 Then
  1285.                sVendorDB = sVendorDBBuffer
  1286.                sVendorDBBuffer = ""
  1287.           Else
  1288.                sVendorDB = Left( sVendorDBBuffer,( iPositionOfChar - 1 ) )
  1289.                sVendorDBBuffer = Right( sVendorDBBuffer,( Len( sVendorDBBuffer ) - iPositionOfChar ) )
  1290.                sVendorDBBuffer = Trim( sVendorDBBuffer )
  1291.           End If
  1292.  '             put vendor name together    
  1293.           sVendorDB = Trim( sVendorDB )
  1294.           sSearchDB = "CP" & sVendorDB
  1295.           sSearchDB = sSearchDB & ".NSF"
  1296.           
  1297.           iVendorCount = iVendorCount - 1
  1298.           
  1299.           iOutputCount = ProcessMultipleTasksCore( sSearchDB,  sOSPlatformWholeList, iTotalCount )
  1300.           
  1301.           'iTotalCount = iOutputCount
  1302.          'iTotalCount = iTotalCount + iOutputCount
  1303.           
  1304.      Wend  ' process a vendors database
  1305.      
  1306.      ProcessMultipleTasks = iTotalCount
  1307. End Function
  1308. '++LotusScript Development Environment:2:1:ProcessMultipleTasksCore:1:8
  1309. Function ProcessMultipleTasksCore( sSearchDB As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  1310.      Dim ThisDoc As NotesUIDocument
  1311.      Dim Workspace As New NotesUIWorkspace
  1312.      Dim DataCollectionTemp As NotesDocumentCollection
  1313.      
  1314.      Dim DataDoc( numscripts ) As NotesDocument
  1315.      Dim DataCollection( numscripts ) As NotesDocumentCollection
  1316.      
  1317.      Dim iMatchFound( numoutputlines, numscripts ) As Integer
  1318.      Dim iMatchDoc( numoutputlines, numscripts ) As Integer
  1319.      
  1320.      Dim bZeroBase As Integer
  1321.      Dim bMaxBase As Integer
  1322.      
  1323.      Dim nTaskCalibration( numscripts ) As Single
  1324.      Dim nTaskHourCalibration( 2 ) As Single
  1325.      Dim nMBHourCalibration( 2 ) As Single
  1326.      
  1327.      Dim iTaskCountSpecification( numscripts ) As Integer
  1328.      Dim iTaskHourSpecification( 2 ) As Integer
  1329.      Dim iMBHourSpecification( 2 ) As Integer
  1330.      
  1331.      Dim sBaseValue As Single
  1332.      Dim sTaskBaseValue As Single
  1333.      Dim sMBBaseValue As Single
  1334.      
  1335.      Dim sLayoutServerTasks As String
  1336.      
  1337.      Dim nCalibratedTaskNumber As Single
  1338.      Dim nCalibratedTaskHour As Single
  1339.      Dim nCalibratedMBHour As Single
  1340.      
  1341.      Dim iCalibratedTaskNumber As Integer
  1342.      Dim iCalibratedTaskHour As Integer
  1343.      Dim iCalibratedMBHour As Integer
  1344.      Dim iTaskCount As Integer
  1345.      
  1346.      Dim sCalibrationTask As String
  1347.      Dim iCountTasks As Integer
  1348.      Dim iPositionOfChar As Integer
  1349.      
  1350.      Dim iTotalCount As Integer
  1351.      Dim sMachineID As String
  1352.      Dim sProcessThisTask As String
  1353.      Dim iNumOutputLines As Integer
  1354.      Dim bMatchFound As Integer
  1355.      
  1356.      Dim sProcessTaskList As String
  1357.      Dim sProcessTaskListTemp As String
  1358.      
  1359.      Set ThisDoc = Workspace.CurrentDocument
  1360.      
  1361.      Set VendorDB = New NotesDatabase( "", sSearchDB )
  1362.      
  1363.      bMatchFound = True   ' flag to exit query if no match found
  1364.      iNumOutputLines = 1
  1365.      
  1366.      bZeroBase = False  '  search begins at user count >  0
  1367.      bMaxBase = True  '  search include a max user count
  1368.      
  1369.      sProcessTaskList = ThisDoc.FieldGetText( "LayoutServerTasks" )
  1370.      
  1371.      iCountTasks = 0            '  keep count of number of scripts actually specified
  1372.      While bMatchFound = True
  1373. '               Need to dynamically build query against response time
  1374. '              extract first tasks to key off search 
  1375.           iPositionOfChar = Instr( 1, sProcessTaskList, ";" )
  1376.           If iPositionOfChar = 0 Then
  1377.                sProcessThisTask = sProcessTaskList    '   reached last entry
  1378.                sProcessTaskList = ""
  1379.           Else 
  1380.                sProcessThisTask = Left( sProcessTaskList,( iPositionOfChar - 1 ) )
  1381.                sProcessTaskList = Right( sProcessTaskList, Len( sProcessTaskList ) - iPositionOfChar )
  1382.                sProcessTaskList = Trim( sProcessTaskList )
  1383.           End If
  1384.           
  1385.           bMaxBase = True  'start from specified base and look upward
  1386.           Dim vTemp As Variant
  1387.           If sProcessThisTask <> "User Tasks" Then
  1388.                If sProcessThisTask = "Replication Hub" Then
  1389.                     vTemp = ThisDoc.Document.LayoutReplHub
  1390.                     Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", _
  1391.                     Cstr(  vTemp( 0 ) ), ThisDoc.FieldGetText( "LayoutReplHour" ), ThisDoc.FieldGetText( "LayoutMBReplHour" ), _
  1392.                     bZeroBase, bMaxBase )
  1393.                Else   'will be mailhub
  1394.                     vTemp = ThisDoc.Document.LayoutMailHub
  1395.                     Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", _
  1396.                     Cstr( vTemp( 0 ) ), ThisDoc.FieldGetText( "LayoutMessagesHour" ), ThisDoc.FieldGetText( "LayoutMBMessagesHour" ), _
  1397.                     bZeroBase, bMaxBase )
  1398.                End If               
  1399.                Set DataCollection( iCountTasks + 1 ) = DataCollectionTemp
  1400.                If DataCollection( iCountTasks + 1 ).Count = 0 Then
  1401.                     iCountTasks = 0
  1402.                     bMatchFound = False
  1403.                End If
  1404.                iCountTasks = iCountTasks + 1
  1405.           Else
  1406.                '  see if any of the user tasks have been specified
  1407.                For i = 1 To 7
  1408.                     If sUserTaskArray( i, 2 ) <> "0" And bMatchFound = True Then
  1409.                          sProcessThisTask = sUserTaskArray( i, 1 )
  1410.                          bZeroBase = False  '  search on user count beginning > 0
  1411.                          Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", sUserTaskArray( i, 2 ), "", "", _
  1412.                          bZeroBase, bMaxBase )
  1413.                          Set DataCollection( iCountTasks + 1 ) = DataCollectionTemp
  1414.                          If DataCollection( iCountTasks + 1 ).Count = 0 Then
  1415.                               iCountTasks = 0
  1416.                               bMatchFound = False
  1417.                          End If
  1418.                          iCountTasks = iCountTasks + 1
  1419.                     End If  
  1420.                Next i
  1421.           End If
  1422.           
  1423.           If sProcessTaskList = "" Then          ' nothing left to process
  1424.                bMatchFound = False
  1425.           End If
  1426.      Wend
  1427.      
  1428.           ' found data assocated with each task?  error encountered?
  1429.      If iCountTasks = 1 Then   '  should always have at least 2 tasks to process
  1430.           ProcessMultipleTasksCore = 0
  1431.           Exit Function
  1432.      End If
  1433.      
  1434.            '  have a collection associated with task and response time and percent range
  1435.            '  now need to determine if a common response time value can be found
  1436.            '  ***( May have to limit query based on more parameters )
  1437.            '  ***( may have to adjust based on output tolerance value )
  1438.            '  *** create generic routine for verifying
  1439.      
  1440.           '  calculate adjust for tolerance range
  1441.      Dim nPercentAdjust As Single
  1442.      Dim nAdjustAmount As Single
  1443.      Dim nAdjustOther11 As Single
  1444.      Dim nAdjustOther21 As Single
  1445.      
  1446.      nPercentAdjust = 0
  1447.      nPercentAdjust = Csng( ThisDoc.FieldGetText( "LayoutTolerance" ) )
  1448.      If nPercentAdjust <> 0 Then
  1449.           nPercentAdjust =( nPercentAdjust ) / 100   '  halve to adjust to go higher and then lower
  1450.      End If
  1451.      
  1452.      For j = 1 To numscripts
  1453.           For i = 1 To numoutputlines
  1454.                iMatchFound( i, j ) = False
  1455.                iMatchDoc( i, j ) = 0
  1456.           Next i
  1457.      Next j
  1458.      
  1459.      For i = 1 To DataCollection( 1 ).Count
  1460.           Set DataDoc( 1 ) = DataCollection( 1 ).GetNthDocument( i )
  1461.           For j = 2 To iCountTasks
  1462.                For k = 1 To DataCollection( j ).Count
  1463.                     Set DataDoc( j ) = DataCollection( j ).GetNthDocument( k )
  1464.                          ' make sure the same machines are compared
  1465.                     vtemp1 = DataDoc( 1 ).GetItemValue( "DataUServerID" )
  1466.                     vtemp2 = DataDoc( j ).GetItemValue( "DataUServerID" )
  1467.                     If vtemp1( 0 ) = vtemp2( 0 ) Then    'keep looking for a match
  1468.                               ' do output tolerance calulations for range
  1469.                          vtempj =( DataDoc( j ).GetItemValue( "DataUAverage" ) ) 
  1470.                          nAdjustAmount = Csng( vtempj( 0 ) ) * nPercentAdjust
  1471.                          vtemp1 =( DataDoc( 1 ).GetItemValue( "DataUAverage" ) ) 
  1472.                          If( Csng( vtemp1( 0 ) )  <= ( Csng( vtempj( 0 ) ) + nAdjustAmount ) )  And( Csng( vtemp1( 0 ) )  => ( Csng( vtempj( 0 ) ) - nAdjustAmount ) )  Then
  1473.                               '  need to do additional validation if Repl Hub and Mail Routing Hub involved
  1474.                               vtemp1 = DataDoc( 1 ).DataUScript1
  1475.                               vtemp2 = DataDoc( 2 ).DataUScript1
  1476.                               If vtemp1( 0 ) = "Replication Hub" And vtemp2( 0 ) = "Mail Routing Hub"  And j = 2 Then
  1477.                                    '  make sure extra parameters are within range
  1478.                                    vtemp211 = DataDoc( 2 ).GetItemValue( "DataUOther11" )
  1479.                                    vtemp221 = DataDoc( 2 ).GetItemValue( "DataUOther21" )
  1480.                                    vtemp111 = DataDoc( 1 ).GetItemValue( "DataUOther11" )
  1481.                                    vtemp121 = DataDoc( 1 ).GetItemValue( "DataUOther21" )
  1482.                                    nAdjustOther11 =  Csng( vtemp211( 0 ) ) * nPercentAdjust
  1483.                                    nAdjustOther21 =  Csng( vtemp221( 0 ) ) * nPercentAdjust
  1484.                                    If( Csng( vtemp111( 0 ) )  <= ( Csng( vtemp211( 0 ) ) + nAdjustOther11 ) )  And ( Csng( vtemp111( 0 ) )  => ( Csng( vtemp211( 0 ) ) - nAdjustOther11 ) ) _
  1485.                                    And ( Csng( vtemp121( 0 ) )  => ( Csng( vtemp221( 0 ) ) - nAdjustOther11 ) )  And ( Csng( vtemp121( 0 ) )  => ( Csng( vtemp221( 0 ) ) - nAdjustOther11 ) ) Then
  1486.                                         iMatchFound( iNumOutputLines, j ) = True
  1487.                                         iMatchDoc( iNumOutputLines, j ) = k  'save doc collection offset
  1488.                                         iMatchDoc( iNumOutputLines, 1 ) = i
  1489.                                    End If
  1490.                               Else
  1491.                                    iMatchFound( iNumOutputLines, j ) = True
  1492.                                    iMatchDoc( iNumOutputLines, j ) = k  'save doc collection offset
  1493.                                    iMatchDoc( iNumOutputLines, 1 ) = i
  1494.                               End If
  1495.                          End If
  1496.                     End If
  1497.                Next k
  1498.           Next j
  1499.           
  1500.           ' if full match made, then increment output count, else zero out 
  1501.           bMatchFound = True
  1502.           If iMatchDoc( iNumOutputLines, 1 ) > 0 Then
  1503.                For j = 2 To iCountTasks
  1504.                     If iMatchFound( iNumOutputLines, j ) <> True Then
  1505.                          bMatchFound = False
  1506.                     End If
  1507.                Next
  1508.           Else
  1509.                bMatchFound = False
  1510.           End If
  1511.           
  1512.           If bMatchFound = True Then   '  complete match found
  1513.                iMatchFound( iNumOutputLines, 1 ) = True    '  flag to show the whole match is made
  1514.                iNumOutputLines = iNumOutputLines + 1
  1515.           Else
  1516.                For j = 1 To iCountTasks
  1517.                     iMatchFound( iNumOutputLines, j ) = False
  1518.                     iMatchDoc( iNumOutputLines, j ) = 0
  1519.                Next j
  1520.           End If
  1521.           
  1522.           If iNumOutputLines = numoutputlines  Then
  1523.                Messagebox "Reached Maximum Number of Matches for Display.  Continuing...", MB_ICONEXCLAMATION, "Query on Database"
  1524.                '***really need to start redim the array
  1525.                i = DataCollection( 1 ).Count
  1526.           End If
  1527.      Next i
  1528.      
  1529.      '   Exit if when through an entire collection and no match was found
  1530.      bMatchFound = False
  1531.      If iMatchDoc( 1, 1 ) > 0 Then
  1532.           bMatchFound = True
  1533.      End If
  1534.      
  1535.      If bMatchFound = False Then
  1536.           ProcessMultipleTasksCore = 0
  1537.           Exit Function
  1538.      End If
  1539.      
  1540.  '  need to determine the first task in the list that everyone is calibrated to
  1541.      bMatchFound = False
  1542.      iTaskCount = 0
  1543.      sLayoutServerTasks = ThisDoc.FieldGetText( "LayoutServerTasks" )
  1544.      sProcessTaskListTemp=sLayoutServerTasks
  1545.      
  1546.      '  if User Tasks then expand
  1547.      iPositionOfChar = Instr( 1, sLayoutServerTasks, "User Tasks" )
  1548.      If iPositionOfChar > 0 Then
  1549.           '  remove User Tasks from the List
  1550.           '  handle case where it is first in list
  1551.           If iPositionOfChar >1 Then
  1552.                sProcessTaskListTemp = Left( sLayoutServerTasks,( iPositionOfChar - 1 ) )
  1553.           Else
  1554.                sProcessTaskListTemp = ""
  1555.           End If    
  1556.           '  add in specific tasks
  1557.           For j = 1 To 7
  1558.                If Cint( sUserTaskArray( j, 2 ) ) > 0 Then
  1559.                     If Len( sProcessTaskListTemp ) > 0 Then
  1560.                          sProcessTaskListTemp = sProcessTaskListTemp + "; "
  1561.                     End If
  1562.                     sProcessTaskListTemp = sProcessTaskListTemp + sUserTaskArray( j, 1 )
  1563.                End If   
  1564.           Next
  1565.           sLayoutServerTasks = Trim( sProcessTaskListTemp )
  1566.      End If
  1567.      
  1568.      While bMatchFound = False
  1569.           iPositionOfChar = Instr( 1, sLayoutServerTasks, ";" )
  1570.           If iPositionOfChar = 0 Then
  1571.                sCalibrationTask = sLayoutServerTasks    '   reached last entry
  1572.                sLayoutServerTasks = ""
  1573.           Else 
  1574.                sCalibrationTask = Left( sLayoutServerTasks,( iPositionOfChar - 1 ) )
  1575.                sLayoutServerTasks = Right( sLayoutServerTasks, Len( sLayoutServerTasks ) - iPositionOfChar )
  1576.                sLayoutServerTasks = Trim( sLayoutServerTasks )
  1577.           End If
  1578.           
  1579.           iTaskCount=iTaskCount+1
  1580.           '  loop for each match found within the vendor db
  1581.           For z = 1 To( iNumOutputLines - 1 )   '  start with the matching entry
  1582.            '  *** need to find a common equation for the values
  1583.                If iMatchFound( z, 1 ) = True Then
  1584.                     For j = 1 To iCountTasks 
  1585.                          Set DataDoc( j ) = DataCollection( j ).GetNthDocument( iMatchDoc( z, j ) )
  1586.                     Next j  
  1587.                     vtemp =( DataDoc( iTaskCount ).GetItemValue( "DataUNumberUsers1" ) )
  1588.                     iBaseValue = Cint( vtemp( 0 ) )
  1589.                     '  need to calibrate task activity/hour and mb/hour for replications and Mail Routing Hub
  1590.                     vtemp1 = DataDoc( 1 ).DataUScript1
  1591.                     vtemp2 = DataDoc( 2 ).DataUScript1
  1592.                     
  1593.                     If vtemp1( 0 ) = "Replication Hub"  And vtemp2( 0 ) = "Mail Routing Hub"Then
  1594.                          vtemp =( DataDoc( 1 ).GetItemValue( "DataUOther11" ) )
  1595.                          iTaskBaseValue = Cint( vtemp( 0 ) )
  1596.                          
  1597.                          vtemp =( DataDoc( 1 ).GetItemValue( "DataUOther21" ) )
  1598.                          iMBBaseValue = Cint( vtemp( 0 ) )
  1599.                          
  1600.                          For j = 1 To 2 '  calibrate repl/hour, mb/hour
  1601.                               vtemp111 =( DataDoc( j ).GetItemValue( "DataUOther11" ) )
  1602.                               vtemp211 =( DataDoc( j ).GetItemValue( "DataUOther21" ) )
  1603.                               If( Cint( vtemp111( 0 ) ) ) <> 0 Then
  1604.                                    nTaskHourCalibration( j ) = iTaskBaseValue / Cint( vtemp111( 0 ) )
  1605.                               End If
  1606.                               If( Cint( vtemp211( 0 ) ) ) <> 0 Then
  1607.                                    nMBHourCalibration( j ) = iMBBaseValue / Cint( vtemp211( 0 ) )
  1608.                               End If
  1609.                          Next j
  1610.                          
  1611.                     End If 
  1612.                     
  1613.                     For j = 1 To iCountTasks     '  till number of scripts specified
  1614.                           '  now start expressing things in terms of the first task processed
  1615.                          vtemp1 = DataDoc( j ).GetItemValue( "DataUNumberUsers1" )
  1616.                          If  Cint( vtemp1( 0 ) ) <> 0 Then
  1617.                               nTaskCalibration( j ) =  iBaseValue /  Cint( vtemp1( 0 ) )
  1618.                          End If
  1619.                     Next j
  1620.                     
  1621.                     For i = 1 To 2
  1622.                          iTaskHourSpecification( i ) = 0
  1623.                     Next i
  1624.                     
  1625.                     '  now need to calibrate in terms of a single task
  1626.                     '  collect user count specification
  1627.                     i = 1
  1628.                     nCalibratedTaskNumber = 0
  1629.                     If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "Replication Hub" ) > 0 Then
  1630.                          vTemp = ThisDoc.Document.LayoutReplHub
  1631.                          If  vTemp( 0 ) <> 0 Then
  1632.                               iTaskCountSpecification( i ) = vTemp( 0 )
  1633.                               nCalibratedTaskNumber = vTemp( 0 )
  1634.                          '  calibrate repl/hour and mb/hour
  1635.                               If ThisDoc.FieldGetText( "LayoutReplHour" ) <> "*" Then
  1636.                                    iTaskHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutReplHour" ) )
  1637.                                    nCalibratedTaskHour = Cint( ThisDoc.FieldGetText( "LayoutReplHour" ) )
  1638.                               End If
  1639.                               If ThisDoc.FieldGetText( "LayoutMBReplHour" ) <> "*" Then
  1640.                                    iMBHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMBReplHour" ) )
  1641.                                    nCalibratedMBHour = Csng( ThisDoc.FieldGetText( "LayoutMBReplHour" ) )
  1642.                               End If 
  1643.                               i = i + 1
  1644.                          End If
  1645.                     End If
  1646.                     If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "Mail Routing Hub" ) > 0 Then
  1647.                          vTemp = ThisDoc.Document.LayoutMailHub
  1648.                          If  vTemp( 0 ) <> 0  Then
  1649.                               iTaskCountSpecification( i ) = vTemp( 0 ) 
  1650.                               nCalibratedTaskNumber = nCalibratedTaskNumber + vTemp( 0 ) * nTaskCalibration( i )
  1651.                           '  calibrate mail/hour and mb/hour
  1652.                               If ThisDoc.FieldGetText( "LayoutMessagesHour" ) <> "*" Then
  1653.                                    iTaskHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMessagesHour" ) )
  1654.                                    nCalibratedTaskHour = nCalibratedTaskHour + Cint( ThisDoc.FieldGetText( "LayoutMessagesHour" ) ) * nTaskHourCalibration( i )
  1655.                               End If
  1656.                               If ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) <> "*" Then
  1657.                                    iMBHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) )
  1658.                                    nCalibratedMBHour = nCalibratedMBHour + Csng( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) ) * nMBHourCalibration( i )
  1659.                               End If
  1660.                               i = i + 1
  1661.                          End If
  1662.                     End If
  1663.                     
  1664.                     For x = 1 To 7
  1665.                          If sUserTaskArray( x, 2 ) <> "0"  Then
  1666.                               iTaskCountSpecification( i ) = Cint( sUserTaskArray( x, 2 ) )
  1667.                               nCalibratedTaskNumber = nCalibratedTaskNumber + (( Cint( sUserTaskArray( x,2 ) ) )  *  nTaskCalibration( i ) )
  1668.                               i = i + 1
  1669.                          End If  
  1670.                     Next
  1671.                     
  1672.                     iCalibratedTaskNumber = Int( nCalibratedTaskNumber )  '  now we have a user count based on one task
  1673.                     
  1674.                     If nCalibratedTaskHour <> 0 Then   'only do if repl hub and Mail Routing Hub
  1675.                          iCalibratedTaskHour = Int( nCalibratedTaskHour )
  1676.                          iCalibratedMBHour = Int( nCalibratedMBHour )
  1677.                     End If
  1678.                     
  1679.                     vtemp1 = DataDoc( 1 ).GetItemValue( "DataUServerID" )   ' only query on this machine
  1680.                     '   can a match be found, need to override the task specification and the user count, rest of the form can be used
  1681.                     '  ***need to convert Other11 and Other21
  1682.                     
  1683.                     If( sCalibrationTask = "Replication Hub" )  Then
  1684.                         'iOutputCount = QueryOnDatabase( sSearchDB, sCalibrationTask, Str( iCalibratedTaskNumber ), ThisDoc.FieldGetText( "LayoutReplHour" ) , ThisDoc.FieldGetText( "LayoutMBReplHour" ), sOSPlatformWholeList, iOutputCount )
  1685.                          iOutputCount = QueryOnDatabase( sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), Cstr( iCalibratedTaskHour ), Cstr( nCalibratedMBHour ), sOSPlatformWholeList, iOutputCount )
  1686.                     Elseif sCalibrationTask = "Mail Routing Hub" Then
  1687.                          iOutputCount = QueryOnDatabase(  sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), Cstr( iCalibratedTaskHour ), Cstr( nCalibratedMBHour ), sOSPlatformWholeList, iOutputCount )
  1688.                     Else                         
  1689.                          For y = 1 To 7
  1690.                               If sCalibrationTask = sUserTaskArray( y, 1 ) Then
  1691.                                    iOutputCount = QueryOnDatabase(  sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), "", "", sOSPlatformWholeList, iOutputCount )
  1692.                               End If
  1693.                          Next y
  1694.                     End If    '  only process if a match was completely found
  1695.                End If
  1696.           Next z
  1697.           If iOutputCount > 0 Or sLayoutServerTasks = "" Then      '  match found
  1698.                bMatchFound = True
  1699.           End If
  1700.      Wend
  1701.      ProcessMultipleTasksCore = iOutputCount + ProcessMultipleTasksCount
  1702.      
  1703. End Function
  1704. '++LotusScript Development Environment:2:1:UserTaskCount:2:8
  1705. Function UserTaskCount( ThisDoc ) As Integer
  1706.     'Dim ThisDoc As NotesUIDocument
  1707.      Dim Workspace As New NotesUIWorkspace
  1708.      
  1709.      'Set ThisDoc = Workspace.CurrentDocument
  1710.      
  1711.      UserTaskCount=0  ' means user tasks option not selected
  1712.      For i = 1 To 7
  1713.           If( Cint( sUserTaskArray( i, 2 ) ) > 0 ) Then
  1714.                UserTaskCount=UserTaskCount + 1
  1715.           End If
  1716.      Next i
  1717. End Function
  1718. '++LotusScript Development Environment:2:2:ZeroFieldOut:2:8
  1719. Sub ZeroFieldOut( ThisDoc As NotesUIDocument, sFieldNameOut As String )
  1720.      If Len( ThisDoc.FieldGetText( sFieldNameOut ) ) = 0 Then
  1721.           Call ThisDoc.FieldSetText( sFieldNameOut, "0" )
  1722.      End If
  1723. End Sub
  1724. '++LotusScript Development Environment:2:1:ExtractVendorName:1:8
  1725. Function ExtractVendorName( sSearchDB As String ) As String
  1726.      
  1727.      ExtractVendorName = Left( sSearchDB,( Len( sSearchDB ) - 4 ) )   '  extract .NSF
  1728.      ExtractVendorName = Right( ExtractVendorName,( Len( ExtractVendorName ) - 2 ) )  '  extract CP prefix
  1729.      
  1730. End Function
  1731. '++LotusScript Development Environment:2:2:UserTaskArrayInitWhole:1:8
  1732. Sub UserTaskArrayInitWhole ( doc As NotesDocument )
  1733.      
  1734.      '  col1 = sProcessThisTask( UI selection ), col2 = associated fieldname contents, col3 = base for fieldname
  1735.      
  1736.      For i = 1 To 7
  1737.           sUserTaskArray( i, 2 ) = "0"
  1738.      Next
  1739.      
  1740.      sUserTaskArray( 1,1 ) = "Mail"
  1741.      sUserTaskArray( 1,3 ) = "LayoutMail"
  1742.      vtemp = doc.Adjust_Mail
  1743.      sUserTaskArray( 1,4 ) = Cstr( vtemp( 0 ) )
  1744.      
  1745.      sUserTaskArray( 2,1 ) = "Mail & Database"
  1746.      sUserTaskArray( 2,3 ) = "LayoutMailDB"
  1747.      vtemp = doc.Adjust_MailDB
  1748.      sUserTaskArray( 2,4 ) = Cstr( vtemp( 0 ) )
  1749.      
  1750.      sUserTaskArray( 3,1 ) = "Groupware #1"
  1751.      sUserTaskArray( 3,3 ) = "LayoutGroupware" 
  1752.      vtemp = doc.Adjust_Groupware
  1753.      sUserTaskArray( 3,4 ) = Cstr( vtemp( 0 ) )
  1754.      
  1755.      sUserTaskArray( 4,1 ) = "Calendar & Scheduling"
  1756.      sUserTaskArray( 4,3 ) = "LayoutCS"
  1757.      vtemp = doc.Adjust_CS
  1758.      sUserTaskArray( 4,4 ) = Cstr( vtemp( 0 ) )
  1759.      
  1760.      sUserTaskArray( 5,1 ) = "Database"
  1761.      sUserTaskArray( 5,3 ) = "LayoutDatabase"
  1762.      vtemp = doc.Adjust_Database
  1763.      sUserTaskArray( 5,4 ) = Cstr( vtemp( 0 ) )
  1764.      
  1765.      sUserTaskArray( 6,1 ) = "Web Walker"
  1766.      sUserTaskArray( 6,3 ) = "LayoutWW"
  1767.      vtemp = doc.Adjust_WW
  1768.      sUserTaskArray( 6,4 ) = Cstr( vtemp( 0 ) )
  1769.      
  1770.      sUserTaskArray( 7,1 ) = "Web Buyer"
  1771.      sUserTaskArray( 7,3 ) = "LayoutWB"
  1772.      vtemp = doc.Adjust_WB
  1773.      sUserTaskArray( 7,4 ) = Cstr( vtemp( 0 ) )
  1774.      
  1775.      sUserTaskArray( 8,1 ) = "Full Text Search"
  1776.      'sUserTaskArray( 8,2 ) = ThisDoc.FieldGetText( "LayoutFTSearch" )
  1777.      sUserTaskArray( 8,3 ) = "LayoutFTSearch"
  1778.      
  1779.      
  1780. End Sub
  1781. T    T    L
  1782.  (!(!
  1783. '0$d&
  1784. h!h!|
  1785. "@#|)
  1786. P#`$\*
  1787. $P$|(
  1788. $x%|,
  1789. ^8!J8!
  1790. ^H!KX!-@
  1791. ^`$KH!,`
  1792. ^0$J`$
  1793. ^0$J`$
  1794. ^`$J`$
  1795. ^`$J`$
  1796. $KH!-h
  1797. ^h!)X
  1798. KH!,`
  1799. #KH!,`
  1800. $KH!-h
  1801. ^h!)X
  1802. KH!,`
  1803. #KH!,`
  1804. ^h!)X
  1805. KH!,`
  1806. ^h%4E
  1807. ^X%4+
  1808. ox!JH%
  1809. ox!,h
  1810. ox!,h
  1811. ox!,h
  1812. ox!,h
  1813. ox!,h
  1814. ox!,h
  1815. ox!,h
  1816. ox!,h
  1817. ^$&4)
  1818. ^4&4+
  1819. ^D&6g
  1820. ^`#KH!,`
  1821. ^p$J`#
  1822. ^p$J`#
  1823. ^T&4O
  1824. ^p$Jp$}
  1825. ^p$Jp$JH%
  1826. ^`#Jp$
  1827. ^`#J`#
  1828. ^`#J`#
  1829. ^t&4+
  1830. ox!JH%
  1831. ox!,h
  1832. ox!,h
  1833. ox!,h
  1834. ox!,h
  1835. ox!,h
  1836. ox!,h
  1837. KH!,`
  1838. $KH!-h
  1839. KH!,`
  1840. "KH!,`
  1841. KH!,`
  1842. KH!,`
  1843. #KH!,`
  1844. KH!,`
  1845. KH!,`
  1846. $KH!-h
  1847. KH!,`
  1848. "KH!,`
  1849. KH!,`
  1850. KH!,`
  1851. #KH!,`
  1852. KH!,`
  1853. ox!,h
  1854. ^$'6%
  1855. '++LotusScript Development Environment:2:5:(Options):0:66
  1856. '++LotusScript Development Environment:2:5:(Forward):0:1
  1857. Declare Sub Click( Source As Button )
  1858. Declare Function ProcessOneTask( sVendorDBBuffer As String, sOSPlatformWholeList As String )  As Integer
  1859. Declare Sub Initialize
  1860. Declare Function SearchForPossibleMatches( sLayoutServerTasks As String,  sSearchDB As String, sMachineID As String, sUserCount As String, sOther11 As String, sOther21 As String, bZeroBase As Integer, bMaxBase As Integer )  As NotesDocumentCollection 
  1861. Declare Function VerifyForm( sOSPlatform As String ) As Integer
  1862. Declare Function QueryOnDatabase( sSearchDB As String,  sMachineID As String, sLayoutServerTasks As String, sUserCount As String, sOther11 As String, sOther21 As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  1863. Declare Function ProcessMultipleTasks( sVendorDBBuffer As String, sOSPlatformWholeList As String ) As Integer
  1864. Declare Function ProcessMultipleTasksCore( sSearchDB As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  1865. Declare Function UserTaskCount( ThisDoc ) As Integer
  1866. Declare Sub ZeroFieldOut( ThisDoc As NotesUIDocument, sFieldNameOut As String )
  1867. Declare Function ExtractVendorName( sSearchDB As String ) As String
  1868. Declare Sub UserTaskArrayInitWhole ( doc As NotesDocument )
  1869. '++LotusScript Development Environment:2:5:(Declarations):0:10
  1870. %INCLUDE "pstoarr.lss" 
  1871. Const MB_YESNO = 4
  1872. Const IDYES = 6
  1873. Const IDNO = 7
  1874. Const MB_ICONEXCLAMATION = 48
  1875. Const MB_ICONINFORMATION = 64
  1876. Const MB_ICONQUESTION = 32
  1877. Const numscripts = 10
  1878. '++LotusScript Development Environment:2:2:BindEvents:1:129
  1879. Private Sub BindEvents(Byval Objectname_ As String)
  1880.      Static Source As BUTTON
  1881.      Set Source = Bind(Objectname_)
  1882.      On Event Click From Source Call Click
  1883. End Sub
  1884. '++LotusScript Development Environment:2:2:Click:1:12
  1885. Sub Click( Source As Button )
  1886.      Dim Workspace As New NotesUIWorkspace
  1887.      Dim ThisDoc As NotesUIDocument
  1888.      Dim DateTime As New NotesDateTime( "1/1/96" )
  1889.      Dim Session As New NotesSession
  1890.      Dim CurrentView As NotesView
  1891.      Dim doc As NotesDocument
  1892.      
  1893.      Dim sOSPlatformWholeList As String
  1894.      Dim sServerTasks As String
  1895.      Dim VendorDBBuffer As String
  1896.      Dim iPositionOfChar As Integer
  1897.      Dim iOutputCount As Integer
  1898.      Dim sSearchDB As String
  1899.      
  1900.      Set CurrentDB = Session.CurrentDatabase
  1901.      Set CurrentView = CurrentDB.GetView( "(List)" )
  1902.      Set doc = CurrentView.GetFirstDocument
  1903.      If doc Is Nothing Then
  1904.           Messagebox "List Information Missing", MB_ICONEXCLAMATION, "Query on Data"
  1905.           Exit Sub
  1906.      End If
  1907.      While doc.ListType( 0 ) <> "Database"
  1908.           Set doc = CurrentView.GetNextDocument( doc )
  1909.           If doc Is Nothing Then
  1910.                Messagebox "Vendor Database List Information Missing", MB_ICONEXCLAMATION, "Query on Data"
  1911.                Exit Sub
  1912.           End If
  1913.      Wend
  1914.      Set ThisDoc = Workspace.CurrentDocument
  1915.      
  1916.       '  extract rule of thumb information
  1917.      Set CurrentView = CurrentDB.GetView( "Conversion Guidelines" )
  1918.      Set doc = CurrentView.GetFirstDocument
  1919.      If doc Is Nothing Then
  1920.           Messagebox "Conversion Guidelines Document Missing", MB_ICONEXCLAMATION, "Query on Data"
  1921.           Exit Sub
  1922.      End If
  1923.      While doc.Profile( 0 ) <> "Default"
  1924.           Set doc = CurrentView.GetNextDocument( doc )
  1925.           If doc Is Nothing Then
  1926.                Messagebox "Conversion Guidelines Document Missing", MB_ICONEXCLAMATION, "Query on Data"
  1927.                Exit Sub
  1928.           End If
  1929.      Wend
  1930.      
  1931.      vtemp = doc.Adjust_ReplHub
  1932.      nAdjust_ReplHub = vtemp( 0 )
  1933.      vtemp = doc.Adjust_MailHub
  1934.      nAdjust_MailHub = vtemp( 0 )
  1935.      
  1936.      Call UserTaskArrayInitWhole (doc)
  1937.      
  1938.      If VerifyForm( sOSPlatformWholeList ) = False Then
  1939.           Exit Sub
  1940.      End If
  1941.      
  1942.      Set ListDoc =  CreateList( )         '  insure List form is present and up-to-date
  1943.      
  1944.      
  1945.      sOSPlatformWholeList = ThisDoc.FieldGetText( "LayoutOSPlatform" )
  1946.      If sOSPlatformWholeList = "" Then
  1947.           sOSPlatformWholeList = "AIX/RS6000; AIX/SP2;  HP-UX; NetWare 3.12; Netware 4.1; NT 3.51; NT 4.0; OS/2 2.11 SMP; OS/2 Warp Connect; OS/2 Warp Server 4.0; Solaris 2.5; Win95 1.0"
  1948.      End If
  1949.      
  1950.       'clear out the graphs as they won't be in sync with the output table generated
  1951.      ThisDoc.GoToField( "LayoutCostChart" )
  1952.      ThisDoc.FieldClear( "LayoutCostChart" )
  1953.      
  1954.      ThisDoc.GoToField( "LayoutCostSheet" )
  1955.      ThisDoc.FieldClear( "LayoutCostSheet" )
  1956.      
  1957.      ThisDoc.GoToField( "LayoutResponseChart" )
  1958.      ThisDoc.FieldClear( "LayoutResponseChart" )
  1959.      
  1960.      ThisDoc.GoToField( "LayoutResponseSheet" )
  1961.      ThisDoc.FieldClear( "LayoutResponseSheet" )
  1962.      
  1963.      ThisDoc.GoToField( sFieldName )  '  position back at current field temporarily
  1964.      
  1965.  '    query against database
  1966.      VendorDBBuffer = ThisDoc.FieldGetText( "VendorList" )
  1967.      If Len( VendorDBBuffer ) = 0 Then
  1968.  '        Messagebox "no vendors selected"
  1969.  '        insert all vendors into list     
  1970.  '        Find the list document which contains the dynamic list
  1971.           If doc Is Nothing Then
  1972.                Messagebox "No Vendors Selected/Found", MB_ICONEXCLAMATION, "Query on Data"
  1973.           Else
  1974.                While Not( doc Is Nothing )
  1975.                     If doc.ListType( 0 ) = "Database" Then
  1976.                          Set Listdoc = doc
  1977.                          If Listdoc.list( 0 ) = "" Then
  1978.                               Messagebox "Warning:  No Vendor Databases to Search", MB_ICONEXCLAMATION, "Database Search"
  1979.                               ThisDoc.GotoField( "LayoutServerTasks" )
  1980.                               Exit Sub
  1981.                          End If
  1982.                          
  1983.                          Forall vendorname In Listdoc.list 
  1984. '                             format the string, separated by ;
  1985.                               If vendorname <> "" Then
  1986.                                    If VendorDBBuffer <> "" Then
  1987.                                         VendorDBBuffer = VendorDBBuffer & " ; "  
  1988.                                    End If
  1989.                                    VendorDBBuffer = VendorDBBuffer & vendorname
  1990.                               End If
  1991.                          End Forall
  1992.                     End If
  1993.                     Set doc = CurrentView.GetNextDocument( doc )
  1994.                Wend
  1995.           End If
  1996.      End If
  1997.      
  1998.      '  count the vendors selected.  make sure there is always room for one entry each vendor
  1999.      iVendorCount = 0
  2000.      iPositionOfChar = 1
  2001.      While iPositionOfChar <> 0
  2002.           iPositionOfChar = Instr( iPositionOfChar, VendorDBBuffer, ";" )
  2003.           If iPositionOfChar <> 0 Then
  2004.                iPositionOfChar = iPositionOfChar + 1
  2005.           End If
  2006.           iVendorCount = iVendorCount + 1
  2007.      Wend
  2008.      
  2009.      If iVendorCount > numoutputlines Then       'currently limit set at 10 output values
  2010.           Messagebox "The number of output information exceeds the current display.  You should adjust your query specifications.",  MB_ICONEXCLAMATION, "Output Limit Reached"
  2011.           ThisDoc.GotoField( "VendorList" )
  2012.           Exit Sub
  2013.      End If
  2014.      
  2015. '    initialize queryid field    
  2016.      RandomValue = Cstr( Year( Today ) + Month( Today ) * 50 + Day( Today ) + Hour( Time ) * 360 + Minute( Time ) * 60 + Second( Time ) )
  2017. '    Need **** to verify that random value is unique , verify it for this document and anywhere it is stored
  2018.      ThisDoc.document.queryid =  RandomValue
  2019.      
  2020.      '  Calculate total amount specified
  2021.      nTotalAmt = Csng( ThisDoc.FieldGetText( "OtherAmt1" ) ) + Csng( ThisDoc.FieldGetText( "OtherAmt2" ) ) + Csng( ThisDoc.FieldGetText( "OtherAmt3" ) )
  2022.      
  2023.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), ";" ) = 0 And UserTaskCount( ThisDoc ) < 2 Then
  2024.           ' only one server task specified?
  2025.           iOutputCount = ProcessOneTask( VendorDBBuffer, sOSPlatformWholeList )
  2026.      Else 
  2027.           iOutputCount = ProcessMultipleTasks( VendorDBBuffer, sOSPlatformWholeList )
  2028.      End If
  2029.      
  2030.      If iOutputCount = 0  Then
  2031.           Messagebox " No Query Results Found", MB_ICONEXCLAMATION,  "Query Results"
  2032.      End If
  2033.      
  2034.      '     output total count of documents processed     
  2035.      ThisDoc.document.numresults = Cstr( iOutputCount )
  2036.      'Messagebox(ThisDoc.FieldGetText("OutResults1"))
  2037.      
  2038.      If iOutputCount > 0 Then
  2039.           ThisDoc.GoToField( "OutResults1_2")
  2040.      End If
  2041.      
  2042. End Sub
  2043. '++LotusScript Development Environment:2:1:ProcessOneTask:2:8
  2044. Function ProcessOneTask( sVendorDBBuffer As String, sOSPlatformWholeList As String )  As Integer
  2045.           ' accept query parameters for one task
  2046.      '  return results which will then need to be processed
  2047.      
  2048.      Dim ThisDoc As NotesUIDocument
  2049.      Dim Workspace As New NotesUIWorkspace
  2050.      
  2051.      Dim iPositionOfChar As Integer
  2052.      Dim iOutputCount As Integer
  2053.      Dim iTotalCount As Integer
  2054.      Dim sSearchDB As String
  2055.      
  2056.      Set ThisDoc = Workspace.CurrentDocument
  2057.      
  2058.      iOutputCount = 0
  2059.      iTotalCount = 0
  2060.      
  2061.      While Len( sVendorDBBuffer )  > 0
  2062.  '        extract filename only
  2063.           iPositionOfChar = Instr( 1, sVendorDBBuffer, ";" )
  2064.           If iPositionOfChar = 0 Then
  2065.                sVendorDB = sVendorDBBuffer
  2066.           Else
  2067.                sVendorDB = Left( sVendorDBBuffer,( iPositionOfChar - 1 ) )
  2068.           End If
  2069.           
  2070.           sVendorDB = Trim( sVendorDB )
  2071.           sSearchDB = "CP" & sVendorDB
  2072.           sSearchDB = sSearchDB & ".NSF"
  2073.           
  2074.           iVendorCount = iVendorCount - 1
  2075.           
  2076.           'Print Datatype (ThisDoc.Document.LayoutReplHub)
  2077.           Dim vTemp As Variant
  2078.           If( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "Replication Hub" ) Then
  2079.                vTemp = ThisDoc.Document.LayoutReplHub
  2080.          '               iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), ThisDoc.FieldGetText( "LayoutReplHub" ), ThisDoc.FieldGetText( "LayoutReplHour" ), ThisDoc.FieldGetText( "LayoutMBReplHour" ), sOSPlatformWholeList, iOutputCount )
  2081.               '[ iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( ThisDoc.Document.LayoutReplHub ), "*", "*", sOSPlatformWholeList, iOutputCount )
  2082.                iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( vTemp( 0 ) ), "*", "*", sOSPlatformWholeList, iOutputCount )
  2083.           Elseif( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "Mail Routing Hub" ) Then
  2084.                vTemp = ThisDoc.Document.LayoutMailHub
  2085. '               iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), ThisDoc.FieldGetText( "LayoutMailHub" ), ThisDoc.FieldGetText( "LayoutMessagesHour" ), ThisDoc.FieldGetText( "LayoutMBMessagesHour" ),sOSPlatformWholeList, iOutputCount )
  2086.                iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( vTemp( 0 ) ), "*", "*",sOSPlatformWholeList, iOutputCount )
  2087.           Elseif( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "User Tasks" ) Then
  2088.                For i = 1 To 7
  2089.                     If sUserTaskArray( i, 2 ) <> "0" Then
  2090.                          vTemp = ThisDoc.Document.LayoutNumActiveUsers
  2091.                          iOutputCount = QueryOnDatabase( sSearchDB, "",   sUserTaskArray( i, 1 ), Cstr( vTemp( 0 ) ), "", "", sOSPlatformWholeList, iOutputCount )
  2092.                          i = 7
  2093.                     End If
  2094.                Next i
  2095.           End If
  2096.           
  2097.  '        process next filename          
  2098.           If iPositionOfChar = 0 Then
  2099.                sVendorDBBuffer = ""
  2100.           Else
  2101.                sVendorDBBuffer = Trim( Right( sVendorDBBuffer, Len( sVendorDBBuffer )- iPositionOfChar ) )
  2102.           End If
  2103.           
  2104.           iTotalCount = iOutputCount
  2105.           'iTotalCount = iTotalCount + iOutputCount   '  roll up total across all vendors
  2106.      Wend
  2107.      
  2108.      ProcessOneTask = iTotalCount
  2109.      
  2110. End Function
  2111. '++LotusScript Development Environment:2:2:Initialize:1:10
  2112. Sub Initialize
  2113.      
  2114. End Sub
  2115. '++LotusScript Development Environment:2:1:SearchForPossibleMatches:2:8
  2116. Function SearchForPossibleMatches( sLayoutServerTasks As String,  sSearchDB As String, sMachineID As String, sUserCount As String, sOther11 As String, sOther21 As String, bZeroBase As Integer, bMaxBase As Integer )  As NotesDocumentCollection 
  2117. '     iOutputCount keeps track of number of output entries     
  2118.      Dim ThisDoc As NotesUIDocument
  2119.      Dim Workspace As New NotesUIWorkspace
  2120.      Dim DateTime As New NotesDateTime( "1/1/96" )
  2121.      Dim VendorDB As NotesDatabase
  2122.      
  2123.      Set ThisDoc = Workspace.CurrentDocument
  2124.      Set VendorDB = New NotesDatabase( "", sSearchDB )
  2125.      
  2126. '         process specific database
  2127. '         Need to dynamically build query
  2128.      
  2129.      SearchFormula$ =  "Form = " & {"} & "Vendor Data" & {"}
  2130.      
  2131.      nSearchTolerance = Csng( ThisDoc.FieldGetText( "LayoutTolerance" ) )
  2132.      'nSearchTolerance =(( nSearchTolerance/2 ) / 100 )        ' now a percent
  2133.      nSearchTolerance =(( nSearchTolerance ) / 100 )        ' now a percent
  2134.      
  2135.      ' adjust sUserCount value translating real life-> benchmark  
  2136.      If sLayoutServerTasks = "Replication Hub" Then
  2137.           sUserCount = Cstr( Cint( sUserCount ) * nAdjust_ReplHub )
  2138.      Elseif sLayoutServerTasks = "Replication Hub" Then
  2139.           sUserCount = Cstr( Cint( sUserCount ) * nAdjust_MailHub )
  2140.      Else
  2141.           For i = 1 To 7
  2142.                If sLayoutServerTasks = sUserTaskArray( i, 1 ) Then
  2143.                     sUserCount = Cstr(( Cint( sUserCount ) * Cint( sUserTaskArray( i, 4 ) ) ) )
  2144.                End If
  2145.           Next
  2146.      End If
  2147.      
  2148.      If sLayoutServerTasks = "Replication Hub"  Or  sLayoutServerTasks = "Mail Routing Hub" Then
  2149.                      ' Server Task
  2150.           SearchFormula$ = SearchFormula$ + " & DataUScript1  =  "+  {"} + sLayoutServerTasks +  {"}   
  2151.           
  2152.           ' Hub count with tolerance adjustment
  2153.           '  handle case where base for search should start at 0
  2154.           nUpper =  Cint( sUserCount ) +( Cint( sUserCount ) * nSearchTolerance )
  2155.           nLower =  Cint( sUserCount ) -( Cint( sUserCount ) * nSearchTolerance )
  2156.           If Cint( nLower ) = Cint( nUpper ) Then
  2157.                If bZeroBase = False Then
  2158.                     SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  =  "+  Cstr( Cint( nLower ) ) 
  2159.                Else
  2160.                     SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr( 0 ) 
  2161.                End If
  2162.           Else
  2163.                If bZeroBase = False Then
  2164.                     If bMaxBase = False Then
  2165.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  2166.                     Else
  2167.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  
  2168.                     End If
  2169.                Else           '  start search with > 0 users    
  2170.                     ' check if there is a max number of users to be searched for
  2171.                     '  False means that check for a defined limit
  2172.                     If bMaxBase = False Then
  2173.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  " +  Cstr( 0 )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  2174.                     Else
  2175.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  " +  Cstr( 0 )  
  2176.                     End If           
  2177.                End If
  2178.           End If
  2179.           
  2180.           
  2181.           '  Replications/Hour with tolerance adjustment
  2182.           If sOther11 <> "*"  And sOther11 <> "0" Then        ' don't process wildcard
  2183.                nUpper =  Cint( sOther11 ) +( Cint( sOther11 ) * nSearchTolerance )
  2184.                nLower =  Cint( sOther11 ) -( Cint( sOther11 ) * nSearchTolerance )
  2185.                If Cint( nLower ) = Cint( nUpper ) Then
  2186.                     SearchFormula$ = SearchFormula$ + " & DataUOther11  = " +  Cstr( Cint( nLower ) ) 
  2187.                Else
  2188.                     SearchFormula$ = SearchFormula$ + " & DataUOther11  > " +  Cstr(( Cint( nLower ) - 1 ) )  & " & DataUOther11  < " +  Cstr(( Cint( nUpper ) + 1 ) )
  2189.                End If
  2190.           End If
  2191.           
  2192.           ' MB Replications/Hour with tolerance adjustment
  2193.           If sOther21 <> "*"  And sOther21 <> "0" Then        ' don't process wildcard
  2194.                nUpper =  Cint( sOther21 ) +( Cint( sOther21 ) * nSearchTolerance )
  2195.                nLower =  Cint( sOther21 ) -( Cint( sOther21 ) * nSearchTolerance )
  2196.                If Cint( nLower ) = Cint( nUpper ) Then
  2197.                     SearchFormula$ = SearchFormula$ + " & DataUOther21  >" +  Cstr( Cint( nLower ) ) 
  2198.                Else
  2199.                     SearchFormula$ = SearchFormula$ + " & DataUOther21  > " +  Cstr(( Cint( nLower ) - 1 ) )  & "DataUOther21  < " +  Cstr(( Cint( nUpper ) + 1 ) )
  2200.                End If
  2201.           End If
  2202.      Else
  2203.           If ThisDoc.FieldGetText( "LayoutNumActiveUsers" ) <> "" Then
  2204.                ' User count with tolerance adjustment
  2205.                nUpper =  Cint( sUserCount ) +( Cint( sUserCount ) * nSearchTolerance )
  2206.                nLower =  Cint( sUserCount ) -( Cint( sUserCount ) * nSearchTolerance )
  2207.                If Cint( nLower ) = Cint( nUpper ) Then
  2208.                     If bZeroBase = False Then
  2209.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  =  "+  Cstr( Cint( nLower ) ) 
  2210.                     Else
  2211.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr( 0 ) 
  2212.                     End If
  2213.                Else
  2214.                     If bZeroBase = False Then
  2215.                          If bMaxBase = False Then
  2216.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  2217.                          Else
  2218.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  
  2219.                          End If
  2220.                     Else  
  2221.                          If bMaxBase = False Then
  2222.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  2223.                          Else   
  2224.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )                           
  2225.                          End If
  2226.                     End If
  2227.                End If
  2228.                 ' User Task
  2229.                SearchFormula$ = SearchFormula$ + " & DataUScript1  =  "+  {"} +  sLayoutServerTasks +  {"}   
  2230.           End If
  2231.      End If
  2232.      
  2233.      If sMachineID <> "" Then
  2234.           SearchFormula$ = SearchFormula$ + " & DataUServerID  =  "+  {"} +  SMachineID +  {"}   
  2235.      End If
  2236.      
  2237.      If ThisDoc.FieldGetText( "LayoutUserResponseTime" )  <> "" Then
  2238.           If ThisDoc.FieldGetText( "LayoutUserResponseTime" )  = "Fast ( < 1 sec)" Then
  2239.                SearchFormula$ = SearchFormula$ + " &( DataUPercentFast * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" )  
  2240.           Elseif ThisDoc.FieldGetText( "LayoutUserResponseTime" )  = "Medium (1 - 3 sec)" Then
  2241.                SearchFormula$ = SearchFormula$ + " &( DataUPercentMedium * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" ) 
  2242.           Elseif ThisDoc.FieldGetText( "LayoutUserResponseTime" )  =  "Slow (3.1 - 5 sec)" Then
  2243.                SearchFormula$ = SearchFormula$ + " &( DataUPercentSlow * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" ) 
  2244.           End If
  2245.      End If
  2246.      '          end of query
  2247.      
  2248.      '  keep track of vendors search.  decrement vendor count for each one searched
  2249.      '  must make sure each vendor is represented
  2250.      If i = numoutputlines Then
  2251.           i = 1     ' wrap around
  2252.      Else
  2253.           i = i + 1
  2254.      End If 
  2255.      
  2256.      Set SearchForPossibleMatches = VendorDB.Search( SearchFormula$, DateTime, 0 )
  2257.      
  2258. End Function
  2259. '++LotusScript Development Environment:2:1:VerifyForm:1:8
  2260. Function VerifyForm( sOSPlatform As String ) As Integer
  2261.      Dim ThisDoc As NotesUIDocument
  2262.      Dim Workspace As New NotesUIWorkspace
  2263.      
  2264.      Dim lBoxType As Long
  2265.      Dim iAnswer As Integer
  2266.      Dim vPlatformArray As Variant
  2267.      Dim i As Integer
  2268.      Dim j As Integer
  2269.      Dim sFieldNameOut As String
  2270.      
  2271.      Set ThisDoc = Workspace.CurrentDocument
  2272.      
  2273.      ThisDoc.document.OutSummary = ""
  2274.      
  2275.      ThisDoc.document.OutResults1 = ""
  2276.      For i = 1 To numoutputlines
  2277.           sFieldNameOut = "OutResults"& Cstr( i )
  2278.           Call ThisDoc.FieldSetText( sFieldNameOut, "" )
  2279.           For j = 1 To 6
  2280.                If j <> 5 Then      'somehow I skipped 5 - big mistake!
  2281.                     sFieldNameOutx = sFieldNameOut & "_" & Cstr( j )
  2282.                     Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  2283.                End If
  2284.           Next j
  2285.      Next i
  2286.      
  2287.  '    Server Tasks or User Tasks need to have a value
  2288.      If Len( ThisDoc.FieldGetText( "LayoutServerTasks" ) ) = 0 Then
  2289.           Messagebox "Enter Task( s ) Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  2290.           ThisDoc.GotoField( "LayoutServerTasks" )
  2291.           VerifyForm = False
  2292.           Exit Function
  2293.      End If
  2294.      
  2295.      For j = 1 To 7
  2296.           For i = 1 To 3
  2297.                                '  make sure each field has at least a "0"
  2298.                sTempName$ = sUserTaskArray( j, 3 ) + "_" + Cstr( i ) 
  2299.                Call ZeroFieldOut( ThisDoc, sTempName$ )
  2300.           Next i
  2301.      Next j
  2302.      
  2303.  '    make sure data associated with Server Tasks is filled in
  2304.      '  check on replhub
  2305.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "R" ) > 0 Then
  2306.           If Len( ThisDoc.FieldGetText( "LayoutReplHour" ) ) = 0 Then
  2307.                Messagebox "Enter Replications/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  2308.                ThisDoc.GotoField( "LayoutReplHour" )
  2309.                VerifyForm = False
  2310.                Exit Function
  2311.           End If
  2312.           If Len( ThisDoc.FieldGetText( "LayoutMBReplHour" ) ) = 0 Then
  2313.                Messagebox "Enter MB Replicated/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  2314.                ThisDoc.GotoField( "LayoutMBReplHour" )
  2315.                VerifyForm = False
  2316.                Exit Function
  2317.           End If
  2318.      End If
  2319.           '  check on mailhub
  2320.      If  Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "M" ) > 0  Then
  2321.           If Len( ThisDoc.FieldGetText( "LayoutMessagesHour" ) ) = 0 Then
  2322.                Messagebox "Enter Messages/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  2323.                ThisDoc.GotoField( "LayoutMessagesHour" )
  2324.                VerifyForm = False
  2325.                Exit Function
  2326.           End If
  2327.           If Len( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) ) = 0 Then
  2328.                Messagebox "Enter MB Messages/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  2329.                ThisDoc.GotoField( "LayoutMBMessagesHour" )
  2330.                VerifyForm = False
  2331.                Exit Function
  2332.           End If
  2333.      End If
  2334.           '  check on user tasks
  2335.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ),  "U" ) > 0  Then
  2336.           
  2337.           If VerifyProfileMaster( ThisDoc ) = False Then
  2338.                Exit Function
  2339.           End If
  2340.           
  2341.            ' passes( almost ) all tests.  If User Tasks is specified, sum up the results
  2342.           Dim iTemp As Integer
  2343.           For i = 1 To 7
  2344.                iTemp = 0
  2345.                For j = 1 To 3
  2346.                     sTempName$ = sUserTaskArray( i, 3 ) + "_" + Cstr( j )
  2347.                     sTempProfile$ = "LayoutTotalProfile_" + Cstr( j )
  2348.                     ' storing the user count
  2349.                     iTemp =( Cint( ThisDoc.FieldGetText( sTempName$ ) )/100 ) *( Cint( ThisDoc.FieldGetText( sTempProfile$ ) ) ) + iTemp
  2350.                Next j
  2351.                sTempName$ = sUserTaskArray( i, 3 ) 
  2352.                Call ThisDoc.FieldSetText( sTempName$, Cstr( iTemp ) )
  2353.                '  workaround
  2354.                If i = 1 Then
  2355.                     Call ThisDoc.FieldSetText( "LayoutMail", Cstr( iTemp ) )
  2356.                Elseif i = 2 Then
  2357.                     Call ThisDoc.FieldSetText( "LayoutMailDB", Cstr( iTemp ) )
  2358.                Elseif i = 3 Then
  2359.                     Call ThisDoc.FieldSetText( "LayoutGroupware", Cstr( iTemp ) )
  2360.                Elseif i = 4 Then
  2361.                     Call ThisDoc.FieldSetText( "LayoutCS", Cstr( iTemp ) )
  2362.                Elseif i = 5 Then
  2363.                     Call ThisDoc.FieldSetText( "LayoutDatabase", Cstr( iTemp ) )
  2364.                Elseif i = 6 Then
  2365.                     Call ThisDoc.FieldSetText( "LayoutWW", Cstr( iTemp ) )
  2366.                Elseif i = 7 Then
  2367.                     Call ThisDoc.FieldSetText( "LayoutWB", Cstr( iTemp ) )
  2368.                End If
  2369.                '  insert information into summary field
  2370.                sUserTaskArray( i, 2 ) = Cstr( iTemp )
  2371.           Next i
  2372.           
  2373.      End If
  2374.      
  2375.  '    % Fall within range 
  2376.  '    Make sure this is set    
  2377.      LayoutPercentRange =  ThisDoc.FieldGetText( "LayoutPercentRange" )
  2378. '     Messagebox LayoutPercentRange
  2379.      If LayoutPercentRange = "" Then
  2380.           Messagebox "Enter Percent Range", MB_ICONEXCLAMATION, "Verify Form"
  2381.           ThisDoc.GotoField( "LayoutPercentRange" )
  2382.           VerifyForm = False
  2383.           Exit Function
  2384.      End If
  2385.      
  2386. '    User Response Time
  2387.      ResponseTimeFlag$ =  ThisDoc.FieldGetText( "LayoutUserResponseTime" )
  2388.      If ResponseTimeFlag$ = "" Then
  2389.           Messagebox "Enter Response Time", MB_ICONEXCLAMATION, "Verify Form"
  2390.           ThisDoc.GotoField( "LayoutUserResponseTime" )
  2391.           VerifyForm = False
  2392.           Exit Function
  2393.      End If
  2394.      
  2395.  '    OS Platform Parsing
  2396.      If ThisDoc.FieldGetText( "LayoutOSPlatform" ) = "" Then
  2397.           Messagebox "Specify OS Platform(s)", MB_ICONEXCLAMATION, "Query on Data"
  2398.           ThisDoc.Gotofield( "LayoutOSPlatform" )
  2399.      End If
  2400.      
  2401.      
  2402.      VerifyForm = True
  2403.      
  2404. End Function
  2405. '++LotusScript Development Environment:2:1:QueryOnDatabase:1:8
  2406. Function QueryOnDatabase( sSearchDB As String,  sMachineID As String, sLayoutServerTasks As String, sUserCount As String, sOther11 As String, sOther21 As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  2407. '     iOutputCount keeps track of number of output entries     
  2408.      Dim Workspace As New NotesUIWorkspace
  2409.      Dim ThisDoc As NotesUIDocument
  2410.      Dim DateTime As New NotesDateTime( "1/1/96" )
  2411.      Dim DataCollection As NotesDocumentCollection
  2412.      Dim MachineIDDoc As NotesDocument
  2413.      Dim DataDoc As NotesDocument
  2414.      Dim RTItem As NotesRichTextItem
  2415.      Dim sFieldNameOutOut As String
  2416.      
  2417.      Dim iPositionOfChar As Integer
  2418.      Dim iSkipCount As Integer
  2419.      Dim bZeroBase As Integer
  2420.      Dim bMaxBase As Integer
  2421.      Dim sCPUInfo As String
  2422.      Dim sMachineID2 As String
  2423.      Dim vVendorDB As Variant
  2424.      Dim vTemp1 As Variant
  2425.      Dim vTemp2 As Variant
  2426.      
  2427.      Dim nUpper As Single
  2428.      Dim nLower As Single
  2429.      Dim nSearchTolerance As Single
  2430.      
  2431.      Dim dDataUPercentFast As Double
  2432.      Dim dDataUPercentMedium As Double
  2433.      Dim dLayoutPercentRange As Double
  2434.      
  2435.      Set ThisDoc = Workspace.CurrentDocument
  2436.      
  2437.      temp = Trim( sSearchDB )
  2438.      sMachineID2 = sMachineID    '  save off original machine name
  2439.      
  2440.      Set VendorDB = New NotesDatabase( "", Trim( sSearchDB ) )
  2441.      
  2442.      bQueryFlag = True
  2443.      bZeroBase= False    '  search begins at user count > 0
  2444.      bMaxBase = True  '  search does have a max user count
  2445.      
  2446.      iSkipCount = 0  ' number of dups found
  2447.      
  2448.      '  call central routine to query on specified database for specified task
  2449.      Set DataCollection = SearchForPossibleMatches( sLayoutServerTasks, sSearchDB, sMachineID, sUserCount, sOther11, sOther21,  _
  2450.      bZeroBase, bMaxBase )
  2451.      
  2452.      For i = 1 To DataCollection.count
  2453.           If ( iVendorCount + iOutputCount ) = numoutputlines Then
  2454.                Messagebox "Warning:  Reached Limit on Output", MB_ICONEXCLAMATION, "Output Verification"
  2455.                QueryOnDatabase = iOutputCount 
  2456.                Exit Function
  2457.           End If
  2458.           
  2459.           'iCurrentRow = iOutputCount + 1  ' index into spreadsheet, under heading line
  2460.           
  2461.           Set DataDoc = DataCollection.GetNthDocument( i )
  2462.           '   verify that machine is not already specified
  2463.           sMachineID= DataDoc.DataUServerID( 0 )
  2464.           SkipOver = False
  2465.           For j = 1 To iOutputCount
  2466.                sFieldNameOutOut = "OutResults"& Cstr( j )
  2467.                If sMachineID = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  2468.                     '  now need to verify that vendors are not the same either
  2469.                     sFieldNameOutOut = "OutResults" & Cstr( j ) & "_2"
  2470.                     sVendor = ExtractVendorName( sSearchDB )
  2471.                     If sVendor = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  2472.                          SkipOver = True
  2473.                          iSkipCount = iSkipCount + 1
  2474.                     End If
  2475.                End If
  2476.           Next j
  2477.           
  2478.           vCertifyCheck = ThisDoc.Document.CertifyCheckOn
  2479.                               'when CertifyCheckOn = "0" - debug mode
  2480.           If ( vCertifyCheck( 0 ) = "1" And ThisDocBE.IsSigned ) Or vCertifyCheck( 0 ) = "0" Then
  2481. %END REM
  2482.           
  2483.           '  make sure the document is signed
  2484.           'vCertifyCheck = DataDoc.CertifyCheckOn
  2485.           vCertifyCheck=ThisDoc.Document.CertifyCheckOn
  2486.           vIsSignedField = DataDoc.IsSignedField
  2487.           If vCertifyCheck( 0 ) = "1" And vIsSignedField( 0 ) = "0" Then
  2488.                SkipOver=True
  2489.           End If
  2490.           
  2491.           '  make sure datadoc is within range
  2492.           vtemp1=DataDoc.DataUAverage
  2493.           If vtemp1( 0 ) > 5  Then
  2494.                SkipOver = True
  2495.                Elseif vtemp1( 0 ) > 3 And( ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Medium (1 - 3 sec)" Or _
  2496.           ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Fast ( < 1 sec)" ) Then
  2497.                SkipOver = True
  2498.           Elseif vtemp1( 0 ) > 1 And ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Fast ( < 1 sec)" Then
  2499.                SkipOver = True
  2500.           End If
  2501.           
  2502.           '  capture machine description, retrieve machine id info
  2503.           SearchFormula2$ = " Form = ""Machine Identifier""  & MachineID = " & {"} & sMachineID & {"} & " & ( "
  2504.           
  2505.                '  if replication hub selected, insert additional query parameters in
  2506.           
  2507.                '  check to see if document meets platform criteria
  2508.                '  check to see if multiple platforms are specified
  2509.           If Len( ThisDoc.FieldGetText( "LayoutOSPlatform" ) ) <> 0 Then
  2510.                sOSPlatform = ThisDoc.FieldGetText( "LayoutOSPlatform" )
  2511.           Else
  2512.                sOSPlatform = sOSPlatformWholeList
  2513.           End If
  2514.           
  2515.           If Instr( 1, sOSPlatform, ";" )  > 0 Then
  2516.                While Len( sOSPlatform ) > 0
  2517.                     iPositionOfChar2 = Instr( 1, sOSPlatform, ";" )
  2518.                     If iPositionOfChar2 = 0 Then
  2519.                          sOSPlatformTemp = Trim( sOSPlatform )
  2520.                          SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & sOSPlatformTemp & {"} 
  2521.                     Else
  2522.                          sOSPlatformTemp = Trim( Left( sOSPlatform,( iPositionOfChar2 - 1 ) ) )
  2523.                          SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & sOSPlatformTemp & {"} & "  |  "
  2524.                     End If
  2525.                     
  2526.                     If iPositionOfChar2 = 0 Then
  2527.                          sOSPlatform = ""
  2528.                     Else
  2529.                          sOSPlatform = Trim( Right( sOSPlatform,( Len( sOSPlatform ) - iPositionOfChar2 ) ) )
  2530.                     End If
  2531.                Wend
  2532.           Else
  2533.                     '  handle case where single specification
  2534.                SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & ThisDoc.FieldGetText( "LayoutOSPlatform" ) & {"} 
  2535.           End If
  2536.           
  2537.           If ThisDoc.FieldGetText( "LayoutDiskConfiguration" ) = "Includes RAID 5" Then
  2538.                SearchFormula2$ = SearchFormula2$ + " & ( MachineDiskType1 =  " +  {"} +  "Includes RAID 5" +  {"}  + _
  2539.                " | MachineDiskType2 = "   +  {"} +  "Includes RAID 5" +  {"} + _
  2540.                " | MachineDiskType3 = "   +  {"} +  "Includes RAID 5" +  {"} + _
  2541.                " | MachineDiskType4 = "   +  {"} +  "Includes RAID 5" +  {"} + " )"
  2542.           '  need to add on Type3 and Type4 *********
  2543.           End If
  2544.           
  2545.           SearchFormula2$ = SearchFormula2$ +  " )"
  2546.           
  2547.           'Messagebox SearchFormula2$
  2548.           Set MachineIDcollection = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  2549.           If(( MachineIDcollection.count > 0 ) And( SkipOver = False )  And(( iOutputCount + iVendorCount ) <( numoutputlines + 1 ) ) ) Then
  2550.                iOutputCount = iOutputCount + 1   '  position at next entry
  2551.                Redim Preserve AllResults( iOutputCount + 1 )
  2552.                AllResults( iOutputCount )=sMachineID
  2553.                     ' save off machine id
  2554.                sFieldNameOutOut = "OutResults"& Cstr( iOutputCount )
  2555.                Call ThisDoc.FieldSetText( sFieldNameOutOut, AllResults( iOutputCount ) )
  2556.                     ' save off machine description
  2557.                sFieldNameOutOut = sFieldNameOutOut & "_1"
  2558.                     ' ***must make sure do not exceed length of table
  2559.                     ' ****must make sure a check is made if the documents are not found when expected
  2560.                Set MachineIDDoc = MachineIDcollection.GetNthDocument( 1 )
  2561.                temp = MachineIDDoc.GetItemValue( "MachineDescription" )
  2562.                Call ThisDoc.FieldSetText( sFieldNameOutOut, temp( 0 ) )
  2563.                     'save off vendor name
  2564.                sFieldNameOutOut =  "OutResults" & Cstr( iOutputCount ) & "_2"
  2565.                sVendorDB = Mid$( SSearchDB, 3,( Len( sSearchDB ) - 6 ) )
  2566.                Call ThisDoc.FieldSetText( sFieldNameOutOut, sVendorDB )
  2567.                     ' save off cpu/# info
  2568.                sFieldNameOutOut =   "OutResults" & Cstr( iOutputCount ) & "_3"
  2569.                vCPUInfo = MachineIDDoc.GetItemValue( "MachineCPUType" ) 
  2570.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & "/"
  2571.                vTemp2 = MachineIDDoc.GetItemValue( "MachineCPUSpeed" ) 
  2572.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & vTemp2( 0 ) 
  2573.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & " x "
  2574.                vTemp1 = MachineIDDoc.GetItemValue( "MachineNumberofCPUs" )
  2575.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & " " & Cstr( vTemp1( 0 ) )
  2576.                If Cint( vTemp1( 0 ) ) > 1 Then
  2577.                     vCPUInfo( 0 ) = vCPUInfo( 0 ) & " (SMP)"
  2578.                End If
  2579.                
  2580.                Call ThisDoc.FieldSetText( sFieldNameOutOut, vCPUInfo( 0 ) )
  2581.                      ' save off OS info
  2582.                sFieldNameOutOut = "OutResults"& Cstr( iOutputCount ) & "_4"
  2583.                vCPUInfo1 = MachineIDDoc.GetItemValue( "MachinePlatform" )
  2584.                Call ThisDoc.FieldSetText( sFieldNameOutOut, vCPUInfo1( 0 ) )
  2585.                
  2586.                     'create doclink
  2587.                sFieldNameOutOut = "OR" & Cstr( iOutputCount ) & "_5"
  2588.                     ' *** not sure how to create doclink on notesuidocument - subform?
  2589.                
  2590.                '  save off Average Response Time info for graphing
  2591.                bQueryPerformed = True
  2592.                vAverageResponse( iOutputCount ) = DataDoc.DataUAverage
  2593.                
  2594.                '  save off Machine Cost for graphing
  2595.                vMachineCost( iOutputCount ) = MachineIDDoc.MachineCost
  2596.                
  2597.                '  display response time based on percent range specification
  2598.                sFieldNameOutOut = "OutResults" & Cstr( iOutputCount ) & "_6"
  2599.                vtemp1=DataDoc.DataUAverage
  2600.                
  2601.                If vtemp1( 0 ) < 1 Then
  2602.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Fast" )
  2603.                Elseif vtemp1( 0 ) < 3 Then
  2604.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Medium" )
  2605.                Elseif vtemp1( 0 ) < 5 Then
  2606.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Slow" )
  2607.                Else
  2608.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Out of Range" )
  2609.                End If
  2610.                
  2611.                '  save off link to datadoc
  2612.                'Set SaveDataDoc( iOutputCount ) = DataDoc
  2613.                'SaveDataDoc( iOutputCount ) = iOutputCount
  2614. '%REM
  2615.           Elseif MachineIDCollection.Count = 0 Then
  2616.                'If sMachineID = "" Then
  2617.                '  need to distinguish between disk configuration not RAID 5 and machine name not specified.  Need to re-query
  2618.                SearchFormula2$ = " Form = ""Machine Identifier""  & MachineID = " & {"} & sMachineID & {"} 
  2619.                Set MachineIDcollection = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  2620.                If( MachineIDcollection.count = 0 ) Then
  2621.                     sErrorMessage$ = "Warning:  Machine Identifier Form is missing for " & sMachineID & "   Continuing ....."
  2622.                     'sErrorMessage$ = "Machine Identifier Entry is missing for this associated Vendor Data.  Continuing..." 
  2623.                     Messagebox sErrorMessage$, MB_ICONEXCLAMATION, "Query on Data"
  2624.                End If
  2625.                'End If
  2626. '%END REM
  2627.           Elseif SkipOver = True Then
  2628.                '  make sure best response time is displayed, when there are multiple listings for any given machine
  2629.                For j = 1 To iOutputCount
  2630.                     sFieldNameOutOut = "OutResults"& Cstr( j )
  2631.                     If sMachineID = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  2632.                          sFieldNameOutOut = "OutResults" & Cstr( j ) & "_6"
  2633.                          vtemp1 = DataDoc.DataUAverage
  2634.                          
  2635.                          If vtemp1( 0 )  < 1 And  ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Fast" Then
  2636.                               Call ThisDoc.FieldSetText( sFieldNameOutOut, "Fast" )
  2637.                          Elseif vtemp1( 0 ) < 3.1  And vtemp1( 0 ) > .9  And( ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Fast"  And ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Medium" ) Then
  2638.                               Call ThisDoc.FieldSetText( sFieldNameOutOut, "Medium" )
  2639.                          Elseif vtemp1( 0 ) < 5  And vtemp1( 0 ) > 3  And ThisDoc.FieldGetText( sFieldNameOutOut ) = "Out of Range" Then
  2640.                               Call ThisDoc.FieldSetText( sFieldNameOutOut, "Slow" )
  2641.                          End If
  2642.                          
  2643.                     End If
  2644.                Next j
  2645.           End If
  2646.      Next i
  2647.      
  2648.      'QueryOnDatabase =(( iOutputCount ) - iSkipCount )          ' decrement for automatic positioning to next entry, and for number of dups
  2649.      QueryOnDatabase = iOutputCount                                  ' decrement for automatic positioning to next entry, and for number of dups
  2650.      
  2651. End Function
  2652. '++LotusScript Development Environment:2:1:ProcessMultipleTasks:1:8
  2653. Function ProcessMultipleTasks( sVendorDBBuffer As String, sOSPlatformWholeList As String ) As Integer
  2654.      Dim ThisDoc As NotesUIDocument
  2655.      Dim Workspace As New NotesUIWorkspace
  2656.      
  2657.      Dim iCountTasks As Integer
  2658.      Dim iPositionOfChar As Integer
  2659.      Dim iOutputCount As Integer
  2660.      Dim iTotalCount As Integer
  2661.      Dim sSearchDB As String
  2662.      Dim sMachineID As String
  2663.      Dim sVendorDBBufferSave As String
  2664.      
  2665.      Set ThisDoc = Workspace.CurrentDocument
  2666.      
  2667.      iTotalCount = 0
  2668.      
  2669.           ' need to determine if matching response values can be found within a given response range
  2670.      sVendorDBBufferSave = sVendorDBBuffer
  2671.      iOutputCount = 0
  2672.      iTotalCount = 0
  2673.      While Len( sVendorDBBuffer )  > 0
  2674.  '             extract filename only
  2675.           iPositionOfChar = Instr( 1, sVendorDBBuffer, ";" )
  2676.           If iPositionOfChar = 0 Then
  2677.                sVendorDB = sVendorDBBuffer
  2678.                sVendorDBBuffer = ""
  2679.           Else
  2680.                sVendorDB = Left( sVendorDBBuffer,( iPositionOfChar - 1 ) )
  2681.                sVendorDBBuffer = Right( sVendorDBBuffer,( Len( sVendorDBBuffer ) - iPositionOfChar ) )
  2682.                sVendorDBBuffer = Trim( sVendorDBBuffer )
  2683.           End If
  2684.  '             put vendor name together    
  2685.           sVendorDB = Trim( sVendorDB )
  2686.           sSearchDB = "CP" & sVendorDB
  2687.           sSearchDB = sSearchDB & ".NSF"
  2688.           
  2689.           iVendorCount = iVendorCount - 1
  2690.           
  2691.           iOutputCount = ProcessMultipleTasksCore( sSearchDB,  sOSPlatformWholeList, iTotalCount )
  2692.           
  2693.           'iTotalCount = iOutputCount
  2694.          'iTotalCount = iTotalCount + iOutputCount
  2695.           
  2696.      Wend  ' process a vendors database
  2697.      
  2698.      ProcessMultipleTasks = iTotalCount
  2699. End Function
  2700. '++LotusScript Development Environment:2:1:ProcessMultipleTasksCore:1:8
  2701. Function ProcessMultipleTasksCore( sSearchDB As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  2702.      Dim ThisDoc As NotesUIDocument
  2703.      Dim Workspace As New NotesUIWorkspace
  2704.      Dim DataCollectionTemp As NotesDocumentCollection
  2705.      
  2706.      Dim DataDoc( numscripts ) As NotesDocument
  2707.      Dim DataCollection( numscripts ) As NotesDocumentCollection
  2708.      
  2709.      Dim iMatchFound( numoutputlines, numscripts ) As Integer
  2710.      Dim iMatchDoc( numoutputlines, numscripts ) As Integer
  2711.      
  2712.      Dim bZeroBase As Integer
  2713.      Dim bMaxBase As Integer
  2714.      
  2715.      Dim nTaskCalibration( numscripts ) As Single
  2716.      Dim nTaskHourCalibration( 2 ) As Single
  2717.      Dim nMBHourCalibration( 2 ) As Single
  2718.      
  2719.      Dim iTaskCountSpecification( numscripts ) As Integer
  2720.      Dim iTaskHourSpecification( 2 ) As Integer
  2721.      Dim iMBHourSpecification( 2 ) As Integer
  2722.      
  2723.      Dim sBaseValue As Single
  2724.      Dim sTaskBaseValue As Single
  2725.      Dim sMBBaseValue As Single
  2726.      
  2727.      Dim sLayoutServerTasks As String
  2728.      
  2729.      Dim nCalibratedTaskNumber As Single
  2730.      Dim nCalibratedTaskHour As Single
  2731.      Dim nCalibratedMBHour As Single
  2732.      
  2733.      Dim iCalibratedTaskNumber As Integer
  2734.      Dim iCalibratedTaskHour As Integer
  2735.      Dim iCalibratedMBHour As Integer
  2736.      Dim iTaskCount As Integer
  2737.      
  2738.      Dim sCalibrationTask As String
  2739.      Dim iCountTasks As Integer
  2740.      Dim iPositionOfChar As Integer
  2741.      
  2742.      Dim iTotalCount As Integer
  2743.      Dim sMachineID As String
  2744.      Dim sProcessThisTask As String
  2745.      Dim iNumOutputLines As Integer
  2746.      Dim bMatchFound As Integer
  2747.      
  2748.      Dim sProcessTaskList As String
  2749.      Dim sProcessTaskListTemp As String
  2750.      
  2751.      Set ThisDoc = Workspace.CurrentDocument
  2752.      
  2753.      Set VendorDB = New NotesDatabase( "", sSearchDB )
  2754.      
  2755.      bMatchFound = True   ' flag to exit query if no match found
  2756.      iNumOutputLines = 1
  2757.      
  2758.      bZeroBase = False  '  search begins at user count >  0
  2759.      bMaxBase = True  '  search include a max user count
  2760.      
  2761.      sProcessTaskList = ThisDoc.FieldGetText( "LayoutServerTasks" )
  2762.      
  2763.      iCountTasks = 0            '  keep count of number of scripts actually specified
  2764.      While bMatchFound = True
  2765. '               Need to dynamically build query against response time
  2766. '              extract first tasks to key off search 
  2767.           iPositionOfChar = Instr( 1, sProcessTaskList, ";" )
  2768.           If iPositionOfChar = 0 Then
  2769.                sProcessThisTask = sProcessTaskList    '   reached last entry
  2770.                sProcessTaskList = ""
  2771.           Else 
  2772.                sProcessThisTask = Left( sProcessTaskList,( iPositionOfChar - 1 ) )
  2773.                sProcessTaskList = Right( sProcessTaskList, Len( sProcessTaskList ) - iPositionOfChar )
  2774.                sProcessTaskList = Trim( sProcessTaskList )
  2775.           End If
  2776.           
  2777.           bMaxBase = True  'start from specified base and look upward
  2778.           Dim vTemp As Variant
  2779.           If sProcessThisTask <> "User Tasks" Then
  2780.                If sProcessThisTask = "Replication Hub" Then
  2781.                     vTemp = ThisDoc.Document.LayoutReplHub
  2782.                     Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", _
  2783.                     Cstr(  vTemp( 0 ) ), ThisDoc.FieldGetText( "LayoutReplHour" ), ThisDoc.FieldGetText( "LayoutMBReplHour" ), _
  2784.                     bZeroBase, bMaxBase )
  2785.                Else   'will be mailhub
  2786.                     vTemp = ThisDoc.Document.LayoutMailHub
  2787.                     Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", _
  2788.                     Cstr( vTemp( 0 ) ), ThisDoc.FieldGetText( "LayoutMessagesHour" ), ThisDoc.FieldGetText( "LayoutMBMessagesHour" ), _
  2789.                     bZeroBase, bMaxBase )
  2790.                End If               
  2791.                Set DataCollection( iCountTasks + 1 ) = DataCollectionTemp
  2792.                If DataCollection( iCountTasks + 1 ).Count = 0 Then
  2793.                     iCountTasks = 0
  2794.                     bMatchFound = False
  2795.                End If
  2796.                iCountTasks = iCountTasks + 1
  2797.           Else
  2798.                '  see if any of the user tasks have been specified
  2799.                For i = 1 To 7
  2800.                     If sUserTaskArray( i, 2 ) <> "0" And bMatchFound = True Then
  2801.                          sProcessThisTask = sUserTaskArray( i, 1 )
  2802.                          bZeroBase = False  '  search on user count beginning > 0
  2803.                          Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", sUserTaskArray( i, 2 ), "", "", _
  2804.                          bZeroBase, bMaxBase )
  2805.                          Set DataCollection( iCountTasks + 1 ) = DataCollectionTemp
  2806.                          If DataCollection( iCountTasks + 1 ).Count = 0 Then
  2807.                               iCountTasks = 0
  2808.                               bMatchFound = False
  2809.                          End If
  2810.                          iCountTasks = iCountTasks + 1
  2811.                     End If  
  2812.                Next i
  2813.           End If
  2814.           
  2815.           If sProcessTaskList = "" Then          ' nothing left to process
  2816.                bMatchFound = False
  2817.           End If
  2818.      Wend
  2819.      
  2820.           ' found data assocated with each task?  error encountered?
  2821.      If iCountTasks = 1 Then   '  should always have at least 2 tasks to process
  2822.           ProcessMultipleTasksCore = 0
  2823.           Exit Function
  2824.      End If
  2825.      
  2826.            '  have a collection associated with task and response time and percent range
  2827.            '  now need to determine if a common response time value can be found
  2828.            '  ***( May have to limit query based on more parameters )
  2829.            '  ***( may have to adjust based on output tolerance value )
  2830.            '  *** create generic routine for verifying
  2831.      
  2832.           '  calculate adjust for tolerance range
  2833.      Dim nPercentAdjust As Single
  2834.      Dim nAdjustAmount As Single
  2835.      Dim nAdjustOther11 As Single
  2836.      Dim nAdjustOther21 As Single
  2837.      
  2838.      nPercentAdjust = 0
  2839.      nPercentAdjust = Csng( ThisDoc.FieldGetText( "LayoutTolerance" ) )
  2840.      If nPercentAdjust <> 0 Then
  2841.           nPercentAdjust =( nPercentAdjust ) / 100   '  halve to adjust to go higher and then lower
  2842.      End If
  2843.      
  2844.      For j = 1 To numscripts
  2845.           For i = 1 To numoutputlines
  2846.                iMatchFound( i, j ) = False
  2847.                iMatchDoc( i, j ) = 0
  2848.           Next i
  2849.      Next j
  2850.      
  2851.      For i = 1 To DataCollection( 1 ).Count
  2852.           Set DataDoc( 1 ) = DataCollection( 1 ).GetNthDocument( i )
  2853.           For j = 2 To iCountTasks
  2854.                For k = 1 To DataCollection( j ).Count
  2855.                     Set DataDoc( j ) = DataCollection( j ).GetNthDocument( k )
  2856.                          ' make sure the same machines are compared
  2857.                     vtemp1 = DataDoc( 1 ).GetItemValue( "DataUServerID" )
  2858.                     vtemp2 = DataDoc( j ).GetItemValue( "DataUServerID" )
  2859.                     If vtemp1( 0 ) = vtemp2( 0 ) Then    'keep looking for a match
  2860.                               ' do output tolerance calulations for range
  2861.                          vtempj =( DataDoc( j ).GetItemValue( "DataUAverage" ) ) 
  2862.                          nAdjustAmount = Csng( vtempj( 0 ) ) * nPercentAdjust
  2863.                          vtemp1 =( DataDoc( 1 ).GetItemValue( "DataUAverage" ) ) 
  2864.                          If( Csng( vtemp1( 0 ) )  <= ( Csng( vtempj( 0 ) ) + nAdjustAmount ) )  And( Csng( vtemp1( 0 ) )  => ( Csng( vtempj( 0 ) ) - nAdjustAmount ) )  Then
  2865.                               '  need to do additional validation if Repl Hub and Mail Routing Hub involved
  2866.                               vtemp1 = DataDoc( 1 ).DataUScript1
  2867.                               vtemp2 = DataDoc( 2 ).DataUScript1
  2868.                               If vtemp1( 0 ) = "Replication Hub" And vtemp2( 0 ) = "Mail Routing Hub"  And j = 2 Then
  2869.                                    '  make sure extra parameters are within range
  2870.                                    vtemp211 = DataDoc( 2 ).GetItemValue( "DataUOther11" )
  2871.                                    vtemp221 = DataDoc( 2 ).GetItemValue( "DataUOther21" )
  2872.                                    vtemp111 = DataDoc( 1 ).GetItemValue( "DataUOther11" )
  2873.                                    vtemp121 = DataDoc( 1 ).GetItemValue( "DataUOther21" )
  2874.                                    nAdjustOther11 =  Csng( vtemp211( 0 ) ) * nPercentAdjust
  2875.                                    nAdjustOther21 =  Csng( vtemp221( 0 ) ) * nPercentAdjust
  2876.                                    If( Csng( vtemp111( 0 ) )  <= ( Csng( vtemp211( 0 ) ) + nAdjustOther11 ) )  And ( Csng( vtemp111( 0 ) )  => ( Csng( vtemp211( 0 ) ) - nAdjustOther11 ) ) _
  2877.                                    And ( Csng( vtemp121( 0 ) )  => ( Csng( vtemp221( 0 ) ) - nAdjustOther11 ) )  And ( Csng( vtemp121( 0 ) )  => ( Csng( vtemp221( 0 ) ) - nAdjustOther11 ) ) Then
  2878.                                         iMatchFound( iNumOutputLines, j ) = True
  2879.                                         iMatchDoc( iNumOutputLines, j ) = k  'save doc collection offset
  2880.                                         iMatchDoc( iNumOutputLines, 1 ) = i
  2881.                                    End If
  2882.                               Else
  2883.                                    iMatchFound( iNumOutputLines, j ) = True
  2884.                                    iMatchDoc( iNumOutputLines, j ) = k  'save doc collection offset
  2885.                                    iMatchDoc( iNumOutputLines, 1 ) = i
  2886.                               End If
  2887.                          End If
  2888.                     End If
  2889.                Next k
  2890.           Next j
  2891.           
  2892.           ' if full match made, then increment output count, else zero out 
  2893.           bMatchFound = True
  2894.           If iMatchDoc( iNumOutputLines, 1 ) > 0 Then
  2895.                For j = 2 To iCountTasks
  2896.                     If iMatchFound( iNumOutputLines, j ) <> True Then
  2897.                          bMatchFound = False
  2898.                     End If
  2899.                Next
  2900.           Else
  2901.                bMatchFound = False
  2902.           End If
  2903.           
  2904.           If bMatchFound = True Then   '  complete match found
  2905.                iMatchFound( iNumOutputLines, 1 ) = True    '  flag to show the whole match is made
  2906.                iNumOutputLines = iNumOutputLines + 1
  2907.           Else
  2908.                For j = 1 To iCountTasks
  2909.                     iMatchFound( iNumOutputLines, j ) = False
  2910.                     iMatchDoc( iNumOutputLines, j ) = 0
  2911.                Next j
  2912.           End If
  2913.           
  2914.           If iNumOutputLines = numoutputlines  Then
  2915.                Messagebox "Reached Maximum Number of Matches for Display.  Continuing...", MB_ICONEXCLAMATION, "Query on Database"
  2916.                '***really need to start redim the array
  2917.                i = DataCollection( 1 ).Count
  2918.           End If
  2919.      Next i
  2920.      
  2921.      '   Exit if when through an entire collection and no match was found
  2922.      bMatchFound = False
  2923.      If iMatchDoc( 1, 1 ) > 0 Then
  2924.           bMatchFound = True
  2925.      End If
  2926.      
  2927.      If bMatchFound = False Then
  2928.           ProcessMultipleTasksCore = 0
  2929.           Exit Function
  2930.      End If
  2931.      
  2932.  '  need to determine the first task in the list that everyone is calibrated to
  2933.      bMatchFound = False
  2934.      iTaskCount = 0
  2935.      sLayoutServerTasks = ThisDoc.FieldGetText( "LayoutServerTasks" )
  2936.      sProcessTaskListTemp=sLayoutServerTasks
  2937.      
  2938.      '  if User Tasks then expand
  2939.      iPositionOfChar = Instr( 1, sLayoutServerTasks, "User Tasks" )
  2940.      If iPositionOfChar > 0 Then
  2941.           '  remove User Tasks from the List
  2942.           '  handle case where it is first in list
  2943.           If iPositionOfChar >1 Then
  2944.                sProcessTaskListTemp = Left( sLayoutServerTasks,( iPositionOfChar - 1 ) )
  2945.           Else
  2946.                sProcessTaskListTemp = ""
  2947.           End If    
  2948.           '  add in specific tasks
  2949.           For j = 1 To 7
  2950.                If Cint( sUserTaskArray( j, 2 ) ) > 0 Then
  2951.                     If Len( sProcessTaskListTemp ) > 0 Then
  2952.                          sProcessTaskListTemp = sProcessTaskListTemp + "; "
  2953.                     End If
  2954.                     sProcessTaskListTemp = sProcessTaskListTemp + sUserTaskArray( j, 1 )
  2955.                End If   
  2956.           Next
  2957.           sLayoutServerTasks = Trim( sProcessTaskListTemp )
  2958.      End If
  2959.      
  2960.      While bMatchFound = False
  2961.           iPositionOfChar = Instr( 1, sLayoutServerTasks, ";" )
  2962.           If iPositionOfChar = 0 Then
  2963.                sCalibrationTask = sLayoutServerTasks    '   reached last entry
  2964.                sLayoutServerTasks = ""
  2965.           Else 
  2966.                sCalibrationTask = Left( sLayoutServerTasks,( iPositionOfChar - 1 ) )
  2967.                sLayoutServerTasks = Right( sLayoutServerTasks, Len( sLayoutServerTasks ) - iPositionOfChar )
  2968.                sLayoutServerTasks = Trim( sLayoutServerTasks )
  2969.           End If
  2970.           
  2971.           iTaskCount=iTaskCount+1
  2972.           '  loop for each match found within the vendor db
  2973.           For z = 1 To( iNumOutputLines - 1 )   '  start with the matching entry
  2974.            '  *** need to find a common equation for the values
  2975.                If iMatchFound( z, 1 ) = True Then
  2976.                     For j = 1 To iCountTasks 
  2977.                          Set DataDoc( j ) = DataCollection( j ).GetNthDocument( iMatchDoc( z, j ) )
  2978.                     Next j  
  2979.                     vtemp =( DataDoc( iTaskCount ).GetItemValue( "DataUNumberUsers1" ) )
  2980.                     iBaseValue = Cint( vtemp( 0 ) )
  2981.                     '  need to calibrate task activity/hour and mb/hour for replications and Mail Routing Hub
  2982.                     vtemp1 = DataDoc( 1 ).DataUScript1
  2983.                     vtemp2 = DataDoc( 2 ).DataUScript1
  2984.                     
  2985.                     If vtemp1( 0 ) = "Replication Hub"  And vtemp2( 0 ) = "Mail Routing Hub"Then
  2986.                          vtemp =( DataDoc( 1 ).GetItemValue( "DataUOther11" ) )
  2987.                          iTaskBaseValue = Cint( vtemp( 0 ) )
  2988.                          
  2989.                          vtemp =( DataDoc( 1 ).GetItemValue( "DataUOther21" ) )
  2990.                          iMBBaseValue = Cint( vtemp( 0 ) )
  2991.                          
  2992.                          For j = 1 To 2 '  calibrate repl/hour, mb/hour
  2993.                               vtemp111 =( DataDoc( j ).GetItemValue( "DataUOther11" ) )
  2994.                               vtemp211 =( DataDoc( j ).GetItemValue( "DataUOther21" ) )
  2995.                               If( Cint( vtemp111( 0 ) ) ) <> 0 Then
  2996.                                    nTaskHourCalibration( j ) = iTaskBaseValue / Cint( vtemp111( 0 ) )
  2997.                               End If
  2998.                               If( Cint( vtemp211( 0 ) ) ) <> 0 Then
  2999.                                    nMBHourCalibration( j ) = iMBBaseValue / Cint( vtemp211( 0 ) )
  3000.                               End If
  3001.                          Next j
  3002.                          
  3003.                     End If 
  3004.                     
  3005.                     For j = 1 To iCountTasks     '  till number of scripts specified
  3006.                           '  now start expressing things in terms of the first task processed
  3007.                          vtemp1 = DataDoc( j ).GetItemValue( "DataUNumberUsers1" )
  3008.                          If  Cint( vtemp1( 0 ) ) <> 0 Then
  3009.                               nTaskCalibration( j ) =  iBaseValue /  Cint( vtemp1( 0 ) )
  3010.                          End If
  3011.                     Next j
  3012.                     
  3013.                     For i = 1 To 2
  3014.                          iTaskHourSpecification( i ) = 0
  3015.                     Next i
  3016.                     
  3017.                     '  now need to calibrate in terms of a single task
  3018.                     '  collect user count specification
  3019.                     i = 1
  3020.                     nCalibratedTaskNumber = 0
  3021.                     If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "Replication Hub" ) > 0 Then
  3022.                          vTemp = ThisDoc.Document.LayoutReplHub
  3023.                          If  vTemp( 0 ) <> 0 Then
  3024.                               iTaskCountSpecification( i ) = vTemp( 0 )
  3025.                               nCalibratedTaskNumber = vTemp( 0 )
  3026.                          '  calibrate repl/hour and mb/hour
  3027.                               If ThisDoc.FieldGetText( "LayoutReplHour" ) <> "*" Then
  3028.                                    iTaskHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutReplHour" ) )
  3029.                                    nCalibratedTaskHour = Cint( ThisDoc.FieldGetText( "LayoutReplHour" ) )
  3030.                               End If
  3031.                               If ThisDoc.FieldGetText( "LayoutMBReplHour" ) <> "*" Then
  3032.                                    iMBHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMBReplHour" ) )
  3033.                                    nCalibratedMBHour = Csng( ThisDoc.FieldGetText( "LayoutMBReplHour" ) )
  3034.                               End If 
  3035.                               i = i + 1
  3036.                          End If
  3037.                     End If
  3038.                     If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "Mail Routing Hub" ) > 0 Then
  3039.                          vTemp = ThisDoc.Document.LayoutMailHub
  3040.                          If  vTemp( 0 ) <> 0  Then
  3041.                               iTaskCountSpecification( i ) = vTemp( 0 ) 
  3042.                               nCalibratedTaskNumber = nCalibratedTaskNumber + vTemp( 0 ) * nTaskCalibration( i )
  3043.                           '  calibrate mail/hour and mb/hour
  3044.                               If ThisDoc.FieldGetText( "LayoutMessagesHour" ) <> "*" Then
  3045.                                    iTaskHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMessagesHour" ) )
  3046.                                    nCalibratedTaskHour = nCalibratedTaskHour + Cint( ThisDoc.FieldGetText( "LayoutMessagesHour" ) ) * nTaskHourCalibration( i )
  3047.                               End If
  3048.                               If ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) <> "*" Then
  3049.                                    iMBHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) )
  3050.                                    nCalibratedMBHour = nCalibratedMBHour + Csng( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) ) * nMBHourCalibration( i )
  3051.                               End If
  3052.                               i = i + 1
  3053.                          End If
  3054.                     End If
  3055.                     
  3056.                     For x = 1 To 7
  3057.                          If sUserTaskArray( x, 2 ) <> "0"  Then
  3058.                               iTaskCountSpecification( i ) = Cint( sUserTaskArray( x, 2 ) )
  3059.                               nCalibratedTaskNumber = nCalibratedTaskNumber + (( Cint( sUserTaskArray( x,2 ) ) )  *  nTaskCalibration( i ) )
  3060.                               i = i + 1
  3061.                          End If  
  3062.                     Next
  3063.                     
  3064.                     iCalibratedTaskNumber = Int( nCalibratedTaskNumber )  '  now we have a user count based on one task
  3065.                     
  3066.                     If nCalibratedTaskHour <> 0 Then   'only do if repl hub and Mail Routing Hub
  3067.                          iCalibratedTaskHour = Int( nCalibratedTaskHour )
  3068.                          iCalibratedMBHour = Int( nCalibratedMBHour )
  3069.                     End If
  3070.                     
  3071.                     vtemp1 = DataDoc( 1 ).GetItemValue( "DataUServerID" )   ' only query on this machine
  3072.                     '   can a match be found, need to override the task specification and the user count, rest of the form can be used
  3073.                     '  ***need to convert Other11 and Other21
  3074.                     
  3075.                     If( sCalibrationTask = "Replication Hub" )  Then
  3076.                         'iOutputCount = QueryOnDatabase( sSearchDB, sCalibrationTask, Str( iCalibratedTaskNumber ), ThisDoc.FieldGetText( "LayoutReplHour" ) , ThisDoc.FieldGetText( "LayoutMBReplHour" ), sOSPlatformWholeList, iOutputCount )
  3077.                          iOutputCount = QueryOnDatabase( sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), Cstr( iCalibratedTaskHour ), Cstr( nCalibratedMBHour ), sOSPlatformWholeList, iOutputCount )
  3078.                     Elseif sCalibrationTask = "Mail Routing Hub" Then
  3079.                          iOutputCount = QueryOnDatabase(  sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), Cstr( iCalibratedTaskHour ), Cstr( nCalibratedMBHour ), sOSPlatformWholeList, iOutputCount )
  3080.                     Else                         
  3081.                          For y = 1 To 7
  3082.                               If sCalibrationTask = sUserTaskArray( y, 1 ) Then
  3083.                                    iOutputCount = QueryOnDatabase(  sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), "", "", sOSPlatformWholeList, iOutputCount )
  3084.                               End If
  3085.                          Next y
  3086.                     End If    '  only process if a match was completely found
  3087.                End If
  3088.           Next z
  3089.           If iOutputCount > 0 Or sLayoutServerTasks = "" Then      '  match found
  3090.                bMatchFound = True
  3091.           End If
  3092.      Wend
  3093.      ProcessMultipleTasksCore = iOutputCount + ProcessMultipleTasksCount
  3094.      
  3095. End Function
  3096. '++LotusScript Development Environment:2:1:UserTaskCount:2:8
  3097. Function UserTaskCount( ThisDoc ) As Integer
  3098.     'Dim ThisDoc As NotesUIDocument
  3099.      Dim Workspace As New NotesUIWorkspace
  3100.      
  3101.      'Set ThisDoc = Workspace.CurrentDocument
  3102.      
  3103.      UserTaskCount=0  ' means user tasks option not selected
  3104.      For i = 1 To 7
  3105.           If( Cint( sUserTaskArray( i, 2 ) ) > 0 ) Then
  3106.                UserTaskCount=UserTaskCount + 1
  3107.           End If
  3108.      Next i
  3109. End Function
  3110. '++LotusScript Development Environment:2:2:ZeroFieldOut:2:8
  3111. Sub ZeroFieldOut( ThisDoc As NotesUIDocument, sFieldNameOut As String )
  3112.      If Len( ThisDoc.FieldGetText( sFieldNameOut ) ) = 0 Then
  3113.           Call ThisDoc.FieldSetText( sFieldNameOut, "0" )
  3114.      End If
  3115. End Sub
  3116. '++LotusScript Development Environment:2:1:ExtractVendorName:1:8
  3117. Function ExtractVendorName( sSearchDB As String ) As String
  3118.      
  3119.      ExtractVendorName = Left( sSearchDB,( Len( sSearchDB ) - 4 ) )   '  extract .NSF
  3120.      ExtractVendorName = Right( ExtractVendorName,( Len( ExtractVendorName ) - 2 ) )  '  extract CP prefix
  3121.      
  3122. End Function
  3123. '++LotusScript Development Environment:2:2:UserTaskArrayInitWhole:1:8
  3124. Sub UserTaskArrayInitWhole ( doc As NotesDocument )
  3125.      
  3126.      '  col1 = sProcessThisTask( UI selection ), col2 = associated fieldname contents, col3 = base for fieldname
  3127.      
  3128.      For i = 1 To 7
  3129.           sUserTaskArray( i, 2 ) = "0"
  3130.      Next
  3131.      
  3132.      sUserTaskArray( 1,1 ) = "Mail"
  3133.      sUserTaskArray( 1,3 ) = "LayoutMail"
  3134.      vtemp = doc.Adjust_Mail
  3135.      sUserTaskArray( 1,4 ) = Cstr( vtemp( 0 ) )
  3136.      
  3137.      sUserTaskArray( 2,1 ) = "Mail & Database"
  3138.      sUserTaskArray( 2,3 ) = "LayoutMailDB"
  3139.      vtemp = doc.Adjust_MailDB
  3140.      sUserTaskArray( 2,4 ) = Cstr( vtemp( 0 ) )
  3141.      
  3142.      sUserTaskArray( 3,1 ) = "Groupware #1"
  3143.      sUserTaskArray( 3,3 ) = "LayoutGroupware" 
  3144.      vtemp = doc.Adjust_Groupware
  3145.      sUserTaskArray( 3,4 ) = Cstr( vtemp( 0 ) )
  3146.      
  3147.      sUserTaskArray( 4,1 ) = "Calendar & Scheduling"
  3148.      sUserTaskArray( 4,3 ) = "LayoutCS"
  3149.      vtemp = doc.Adjust_CS
  3150.      sUserTaskArray( 4,4 ) = Cstr( vtemp( 0 ) )
  3151.      
  3152.      sUserTaskArray( 5,1 ) = "Database"
  3153.      sUserTaskArray( 5,3 ) = "LayoutDatabase"
  3154.      vtemp = doc.Adjust_Database
  3155.      sUserTaskArray( 5,4 ) = Cstr( vtemp( 0 ) )
  3156.      
  3157.      sUserTaskArray( 6,1 ) = "Web Walker"
  3158.      sUserTaskArray( 6,3 ) = "LayoutWW"
  3159.      vtemp = doc.Adjust_WW
  3160.      sUserTaskArray( 6,4 ) = Cstr( vtemp( 0 ) )
  3161.      
  3162.      sUserTaskArray( 7,1 ) = "Web Buyer"
  3163.      sUserTaskArray( 7,3 ) = "LayoutWB"
  3164.      vtemp = doc.Adjust_WB
  3165.      sUserTaskArray( 7,4 ) = Cstr( vtemp( 0 ) )
  3166.      
  3167.      sUserTaskArray( 8,1 ) = "Full Text Search"
  3168.      'sUserTaskArray( 8,2 ) = ThisDoc.FieldGetText( "LayoutFTSearch" )
  3169.      sUserTaskArray( 8,3 ) = "LayoutFTSearch"
  3170.      
  3171.      
  3172. End Sub
  3173. '++LotusScript Development Environment:2:5:(Options):0:66
  3174. '++LotusScript Development Environment:2:5:(Forward):0:1
  3175. Declare Sub Click( Source As Button )
  3176. Declare Function ProcessOneTask( sVendorDBBuffer As String, sOSPlatformWholeList As String )  As Integer
  3177. Declare Sub Initialize
  3178. Declare Function SearchForPossibleMatches( sLayoutServerTasks As String,  sSearchDB As String, sMachineID As String, sUserCount As String, sOther11 As String, sOther21 As String, bZeroBase As Integer, bMaxBase As Integer )  As NotesDocumentCollection 
  3179. Declare Function VerifyForm( sOSPlatform As String ) As Integer
  3180. Declare Function QueryOnDatabase( sSearchDB As String,  sMachineID As String, sLayoutServerTasks As String, sUserCount As String, sOther11 As String, sOther21 As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  3181. Declare Function ProcessMultipleTasks( sVendorDBBuffer As String, sOSPlatformWholeList As String ) As Integer
  3182. Declare Function ProcessMultipleTasksCore( sSearchDB As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  3183. Declare Function UserTaskCount( ThisDoc ) As Integer
  3184. Declare Sub ZeroFieldOut( ThisDoc As NotesUIDocument, sFieldNameOut As String )
  3185. Declare Function ExtractVendorName( sSearchDB As String ) As String
  3186. Declare Sub UserTaskArrayInitWhole ( doc As NotesDocument )
  3187. '++LotusScript Development Environment:2:5:(Declarations):0:10
  3188. %INCLUDE "pstoarr.lss" 
  3189. Const MB_YESNO = 4
  3190. Const IDYES = 6
  3191. Const IDNO = 7
  3192. Const MB_ICONEXCLAMATION = 48
  3193. Const MB_ICONINFORMATION = 64
  3194. Const MB_ICONQUESTION = 32
  3195. Const numscripts = 10
  3196. '++LotusScript Development Environment:2:2:BindEvents:1:129
  3197. Private Sub BindEvents(Byval Objectname_ As String)
  3198.      Static Source As BUTTON
  3199.      Set Source = Bind(Objectname_)
  3200.      On Event Click From Source Call Click
  3201. End Sub
  3202. '++LotusScript Development Environment:2:2:Click:1:12
  3203. Sub Click( Source As Button )
  3204.      Dim Workspace As New NotesUIWorkspace
  3205.      Dim ThisDoc As NotesUIDocument
  3206.      Dim DateTime As New NotesDateTime( "1/1/96" )
  3207.      Dim Session As New NotesSession
  3208.      Dim CurrentView As NotesView
  3209.      Dim doc As NotesDocument
  3210.      
  3211.      Dim sOSPlatformWholeList As String
  3212.      Dim sServerTasks As String
  3213.      Dim VendorDBBuffer As String
  3214.      Dim iPositionOfChar As Integer
  3215.      Dim iOutputCount As Integer
  3216.      Dim sSearchDB As String
  3217.      
  3218.      Set CurrentDB = Session.CurrentDatabase
  3219.      Set CurrentView = CurrentDB.GetView( "(List)" )
  3220.      Set doc = CurrentView.GetFirstDocument
  3221.      If doc Is Nothing Then
  3222.           Messagebox "List Information Missing", MB_ICONEXCLAMATION, "Query on Data"
  3223.           Exit Sub
  3224.      End If
  3225.      While doc.ListType( 0 ) <> "Database"
  3226.           Set doc = CurrentView.GetNextDocument( doc )
  3227.           If doc Is Nothing Then
  3228.                Messagebox "Vendor Database List Information Missing", MB_ICONEXCLAMATION, "Query on Data"
  3229.                Exit Sub
  3230.           End If
  3231.      Wend
  3232.      Set ThisDoc = Workspace.CurrentDocument
  3233.      
  3234.       '  extract rule of thumb information
  3235.      Set CurrentView = CurrentDB.GetView( "Conversion Guidelines" )
  3236.      Set doc = CurrentView.GetFirstDocument
  3237.      If doc Is Nothing Then
  3238.           Messagebox "Conversion Guidelines Document Missing", MB_ICONEXCLAMATION, "Query on Data"
  3239.           Exit Sub
  3240.      End If
  3241.      While doc.Profile( 0 ) <> "Default"
  3242.           Set doc = CurrentView.GetNextDocument( doc )
  3243.           If doc Is Nothing Then
  3244.                Messagebox "Conversion Guidelines Document Missing", MB_ICONEXCLAMATION, "Query on Data"
  3245.                Exit Sub
  3246.           End If
  3247.      Wend
  3248.      
  3249.      vtemp = doc.Adjust_ReplHub
  3250.      nAdjust_ReplHub = vtemp( 0 )
  3251.      vtemp = doc.Adjust_MailHub
  3252.      nAdjust_MailHub = vtemp( 0 )
  3253.      
  3254.      Call UserTaskArrayInitWhole (doc)
  3255.      
  3256.      If VerifyForm( sOSPlatformWholeList ) = False Then
  3257.           Exit Sub
  3258.      End If
  3259.      
  3260.      Set ListDoc =  CreateList( )         '  insure List form is present and up-to-date
  3261.      
  3262.      
  3263.      sOSPlatformWholeList = ThisDoc.FieldGetText( "LayoutOSPlatform" )
  3264.      If sOSPlatformWholeList = "" Then
  3265.           sOSPlatformWholeList = "AIX/RS6000; AIX/SP2;  HP-UX; NetWare 3.12; Netware 4.1; NT 3.51; NT 4.0; OS/2 2.11 SMP; OS/2 Warp Connect; OS/2 Warp Server 4.0; Solaris 2.5; Win95 1.0"
  3266.      End If
  3267.      
  3268.       'clear out the graphs as they won't be in sync with the output table generated
  3269.      ThisDoc.GoToField( "LayoutCostChart" )
  3270.      ThisDoc.FieldClear( "LayoutCostChart" )
  3271.      
  3272.      ThisDoc.GoToField( "LayoutCostSheet" )
  3273.      ThisDoc.FieldClear( "LayoutCostSheet" )
  3274.      
  3275.      ThisDoc.GoToField( "LayoutResponseChart" )
  3276.      ThisDoc.FieldClear( "LayoutResponseChart" )
  3277.      
  3278.      ThisDoc.GoToField( "LayoutResponseSheet" )
  3279.      ThisDoc.FieldClear( "LayoutResponseSheet" )
  3280.      
  3281.      ThisDoc.GoToField( sFieldName )  '  position back at current field temporarily
  3282.      
  3283.  '    query against database
  3284.      VendorDBBuffer = ThisDoc.FieldGetText( "VendorList" )
  3285.      If Len( VendorDBBuffer ) = 0 Then
  3286.  '        Messagebox "no vendors selected"
  3287.  '        insert all vendors into list     
  3288.  '        Find the list document which contains the dynamic list
  3289.           If doc Is Nothing Then
  3290.                Messagebox "No Vendors Selected/Found", MB_ICONEXCLAMATION, "Query on Data"
  3291.           Else
  3292.                While Not( doc Is Nothing )
  3293.                     If doc.ListType( 0 ) = "Database" Then
  3294.                          Set Listdoc = doc
  3295.                          If Listdoc.list( 0 ) = "" Then
  3296.                               Messagebox "Warning:  No Vendor Databases to Search", MB_ICONEXCLAMATION, "Database Search"
  3297.                               ThisDoc.GotoField( "LayoutServerTasks" )
  3298.                               Exit Sub
  3299.                          End If
  3300.                          
  3301.                          Forall vendorname In Listdoc.list 
  3302. '                             format the string, separated by ;
  3303.                               If vendorname <> "" Then
  3304.                                    If VendorDBBuffer <> "" Then
  3305.                                         VendorDBBuffer = VendorDBBuffer & " ; "  
  3306.                                    End If
  3307.                                    VendorDBBuffer = VendorDBBuffer & vendorname
  3308.                               End If
  3309.                          End Forall
  3310.                     End If
  3311.                     Set doc = CurrentView.GetNextDocument( doc )
  3312.                Wend
  3313.           End If
  3314.      End If
  3315.      
  3316.      '  count the vendors selected.  make sure there is always room for one entry each vendor
  3317.      iVendorCount = 0
  3318.      iPositionOfChar = 1
  3319.      While iPositionOfChar <> 0
  3320.           iPositionOfChar = Instr( iPositionOfChar, VendorDBBuffer, ";" )
  3321.           If iPositionOfChar <> 0 Then
  3322.                iPositionOfChar = iPositionOfChar + 1
  3323.           End If
  3324.           iVendorCount = iVendorCount + 1
  3325.      Wend
  3326.      
  3327.      If iVendorCount > numoutputlines Then       'currently limit set at 10 output values
  3328.           Messagebox "The number of output information exceeds the current display.  You should adjust your query specifications.",  MB_ICONEXCLAMATION, "Output Limit Reached"
  3329.           ThisDoc.GotoField( "VendorList" )
  3330.           Exit Sub
  3331.      End If
  3332.      
  3333. '    initialize queryid field    
  3334.      RandomValue = Cstr( Year( Today ) + Month( Today ) * 50 + Day( Today ) + Hour( Time ) * 360 + Minute( Time ) * 60 + Second( Time ) )
  3335. '    Need **** to verify that random value is unique , verify it for this document and anywhere it is stored
  3336.      ThisDoc.document.queryid =  RandomValue
  3337.      
  3338.      '  Calculate total amount specified
  3339.      nTotalAmt = Csng( ThisDoc.FieldGetText( "OtherAmt1" ) ) + Csng( ThisDoc.FieldGetText( "OtherAmt2" ) ) + Csng( ThisDoc.FieldGetText( "OtherAmt3" ) )
  3340.      
  3341.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), ";" ) = 0 And UserTaskCount( ThisDoc ) < 2 Then
  3342.           ' only one server task specified?
  3343.           iOutputCount = ProcessOneTask( VendorDBBuffer, sOSPlatformWholeList )
  3344.      Else 
  3345.           iOutputCount = ProcessMultipleTasks( VendorDBBuffer, sOSPlatformWholeList )
  3346.      End If
  3347.      
  3348.      If iOutputCount = 0  Then
  3349.           Messagebox " No Query Results Found", MB_ICONEXCLAMATION,  "Query Results"
  3350.      End If
  3351.      
  3352.      '     output total count of documents processed     
  3353.      ThisDoc.document.numresults = Cstr( iOutputCount )
  3354.      'Messagebox(ThisDoc.FieldGetText("OutResults1"))
  3355.      
  3356.      If iOutputCount > 0 Then
  3357.           ThisDoc.GoToField( "OutResults1_2")
  3358.      End If
  3359.      
  3360. End Sub
  3361. '++LotusScript Development Environment:2:1:ProcessOneTask:2:8
  3362. Function ProcessOneTask( sVendorDBBuffer As String, sOSPlatformWholeList As String )  As Integer
  3363.           ' accept query parameters for one task
  3364.      '  return results which will then need to be processed
  3365.      
  3366.      Dim ThisDoc As NotesUIDocument
  3367.      Dim Workspace As New NotesUIWorkspace
  3368.      
  3369.      Dim iPositionOfChar As Integer
  3370.      Dim iOutputCount As Integer
  3371.      Dim iTotalCount As Integer
  3372.      Dim sSearchDB As String
  3373.      
  3374.      Set ThisDoc = Workspace.CurrentDocument
  3375.      
  3376.      iOutputCount = 0
  3377.      iTotalCount = 0
  3378.      
  3379.      While Len( sVendorDBBuffer )  > 0
  3380.  '        extract filename only
  3381.           iPositionOfChar = Instr( 1, sVendorDBBuffer, ";" )
  3382.           If iPositionOfChar = 0 Then
  3383.                sVendorDB = sVendorDBBuffer
  3384.           Else
  3385.                sVendorDB = Left( sVendorDBBuffer,( iPositionOfChar - 1 ) )
  3386.           End If
  3387.           
  3388.           sVendorDB = Trim( sVendorDB )
  3389.           sSearchDB = "CP" & sVendorDB
  3390.           sSearchDB = sSearchDB & ".NSF"
  3391.           
  3392.           iVendorCount = iVendorCount - 1
  3393.           
  3394.           'Print Datatype (ThisDoc.Document.LayoutReplHub)
  3395.           Dim vTemp As Variant
  3396.           If( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "Replication Hub" ) Then
  3397.                vTemp = ThisDoc.Document.LayoutReplHub
  3398.          '               iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), ThisDoc.FieldGetText( "LayoutReplHub" ), ThisDoc.FieldGetText( "LayoutReplHour" ), ThisDoc.FieldGetText( "LayoutMBReplHour" ), sOSPlatformWholeList, iOutputCount )
  3399.               '[ iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( ThisDoc.Document.LayoutReplHub ), "*", "*", sOSPlatformWholeList, iOutputCount )
  3400.                iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( vTemp( 0 ) ), "*", "*", sOSPlatformWholeList, iOutputCount )
  3401.           Elseif( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "Mail Routing Hub" ) Then
  3402.                vTemp = ThisDoc.Document.LayoutMailHub
  3403. '               iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), ThisDoc.FieldGetText( "LayoutMailHub" ), ThisDoc.FieldGetText( "LayoutMessagesHour" ), ThisDoc.FieldGetText( "LayoutMBMessagesHour" ),sOSPlatformWholeList, iOutputCount )
  3404.                iOutputCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( vTemp( 0 ) ), "*", "*",sOSPlatformWholeList, iOutputCount )
  3405.           Elseif( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "User Tasks" ) Then
  3406.                For i = 1 To 7
  3407.                     If sUserTaskArray( i, 2 ) <> "0" Then
  3408.                          vTemp = ThisDoc.Document.LayoutNumActiveUsers
  3409.                          iOutputCount = QueryOnDatabase( sSearchDB, "",   sUserTaskArray( i, 1 ), Cstr( vTemp( 0 ) ), "", "", sOSPlatformWholeList, iOutputCount )
  3410.                          i = 7
  3411.                     End If
  3412.                Next i
  3413.           End If
  3414.           
  3415.  '        process next filename          
  3416.           If iPositionOfChar = 0 Then
  3417.                sVendorDBBuffer = ""
  3418.           Else
  3419.                sVendorDBBuffer = Trim( Right( sVendorDBBuffer, Len( sVendorDBBuffer )- iPositionOfChar ) )
  3420.           End If
  3421.           
  3422.           iTotalCount = iOutputCount
  3423.           'iTotalCount = iTotalCount + iOutputCount   '  roll up total across all vendors
  3424.      Wend
  3425.      
  3426.      ProcessOneTask = iTotalCount
  3427.      
  3428. End Function
  3429. '++LotusScript Development Environment:2:2:Initialize:1:10
  3430. Sub Initialize
  3431.      
  3432. End Sub
  3433. '++LotusScript Development Environment:2:1:SearchForPossibleMatches:2:8
  3434. Function SearchForPossibleMatches( sLayoutServerTasks As String,  sSearchDB As String, sMachineID As String, sUserCount As String, sOther11 As String, sOther21 As String, bZeroBase As Integer, bMaxBase As Integer )  As NotesDocumentCollection 
  3435. '     iOutputCount keeps track of number of output entries     
  3436.      Dim ThisDoc As NotesUIDocument
  3437.      Dim Workspace As New NotesUIWorkspace
  3438.      Dim DateTime As New NotesDateTime( "1/1/96" )
  3439.      Dim VendorDB As NotesDatabase
  3440.      
  3441.      Set ThisDoc = Workspace.CurrentDocument
  3442.      Set VendorDB = New NotesDatabase( "", sSearchDB )
  3443.      
  3444. '         process specific database
  3445. '         Need to dynamically build query
  3446.      
  3447.      SearchFormula$ =  "Form = " & {"} & "Vendor Data" & {"}
  3448.      
  3449.      nSearchTolerance = Csng( ThisDoc.FieldGetText( "LayoutTolerance" ) )
  3450.      'nSearchTolerance =(( nSearchTolerance/2 ) / 100 )        ' now a percent
  3451.      nSearchTolerance =(( nSearchTolerance ) / 100 )        ' now a percent
  3452.      
  3453.      ' adjust sUserCount value translating real life-> benchmark  
  3454.      If sLayoutServerTasks = "Replication Hub" Then
  3455.           sUserCount = Cstr( Cint( sUserCount ) * nAdjust_ReplHub )
  3456.      Elseif sLayoutServerTasks = "Replication Hub" Then
  3457.           sUserCount = Cstr( Cint( sUserCount ) * nAdjust_MailHub )
  3458.      Else
  3459.           For i = 1 To 7
  3460.                If sLayoutServerTasks = sUserTaskArray( i, 1 ) Then
  3461.                     sUserCount = Cstr(( Cint( sUserCount ) * Cint( sUserTaskArray( i, 4 ) ) ) )
  3462.                End If
  3463.           Next
  3464.      End If
  3465.      
  3466.      If sLayoutServerTasks = "Replication Hub"  Or  sLayoutServerTasks = "Mail Routing Hub" Then
  3467.                      ' Server Task
  3468.           SearchFormula$ = SearchFormula$ + " & DataUScript1  =  "+  {"} + sLayoutServerTasks +  {"}   
  3469.           
  3470.           ' Hub count with tolerance adjustment
  3471.           '  handle case where base for search should start at 0
  3472.           nUpper =  Cint( sUserCount ) +( Cint( sUserCount ) * nSearchTolerance )
  3473.           nLower =  Cint( sUserCount ) -( Cint( sUserCount ) * nSearchTolerance )
  3474.           If Cint( nLower ) = Cint( nUpper ) Then
  3475.                If bZeroBase = False Then
  3476.                     SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  =  "+  Cstr( Cint( nLower ) ) 
  3477.                Else
  3478.                     SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr( 0 ) 
  3479.                End If
  3480.           Else
  3481.                If bZeroBase = False Then
  3482.                     If bMaxBase = False Then
  3483.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  3484.                     Else
  3485.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  
  3486.                     End If
  3487.                Else           '  start search with > 0 users    
  3488.                     ' check if there is a max number of users to be searched for
  3489.                     '  False means that check for a defined limit
  3490.                     If bMaxBase = False Then
  3491.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  " +  Cstr( 0 )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  3492.                     Else
  3493.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  " +  Cstr( 0 )  
  3494.                     End If           
  3495.                End If
  3496.           End If
  3497.           
  3498.           
  3499.           '  Replications/Hour with tolerance adjustment
  3500.           If sOther11 <> "*"  And sOther11 <> "0" Then        ' don't process wildcard
  3501.                nUpper =  Cint( sOther11 ) +( Cint( sOther11 ) * nSearchTolerance )
  3502.                nLower =  Cint( sOther11 ) -( Cint( sOther11 ) * nSearchTolerance )
  3503.                If Cint( nLower ) = Cint( nUpper ) Then
  3504.                     SearchFormula$ = SearchFormula$ + " & DataUOther11  = " +  Cstr( Cint( nLower ) ) 
  3505.                Else
  3506.                     SearchFormula$ = SearchFormula$ + " & DataUOther11  > " +  Cstr(( Cint( nLower ) - 1 ) )  & " & DataUOther11  < " +  Cstr(( Cint( nUpper ) + 1 ) )
  3507.                End If
  3508.           End If
  3509.           
  3510.           ' MB Replications/Hour with tolerance adjustment
  3511.           If sOther21 <> "*"  And sOther21 <> "0" Then        ' don't process wildcard
  3512.                nUpper =  Cint( sOther21 ) +( Cint( sOther21 ) * nSearchTolerance )
  3513.                nLower =  Cint( sOther21 ) -( Cint( sOther21 ) * nSearchTolerance )
  3514.                If Cint( nLower ) = Cint( nUpper ) Then
  3515.                     SearchFormula$ = SearchFormula$ + " & DataUOther21  >" +  Cstr( Cint( nLower ) ) 
  3516.                Else
  3517.                     SearchFormula$ = SearchFormula$ + " & DataUOther21  > " +  Cstr(( Cint( nLower ) - 1 ) )  & "DataUOther21  < " +  Cstr(( Cint( nUpper ) + 1 ) )
  3518.                End If
  3519.           End If
  3520.      Else
  3521.           If ThisDoc.FieldGetText( "LayoutNumActiveUsers" ) <> "" Then
  3522.                ' User count with tolerance adjustment
  3523.                nUpper =  Cint( sUserCount ) +( Cint( sUserCount ) * nSearchTolerance )
  3524.                nLower =  Cint( sUserCount ) -( Cint( sUserCount ) * nSearchTolerance )
  3525.                If Cint( nLower ) = Cint( nUpper ) Then
  3526.                     If bZeroBase = False Then
  3527.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  =  "+  Cstr( Cint( nLower ) ) 
  3528.                     Else
  3529.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr( 0 ) 
  3530.                     End If
  3531.                Else
  3532.                     If bZeroBase = False Then
  3533.                          If bMaxBase = False Then
  3534.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  3535.                          Else
  3536.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  
  3537.                          End If
  3538.                     Else  
  3539.                          If bMaxBase = False Then
  3540.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  3541.                          Else   
  3542.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )                           
  3543.                          End If
  3544.                     End If
  3545.                End If
  3546.                 ' User Task
  3547.                SearchFormula$ = SearchFormula$ + " & DataUScript1  =  "+  {"} +  sLayoutServerTasks +  {"}   
  3548.           End If
  3549.      End If
  3550.      
  3551.      If sMachineID <> "" Then
  3552.           SearchFormula$ = SearchFormula$ + " & DataUServerID  =  "+  {"} +  SMachineID +  {"}   
  3553.      End If
  3554.      
  3555.      If ThisDoc.FieldGetText( "LayoutUserResponseTime" )  <> "" Then
  3556.           If ThisDoc.FieldGetText( "LayoutUserResponseTime" )  = "Fast ( < 1 sec)" Then
  3557.                SearchFormula$ = SearchFormula$ + " &( DataUPercentFast * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" )  
  3558.           Elseif ThisDoc.FieldGetText( "LayoutUserResponseTime" )  = "Medium (1 - 3 sec)" Then
  3559.                SearchFormula$ = SearchFormula$ + " &( DataUPercentMedium * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" ) 
  3560.           Elseif ThisDoc.FieldGetText( "LayoutUserResponseTime" )  =  "Slow (3.1 - 5 sec)" Then
  3561.                SearchFormula$ = SearchFormula$ + " &( DataUPercentSlow * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" ) 
  3562.           End If
  3563.      End If
  3564.      '          end of query
  3565.      
  3566.      '  keep track of vendors search.  decrement vendor count for each one searched
  3567.      '  must make sure each vendor is represented
  3568.      If i = numoutputlines Then
  3569.           i = 1     ' wrap around
  3570.      Else
  3571.           i = i + 1
  3572.      End If 
  3573.      
  3574.      Set SearchForPossibleMatches = VendorDB.Search( SearchFormula$, DateTime, 0 )
  3575.      
  3576. End Function
  3577. '++LotusScript Development Environment:2:1:VerifyForm:1:8
  3578. Function VerifyForm( sOSPlatform As String ) As Integer
  3579.      Dim ThisDoc As NotesUIDocument
  3580.      Dim Workspace As New NotesUIWorkspace
  3581.      
  3582.      Dim lBoxType As Long
  3583.      Dim iAnswer As Integer
  3584.      Dim vPlatformArray As Variant
  3585.      Dim i As Integer
  3586.      Dim j As Integer
  3587.      Dim sFieldNameOut As String
  3588.      
  3589.      Set ThisDoc = Workspace.CurrentDocument
  3590.      
  3591.      ThisDoc.document.OutSummary = ""
  3592.      
  3593.      ThisDoc.document.OutResults1 = ""
  3594.      For i = 1 To numoutputlines
  3595.           sFieldNameOut = "OutResults"& Cstr( i )
  3596.           Call ThisDoc.FieldSetText( sFieldNameOut, "" )
  3597.           For j = 1 To 6
  3598.                If j <> 5 Then      'somehow I skipped 5 - big mistake!
  3599.                     sFieldNameOutx = sFieldNameOut & "_" & Cstr( j )
  3600.                     Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  3601.                End If
  3602.           Next j
  3603.      Next i
  3604.      
  3605.  '    Server Tasks or User Tasks need to have a value
  3606.      If Len( ThisDoc.FieldGetText( "LayoutServerTasks" ) ) = 0 Then
  3607.           Messagebox "Enter Task( s ) Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  3608.           ThisDoc.GotoField( "LayoutServerTasks" )
  3609.           VerifyForm = False
  3610.           Exit Function
  3611.      End If
  3612.      
  3613.      For j = 1 To 7
  3614.           For i = 1 To 3
  3615.                                '  make sure each field has at least a "0"
  3616.                sTempName$ = sUserTaskArray( j, 3 ) + "_" + Cstr( i ) 
  3617.                Call ZeroFieldOut( ThisDoc, sTempName$ )
  3618.           Next i
  3619.      Next j
  3620.      
  3621.  '    make sure data associated with Server Tasks is filled in
  3622.      '  check on replhub
  3623.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "R" ) > 0 Then
  3624.           If Len( ThisDoc.FieldGetText( "LayoutReplHour" ) ) = 0 Then
  3625.                Messagebox "Enter Replications/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  3626.                ThisDoc.GotoField( "LayoutReplHour" )
  3627.                VerifyForm = False
  3628.                Exit Function
  3629.           End If
  3630.           If Len( ThisDoc.FieldGetText( "LayoutMBReplHour" ) ) = 0 Then
  3631.                Messagebox "Enter MB Replicated/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  3632.                ThisDoc.GotoField( "LayoutMBReplHour" )
  3633.                VerifyForm = False
  3634.                Exit Function
  3635.           End If
  3636.      End If
  3637.           '  check on mailhub
  3638.      If  Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "M" ) > 0  Then
  3639.           If Len( ThisDoc.FieldGetText( "LayoutMessagesHour" ) ) = 0 Then
  3640.                Messagebox "Enter Messages/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  3641.                ThisDoc.GotoField( "LayoutMessagesHour" )
  3642.                VerifyForm = False
  3643.                Exit Function
  3644.           End If
  3645.           If Len( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) ) = 0 Then
  3646.                Messagebox "Enter MB Messages/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  3647.                ThisDoc.GotoField( "LayoutMBMessagesHour" )
  3648.                VerifyForm = False
  3649.                Exit Function
  3650.           End If
  3651.      End If
  3652.           '  check on user tasks
  3653.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ),  "U" ) > 0  Then
  3654.           
  3655.           If VerifyProfileMaster( ThisDoc ) = False Then
  3656.                Exit Function
  3657.           End If
  3658.           
  3659.            ' passes( almost ) all tests.  If User Tasks is specified, sum up the results
  3660.           Dim iTemp As Integer
  3661.           For i = 1 To 7
  3662.                iTemp = 0
  3663.                For j = 1 To 3
  3664.                     sTempName$ = sUserTaskArray( i, 3 ) + "_" + Cstr( j )
  3665.                     sTempProfile$ = "LayoutTotalProfile_" + Cstr( j )
  3666.                     ' storing the user count
  3667.                     iTemp =( Cint( ThisDoc.FieldGetText( sTempName$ ) )/100 ) *( Cint( ThisDoc.FieldGetText( sTempProfile$ ) ) ) + iTemp
  3668.                Next j
  3669.                sTempName$ = sUserTaskArray( i, 3 ) 
  3670.                Call ThisDoc.FieldSetText( sTempName$, Cstr( iTemp ) )
  3671.                '  workaround
  3672.                If i = 1 Then
  3673.                     Call ThisDoc.FieldSetText( "LayoutMail", Cstr( iTemp ) )
  3674.                Elseif i = 2 Then
  3675.                     Call ThisDoc.FieldSetText( "LayoutMailDB", Cstr( iTemp ) )
  3676.                Elseif i = 3 Then
  3677.                     Call ThisDoc.FieldSetText( "LayoutGroupware", Cstr( iTemp ) )
  3678.                Elseif i = 4 Then
  3679.                     Call ThisDoc.FieldSetText( "LayoutCS", Cstr( iTemp ) )
  3680.                Elseif i = 5 Then
  3681.                     Call ThisDoc.FieldSetText( "LayoutDatabase", Cstr( iTemp ) )
  3682.                Elseif i = 6 Then
  3683.                     Call ThisDoc.FieldSetText( "LayoutWW", Cstr( iTemp ) )
  3684.                Elseif i = 7 Then
  3685.                     Call ThisDoc.FieldSetText( "LayoutWB", Cstr( iTemp ) )
  3686.                End If
  3687.                '  insert information into summary field
  3688.                sUserTaskArray( i, 2 ) = Cstr( iTemp )
  3689.           Next i
  3690.           
  3691.      End If
  3692.      
  3693.  '    % Fall within range 
  3694.  '    Make sure this is set    
  3695.      LayoutPercentRange =  ThisDoc.FieldGetText( "LayoutPercentRange" )
  3696. '     Messagebox LayoutPercentRange
  3697.      If LayoutPercentRange = "" Then
  3698.           Messagebox "Enter Percent Range", MB_ICONEXCLAMATION, "Verify Form"
  3699.           ThisDoc.GotoField( "LayoutPercentRange" )
  3700.           VerifyForm = False
  3701.           Exit Function
  3702.      End If
  3703.      
  3704. '    User Response Time
  3705.      ResponseTimeFlag$ =  ThisDoc.FieldGetText( "LayoutUserResponseTime" )
  3706.      If ResponseTimeFlag$ = "" Then
  3707.           Messagebox "Enter Response Time", MB_ICONEXCLAMATION, "Verify Form"
  3708.           ThisDoc.GotoField( "LayoutUserResponseTime" )
  3709.           VerifyForm = False
  3710.           Exit Function
  3711.      End If
  3712.      
  3713.  '    OS Platform Parsing
  3714.      If ThisDoc.FieldGetText( "LayoutOSPlatform" ) = "" Then
  3715.           Messagebox "Specify OS Platform(s)", MB_ICONEXCLAMATION, "Query on Data"
  3716.           ThisDoc.Gotofield( "LayoutOSPlatform" )
  3717.      End If
  3718.      
  3719.      
  3720.      VerifyForm = True
  3721.      
  3722. End Function
  3723. '++LotusScript Development Environment:2:1:QueryOnDatabase:1:8
  3724. Function QueryOnDatabase( sSearchDB As String,  sMachineID As String, sLayoutServerTasks As String, sUserCount As String, sOther11 As String, sOther21 As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  3725. '     iOutputCount keeps track of number of output entries     
  3726.      Dim Workspace As New NotesUIWorkspace
  3727.      Dim ThisDoc As NotesUIDocument
  3728.      Dim DateTime As New NotesDateTime( "1/1/96" )
  3729.      Dim DataCollection As NotesDocumentCollection
  3730.      Dim MachineIDDoc As NotesDocument
  3731.      Dim DataDoc As NotesDocument
  3732.      Dim RTItem As NotesRichTextItem
  3733.      Dim sFieldNameOutOut As String
  3734.      
  3735.      Dim iPositionOfChar As Integer
  3736.      Dim iSkipCount As Integer
  3737.      Dim bZeroBase As Integer
  3738.      Dim bMaxBase As Integer
  3739.      Dim sCPUInfo As String
  3740.      Dim sMachineID2 As String
  3741.      Dim vVendorDB As Variant
  3742.      Dim vTemp1 As Variant
  3743.      Dim vTemp2 As Variant
  3744.      
  3745.      Dim nUpper As Single
  3746.      Dim nLower As Single
  3747.      Dim nSearchTolerance As Single
  3748.      
  3749.      Dim dDataUPercentFast As Double
  3750.      Dim dDataUPercentMedium As Double
  3751.      Dim dLayoutPercentRange As Double
  3752.      
  3753.      Set ThisDoc = Workspace.CurrentDocument
  3754.      
  3755.      temp = Trim( sSearchDB )
  3756.      sMachineID2 = sMachineID    '  save off original machine name
  3757.      
  3758.      Set VendorDB = New NotesDatabase( "", Trim( sSearchDB ) )
  3759.      
  3760.      bQueryFlag = True
  3761.      bZeroBase= False    '  search begins at user count > 0
  3762.      bMaxBase = True  '  search does have a max user count
  3763.      
  3764.      iSkipCount = 0  ' number of dups found
  3765.      
  3766.      '  call central routine to query on specified database for specified task
  3767.      Set DataCollection = SearchForPossibleMatches( sLayoutServerTasks, sSearchDB, sMachineID, sUserCount, sOther11, sOther21,  _
  3768.      bZeroBase, bMaxBase )
  3769.      
  3770.      For i = 1 To DataCollection.count
  3771.           If ( iVendorCount + iOutputCount ) = numoutputlines Then
  3772.                Messagebox "Warning:  Reached Limit on Output", MB_ICONEXCLAMATION, "Output Verification"
  3773.                QueryOnDatabase = iOutputCount 
  3774.                Exit Function
  3775.           End If
  3776.           
  3777.           'iCurrentRow = iOutputCount + 1  ' index into spreadsheet, under heading line
  3778.           
  3779.           Set DataDoc = DataCollection.GetNthDocument( i )
  3780.           '   verify that machine is not already specified
  3781.           sMachineID= DataDoc.DataUServerID( 0 )
  3782.           SkipOver = False
  3783.           For j = 1 To iOutputCount
  3784.                sFieldNameOutOut = "OutResults"& Cstr( j )
  3785.                If sMachineID = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  3786.                     '  now need to verify that vendors are not the same either
  3787.                     sFieldNameOutOut = "OutResults" & Cstr( j ) & "_2"
  3788.                     sVendor = ExtractVendorName( sSearchDB )
  3789.                     If sVendor = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  3790.                          SkipOver = True
  3791.                          iSkipCount = iSkipCount + 1
  3792.                     End If
  3793.                End If
  3794.           Next j
  3795.           
  3796.           vCertifyCheck = ThisDoc.Document.CertifyCheckOn
  3797.                               'when CertifyCheckOn = "0" - debug mode
  3798.           If ( vCertifyCheck( 0 ) = "1" And ThisDocBE.IsSigned ) Or vCertifyCheck( 0 ) = "0" Then
  3799. %END REM
  3800.           
  3801.           '  make sure the document is signed
  3802.           'vCertifyCheck = DataDoc.CertifyCheckOn
  3803.           vCertifyCheck=ThisDoc.Document.CertifyCheckOn
  3804.           vIsSignedField = DataDoc.IsSignedField
  3805.           If vCertifyCheck( 0 ) = "1" And vIsSignedField( 0 ) = "0" Then
  3806.                SkipOver=True
  3807.           End If
  3808.           
  3809.           '  make sure datadoc is within range
  3810.           vtemp1=DataDoc.DataUAverage
  3811.           If vtemp1( 0 ) > 5  Then
  3812.                SkipOver = True
  3813.                Elseif vtemp1( 0 ) > 3 And( ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Medium (1 - 3 sec)" Or _
  3814.           ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Fast ( < 1 sec)" ) Then
  3815.                SkipOver = True
  3816.           Elseif vtemp1( 0 ) > 1 And ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Fast ( < 1 sec)" Then
  3817.                SkipOver = True
  3818.           End If
  3819.           
  3820.           '  capture machine description, retrieve machine id info
  3821.           SearchFormula2$ = " Form = ""Machine Identifier""  & MachineID = " & {"} & sMachineID & {"} & " & ( "
  3822.           
  3823.                '  if replication hub selected, insert additional query parameters in
  3824.           
  3825.                '  check to see if document meets platform criteria
  3826.                '  check to see if multiple platforms are specified
  3827.           If Len( ThisDoc.FieldGetText( "LayoutOSPlatform" ) ) <> 0 Then
  3828.                sOSPlatform = ThisDoc.FieldGetText( "LayoutOSPlatform" )
  3829.           Else
  3830.                sOSPlatform = sOSPlatformWholeList
  3831.           End If
  3832.           
  3833.           If Instr( 1, sOSPlatform, ";" )  > 0 Then
  3834.                While Len( sOSPlatform ) > 0
  3835.                     iPositionOfChar2 = Instr( 1, sOSPlatform, ";" )
  3836.                     If iPositionOfChar2 = 0 Then
  3837.                          sOSPlatformTemp = Trim( sOSPlatform )
  3838.                          SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & sOSPlatformTemp & {"} 
  3839.                     Else
  3840.                          sOSPlatformTemp = Trim( Left( sOSPlatform,( iPositionOfChar2 - 1 ) ) )
  3841.                          SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & sOSPlatformTemp & {"} & "  |  "
  3842.                     End If
  3843.                     
  3844.                     If iPositionOfChar2 = 0 Then
  3845.                          sOSPlatform = ""
  3846.                     Else
  3847.                          sOSPlatform = Trim( Right( sOSPlatform,( Len( sOSPlatform ) - iPositionOfChar2 ) ) )
  3848.                     End If
  3849.                Wend
  3850.           Else
  3851.                     '  handle case where single specification
  3852.                SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & ThisDoc.FieldGetText( "LayoutOSPlatform" ) & {"} 
  3853.           End If
  3854.           
  3855.           If ThisDoc.FieldGetText( "LayoutDiskConfiguration" ) = "Includes RAID 5" Then
  3856.                SearchFormula2$ = SearchFormula2$ + " & ( MachineDiskType1 =  " +  {"} +  "Includes RAID 5" +  {"}  + _
  3857.                " | MachineDiskType2 = "   +  {"} +  "Includes RAID 5" +  {"} + _
  3858.                " | MachineDiskType3 = "   +  {"} +  "Includes RAID 5" +  {"} + _
  3859.                " | MachineDiskType4 = "   +  {"} +  "Includes RAID 5" +  {"} + " )"
  3860.           '  need to add on Type3 and Type4 *********
  3861.           End If
  3862.           
  3863.           SearchFormula2$ = SearchFormula2$ +  " )"
  3864.           
  3865.           'Messagebox SearchFormula2$
  3866.           Set MachineIDcollection = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  3867.           If(( MachineIDcollection.count > 0 ) And( SkipOver = False )  And(( iOutputCount + iVendorCount ) <( numoutputlines + 1 ) ) ) Then
  3868.                iOutputCount = iOutputCount + 1   '  position at next entry
  3869.                Redim Preserve AllResults( iOutputCount + 1 )
  3870.                AllResults( iOutputCount )=sMachineID
  3871.                     ' save off machine id
  3872.                sFieldNameOutOut = "OutResults"& Cstr( iOutputCount )
  3873.                Call ThisDoc.FieldSetText( sFieldNameOutOut, AllResults( iOutputCount ) )
  3874.                     ' save off machine description
  3875.                sFieldNameOutOut = sFieldNameOutOut & "_1"
  3876.                     ' ***must make sure do not exceed length of table
  3877.                     ' ****must make sure a check is made if the documents are not found when expected
  3878.                Set MachineIDDoc = MachineIDcollection.GetNthDocument( 1 )
  3879.                temp = MachineIDDoc.GetItemValue( "MachineDescription" )
  3880.                Call ThisDoc.FieldSetText( sFieldNameOutOut, temp( 0 ) )
  3881.                     'save off vendor name
  3882.                sFieldNameOutOut =  "OutResults" & Cstr( iOutputCount ) & "_2"
  3883.                sVendorDB = Mid$( SSearchDB, 3,( Len( sSearchDB ) - 6 ) )
  3884.                Call ThisDoc.FieldSetText( sFieldNameOutOut, sVendorDB )
  3885.                     ' save off cpu/# info
  3886.                sFieldNameOutOut =   "OutResults" & Cstr( iOutputCount ) & "_3"
  3887.                vCPUInfo = MachineIDDoc.GetItemValue( "MachineCPUType" ) 
  3888.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & "/"
  3889.                vTemp2 = MachineIDDoc.GetItemValue( "MachineCPUSpeed" ) 
  3890.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & vTemp2( 0 ) 
  3891.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & " x "
  3892.                vTemp1 = MachineIDDoc.GetItemValue( "MachineNumberofCPUs" )
  3893.                vCPUInfo( 0 ) = vCPUInfo( 0 ) & " " & Cstr( vTemp1( 0 ) )
  3894.                If Cint( vTemp1( 0 ) ) > 1 Then
  3895.                     vCPUInfo( 0 ) = vCPUInfo( 0 ) & " (SMP)"
  3896.                End If
  3897.                
  3898.                Call ThisDoc.FieldSetText( sFieldNameOutOut, vCPUInfo( 0 ) )
  3899.                      ' save off OS info
  3900.                sFieldNameOutOut = "OutResults"& Cstr( iOutputCount ) & "_4"
  3901.                vCPUInfo1 = MachineIDDoc.GetItemValue( "MachinePlatform" )
  3902.                Call ThisDoc.FieldSetText( sFieldNameOutOut, vCPUInfo1( 0 ) )
  3903.                
  3904.                     'create doclink
  3905.                sFieldNameOutOut = "OR" & Cstr( iOutputCount ) & "_5"
  3906.                     ' *** not sure how to create doclink on notesuidocument - subform?
  3907.                
  3908.                '  save off Average Response Time info for graphing
  3909.                bQueryPerformed = True
  3910.                vAverageResponse( iOutputCount ) = DataDoc.DataUAverage
  3911.                
  3912.                '  save off Machine Cost for graphing
  3913.                vMachineCost( iOutputCount ) = MachineIDDoc.MachineCost
  3914.                
  3915.                '  display response time based on percent range specification
  3916.                sFieldNameOutOut = "OutResults" & Cstr( iOutputCount ) & "_6"
  3917.                vtemp1=DataDoc.DataUAverage
  3918.                
  3919.                If vtemp1( 0 ) < 1 Then
  3920.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Fast" )
  3921.                Elseif vtemp1( 0 ) < 3 Then
  3922.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Medium" )
  3923.                Elseif vtemp1( 0 ) < 5 Then
  3924.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Slow" )
  3925.                Else
  3926.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, "Out of Range" )
  3927.                End If
  3928.                
  3929.                '  save off link to datadoc
  3930.                'Set SaveDataDoc( iOutputCount ) = DataDoc
  3931.                'SaveDataDoc( iOutputCount ) = iOutputCount
  3932. '%REM
  3933.           Elseif MachineIDCollection.Count = 0 Then
  3934.                'If sMachineID = "" Then
  3935.                '  need to distinguish between disk configuration not RAID 5 and machine name not specified.  Need to re-query
  3936.                SearchFormula2$ = " Form = ""Machine Identifier""  & MachineID = " & {"} & sMachineID & {"} 
  3937.                Set MachineIDcollection = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  3938.                If( MachineIDcollection.count = 0 ) Then
  3939.                     sErrorMessage$ = "Warning:  Machine Identifier Form is missing for " & sMachineID & "   Continuing ....."
  3940.                     'sErrorMessage$ = "Machine Identifier Entry is missing for this associated Vendor Data.  Continuing..." 
  3941.                     Messagebox sErrorMessage$, MB_ICONEXCLAMATION, "Query on Data"
  3942.                End If
  3943.                'End If
  3944. '%END REM
  3945.           Elseif SkipOver = True Then
  3946.                '  make sure best response time is displayed, when there are multiple listings for any given machine
  3947.                For j = 1 To iOutputCount
  3948.                     sFieldNameOutOut = "OutResults"& Cstr( j )
  3949.                     If sMachineID = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  3950.                          sFieldNameOutOut = "OutResults" & Cstr( j ) & "_6"
  3951.                          vtemp1 = DataDoc.DataUAverage
  3952.                          
  3953.                          If vtemp1( 0 )  < 1 And  ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Fast" Then
  3954.                               Call ThisDoc.FieldSetText( sFieldNameOutOut, "Fast" )
  3955.                          Elseif vtemp1( 0 ) < 3.1  And vtemp1( 0 ) > .9  And( ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Fast"  And ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Medium" ) Then
  3956.                               Call ThisDoc.FieldSetText( sFieldNameOutOut, "Medium" )
  3957.                          Elseif vtemp1( 0 ) < 5  And vtemp1( 0 ) > 3  And ThisDoc.FieldGetText( sFieldNameOutOut ) = "Out of Range" Then
  3958.                               Call ThisDoc.FieldSetText( sFieldNameOutOut, "Slow" )
  3959.                          End If
  3960.                          
  3961.                     End If
  3962.                Next j
  3963.           End If
  3964.      Next i
  3965.      
  3966.      'QueryOnDatabase =(( iOutputCount ) - iSkipCount )          ' decrement for automatic positioning to next entry, and for number of dups
  3967.      QueryOnDatabase = iOutputCount                                  ' decrement for automatic positioning to next entry, and for number of dups
  3968.      
  3969. End Function
  3970. '++LotusScript Development Environment:2:1:ProcessMultipleTasks:1:8
  3971. Function ProcessMultipleTasks( sVendorDBBuffer As String, sOSPlatformWholeList As String ) As Integer
  3972.      Dim ThisDoc As NotesUIDocument
  3973.      Dim Workspace As New NotesUIWorkspace
  3974.      
  3975.      Dim iCountTasks As Integer
  3976.      Dim iPositionOfChar As Integer
  3977.      Dim iOutputCount As Integer
  3978.      Dim iTotalCount As Integer
  3979.      Dim sSearchDB As String
  3980.      Dim sMachineID As String
  3981.      Dim sVendorDBBufferSave As String
  3982.      
  3983.      Set ThisDoc = Workspace.CurrentDocument
  3984.      
  3985.      iTotalCount = 0
  3986.      
  3987.           ' need to determine if matching response values can be found within a given response range
  3988.      sVendorDBBufferSave = sVendorDBBuffer
  3989.      iOutputCount = 0
  3990.      iTotalCount = 0
  3991.      While Len( sVendorDBBuffer )  > 0
  3992.  '             extract filename only
  3993.           iPositionOfChar = Instr( 1, sVendorDBBuffer, ";" )
  3994.           If iPositionOfChar = 0 Then
  3995.                sVendorDB = sVendorDBBuffer
  3996.                sVendorDBBuffer = ""
  3997.           Else
  3998.                sVendorDB = Left( sVendorDBBuffer,( iPositionOfChar - 1 ) )
  3999.                sVendorDBBuffer = Right( sVendorDBBuffer,( Len( sVendorDBBuffer ) - iPositionOfChar ) )
  4000.                sVendorDBBuffer = Trim( sVendorDBBuffer )
  4001.           End If
  4002.  '             put vendor name together    
  4003.           sVendorDB = Trim( sVendorDB )
  4004.           sSearchDB = "CP" & sVendorDB
  4005.           sSearchDB = sSearchDB & ".NSF"
  4006.           
  4007.           iVendorCount = iVendorCount - 1
  4008.           
  4009.           iOutputCount = ProcessMultipleTasksCore( sSearchDB,  sOSPlatformWholeList, iTotalCount )
  4010.           
  4011.           'iTotalCount = iOutputCount
  4012.          'iTotalCount = iTotalCount + iOutputCount
  4013.           
  4014.      Wend  ' process a vendors database
  4015.      
  4016.      ProcessMultipleTasks = iTotalCount
  4017. End Function
  4018. '++LotusScript Development Environment:2:1:ProcessMultipleTasksCore:1:8
  4019. Function ProcessMultipleTasksCore( sSearchDB As String, sOSPlatformWholeList As String, iOutputCount As Integer ) As Integer
  4020.      Dim ThisDoc As NotesUIDocument
  4021.      Dim Workspace As New NotesUIWorkspace
  4022.      Dim DataCollectionTemp As NotesDocumentCollection
  4023.      
  4024.      Dim DataDoc( numscripts ) As NotesDocument
  4025.      Dim DataCollection( numscripts ) As NotesDocumentCollection
  4026.      
  4027.      Dim iMatchFound( numoutputlines, numscripts ) As Integer
  4028.      Dim iMatchDoc( numoutputlines, numscripts ) As Integer
  4029.      
  4030.      Dim bZeroBase As Integer
  4031.      Dim bMaxBase As Integer
  4032.      
  4033.      Dim nTaskCalibration( numscripts ) As Single
  4034.      Dim nTaskHourCalibration( 2 ) As Single
  4035.      Dim nMBHourCalibration( 2 ) As Single
  4036.      
  4037.      Dim iTaskCountSpecification( numscripts ) As Integer
  4038.      Dim iTaskHourSpecification( 2 ) As Integer
  4039.      Dim iMBHourSpecification( 2 ) As Integer
  4040.      
  4041.      Dim sBaseValue As Single
  4042.      Dim sTaskBaseValue As Single
  4043.      Dim sMBBaseValue As Single
  4044.      
  4045.      Dim sLayoutServerTasks As String
  4046.      
  4047.      Dim nCalibratedTaskNumber As Single
  4048.      Dim nCalibratedTaskHour As Single
  4049.      Dim nCalibratedMBHour As Single
  4050.      
  4051.      Dim iCalibratedTaskNumber As Integer
  4052.      Dim iCalibratedTaskHour As Integer
  4053.      Dim iCalibratedMBHour As Integer
  4054.      Dim iTaskCount As Integer
  4055.      
  4056.      Dim sCalibrationTask As String
  4057.      Dim iCountTasks As Integer
  4058.      Dim iPositionOfChar As Integer
  4059.      
  4060.      Dim iTotalCount As Integer
  4061.      Dim sMachineID As String
  4062.      Dim sProcessThisTask As String
  4063.      Dim iNumOutputLines As Integer
  4064.      Dim bMatchFound As Integer
  4065.      
  4066.      Dim sProcessTaskList As String
  4067.      Dim sProcessTaskListTemp As String
  4068.      
  4069.      Set ThisDoc = Workspace.CurrentDocument
  4070.      
  4071.      Set VendorDB = New NotesDatabase( "", sSearchDB )
  4072.      
  4073.      bMatchFound = True   ' flag to exit query if no match found
  4074.      iNumOutputLines = 1
  4075.      
  4076.      bZeroBase = False  '  search begins at user count >  0
  4077.      bMaxBase = True  '  search include a max user count
  4078.      
  4079.      sProcessTaskList = ThisDoc.FieldGetText( "LayoutServerTasks" )
  4080.      
  4081.      iCountTasks = 0            '  keep count of number of scripts actually specified
  4082.      While bMatchFound = True
  4083. '               Need to dynamically build query against response time
  4084. '              extract first tasks to key off search 
  4085.           iPositionOfChar = Instr( 1, sProcessTaskList, ";" )
  4086.           If iPositionOfChar = 0 Then
  4087.                sProcessThisTask = sProcessTaskList    '   reached last entry
  4088.                sProcessTaskList = ""
  4089.           Else 
  4090.                sProcessThisTask = Left( sProcessTaskList,( iPositionOfChar - 1 ) )
  4091.                sProcessTaskList = Right( sProcessTaskList, Len( sProcessTaskList ) - iPositionOfChar )
  4092.                sProcessTaskList = Trim( sProcessTaskList )
  4093.           End If
  4094.           
  4095.           bMaxBase = True  'start from specified base and look upward
  4096.           Dim vTemp As Variant
  4097.           If sProcessThisTask <> "User Tasks" Then
  4098.                If sProcessThisTask = "Replication Hub" Then
  4099.                     vTemp = ThisDoc.Document.LayoutReplHub
  4100.                     Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", _
  4101.                     Cstr(  vTemp( 0 ) ), ThisDoc.FieldGetText( "LayoutReplHour" ), ThisDoc.FieldGetText( "LayoutMBReplHour" ), _
  4102.                     bZeroBase, bMaxBase )
  4103.                Else   'will be mailhub
  4104.                     vTemp = ThisDoc.Document.LayoutMailHub
  4105.                     Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", _
  4106.                     Cstr( vTemp( 0 ) ), ThisDoc.FieldGetText( "LayoutMessagesHour" ), ThisDoc.FieldGetText( "LayoutMBMessagesHour" ), _
  4107.                     bZeroBase, bMaxBase )
  4108.                End If               
  4109.                Set DataCollection( iCountTasks + 1 ) = DataCollectionTemp
  4110.                If DataCollection( iCountTasks + 1 ).Count = 0 Then
  4111.                     iCountTasks = 0
  4112.                     bMatchFound = False
  4113.                End If
  4114.                iCountTasks = iCountTasks + 1
  4115.           Else
  4116.                '  see if any of the user tasks have been specified
  4117.                For i = 1 To 7
  4118.                     If sUserTaskArray( i, 2 ) <> "0" And bMatchFound = True Then
  4119.                          sProcessThisTask = sUserTaskArray( i, 1 )
  4120.                          bZeroBase = False  '  search on user count beginning > 0
  4121.                          Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", sUserTaskArray( i, 2 ), "", "", _
  4122.                          bZeroBase, bMaxBase )
  4123.                          Set DataCollection( iCountTasks + 1 ) = DataCollectionTemp
  4124.                          If DataCollection( iCountTasks + 1 ).Count = 0 Then
  4125.                               iCountTasks = 0
  4126.                               bMatchFound = False
  4127.                          End If
  4128.                          iCountTasks = iCountTasks + 1
  4129.                     End If  
  4130.                Next i
  4131.           End If
  4132.           
  4133.           If sProcessTaskList = "" Then          ' nothing left to process
  4134.                bMatchFound = False
  4135.           End If
  4136.      Wend
  4137.      
  4138.           ' found data assocated with each task?  error encountered?
  4139.      If iCountTasks = 1 Then   '  should always have at least 2 tasks to process
  4140.           ProcessMultipleTasksCore = 0
  4141.           Exit Function
  4142.      End If
  4143.      
  4144.            '  have a collection associated with task and response time and percent range
  4145.            '  now need to determine if a common response time value can be found
  4146.            '  ***( May have to limit query based on more parameters )
  4147.            '  ***( may have to adjust based on output tolerance value )
  4148.            '  *** create generic routine for verifying
  4149.      
  4150.           '  calculate adjust for tolerance range
  4151.      Dim nPercentAdjust As Single
  4152.      Dim nAdjustAmount As Single
  4153.      Dim nAdjustOther11 As Single
  4154.      Dim nAdjustOther21 As Single
  4155.      
  4156.      nPercentAdjust = 0
  4157.      nPercentAdjust = Csng( ThisDoc.FieldGetText( "LayoutTolerance" ) )
  4158.      If nPercentAdjust <> 0 Then
  4159.           nPercentAdjust =( nPercentAdjust ) / 100   '  halve to adjust to go higher and then lower
  4160.      End If
  4161.      
  4162.      For j = 1 To numscripts
  4163.           For i = 1 To numoutputlines
  4164.                iMatchFound( i, j ) = False
  4165.                iMatchDoc( i, j ) = 0
  4166.           Next i
  4167.      Next j
  4168.      
  4169.      For i = 1 To DataCollection( 1 ).Count
  4170.           Set DataDoc( 1 ) = DataCollection( 1 ).GetNthDocument( i )
  4171.           For j = 2 To iCountTasks
  4172.                For k = 1 To DataCollection( j ).Count
  4173.                     Set DataDoc( j ) = DataCollection( j ).GetNthDocument( k )
  4174.                          ' make sure the same machines are compared
  4175.                     vtemp1 = DataDoc( 1 ).GetItemValue( "DataUServerID" )
  4176.                     vtemp2 = DataDoc( j ).GetItemValue( "DataUServerID" )
  4177.                     If vtemp1( 0 ) = vtemp2( 0 ) Then    'keep looking for a match
  4178.                               ' do output tolerance calulations for range
  4179.                          vtempj =( DataDoc( j ).GetItemValue( "DataUAverage" ) ) 
  4180.                          nAdjustAmount = Csng( vtempj( 0 ) ) * nPercentAdjust
  4181.                          vtemp1 =( DataDoc( 1 ).GetItemValue( "DataUAverage" ) ) 
  4182.                          If( Csng( vtemp1( 0 ) )  <= ( Csng( vtempj( 0 ) ) + nAdjustAmount ) )  And( Csng( vtemp1( 0 ) )  => ( Csng( vtempj( 0 ) ) - nAdjustAmount ) )  Then
  4183.                               '  need to do additional validation if Repl Hub and Mail Routing Hub involved
  4184.                               vtemp1 = DataDoc( 1 ).DataUScript1
  4185.                               vtemp2 = DataDoc( 2 ).DataUScript1
  4186.                               If vtemp1( 0 ) = "Replication Hub" And vtemp2( 0 ) = "Mail Routing Hub"  And j = 2 Then
  4187.                                    '  make sure extra parameters are within range
  4188.                                    vtemp211 = DataDoc( 2 ).GetItemValue( "DataUOther11" )
  4189.                                    vtemp221 = DataDoc( 2 ).GetItemValue( "DataUOther21" )
  4190.                                    vtemp111 = DataDoc( 1 ).GetItemValue( "DataUOther11" )
  4191.                                    vtemp121 = DataDoc( 1 ).GetItemValue( "DataUOther21" )
  4192.                                    nAdjustOther11 =  Csng( vtemp211( 0 ) ) * nPercentAdjust
  4193.                                    nAdjustOther21 =  Csng( vtemp221( 0 ) ) * nPercentAdjust
  4194.                                    If( Csng( vtemp111( 0 ) )  <= ( Csng( vtemp211( 0 ) ) + nAdjustOther11 ) )  And ( Csng( vtemp111( 0 ) )  => ( Csng( vtemp211( 0 ) ) - nAdjustOther11 ) ) _
  4195.                                    And ( Csng( vtemp121( 0 ) )  => ( Csng( vtemp221( 0 ) ) - nAdjustOther11 ) )  And ( Csng( vtemp121( 0 ) )  => ( Csng( vtemp221( 0 ) ) - nAdjustOther11 ) ) Then
  4196.                                         iMatchFound( iNumOutputLines, j ) = True
  4197.                                         iMatchDoc( iNumOutputLines, j ) = k  'save doc collection offset
  4198.                                         iMatchDoc( iNumOutputLines, 1 ) = i
  4199.                                    End If
  4200.                               Else
  4201.                                    iMatchFound( iNumOutputLines, j ) = True
  4202.                                    iMatchDoc( iNumOutputLines, j ) = k  'save doc collection offset
  4203.                                    iMatchDoc( iNumOutputLines, 1 ) = i
  4204.                               End If
  4205.                          End If
  4206.                     End If
  4207.                Next k
  4208.           Next j
  4209.           
  4210.           ' if full match made, then increment output count, else zero out 
  4211.           bMatchFound = True
  4212.           If iMatchDoc( iNumOutputLines, 1 ) > 0 Then
  4213.                For j = 2 To iCountTasks
  4214.                     If iMatchFound( iNumOutputLines, j ) <> True Then
  4215.                          bMatchFound = False
  4216.                     End If
  4217.                Next
  4218.           Else
  4219.                bMatchFound = False
  4220.           End If
  4221.           
  4222.           If bMatchFound = True Then   '  complete match found
  4223.                iMatchFound( iNumOutputLines, 1 ) = True    '  flag to show the whole match is made
  4224.                iNumOutputLines = iNumOutputLines + 1
  4225.           Else
  4226.                For j = 1 To iCountTasks
  4227.                     iMatchFound( iNumOutputLines, j ) = False
  4228.                     iMatchDoc( iNumOutputLines, j ) = 0
  4229.                Next j
  4230.           End If
  4231.           
  4232.           If iNumOutputLines = numoutputlines  Then
  4233.                Messagebox "Reached Maximum Number of Matches for Display.  Continuing...", MB_ICONEXCLAMATION, "Query on Database"
  4234.                '***really need to start redim the array
  4235.                i = DataCollection( 1 ).Count
  4236.           End If
  4237.      Next i
  4238.      
  4239.      '   Exit if when through an entire collection and no match was found
  4240.      bMatchFound = False
  4241.      If iMatchDoc( 1, 1 ) > 0 Then
  4242.           bMatchFound = True
  4243.      End If
  4244.      
  4245.      If bMatchFound = False Then
  4246.           ProcessMultipleTasksCore = 0
  4247.           Exit Function
  4248.      End If
  4249.      
  4250.  '  need to determine the first task in the list that everyone is calibrated to
  4251.      bMatchFound = False
  4252.      iTaskCount = 0
  4253.      sLayoutServerTasks = ThisDoc.FieldGetText( "LayoutServerTasks" )
  4254.      sProcessTaskListTemp=sLayoutServerTasks
  4255.      
  4256.      '  if User Tasks then expand
  4257.      iPositionOfChar = Instr( 1, sLayoutServerTasks, "User Tasks" )
  4258.      If iPositionOfChar > 0 Then
  4259.           '  remove User Tasks from the List
  4260.           '  handle case where it is first in list
  4261.           If iPositionOfChar >1 Then
  4262.                sProcessTaskListTemp = Left( sLayoutServerTasks,( iPositionOfChar - 1 ) )
  4263.           Else
  4264.                sProcessTaskListTemp = ""
  4265.           End If    
  4266.           '  add in specific tasks
  4267.           For j = 1 To 7
  4268.                If Cint( sUserTaskArray( j, 2 ) ) > 0 Then
  4269.                     If Len( sProcessTaskListTemp ) > 0 Then
  4270.                          sProcessTaskListTemp = sProcessTaskListTemp + "; "
  4271.                     End If
  4272.                     sProcessTaskListTemp = sProcessTaskListTemp + sUserTaskArray( j, 1 )
  4273.                End If   
  4274.           Next
  4275.           sLayoutServerTasks = Trim( sProcessTaskListTemp )
  4276.      End If
  4277.      
  4278.      While bMatchFound = False
  4279.           iPositionOfChar = Instr( 1, sLayoutServerTasks, ";" )
  4280.           If iPositionOfChar = 0 Then
  4281.                sCalibrationTask = sLayoutServerTasks    '   reached last entry
  4282.                sLayoutServerTasks = ""
  4283.           Else 
  4284.                sCalibrationTask = Left( sLayoutServerTasks,( iPositionOfChar - 1 ) )
  4285.                sLayoutServerTasks = Right( sLayoutServerTasks, Len( sLayoutServerTasks ) - iPositionOfChar )
  4286.                sLayoutServerTasks = Trim( sLayoutServerTasks )
  4287.           End If
  4288.           
  4289.           iTaskCount=iTaskCount+1
  4290.           '  loop for each match found within the vendor db
  4291.           For z = 1 To( iNumOutputLines - 1 )   '  start with the matching entry
  4292.            '  *** need to find a common equation for the values
  4293.                If iMatchFound( z, 1 ) = True Then
  4294.                     For j = 1 To iCountTasks 
  4295.                          Set DataDoc( j ) = DataCollection( j ).GetNthDocument( iMatchDoc( z, j ) )
  4296.                     Next j  
  4297.                     vtemp =( DataDoc( iTaskCount ).GetItemValue( "DataUNumberUsers1" ) )
  4298.                     iBaseValue = Cint( vtemp( 0 ) )
  4299.                     '  need to calibrate task activity/hour and mb/hour for replications and Mail Routing Hub
  4300.                     vtemp1 = DataDoc( 1 ).DataUScript1
  4301.                     vtemp2 = DataDoc( 2 ).DataUScript1
  4302.                     
  4303.                     If vtemp1( 0 ) = "Replication Hub"  And vtemp2( 0 ) = "Mail Routing Hub"Then
  4304.                          vtemp =( DataDoc( 1 ).GetItemValue( "DataUOther11" ) )
  4305.                          iTaskBaseValue = Cint( vtemp( 0 ) )
  4306.                          
  4307.                          vtemp =( DataDoc( 1 ).GetItemValue( "DataUOther21" ) )
  4308.                          iMBBaseValue = Cint( vtemp( 0 ) )
  4309.                          
  4310.                          For j = 1 To 2 '  calibrate repl/hour, mb/hour
  4311.                               vtemp111 =( DataDoc( j ).GetItemValue( "DataUOther11" ) )
  4312.                               vtemp211 =( DataDoc( j ).GetItemValue( "DataUOther21" ) )
  4313.                               If( Cint( vtemp111( 0 ) ) ) <> 0 Then
  4314.                                    nTaskHourCalibration( j ) = iTaskBaseValue / Cint( vtemp111( 0 ) )
  4315.                               End If
  4316.                               If( Cint( vtemp211( 0 ) ) ) <> 0 Then
  4317.                                    nMBHourCalibration( j ) = iMBBaseValue / Cint( vtemp211( 0 ) )
  4318.                               End If
  4319.                          Next j
  4320.                          
  4321.                     End If 
  4322.                     
  4323.                     For j = 1 To iCountTasks     '  till number of scripts specified
  4324.                           '  now start expressing things in terms of the first task processed
  4325.                          vtemp1 = DataDoc( j ).GetItemValue( "DataUNumberUsers1" )
  4326.                          If  Cint( vtemp1( 0 ) ) <> 0 Then
  4327.                               nTaskCalibration( j ) =  iBaseValue /  Cint( vtemp1( 0 ) )
  4328.                          End If
  4329.                     Next j
  4330.                     
  4331.                     For i = 1 To 2
  4332.                          iTaskHourSpecification( i ) = 0
  4333.                     Next i
  4334.                     
  4335.                     '  now need to calibrate in terms of a single task
  4336.                     '  collect user count specification
  4337.                     i = 1
  4338.                     nCalibratedTaskNumber = 0
  4339.                     If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "Replication Hub" ) > 0 Then
  4340.                          vTemp = ThisDoc.Document.LayoutReplHub
  4341.                          If  vTemp( 0 ) <> 0 Then
  4342.                               iTaskCountSpecification( i ) = vTemp( 0 )
  4343.                               nCalibratedTaskNumber = vTemp( 0 )
  4344.                          '  calibrate repl/hour and mb/hour
  4345.                               If ThisDoc.FieldGetText( "LayoutReplHour" ) <> "*" Then
  4346.                                    iTaskHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutReplHour" ) )
  4347.                                    nCalibratedTaskHour = Cint( ThisDoc.FieldGetText( "LayoutReplHour" ) )
  4348.                               End If
  4349.                               If ThisDoc.FieldGetText( "LayoutMBReplHour" ) <> "*" Then
  4350.                                    iMBHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMBReplHour" ) )
  4351.                                    nCalibratedMBHour = Csng( ThisDoc.FieldGetText( "LayoutMBReplHour" ) )
  4352.                               End If 
  4353.                               i = i + 1
  4354.                          End If
  4355.                     End If
  4356.                     If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "Mail Routing Hub" ) > 0 Then
  4357.                          vTemp = ThisDoc.Document.LayoutMailHub
  4358.                          If  vTemp( 0 ) <> 0  Then
  4359.                               iTaskCountSpecification( i ) = vTemp( 0 ) 
  4360.                               nCalibratedTaskNumber = nCalibratedTaskNumber + vTemp( 0 ) * nTaskCalibration( i )
  4361.                           '  calibrate mail/hour and mb/hour
  4362.                               If ThisDoc.FieldGetText( "LayoutMessagesHour" ) <> "*" Then
  4363.                                    iTaskHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMessagesHour" ) )
  4364.                                    nCalibratedTaskHour = nCalibratedTaskHour + Cint( ThisDoc.FieldGetText( "LayoutMessagesHour" ) ) * nTaskHourCalibration( i )
  4365.                               End If
  4366.                               If ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) <> "*" Then
  4367.                                    iMBHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) )
  4368.                                    nCalibratedMBHour = nCalibratedMBHour + Csng( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) ) * nMBHourCalibration( i )
  4369.                               End If
  4370.                               i = i + 1
  4371.                          End If
  4372.                     End If
  4373.                     
  4374.                     For x = 1 To 7
  4375.                          If sUserTaskArray( x, 2 ) <> "0"  Then
  4376.                               iTaskCountSpecification( i ) = Cint( sUserTaskArray( x, 2 ) )
  4377.                               nCalibratedTaskNumber = nCalibratedTaskNumber + (( Cint( sUserTaskArray( x,2 ) ) )  *  nTaskCalibration( i ) )
  4378.                               i = i + 1
  4379.                          End If  
  4380.                     Next
  4381.                     
  4382.                     iCalibratedTaskNumber = Int( nCalibratedTaskNumber )  '  now we have a user count based on one task
  4383.                     
  4384.                     If nCalibratedTaskHour <> 0 Then   'only do if repl hub and Mail Routing Hub
  4385.                          iCalibratedTaskHour = Int( nCalibratedTaskHour )
  4386.                          iCalibratedMBHour = Int( nCalibratedMBHour )
  4387.                     End If
  4388.                     
  4389.                     vtemp1 = DataDoc( 1 ).GetItemValue( "DataUServerID" )   ' only query on this machine
  4390.                     '   can a match be found, need to override the task specification and the user count, rest of the form can be used
  4391.                     '  ***need to convert Other11 and Other21
  4392.                     
  4393.                     If( sCalibrationTask = "Replication Hub" )  Then
  4394.                         'iOutputCount = QueryOnDatabase( sSearchDB, sCalibrationTask, Str( iCalibratedTaskNumber ), ThisDoc.FieldGetText( "LayoutReplHour" ) , ThisDoc.FieldGetText( "LayoutMBReplHour" ), sOSPlatformWholeList, iOutputCount )
  4395.                          iOutputCount = QueryOnDatabase( sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), Cstr( iCalibratedTaskHour ), Cstr( nCalibratedMBHour ), sOSPlatformWholeList, iOutputCount )
  4396.                     Elseif sCalibrationTask = "Mail Routing Hub" Then
  4397.                          iOutputCount = QueryOnDatabase(  sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), Cstr( iCalibratedTaskHour ), Cstr( nCalibratedMBHour ), sOSPlatformWholeList, iOutputCount )
  4398.                     Else                         
  4399.                          For y = 1 To 7
  4400.                               If sCalibrationTask = sUserTaskArray( y, 1 ) Then
  4401.                                    iOutputCount = QueryOnDatabase(  sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), "", "", sOSPlatformWholeList, iOutputCount )
  4402.                               End If
  4403.                          Next y
  4404.                     End If    '  only process if a match was completely found
  4405.                End If
  4406.           Next z
  4407.           If iOutputCount > 0 Or sLayoutServerTasks = "" Then      '  match found
  4408.                bMatchFound = True
  4409.           End If
  4410.      Wend
  4411.      ProcessMultipleTasksCore = iOutputCount + ProcessMultipleTasksCount
  4412.      
  4413. End Function
  4414. '++LotusScript Development Environment:2:1:UserTaskCount:2:8
  4415. Function UserTaskCount( ThisDoc ) As Integer
  4416.     'Dim ThisDoc As NotesUIDocument
  4417.      Dim Workspace As New NotesUIWorkspace
  4418.      
  4419.      'Set ThisDoc = Workspace.CurrentDocument
  4420.      
  4421.      UserTaskCount=0  ' means user tasks option not selected
  4422.      For i = 1 To 7
  4423.           If( Cint( sUserTaskArray( i, 2 ) ) > 0 ) Then
  4424.                UserTaskCount=UserTaskCount + 1
  4425.           End If
  4426.      Next i
  4427. End Function
  4428. '++LotusScript Development Environment:2:2:ZeroFieldOut:2:8
  4429. Sub ZeroFieldOut( ThisDoc As NotesUIDocument, sFieldNameOut As String )
  4430.      If Len( ThisDoc.FieldGetText( sFieldNameOut ) ) = 0 Then
  4431.           Call ThisDoc.FieldSetText( sFieldNameOut, "0" )
  4432.      End If
  4433. End Sub
  4434. '++LotusScript Development Environment:2:1:ExtractVendorName:1:8
  4435. Function ExtractVendorName( sSearchDB As String ) As String
  4436.      
  4437.      ExtractVendorName = Left( sSearchDB,( Len( sSearchDB ) - 4 ) )   '  extract .NSF
  4438.      ExtractVendorName = Right( ExtractVendorName,( Len( ExtractVendorName ) - 2 ) )  '  extract CP prefix
  4439.      
  4440. End Function
  4441. '++LotusScript Development Environment:2:2:UserTaskArrayInitWhole:1:8
  4442. Sub UserTaskArrayInitWhole ( doc As NotesDocument )
  4443.      
  4444.      '  col1 = sProcessThisTask( UI selection ), col2 = associated fieldname contents, col3 = base for fieldname
  4445.      
  4446.      For i = 1 To 7
  4447.           sUserTaskArray( i, 2 ) = "0"
  4448.      Next
  4449.      
  4450.      sUserTaskArray( 1,1 ) = "Mail"
  4451.      sUserTaskArray( 1,3 ) = "LayoutMail"
  4452.      vtemp = doc.Adjust_Mail
  4453.      sUserTaskArray( 1,4 ) = Cstr( vtemp( 0 ) )
  4454.      
  4455.      sUserTaskArray( 2,1 ) = "Mail & Database"
  4456.      sUserTaskArray( 2,3 ) = "LayoutMailDB"
  4457.      vtemp = doc.Adjust_MailDB
  4458.      sUserTaskArray( 2,4 ) = Cstr( vtemp( 0 ) )
  4459.      
  4460.      sUserTaskArray( 3,1 ) = "Groupware #1"
  4461.      sUserTaskArray( 3,3 ) = "LayoutGroupware" 
  4462.      vtemp = doc.Adjust_Groupware
  4463.      sUserTaskArray( 3,4 ) = Cstr( vtemp( 0 ) )
  4464.      
  4465.      sUserTaskArray( 4,1 ) = "Calendar & Scheduling"
  4466.      sUserTaskArray( 4,3 ) = "LayoutCS"
  4467.      vtemp = doc.Adjust_CS
  4468.      sUserTaskArray( 4,4 ) = Cstr( vtemp( 0 ) )
  4469.      
  4470.      sUserTaskArray( 5,1 ) = "Database"
  4471.      sUserTaskArray( 5,3 ) = "LayoutDatabase"
  4472.      vtemp = doc.Adjust_Database
  4473.      sUserTaskArray( 5,4 ) = Cstr( vtemp( 0 ) )
  4474.      
  4475.      sUserTaskArray( 6,1 ) = "Web Walker"
  4476.      sUserTaskArray( 6,3 ) = "LayoutWW"
  4477.      vtemp = doc.Adjust_WW
  4478.      sUserTaskArray( 6,4 ) = Cstr( vtemp( 0 ) )
  4479.      
  4480.      sUserTaskArray( 7,1 ) = "Web Buyer"
  4481.      sUserTaskArray( 7,3 ) = "LayoutWB"
  4482.      vtemp = doc.Adjust_WB
  4483.      sUserTaskArray( 7,4 ) = Cstr( vtemp( 0 ) )
  4484.      
  4485.      sUserTaskArray( 8,1 ) = "Full Text Search"
  4486.      'sUserTaskArray( 8,2 ) = ThisDoc.FieldGetText( "LayoutFTSearch" )
  4487.      sUserTaskArray( 8,3 ) = "LayoutFTSearch"
  4488.      
  4489.      
  4490. End Sub
  4491. '++LotusScript Development Environment:2:5:(Options):0:66
  4492. '++LotusScript Development Environment:2:5:(Forward):0:1
  4493. Declare Sub Entering(Source As Field)
  4494. Declare Sub Exiting(Source As Field)
  4495. '++LotusScript Development Environment:2:5:(Declarations):0:2
  4496. '++LotusScript Development Environment:2:2:BindEvents:1:129
  4497. Private Sub BindEvents(Byval Objectname_ As String)
  4498.      Static Source As FIELD
  4499.      Set Source = Bind(Objectname_)
  4500.      On Event Entering From Source Call Entering
  4501.      On Event Exiting From Source Call Exiting
  4502. End Sub
  4503. '++LotusScript Development Environment:2:2:Entering:1:12
  4504. Sub Entering(Source As Field)
  4505.      Dim Workspace As New NotesUIWorkspace
  4506.      Dim ThisDoc As NotesUIDocument
  4507.      
  4508.      
  4509.      Set ThisDoc = Workspace.CurrentDocument
  4510.      sFieldName = "LayoutTolerance"
  4511.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  4512.      
  4513. End Sub
  4514. '++LotusScript Development Environment:2:2:Exiting:1:12
  4515. Sub Exiting(Source As Field)
  4516.      Dim Workspace As New NotesUIWorkspace
  4517.      Dim ThisDoc As NotesUIDocument
  4518.      
  4519.      Set ThisDoc = Workspace.CurrentDocument
  4520.      
  4521.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  4522.           Call ClearOutputFieldArea( ThisDoc )
  4523.      End If
  4524.      
  4525. End Sub
  4526. Query on Data
  4527. Footlight MT Light
  4528. '++LotusScript Development Environment:2:5:(Options):0:74
  4529. Option Public
  4530. %INCLUDE "lsconst.lss"
  4531. '++LotusScript Development Environment:2:5:(Forward):0:1
  4532. Declare Sub Initialize
  4533. Declare Sub ClearOutputFieldArea( ThisDoc As NotesUIDocument)
  4534. Declare Function SaveQuery() As Integer
  4535. Declare Sub BruteForceMethod( SourceDoc As NotesUIDocument, TargetDoc As NotesDocument, bOutputOnlyFlag As Integer )
  4536. Declare Public Function ValidateAMDistribution2 ( ThisDoc As NotesUIDocument ) As Integer
  4537. Declare Public Function ProcessDistributeChart2( DistributeChart As Variant ) As Variant
  4538. Declare Public Function ValidateGraphDistribution2( ) As Integer
  4539. Declare Public Function ValidateGraphPerformance2 ( ) As Integer
  4540. Declare Public Function PerformComponentsSetup2( ) As Integer
  4541. Declare Public Sub CreateSpreadChartAddlLink2( iRCnt, iCCnt )
  4542. Declare Public Function CreateOutputDB( ThisDoc As NotesUIDocument ) As NotesDatabase
  4543. Declare Public Function CreateList( ) As NotesDocument
  4544. Declare Public Function ValidateAMPerformance2( ThisDoc As NotesUIDocument ) As Integer
  4545. Declare Public Function ProcessPerformChart2 ( PerformChart As Variant ) As Variant
  4546. Declare Public Sub PerformChartAssn ( iRC As Integer, iCC As Integer, ThisDoc As NotesUIDocument )
  4547. Declare Public Sub GraphPerformance2( iRowCountPerform As Integer, iColCountPerform As Integer )
  4548. Declare Function VerifyProfile( iProfileNumber As Integer, iProfileTotal As Integer, ThisDoc As NotesUIDocument ) As Integer
  4549. Declare Function VerifyProfileMaster( ThisDoc As NotesUIDocument ) As Integer
  4550. Declare Sub UserTaskArrayInitPart ()
  4551. '++LotusScript Development Environment:2:5:(Declarations):0:10
  4552. Const numoutputlines = 10  'number of machines displayed in result list
  4553. Dim EstimatedDisplay( numoutputlines ) As String
  4554. Dim bClearOutputArea As Integer
  4555. Dim SaveThisDoc As NotesDocument
  4556. Dim bGraphMessageDisplayed As Integer
  4557. Dim AllResults( numoutputlines ) As String
  4558. Dim AllResultsVendor( numoutputlines ) As String
  4559. Dim OutputArrayx As Variant
  4560. Dim bAlreadyDisplayedWarning As Integer  '  flag for Reached limit on output msg
  4561. Dim iTotalCount As Integer
  4562. Dim iCurrentCount As Integer
  4563. Dim bCostGraph As Integer
  4564. Dim bResponseGraph As Integer
  4565. Dim sgVendor As Variant
  4566. Dim iVendorCount As Integer
  4567. Dim vAverageResponse( numoutputlines ) As Variant
  4568. Dim vMachineCost( numoutputlines ) As Variant
  4569. Dim ResponseSheet As Variant
  4570. Dim ResponseChart As Variant
  4571. Dim CostSheet As Variant
  4572. Dim CostChart As Variant
  4573. Dim iMachineResponseFlag As Integer
  4574. Dim iMachineCostFlag As Integer
  4575. Dim iResponseNameFlag As Integer
  4576. Dim iCostNameFlag As Integer
  4577. Dim bQueryPerformed As Integer
  4578. Dim nTotalAmt As Single
  4579. Dim nAdjust_ReplHub As Single
  4580. Dim nAdjust_MailHub As Single
  4581. Const UserTaskArrayCount = 8
  4582. Public sUserTaskArray( UserTaskArrayCount, 4 ) As String
  4583. Dim vFieldEntryValue As Variant
  4584. Dim sFieldName As String
  4585. Dim sGoToField As String
  4586. Dim bAlreadyDisplayedResponse As Integer
  4587. Dim bAlreadyDisplayedCost As Integer
  4588. Dim vEstimatedChoices As Variant
  4589. Const RejectMachineCount = 25
  4590. Dim sReason( RejectMachineCount ) As String
  4591. Dim sVendorName( RejectMachineCount ) As String
  4592. Dim sMachID( RejectMachineCount ) As String
  4593. Dim iDisplayable( RejectMachineCount ) As Integer
  4594. Dim iRejectListCount As Integer
  4595. Dim bRejectMessageDisplayed As Integer
  4596. Const sReason1 = "NotesBench workload not generated for this machine"
  4597. Const sReason2 = "NotesBench workload results not in range for individual results comparison"
  4598. Const sReason3 = "NotesBench workload results not in range for composite results comparison"
  4599. Const sReason4 = "NotesBench workload results not generated for this platform"
  4600. Const GrowthMachineCount = 25
  4601. Dim sgReason( GrowthMachineCount ) As String  '  meet current reqs
  4602. Dim sgReasong( GrowthMachineCount ) As String  '  meet future requirements
  4603. Dim sgVendorName( GrowthMachineCount ) As String
  4604. Dim sgMachID( GrowthMachineCount ) As String
  4605. Dim iGrowthDisplayable( GrowthMachineCount ) As Integer
  4606. Dim iGrowthListCount As Integer
  4607. Dim bProjectGrowthSelected As Integer
  4608. Dim bProjectGrowthChecked As Integer
  4609. Dim bGrowthListCountFlag As Integer
  4610. Dim bGrowthListMaxReached As Integer
  4611. '++LotusScript Development Environment:2:2:Initialize:1:10
  4612. Sub Initialize
  4613.      
  4614. End Sub
  4615. '++LotusScript Development Environment:2:2:ClearOutputFieldArea:1:8
  4616. Sub ClearOutputFieldArea( ThisDoc As NotesUIDocument)
  4617.      Dim i As Integer
  4618.      Dim j As Integer
  4619.      Dim sFieldNameTemp As String
  4620.      Dim sCurrentField As String
  4621.      
  4622.      sCurrentField = ThisDoc.CurrentField
  4623.      
  4624.      If bClearOutputArea = True And Cint( ThisDoc.FieldGetText( "numresults" ) ) <> 0 Then  'clear only if a legit change in field value
  4625.           For i = 1 To numoutputlines
  4626.                sFieldNameTemp = "OutResults"
  4627.                sFieldNameTemp = sFieldNameTemp & Cstr( i )
  4628.                Call ThisDoc.FieldSetText( sFieldNameTemp, "" )
  4629.                For j = 1 To 6           '  scroll through the fields for the current line
  4630.                     '  If j <> 5 Then
  4631.                     '  now do _5
  4632.                     sFieldNameTemp = "OutResults"  & Cstr( i ) & "_"
  4633.                     sFieldNameTemp = sFieldNameTemp & Cstr( j )
  4634.                     Call ThisDoc.FieldSetText( sFieldNameTemp, "" )
  4635.                     '  End If
  4636.                Next j
  4637.                
  4638.                '  clear out estimated column
  4639.                sFieldNameTemp = "E" + Cstr( i )
  4640.                Call ThisDoc.FieldSetText( sFieldNameTemp, "" )   
  4641.           Next i
  4642.           For i = 1 To RejectMachineCount
  4643.                '  clear out the rejected list area
  4644.                sFieldNameTemp = "vendor_"
  4645.                sFieldNameTemp = sFieldNameTemp & Cstr( i )
  4646.                Call ThisDoc.FieldSetText( sFieldNameTemp, "" )
  4647.                
  4648.                sFieldNameTemp = "machid_"
  4649.                sFieldNameTemp = sFieldNameTemp & Cstr( i )
  4650.                Call ThisDoc.FieldSetText( sFieldNameTemp, "" )
  4651.                
  4652.                sFieldNameTemp = "reason_"
  4653.                sFieldNameTemp = sFieldNameTemp & Cstr( i )
  4654.                Call ThisDoc.FieldSetText( sFieldNameTemp, "" )
  4655.                
  4656.           Next i
  4657.           
  4658.           For i = 1 To GrowthMachineCount               
  4659.                 '  clear out the growth projection info
  4660.                sFieldNameTemp = "gvendor_"
  4661.                sFieldNameTemp = sFieldNameTemp & Cstr( i )
  4662.                Call ThisDoc.FieldSetText( sFieldNameTemp, "" )
  4663.                
  4664.                sFieldNameTemp = "gmachid_"
  4665.                sFieldNameTemp = sFieldNameTemp & Cstr( i )
  4666.                Call ThisDoc.FieldSetText( sFieldNameTemp, "" )
  4667.                
  4668.                sFieldNameTemp = "greason_"
  4669.                sFieldNameTemp = sFieldNameTemp & Cstr( i )
  4670.                Call ThisDoc.FieldSetText( sFieldNameTemp, "" )
  4671.                
  4672.                sFieldNameTemp = "greasong_"
  4673.                sFieldNameTemp = sFieldNameTemp & Cstr( i )
  4674.                Call ThisDoc.FieldSetText( sFieldNameTemp, "" )
  4675.                
  4676.           Next i
  4677.           
  4678.           Call ThisDoc.FieldSetText( "numresults", "0" )
  4679.           
  4680.           'clear out the graphs          '  first check if they are present
  4681.           If bCostGraph = True Then
  4682.                ThisDoc.GoToField( "LayoutCostChart" )
  4683.                ThisDoc.FieldClear( "LayoutCostChart" )
  4684.                
  4685.                ThisDoc.GoToField( "LayoutCostSheet" )
  4686.                ThisDoc.FieldClear( "LayoutCostSheet" )
  4687.           End If
  4688.           
  4689.           If bResponseGraph = True Then
  4690.                ThisDoc.GoToField( "LayoutResponseChart" )
  4691.                ThisDoc.FieldClear( "LayoutResponseChart" )
  4692.                
  4693.                ThisDoc.GoToField( "LayoutResponseSheet" )
  4694.                ThisDoc.FieldClear( "LayoutResponseSheet" )
  4695.           End If
  4696.           
  4697.      End If
  4698.      
  4699.      For i = 1 To numoutputlines
  4700.           Call ThisDoc.FieldSetText("E" + Cstr( i ), "")
  4701.      Next i
  4702.      
  4703.      If Len( sCurrentField )  >  1 Then
  4704.           ThisDoc.GoToField( sCurrentField )
  4705.      End If
  4706.      
  4707.      
  4708. End Sub
  4709. '++LotusScript Development Environment:2:1:SaveQuery:1:8
  4710. Function SaveQuery() As Integer
  4711.      Dim Workspace As New NotesUIWorkspace
  4712.      Dim Session  As New NotesSession
  4713.      Dim ThisDB As NotesDatabase
  4714.      Dim ThisDoc As NotesUIDocument
  4715.      Dim ThisDocBE As NotesDocument
  4716.      
  4717.      Dim view As NotesView
  4718.      Dim boxtype As Long
  4719.      Dim answer As Integer
  4720.      
  4721.      SaveQuery = False
  4722.      Set ThisDoc = Workspace.CurrentDocument
  4723. '     make sure query id is unique, get last query id stored
  4724.      
  4725.      Set ThisDocBE = ThisDoc.Document
  4726.      Set ThisDB = Session.CurrentDatabase
  4727.      
  4728.      '  Make sure required fields filled in
  4729.      If Len( ThisDoc.FieldGetText( "LayoutServerTasks" ) ) = 0 Then              '  task information
  4730.           Messagebox "Tasks information must be specified", MB_ICONEXCLAMATION, "Query on Data"
  4731.           ThisDoc.GoToField("LayoutServerTasks")
  4732.           Exit Function
  4733.      End If
  4734.      
  4735.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "Mail Routing Hub") Then 
  4736.           If ( Isnumeric(ThisDoc.Document.LayoutMailHub) = True ) Then
  4737.                Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  4738.                ThisDoc.GoToField( "LayoutMailHub" )
  4739.                Exit Function
  4740.           End If
  4741.           
  4742.           If Len( ThisDoc.FieldGetText( "LayoutMailHub" ) ) = 0 Then
  4743.                Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  4744.                ThisDoc.GoToField( "LayoutMailHub" )
  4745.                Exit Function
  4746.           End If
  4747.      End If
  4748.      
  4749.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "Replication Hub") Then 
  4750.           If ( Isnumeric(ThisDoc.Document.LayoutReplHub) = True ) Then
  4751.                Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  4752.                ThisDoc.GoToField( "LayoutMailHub" )
  4753.                Exit Function
  4754.           End If
  4755.           
  4756.           If Len( ThisDoc.FieldGetText( "LayoutReplHub" ) ) = 0 Then
  4757.                Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  4758.                ThisDoc.GoToField( "LayoutMailHub" )
  4759.                Exit Function
  4760.           End If
  4761.      End If
  4762.      
  4763.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "User Tasks") Then 
  4764.           Call UserTaskArrayInitPart( )
  4765.           If VerifyProfileMaster(ThisDoc) = False Then
  4766.                Exit Function
  4767.           End If
  4768.      End If
  4769.      
  4770.      ' extract Vendor List info and save off
  4771.      Dim vVendorList As Variant
  4772.      vVendorList = ThisDoc.FieldGetText( "VendorList" )
  4773.      'Call ThisDoc.FieldSetText( "sVendorList", vVendorList )
  4774.      ThisDocBE.sVendorList = vVendorList
  4775.      ThisDocBE.Form = "Query on Data"
  4776.      'Call ThisDoc.FieldSetText( "Form", "Query on Data" )
  4777.      '  check to see if query previously saved
  4778.      If ThisDoc.FieldGetText( "QueryAlreadyExists" ) = "1" Then
  4779.           boxtype& = MB_YESNO + MB_ICONQUESTION
  4780.           answer% = Messagebox( "This Query Previously Saved.  Overwrite?    Selecting Yes will 'Overwrite' the currently saved query.  Selecting 'No' will create and save a new query.",  boxtype&, "Save Query" )
  4781.           If answer% = IDYES Then
  4782.                Call ThisDoc.Save
  4783.                'Call ThisDocBE.CopyAllItems( SaveThisDoc, True )
  4784.                'Call BruteForceMethod( ThisDoc, SaveThisDoc, False )
  4785.                
  4786.                'Call SaveThisDoc.Save( False, False )
  4787.           Else
  4788.                'Call ThisDoc.Save
  4789.                Set SaveThisDoc = New NotesDocument( ThisDB  )
  4790.                Call ThisDocBE.CopyAllItems( SaveThisDoc, True )
  4791.                Call BruteForceMethod( ThisDoc, SaveThisDoc, False )
  4792.                
  4793.                Call SaveThisDoc.Save( False, False )
  4794.           End If
  4795.      Else
  4796.           '  never been saved before
  4797.           '     Save Query within current database, make a copy first (using backend version)
  4798.           ThisDoc.Document.QueryAlreadyExists = "1"
  4799.           
  4800.           Call ThisDoc.Save
  4801.           Call ThisDocBE.Save( False, False ) 'must follow front-end save
  4802.           'Set SaveThisDoc = New NotesDocument( ThisDB  )
  4803.           
  4804.           '  save in front end and back end
  4805.           'Call ThisDoc.FieldSetText("QueryAlreadyExists", "1" )
  4806.           'Call ThisDocBE.CopyAllItems( SaveThisDoc, True )
  4807.           'Call BruteForceMethod( ThisDoc, SaveThisDoc, False )
  4808.           
  4809.           'Call SaveThisDoc.Save( False, False )
  4810.      End If
  4811.      
  4812.      SaveQuery = True
  4813.      
  4814.      '  refresh view
  4815.      Set view = ThisDB.GetView( "Query on Data" )
  4816.      Call view.Refresh
  4817. %END REM
  4818.      
  4819.      
  4820. End Function
  4821. '++LotusScript Development Environment:2:2:BruteForceMethod:1:8
  4822. Sub BruteForceMethod( SourceDoc As NotesUIDocument, TargetDoc As NotesDocument, bOutputOnlyFlag As Integer )
  4823.      Dim SourceDocBE As NotesDocument
  4824.      
  4825.      Set SourceDocBE = SourceDoc.Document
  4826.      
  4827.      '  flag = True-> used for output  (different fields)
  4828.      If bOutputOnlyFlag = False Then
  4829.           TargetDoc.OutResults1_6 = SourceDoc.FieldGetText("OutResults1_6")
  4830.           TargetDoc.OutResults2_6 = SourceDoc.FieldGetText("OutResults2_6")
  4831.           TargetDoc.OutResults3_6 = SourceDoc.FieldGetText("OutResults3_6")
  4832.           TargetDoc.OutResults4_6 = SourceDoc.FieldGetText("OutResults4_6")
  4833.           TargetDoc.OutResults5_6 = SourceDoc.FieldGetText("OutResults5_6")
  4834.           TargetDoc.OutResults6_6 = SourceDoc.FieldGetText("OutResults6_6")
  4835.           TargetDoc.OutResults7_6 = SourceDoc.FieldGetText("OutResults7_6")
  4836.           TargetDoc.OutResults8_6 = SourceDoc.FieldGetText("OutResults8_6")
  4837.           TargetDoc.OutResults9_6 = SourceDoc.FieldGetText("OutResults9_6")
  4838.           TargetDoc.OutResults10_6 = SourceDoc.FieldGetText("OutResults10_6")
  4839.      End If
  4840.      
  4841.      TargetDoc.OutResults1 = SourceDoc.FieldGetText("OutResults1")
  4842.      TargetDoc.OutResults1_1 = SourceDoc.FieldGetText("OutResults1_1")
  4843.      TargetDoc.OutResults1_2 = SourceDoc.FieldGetText("OutResults1_2")
  4844.      TargetDoc.OutResults1_3 = SourceDoc.FieldGetText("OutResults1_3")
  4845.      TargetDoc.OutResults1_4 = SourceDoc.FieldGetText("OutResults1_4")
  4846.      
  4847.      TargetDoc.OutResults2 = SourceDoc.FieldGetText("OutResults2")
  4848.      TargetDoc.OutResults2_1 = SourceDoc.FieldGetText("OutResults2_1")
  4849.      TargetDoc.OutResults2_2 = SourceDoc.FieldGetText("OutResults2_2")
  4850.      TargetDoc.OutResults2_3 = SourceDoc.FieldGetText("OutResults2_3")
  4851.      TargetDoc.OutResults2_4 = SourceDoc.FieldGetText("OutResults2_4")
  4852.      
  4853.      TargetDoc.OutResults3 = SourceDoc.FieldGetText("OutResults3")
  4854.      TargetDoc.OutResults3_1 = SourceDoc.FieldGetText("OutResults3_1")
  4855.      TargetDoc.OutResults3_2 = SourceDoc.FieldGetText("OutResults3_2")
  4856.      TargetDoc.OutResults3_3 = SourceDoc.FieldGetText("OutResults3_3")
  4857.      TargetDoc.OutResults3_4 = SourceDoc.FieldGetText("OutResults3_4")
  4858.      
  4859.      TargetDoc.OutResults4 = SourceDoc.FieldGetText("OutResults4")
  4860.      TargetDoc.OutResults4_1 = SourceDoc.FieldGetText("OutResults4_1")
  4861.      TargetDoc.OutResults4_2 = SourceDoc.FieldGetText("OutResults4_2")
  4862.      TargetDoc.OutResults4_3 = SourceDoc.FieldGetText("OutResults4_3")
  4863.      TargetDoc.OutResults4_4 = SourceDoc.FieldGetText("OutResults4_4")
  4864.      
  4865.      TargetDoc.OutResults5 = SourceDoc.FieldGetText("OutResults5")
  4866.      TargetDoc.OutResults5_1 = SourceDoc.FieldGetText("OutResults5_1")
  4867.      TargetDoc.OutResults5_2 = SourceDoc.FieldGetText("OutResults5_2")
  4868.      TargetDoc.OutResults5_3 = SourceDoc.FieldGetText("OutResults5_3")
  4869.      TargetDoc.OutResults5_4 = SourceDoc.FieldGetText("OutResults5_4")
  4870.      
  4871.      TargetDoc.OutResults6 = SourceDoc.FieldGetText("OutResults6")
  4872.      TargetDoc.OutResults6_1 = SourceDoc.FieldGetText("OutResults6_1")
  4873.      TargetDoc.OutResults6_2 = SourceDoc.FieldGetText("OutResults6_2")
  4874.      TargetDoc.OutResults6_3 = SourceDoc.FieldGetText("OutResults6_3")
  4875.      TargetDoc.OutResults6_4 = SourceDoc.FieldGetText("OutResults6_4")
  4876.      
  4877.      TargetDoc.OutResults7 = SourceDoc.FieldGetText("OutResults7")
  4878.      TargetDoc.OutResults7_1 = SourceDoc.FieldGetText("OutResults7_1")
  4879.      TargetDoc.OutResults7_2 = SourceDoc.FieldGetText("OutResults7_2")
  4880.      TargetDoc.OutResults7_3 = SourceDoc.FieldGetText("OutResults7_3")
  4881.      TargetDoc.OutResults7_4 = SourceDoc.FieldGetText("OutResults7_4")
  4882.      
  4883.      TargetDoc.OutResults8 = SourceDoc.FieldGetText("OutResults8")
  4884.      TargetDoc.OutResults8_1 = SourceDoc.FieldGetText("OutResults8_1")
  4885.      TargetDoc.OutResults8_2 = SourceDoc.FieldGetText("OutResults8_2")
  4886.      TargetDoc.OutResults8_3 = SourceDoc.FieldGetText("OutResults8_3")
  4887.      TargetDoc.OutResults8_4 = SourceDoc.FieldGetText("OutResults8_4")
  4888.      
  4889.      TargetDoc.OutResults9 = SourceDoc.FieldGetText("OutResults9")
  4890.      TargetDoc.OutResults9_1 = SourceDoc.FieldGetText("OutResults9_1")
  4891.      TargetDoc.OutResults9_2 = SourceDoc.FieldGetText("OutResults9_2")
  4892.      TargetDoc.OutResults9_3 = SourceDoc.FieldGetText("OutResults9_3")
  4893.      TargetDoc.OutResults9_4 = SourceDoc.FieldGetText("OutResults9_4")
  4894.      
  4895.      TargetDoc.OutResults10 = SourceDoc.FieldGetText("OutResults10")
  4896.      TargetDoc.OutResults10_1 = SourceDoc.FieldGetText("OutResults10_1")
  4897.      TargetDoc.OutResults10_2 = SourceDoc.FieldGetText("OutResults10_2")
  4898.      TargetDoc.OutResults10_3 = SourceDoc.FieldGetText("OutResults10_3")
  4899.      TargetDoc.OutResults10_4 = SourceDoc.FieldGetText("OutResults10_4")
  4900.      
  4901.       '  set up chart - must set up spreadsheet for completing the link
  4902.      Dim ChartItem As NotesItem
  4903.      Dim SpreadSheetItem As NotesItem
  4904.      Dim iSize As Integer
  4905.      
  4906.      If bAlreadyDisplayedResponse = False Then
  4907.           Set ChartItem = SourceDocBE.GetFirstItem( "LayoutResponseChart" )
  4908.           Call ChartItem.CopyItemToDocument( TargetDoc, "OutputResponseChart" )
  4909.           Set SpreadSheetItem = SourceDocBE.GetFirstItem( "LayoutResponseSheet" )
  4910.           Call SpreadSheetItem.CopyItemToDocument( TargetDoc, "OutputResponseSheet" )
  4911.           'bAlreadyDisplayedResponse = True
  4912.      End If
  4913.      
  4914.      If bAlreadyDisplayedCost = False Then
  4915.           Set ChartItem = SourceDocBE.GetFirstItem( "LayoutCostChart" )
  4916.           Call ChartItem.CopyItemToDocument( TargetDoc, "OutputCostChart" )
  4917.           Set SpreadSheetItem = SourceDocBE.GetFirstItem( "LayoutCostSheet" )
  4918.           Call SpreadSheetItem.CopyItemToDocument( TargetDoc, "OutputCostSheet" )
  4919.           'bAlreadyDisplayedCost = True
  4920.      End If
  4921.      
  4922. End Sub
  4923. '++LotusScript Development Environment:2:1:ValidateAMDistribution2:1:8
  4924. Public Function ValidateAMDistribution2 ( ThisDoc As NotesUIDocument ) As Integer
  4925.      
  4926.      ValidateAMDistribution = True
  4927.      If ThisDoc.FieldGetText( "DataUServerID" ) = "" Then
  4928.           ValidateAMDistribution = False
  4929.           Messagebox "Specify Server Machine ID", MB_ICONEXCLAMATION,_
  4930.           "Graph Distribution Information"
  4931.           ThisDoc.GoToField( "DataUServerID" )
  4932.           Exit Function
  4933.      End If
  4934.      
  4935.      If ThisDoc.FieldGetText( "DataUNumberUsers1" ) = "" Then
  4936.           ValidateAMDistribution = False
  4937.           Messagebox "Specify Number Users/Spoke", MB_ICONEXCLAMATION,_
  4938.           "Graph Distribution Information"
  4939.           ThisDoc.GoToField( "DataUServerID" )
  4940.           Exit Function
  4941.      End If
  4942.      
  4943.      If ThisDoc.FieldGetText( "DataUScript1" ) = "" Then
  4944.           Messagebox "Specify Script Performed", MB_ICONEXCLAMATION,_
  4945.           "Graph Distribution Information"
  4946.           ValidateAMDistribution = False
  4947.           ThisDoc.GoToField( "DataUScript1" )
  4948.           Exit Function
  4949.      End If
  4950.      
  4951. End Function
  4952. '++LotusScript Development Environment:2:1:ProcessDistributeChart2:1:8
  4953. Public Function ProcessDistributeChart2( DistributeChart As Variant ) As Variant
  4954. '%REM
  4955.      Dim Workspace As New NotesUIWorkspace
  4956.      Dim ThisDoc As NotesUIDocument
  4957.      
  4958.      Set ProcessDistributeChart = DistributeChart
  4959. End Function
  4960. '++LotusScript Development Environment:2:1:ValidateGraphDistribution2:1:8
  4961. Public Function ValidateGraphDistribution2( ) As Integer
  4962.      Dim Workspace As New NotesUIWorkspace
  4963.      Dim ThisDoc As NotesUIDocument
  4964.      
  4965.      Dim Session As New NotesSession
  4966.      Dim ThisDB As NotesDatabase
  4967.      
  4968.      Set ThisDoc = Workspace.CurrentDocument
  4969.      Set ThisDB = Session.CurrentDatabase
  4970.      
  4971.      If ThisDoc.FieldGetText( "DataUServerID" ) = "" Then
  4972.           Messagebox "Specify Server Machine ID", MB_ICONEXCLAMATION, "Graph Distribution Information"
  4973.           ThisDoc.GoToField( "DataUServerID" )
  4974.           ValidateGraphDistribution = False
  4975.           Exit Function
  4976.      End If
  4977.      
  4978.      If ThisDoc.FieldGetText( "DataUScript1" ) = "" Then
  4979.           Messagebox "Specify Script Performed", MB_ICONEXCLAMATION, "Graph Distribution Information"
  4980.           ThisDoc.GoToField( "DataUScript1" )
  4981.           ValidateGraphDistribution = False
  4982.           Exit Function
  4983.      End If
  4984.      
  4985.        '  assuming if this field is filled in, all of the other frequency fields will also be filled in
  4986.      If ThisDoc.FieldGetText( "DataUAverage" ) = "" Then
  4987.           Messagebox "Specify Results from Data Run", MB_ICONEXCLAMATION, "Graph Distribution Information"
  4988.           ThisDoc.GoToField( "DataUAverage" )
  4989.           ValidateGraphDistribution = False
  4990.           Exit Function
  4991.      End If
  4992.      
  4993.      
  4994.      ValidateGraphDistribution = True
  4995. End Function
  4996. '++LotusScript Development Environment:2:1:ValidateGraphPerformance2:1:8
  4997. Public Function ValidateGraphPerformance2 ( ) As Integer
  4998.      Dim Workspace As New NotesUIWorkspace
  4999.      Dim ThisDoc As NotesUIDocument
  5000.      
  5001.      Dim Session As New NotesSession
  5002.      Dim ThisDB As NotesDatabase
  5003.      
  5004.      Set ThisDoc = Workspace.CurrentDocument
  5005.      Set ThisDB = Session.CurrentDatabase
  5006.      
  5007.      If ThisDoc.FieldGetText( "DataUServerID" ) = "" Then
  5008.           Messagebox "Specify Server Machine ID", MB_ICONEXCLAMATION, "Graph Performance Information"
  5009.           ThisDoc.GoToField( "DataUServerID" )
  5010.           ValidateGraphPerformance = False
  5011.           Exit Function
  5012.      End If
  5013.      
  5014.      If ThisDoc.FieldGetText( "DataUScript1" ) = "" Then
  5015.           Messagebox "Specify Script Performed", MB_ICONEXCLAMATION, "Graph Performance Information"
  5016.           ThisDoc.GoToField( "DataUScript1" )
  5017.           ValidateGraphPerformance = False
  5018.           Exit Function
  5019.      End If
  5020.      
  5021.      ValidateGraphPerformance = True
  5022.      
  5023. End Function
  5024. '++LotusScript Development Environment:2:1:PerformComponentsSetup2:1:8
  5025. Public Function PerformComponentsSetup2( ) As Integer
  5026.      Dim Workspace As New NotesUIWorkspace
  5027.      Dim ThisDoc As NotesUIDocument
  5028.      
  5029.      Dim Session As New NotesSession
  5030.      Dim ThisDB As NotesDatabase
  5031.      Dim DateTime As New NotesDateTime ( "1/1/96" )
  5032.      Dim SearchCollection As NotesDocumentCollection
  5033.      Dim SearchDoc As NotesDocument
  5034.      
  5035.      Dim iEntryCount As Integer
  5036.      Dim bMatchFound As Integer
  5037.      Dim itemp As Integer
  5038.      
  5039.      PerformComponentsSetup = True
  5040.      Set ThisDoc = Workspace.CurrentDocument
  5041.      Set ThisDB = Session.CurrentDatabase
  5042.      
  5043.      If ValidateGraphPerformance2 ( ) = False Then
  5044.           Exit Function
  5045.      End If
  5046.      
  5047.      '  set up spreadsheet and chart
  5048.      On Error Goto PressEdit              '   need to be in edit mode to continue processing
  5049.      ThisDoc.GoToField( "DataPerformSheet" )
  5050.      ThisDoc.FieldClear( "DataPerformSheet" )
  5051.      Set PerformSheet = ThisDoc.CreateObject( "PerformSheet", "Lotus.Spreadsheet.1" )
  5052.      ThisDoc.GoToField( "DataPerformChart" )
  5053.      ThisDoc.FieldClear( "DataPerformChart" ) 
  5054.      Set PerformChart = ThisDoc.CreateObject( "PerformChart", "Lotus.Chart.1" )
  5055.      
  5056.      On Error Goto 0
  5057.      
  5058.      PerformChart.Repaint = False
  5059.      
  5060.      PerformChart.rowcount = numoutputlines
  5061.      PerformChart.columncount = 1
  5062.      PerformSheet.tablename = "PerformSheet"
  5063.      PerformChart.sslinkbook = "PerformSheet"
  5064.      test = 12
  5065.      PerformChart.sslinkrange = "a1:m" + test
  5066.      PerformChart.sslinkmode = 1
  5067.      
  5068.       '****************************
  5069.      'set up Perform sheet
  5070.       '****************************
  5071.      iRowCountPerform = 0
  5072.      iColCountPerform = 1
  5073.      
  5074.      PerformSheet.displaycols =  2
  5075.      PerformSheet.displayrows = numoutputlines
  5076.      PerformSheet.showrowheading = False
  5077.      PerformSheet.showcolheading = False
  5078.      
  5079.      '  set up headings
  5080.      PerformSheet.row = 1
  5081.      PerformSheet.col = 1
  5082.      
  5083.      PerformSheet.text = "# Users"
  5084.      PerformSheet.setfont "Arial", 10, True, False, False, False, 0, False, False
  5085.      
  5086.      PerformSheet.col = 2
  5087.      PerformSheet.text = ThisDoc.FieldGetText( "DataUServerID" )
  5088.      PerformSheet.setfont "Arial", 10, True, False, False, False, 0, False, False
  5089.      
  5090.      ' ****************************
  5091.      '  Perform Chart Setup
  5092.       '****************************
  5093.      PerformChart.chartType = CHChartType2dLine
  5094.      PerformChart.TitleText = "System Performance: " + ThisDoc.FieldGetText ( "DataUScript1" )
  5095.      PerformChart.Plot.DataSeriesInRow = False   'reads from a column
  5096.      
  5097.     'show major grid line in red and minor grid line in blue
  5098.      With PerformChart.plot.axis( CHAxisIdY ).AxisGrid
  5099.           .majorPen.width = 1
  5100.           .minorPen.VtColor.Set 0, 0, 255
  5101.           .minorPen.width = 1
  5102.      End With
  5103.      
  5104.      If ThisDoc.FieldGetText( "DataUScript1" ) = "Replication Hub" Or ThisDoc.FieldGetText( "DataUScript1" ) = "Mail Routing Hub" Then
  5105.           With PerformChart.Plot.axis( CHAxisIdX, 1 ).AxisTitle
  5106.                .visible = True
  5107.                .text = "Spoke Count"
  5108.                .VtFont.name = "Arial"
  5109.                .VtFont.size = 10
  5110.                .VtFont.VtColor.set  0, 0, 255
  5111.           End With
  5112.      Else
  5113.           With PerformChart.Plot.axis( CHAxisIdX, 1 ).AxisTitle
  5114.                .visible = True
  5115.                .text = "User Count"
  5116.                .VtFont.name = "Arial"
  5117.                .VtFont.size = 10
  5118.                .VtFont.VtColor.set  0, 0, 255
  5119.           End With
  5120.      End If
  5121.      With PerformChart.Plot.axis( CHAxisIdY, 1 ).AxisTitle
  5122.           .visible = True
  5123.           .text = "Perform Time ( sec )"
  5124.           .VtFont.name = "Arial"
  5125.           .VtFont.size = 10
  5126.           .VtFont.VtColor.set  0, 0, 255
  5127.      End With
  5128.      
  5129.      With PerformChart.Plot.axis( CHAxisIdZ, 1 ).AxisTitle
  5130.           .visible = True
  5131.           .text = "Machine"
  5132.           .VtFont.name = "Arial"
  5133.           .VtFont.size = 10
  5134.           .VtFont.VtColor.set  0, 0, 255
  5135.      End With
  5136.      
  5137.      With PerformChart.Plot.axis( CHAxisIdX ).Labels.Item( 1 )
  5138.         ' Set X Axis label properties
  5139.           .auto = True
  5140.           .VtFont.name = "Arial"
  5141.           .VtFont.size = 10
  5142.           .TextLayout.HorzAlignment = CHHorizontalAlignmentCenter
  5143.           .TextLayout.VertAlignment = CHVerticalAlignmentCenter
  5144.      End With
  5145.      
  5146.      With PerformChart.Plot.axis( CHAxisIdY ).Labels.Item( 1 )
  5147.         ' Set X Axis label properties
  5148.           .auto = True
  5149.           .VtFont.name = "Arial"
  5150.           .VtFont.size = 10
  5151.      End With
  5152.      
  5153.      With PerformChart.Plot.axis( CHAxisIdZ ).Labels.Item( 1 )
  5154.         ' Set X Axis label properties
  5155.           .auto = True
  5156.           .VtFont.name = "Arial"
  5157.           .VtFont.size = 10
  5158.      End With
  5159.      
  5160.        ' adjust size of title
  5161.      With PerformChart.title.VtFont
  5162.           .name = "Arial"
  5163.           .size = 10
  5164.           .style = CHFontStyleBold
  5165.           .effect = 512
  5166.           .VtColor.Set 0, 0, 255
  5167.      End With
  5168.      
  5169.     'use  manual scale to display y axis ( value axis )
  5170.      With PerformChart.plot.axis( CHAxisIdY ).ValueScale
  5171.           .auto = True
  5172.      End With
  5173.      
  5174.      With PerformChart.Legend
  5175.         ' Make Legend Visible
  5176.           .location.visible = True
  5177.           .location.locationType = CHLocationTypeBottom
  5178.           
  5179.         ' Set Legend properties
  5180.           .TextLayout.HorzAlignment = CHHorizontalAlignmentLeft    ' Left justify
  5181.           .VtFont.VtColor.Set 0, 0, 255                        
  5182.           .backdrop.fill.style = CHFillStyleBrush
  5183.           .backdrop.fill.Brush.style = CHBrushStyleSolid
  5184.           
  5185.      End With
  5186.      
  5187.      With PerformChart.backdrop.fill
  5188.           .style=0   'null
  5189.           '.style=CHFillStyleBrush
  5190.           '.Brush.style=CHBrushStyleSolid
  5191.      End With
  5192.      
  5193.      '  need to enhance Machine IDs Names for legend
  5194.      PerformChart.Plot.SeriesCollection.Item( 1 ).LegendText = ThisDoc.FieldGetText( "DataUServerID" )
  5195.      
  5196.      Exit Function
  5197.      
  5198. PressEdit:
  5199.      Messagebox "Need to be in Edit Mode, then Request Graphical Information", MB_ICONEXCLAMATION, "Graph Performance Information"
  5200.      PerformComponentsSetup=False
  5201.      Exit Function
  5202.      
  5203. End Function
  5204. '++LotusScript Development Environment:2:2:CreateSpreadChartAddlLink2:1:8
  5205. Public Sub CreateSpreadChartAddlLink2( iRCnt, iCCnt )
  5206.      Dim Workspace As New NotesUIWorkspace
  5207.      Dim ThisDoc As NotesUIDocument
  5208.      
  5209.      Set ThisDoc = Workspace.CurrentDocument
  5210.      
  5211.      ThisDoc.GotoField( "DataPerformSheet" )
  5212.      Set PerformSheet = ThisDoc.GetObject( "PerformSheet" )
  5213.      
  5214.      ThisDoc.GoToField( "DataPerformChart" )
  5215.      Set PerformChart = ThisDoc.GetObject( "PerformChart" )
  5216.      PerformChart.Repaint = False
  5217.      
  5218.      PerformChart.rowcount = iRCnt
  5219.      
  5220.      j = iCCnt -1   '  for the moment, max of 12 columns
  5221.      If j > 12 Then
  5222.           j = 12
  5223.      End If
  5224.      PerformChart.columncount = j
  5225.      
  5226.      PerformSheet.tablename = "PerformSheet"
  5227.      PerformChart.sslinkbook = "PerformSheet"
  5228.      test = iRCnt 
  5229.      PerformChart.sslinkrange = "a1:m" + test
  5230.      PerformChart.sslinkmode = 1
  5231. End Sub
  5232. '++LotusScript Development Environment:2:1:CreateOutputDB:1:8
  5233. Public Function CreateOutputDB( ThisDoc As NotesUIDocument ) As NotesDatabase
  5234.      Dim Workspace As New NotesUIWorkspace
  5235.      Dim OutputDB As New NotesDatabase( "", "" )
  5236.      Dim QueryOutputFilename As String
  5237.      Dim QueryOutputServer As String
  5238.      Dim Session As New NotesSession
  5239.      Dim ThisDB As NotesDatabase
  5240.      
  5241.      Set ThisDoc = Workspace.CurrentDocument
  5242.      Set ThisDB = Session.CurrentDatabase
  5243.      
  5244.      ThisDoc.document.OutputServer = "local"
  5245.      ThisDoc.document.OutputFilename = "OUTPUT.NSF"
  5246.      
  5247.      If ( Workspace.DialogBox ( "OutputInfo", True, True ) = False ) Then
  5248.           Exit Function
  5249.      End If
  5250.      QueryOutputFilename = ThisDoc.FieldGetText( "OutputFilename" )
  5251.      QueryOutputServer = ThisDoc.FieldGetText( "OutputServer" )
  5252.      If QueryOutputServer = "local" Then
  5253.           QueryOutputServer = ""
  5254.      End If
  5255.      
  5256.  '    if database doesn't exist, create it   
  5257.      If ( Not ( OutputDB.Open ( QueryOutputServer, Ucase( QueryOutputFilename ) ) ) ) Then
  5258.           Set OutputDB = ThisDB.CreateCopy( QueryOutputServer, Ucase( QueryOutputFilename ) )
  5259.           '          remove unneeded forms and views
  5260.           'ViewName = "All Documents\data"
  5261.           'Set View = OutputDB.GetView( ViewName )
  5262.           'View.Remove
  5263.           Call OutputDB.GrantAccess( "Carol Zimmet", ACL_MANAGER )
  5264.  '         ***Grant author 'editor' access
  5265.           OutputDB.Title = "Capacity Planner Output Rev 1.0"
  5266.      End If
  5267.      
  5268.      Set CreateOutputDB = OutputDB
  5269.      
  5270. End Function
  5271. '++LotusScript Development Environment:2:1:CreateList:1:8
  5272. Public Function CreateList( ) As NotesDocument
  5273.      Dim session As New NotesSession
  5274.      Dim db As NotesDatabase
  5275.      Dim db2 As New NotesDatabase( "", "" )
  5276.      Dim view As NotesView
  5277.      Dim view2 As NotesView
  5278.      Dim doc As NotesDocument
  5279.      Dim doc2 As NotesDocument
  5280.      Dim outputstring As String
  5281.      Dim fileName As String
  5282.      Dim AllDatabaseCount As Integer
  5283.      Dim pathName As String
  5284.      Dim sPlatform( 13 ) As String 
  5285.      Dim bExitLoop As Integer
  5286.      
  5287.      Set db = session.CurrentDatabase
  5288.      Set view = db.GetView( "(List)" )
  5289.      If view Is Nothing Then
  5290.           Exit Function
  5291.      End If
  5292.      Set doc = view.GetFirstDocument
  5293.           '  make sure a List document is present with platform information
  5294.      bExitLoop = False
  5295.      While  bExitLoop = False
  5296.           If doc Is Nothing Then
  5297.                bExitLoop = True
  5298.           Elseif doc.ListType( 0 ) = "Platform" Then
  5299.                bExitLoop = True
  5300.           Else
  5301.                Set doc = view.GetNextDocument( doc )
  5302.           End If
  5303.      Wend
  5304.      
  5305.     ' *** Find the document for the Database if one is not there create one so it can be filled in..
  5306.      If doc Is Nothing Then
  5307.           Set Listdoc = db.createdocument
  5308.           Listdoc.ListType = "Platform"
  5309.           Listdoc.Form = "(List)"
  5310.           Call Listdoc.save( False,False )
  5311.      Else
  5312.           If Not( doc Is Nothing ) Then
  5313.                If doc.ListType( 0 ) = "Platform" Then
  5314.                     Set Listdoc = doc
  5315.                     Listdoc.list=""
  5316.                     Call Listdoc.Save( False, False )
  5317.                     Set doc = Listdoc
  5318.                End If
  5319.                Set doc = view.GetNextDocument( doc )
  5320.           End If
  5321.      End If
  5322.       '     initialize default fields
  5323.      sPlatform( 0 ) = "AIX/RS6000"
  5324.      sPlatform( 1 ) = "AIX/SP2"
  5325.      sPlatform( 2 ) =  "HP-UX"
  5326.      sPlatform( 3 ) = "NetWare 3.12"
  5327.      sPlatform( 4 ) = "Netware 4.1"
  5328.      sPlatform( 5 ) = " NT 3.51"
  5329.      sPlatform( 6 ) = " NT 4.0"
  5330.      sPlatform( 7 ) = " OS/2 2.11 SMP"
  5331.      sPlatform( 8 ) = " OS/2 Warp Connect"
  5332.      sPlatform( 9 ) = " OS/2 Warp Server 4.0"
  5333.      sPlatform( 10 ) = " Solaris 2.5"
  5334.      sPlatform( 11 ) = " Win95 1.0"
  5335.      sPlatform( 12 ) = "System/390"
  5336.      sPlatform(13 ) = "AS/400"
  5337.      
  5338.      Listdoc.list = sPlatform
  5339.      
  5340.      Call Listdoc.save( False, False )
  5341.      
  5342.      Set doc = view.GetFirstDocument
  5343.      '  make sure a List document is present with vendor database information
  5344.      bExitLoop = False
  5345.      While  bExitLoop = False
  5346.           If doc Is Nothing Then
  5347.                bExitLoop = True
  5348.           Elseif doc.ListType( 0 ) = "Database" Then
  5349.                bExitLoop = True
  5350.           Else
  5351.                Set doc = view.GetNextDocument( doc )
  5352.           End If
  5353.      Wend
  5354.      
  5355.     ' *** Find the document for the Database if one is not there create one so it can be filled in..
  5356.      If doc Is Nothing Then
  5357.           Set Listdoc = db.createdocument
  5358.           Listdoc.ListType = "Database"
  5359.           Listdoc.Form = "(List)"
  5360.           Call Listdoc.save( False,False )
  5361.      Else
  5362.           If Not( doc Is Nothing ) Then
  5363.                If doc.ListType( 0 ) = "Database" Then
  5364.                     Set Listdoc = doc
  5365.                     Listdoc.List=""
  5366.                     Call Listdoc.Save( False, False )
  5367.                End If
  5368.           End If
  5369.      End If
  5370.      pathName = session.GetEnvironmentString( "Directory",True )
  5371.      
  5372.      Chdir pathName
  5373.      
  5374.      ' **** document that vendor databases need to be in upper case
  5375.      pathName = pathname & "\CP*.NSF"
  5376.      
  5377.      fileName = Dir$( pathName )
  5378.      
  5379.      If fileName = "" Then
  5380.           Messagebox "Warning:  Cannot find Vendor Database(s)", MB_ICONEXCLAMATION, "Query on Data"
  5381.           Set CreateList = ListDoc
  5382.           Exit Function
  5383.      End If
  5384.      
  5385.      AllDatabaseCount = 0
  5386.      Do While fileName <> ""
  5387.           '  first need to validate that this is a proper vendor database
  5388.           
  5389.           Set db2 = New NotesDatabase( "", fileName )
  5390.           
  5391.           Set view2 = db2.GetView( "(Vendor Data)" )
  5392.           
  5393.           On Error Resume Next
  5394.           Set doc2 = view2.GetFirstDocument
  5395.           On Error Goto 0
  5396.           
  5397.           If Not( doc2 Is Nothing ) Then       '  include if entry found 
  5398.                Redim Preserve AllDatabase( AllDatabaseCount )
  5399.  '             parse out system name from filename 
  5400.                outputstring = Left ( filename, ( Len( filename ) - 4 ) )
  5401.                filename = outputstring
  5402.                outputstring = Right ( filename, ( Len( filename ) - 2 ) )
  5403.                AllDatabase ( AllDatabaseCount ) = Ucase( outputstring )
  5404.   '             Messagebox AllDatabase( AllDatabaseCount )
  5405.                AllDatabaseCount = AllDatabaseCount +1          
  5406.           End If
  5407.           
  5408.           If db2.IsOpen = True Then
  5409.                ' don't close if current vendor database
  5410.                Dim sTempFileName As String
  5411.                Dim i As Integer
  5412.                sTempFileName = db.FileName
  5413.                i = Instr(1, db.FileName, ".nsf")
  5414.                If i > 0 Then          '  handle case where testing from .ntf
  5415.                     sTempFileName = Left$( db.FileName, ( i - 1) )
  5416.                End If
  5417.                
  5418.                If Instr( 1, fileName, sTempFile ) = 0 Then
  5419.                     Call db2.Close
  5420.                End If
  5421.           End If
  5422.           
  5423.           fileName = Dir$( )
  5424.      Loop
  5425.      
  5426.      If AllDatabaseCount = 0 Then          '  no matches found
  5427.           'Messagebox "Warning:  Cannot find Vendor Databases", MB_ICONEXCLAMATION, "Vendor Database Search"
  5428.      End If
  5429.      
  5430.      '  save the information off (zero out if nothing found)
  5431.      Listdoc.list = AllDatabase
  5432.      Call Listdoc.save( False, False )
  5433.      
  5434.      
  5435.      Set CreateList = Listdoc   
  5436.      
  5437. End Function
  5438. '++LotusScript Development Environment:2:1:ValidateAMPerformance2:1:8
  5439. Public Function ValidateAMPerformance2( ThisDoc As NotesUIDocument ) As Integer
  5440.      
  5441.      ValidateAMPerformance = True
  5442.      If ThisDoc.FieldGetText( "DataUServerID" ) = "" Then
  5443.           ValidateAMPerformance = False
  5444.           Messagebox "Specify Server Machine ID", MB_ICONEXCLAMATION,_
  5445.           "Graph Performance Information"
  5446.           ThisDoc.GoToField( "DataUServerID" )
  5447.           Exit Function
  5448.      End If
  5449.      
  5450.      If ThisDoc.FieldGetText( "DataUScript1" ) = "" Then
  5451.           ValidateAMPerformance = False
  5452.           Messagebox "Specify Script Performed", MB_ICONEXCLAMATION,_
  5453.           "Graph Performance Information"
  5454.           ThisDoc.GoToField( "DataUScript1" )
  5455.           Exit Function
  5456.      End If
  5457.      
  5458. End Function
  5459. '++LotusScript Development Environment:2:1:ProcessPerformChart2:1:8
  5460. Public Function ProcessPerformChart2 ( PerformChart As Variant ) As Variant
  5461.      Dim Workspace As New NotesUIWorkspace
  5462.      Dim ThisDoc As NotesUIDocument
  5463.      
  5464.      Set ThisDoc = Workspace.CurrentDocument
  5465.      
  5466.        'set Perform chart type to 2d line
  5467.      PerformChart.chartType = CHChartType2dLine
  5468.      PerformChart.TitleText = "System Performance: " + ThisDoc.FieldGetText _
  5469.      ( "DataUScript1" )
  5470.      
  5471.      PerformChart.Plot.DataSeriesInRow = False   'reads from a column
  5472.      
  5473.      Set ProcessPerformChart = PerformChart
  5474.      
  5475. End Function
  5476. '++LotusScript Development Environment:2:2:PerformChartAssn:1:8
  5477. Public Sub PerformChartAssn ( iRC As Integer, iCC As Integer, ThisDoc As NotesUIDocument )
  5478.      PerformChart.Repaint = False
  5479.      PerformChart.rowcount = iRC
  5480.      PerformChart.columncount = iCC
  5481.      PerformSheet.tablename = "PerformSheet"
  5482.      PerformChart.sslinkbook = "PerformSheet"
  5483.      test = iRC + 1
  5484.      PerformChart.sslinkrange = "a1:m" + test
  5485.      PerformChart.sslinkmode = 1
  5486.      PerformChart.Repaint = True
  5487.      Call ThisDoc.GoToField( "DataPerformChart" )
  5488. End Sub
  5489. '++LotusScript Development Environment:2:2:GraphPerformance2:1:8
  5490. Public Sub GraphPerformance2( iRowCountPerform As Integer, iColCountPerform As Integer )
  5491.      Dim Workspace As New NotesUIWorkspace
  5492.      Dim ThisDoc As NotesUIDocument
  5493.      Dim Session As New NotesSession
  5494.      Dim ThisDB As NotesDatabase
  5495.      Dim DateTime As New NotesDateTime ( "1/1/96" )
  5496.      Dim SearchCollection As NotesDocumentCollection
  5497.      Dim SearchDoc As NotesDocument
  5498.      Dim iEntryCount As Integer
  5499.      Dim bMatchFound As Integer
  5500.      Dim itemp As Integer
  5501.      
  5502.      Set ThisDoc = Workspace.CurrentDocument
  5503.      Set ThisDB = Session.CurrentDatabase
  5504.      ThisDoc.EditMode = True
  5505.      
  5506.      If ValidateGraphPerformance2 ( ) = False Then
  5507.           Exit Sub
  5508.      End If
  5509.      
  5510.      If PerformComponentsSetup2 ( ) = False Then
  5511.           Exit Sub
  5512.      End If
  5513.           '********************************************************
  5514.      ' load up the spreadsheet with data
  5515.      ' do a lookup based on this machine id and this script id
  5516.      iEntryCount=0
  5517.      SearchFormula$ = " Form = ""Vendor Data""  & DataUServerID = " & {"} & ThisDoc.FieldGetText( "DataUServerID" ) & {"} & _
  5518.      " &  DataUScript1 = " & {"} & ThisDoc.FieldGetText( "DataUScript1" )  & {"} 
  5519.      Set SearchCollection = ThisDB.Search( SearchFormula$, DateTime, 0 )
  5520.      
  5521.      '  first insert data from current database
  5522.      If SearchCollection.Count > 0 Then
  5523.           For i = 1 To SearchCollection.Count
  5524.                Set SearchDoc = SearchCollection.GetNthDocument ( i )
  5525.                
  5526.                Dim vCertifyCheck As Variant
  5527.                Dim vIsSignedCheck As Variant
  5528.                Dim vEstimated As Variant
  5529.                
  5530.               '  make sure the data has a signature attached
  5531.                vCertifyCheck = SearchDoc.CertifyCheckOn
  5532.                vIsSignedField = SearchDoc.IsSignedField
  5533.                vEstimated = SearchDoc.Estimated
  5534.                '  only include entry if the record is signed, or the user wants to include estimated records
  5535.                If ( vCertifyCheck( 0 ) = "1" )  Then
  5536.                     If  ( ( vIsSignedField( 0 ) = "1"  And vEstimated( 0 ) = "No" ) Or ( vIsSignedField( 0 ) = "0" And vEstimated( 0 ) = "Yes" And vEstimatedChoices = "Yes" ) ) Then
  5537.                          PerformSheet.row = 1 +  i
  5538.                          PerformSheet.col = 1    
  5539.                          temp =  SearchDoc.GetItemValue( "DataUNumberUsers1" ) 
  5540.                          PerformSheet.number =  Cint( temp( 0 ) ) 
  5541.                          PerformSheet.col = 2       '    response time
  5542.                          temp= SearchDoc.GetItemValue( "DataUAverage" ) 
  5543.                          PerformSheet.number= Csng( temp( 0 ) ) 
  5544.                          iEntryCount=iEntryCount + 1
  5545.                     End If
  5546.                End If
  5547.           Next i     
  5548.      End If
  5549.      
  5550.      '  make sure the current form is filled out and then insert
  5551.      If ThisDoc.FieldGetText( "DataUNumberUsers1" ) > " " And ThisDoc.FieldGetText( "DataUAverage" ) > " " Then
  5552.           '  see if the entry exists
  5553.           bMatchFound = False
  5554.           For i = 1 To iEntryCount
  5555.                PerformSheet.row = i + 1
  5556.                PerformSheet.col = 1
  5557.                itemp = PerformSheet.number
  5558.                If Cint( ThisDoc.FieldGetText( "DataUNumberUsers1" ) ) = iTemp Then
  5559.                     bMatchFound = True
  5560.                     PerformSheet.col= 2       '    response time
  5561.                     PerformSheet.number = Csng( ThisDoc.FieldGetText( "DataUAverage" ) )
  5562.                End If
  5563.           Next i
  5564.           If bMatchFound = False Then
  5565.                PerformSheet.row = 1 +  iEntryCount + 1
  5566.                PerformSheet.col = 1     '   user count
  5567.                PerformSheet.number =  Cint( ThisDoc.FieldGetText( "DataUNumberUsers1" ) )
  5568.                PerformSheet.col= 2       '    response time
  5569.                PerformSheet.number = Csng( ThisDoc.FieldGetText( "DataUAverage" ) )
  5570.                iEntryCount=iEntryCount + 1
  5571.           End If
  5572.      End If
  5573.      
  5574.      iRowCountPerform = iEntryCount + iRowCountPerform
  5575.      
  5576.      '  set columns to automatically resize
  5577.      PerformSheet.SetColWidthAuto 1, 1, ( iRowCountPerform + 1 ), 2 , True
  5578.      
  5579.      EndRow = ( iOutputCount + 2 ) - 1
  5580.      PerformSheet.Sort 2, 1, iRowCountPerform + 1, 2, True, 1     
  5581.      
  5582.         '  set up the link between spreadsheet and chart
  5583.      iColCountPerform = 1
  5584.      Call PerformChartAssn( iRowCountPerform, iColCountPerform, ThisDoc )
  5585.      iRowCountPerform = iRowCountPerform + 1
  5586.      Exit Sub
  5587.      
  5588. PressEdit:
  5589.      Messagebox "Need to be in Edit Mode, then Request Graphical Information", MB_ICONEXCLAMATION, "Graph Performance Information"
  5590.      Exit Sub
  5591.      
  5592.      
  5593. End Sub
  5594. '++LotusScript Development Environment:2:1:VerifyProfile:1:8
  5595. Function VerifyProfile( iProfileNumber As Integer, iProfileTotal As Integer, ThisDoc As NotesUIDocument ) As Integer
  5596.          '  returns True if Validated successfully
  5597.      
  5598.      VerifyProfile = True
  5599.      For i = 1 To UserTaskArrayCount
  5600.           sTempName$ = sUserTaskArray( i, 3 ) + "_" + Cstr( iProfileNumber )
  5601.           iProfileTotal =( Cint( ThisDoc.FieldGetText( sTempName$ ) ) ) + iProfileTotal
  5602.      Next i
  5603.      
  5604.      If iProfileTotal <> 0 And iProfileTotal <> 100 Then
  5605.           sTempDisplay$ = "Adjust Calculations for Profile #" & Cstr( iProfileNumber )
  5606.           Messagebox sTempDisplay$, MB_ICONEXCLAMATION, "Verify Form"
  5607.           ThisDoc.GotoField( sTempName$ )
  5608.           VerifyProfile = False
  5609.           Exit Function
  5610.      End If
  5611.      
  5612. End Function
  5613. '++LotusScript Development Environment:2:1:VerifyProfileMaster:1:8
  5614. Function VerifyProfileMaster( ThisDoc As NotesUIDocument ) As Integer
  5615.      '  True = Success, False = Problem reported
  5616.       '  envelope routine around VerifyProfile
  5617.      
  5618.      Dim iTotalCount As Integer
  5619.      Dim iIntermediaryCount As Integer
  5620.      Dim i As Integer
  5621.      
  5622.      VerifyProfileMaster = True
  5623.      
  5624.       ' verify each profile adds up to 0 or 100
  5625.      
  5626.      For i = 1 To 3
  5627.           iIntermediaryCount = 0
  5628.           If VerifyProfile( i, iIntermediaryCount, ThisDoc ) = False Then
  5629.                VerifyProfileMaster = False
  5630.                Exit Function
  5631.           End If
  5632.           iTotalCount = iTotalCount + iIntermediaryCount
  5633.      Next i
  5634.      
  5635.      If iTotalCount = 0 Then
  5636.           Messagebox "Percentage Distribution Must be specified for a Profile User", MB_ICONEXCLAMATION, "Verify Form"
  5637.           ThisDoc.GotoField( "LayoutNumActiveUsers" )
  5638.           VerifyProfileMaster = False
  5639.           Exit Function
  5640.      End If
  5641.      
  5642.      Dim iTotalProfile As Integer
  5643.           '  verify individual profiles add up to the larger total
  5644.      iTotalProfile =( Cint( ThisDoc.FieldGetText( "LayoutTotalProfile_1" ) ) + Cint( ThisDoc.FieldGetText( "LayoutTotalProfile_2" ) ) _
  5645.      + Cint( ThisDoc.FieldGetText( "LayoutTotalProfile_3" ) ) )
  5646.           ' verify individual columns total to the larger total
  5647.      If iTotalProfile <> Cint( ThisDoc.FieldGetText( "LayoutNumActiveUsers" ) )  Then
  5648.           If Len (ThisDoc.FieldGetText( "LayoutNumActiveUsers" ) ) = 0  Or Cint( ThisDoc.FieldGetText( "LayoutNumActiveUsers" ) )  = 0  Then
  5649.                Call ThisDoc.FieldSetText( "LayoutNumActiveUsers", Cstr( iTotalProfile ) )
  5650.           Else
  5651.                
  5652.                Messagebox "Total Number of Users Must Equal the Sum of Each Individual User Profile Number", MB_ICONEXCLAMATION, "Verify Form"
  5653.                ThisDoc.GotoField( "LayoutNumActiveUsers" )
  5654.                VerifyProfileMaster = False
  5655.                Exit Function
  5656.           End If
  5657.           
  5658.      End If
  5659.      
  5660.       '  something should be specified in the larger total field
  5661.      If Len( ThisDoc.FieldGetText( "LayoutNumActiveUsers" ) ) = 0  Or ThisDoc.FieldGetText( "LayoutNumActiveUsers" ) = "0" Then
  5662.           Messagebox "Enter Number of Active Users Specification(s)", MB_ICONEXCLAMATION, "Verify Form"
  5663.           ThisDoc.GotoField( "LayoutNumActiveUsers" )
  5664.           VerifyProfileMaster = False
  5665.           Exit Function
  5666.      End If
  5667.      
  5668.           '  make sure at least one user profile is equal to 100
  5669.      If iTotalProfile = 0 Then
  5670.           Messagebox "At least One Client Profile Must be Specified", MB_ICONEXCLAMATION, "Verify Form"
  5671.           ThisDoc.GotoField( "LayoutMail_1" )
  5672.           VerifyProfileMaster = False
  5673.           Exit Function
  5674.      End If
  5675.      
  5676.      
  5677.      
  5678. End Function
  5679. '++LotusScript Development Environment:2:2:UserTaskArrayInitPart:1:8
  5680. Sub UserTaskArrayInitPart ()
  5681.      For i = 1 To UserTaskArrayCount
  5682.           sUserTaskArray( i, 2 ) = "0"
  5683.      Next
  5684.      
  5685.      sUserTaskArray( 1,1 ) = "Mail"
  5686.      sUserTaskArray( 1,3 ) = "LayoutMail"
  5687.      
  5688.      sUserTaskArray( 2,1 ) = "Mail & Database"
  5689.      sUserTaskArray( 2,3 ) = "LayoutMailDB"
  5690.      
  5691.      sUserTaskArray( 3,1 ) = "Groupware #1"
  5692.      sUserTaskArray( 3,3 ) = "LayoutGroupware" 
  5693.      
  5694.      sUserTaskArray( 4,1 ) = "Calendar & Scheduling"
  5695.      sUserTaskArray( 4,3 ) = "LayoutCS"
  5696.      
  5697.      sUserTaskArray( 5,1 ) = "Database"
  5698.      sUserTaskArray( 5,3 ) = "LayoutDatabase"
  5699.      
  5700.      sUserTaskArray( 6,1 ) = "Web Walker"
  5701.      sUserTaskArray( 6,3 ) = "LayoutWW"
  5702.      
  5703.      sUserTaskArray( 7,1 ) = "Web Buyer"
  5704.      sUserTaskArray( 7,3 ) = "LayoutWB"
  5705.      
  5706.      sUserTaskArray( 8,1 ) = "R5 Mail & Database"
  5707.      'sUserTaskArray( 8,2 ) = ThisDoc.FieldGetText( "LayoutFTSearch" )
  5708.      sUserTaskArray( 8,3 ) = "LayoutR5MDB"
  5709.      
  5710. End Sub
  5711. "p'p'
  5712. 6D D 
  5713. +t t 
  5714. t"t"$#
  5715. 1D1t1
  5716. 1D4<6<6
  5717. /\+L,
  5718. -@-@-$.$.
  5719. 2x4<2<2
  5720. 2h4h4
  5721. 7L7L7h5
  5722. 80808
  5723. 4#4#`
  5724. ,p/|5
  5725. P-$8a{
  5726. - 9d8
  5727. $70<b
  5728. t1t1l?
  5729. <2L2@@    
  5730. \2\2L@    
  5731. 2x4x@
  5732. 3D4 A    
  5733. 7pAA8
  5734. P8`8@
  5735. ^$ 6v
  5736. ^4 6K
  5737. ,D }@
  5738. ,t }@
  5739. ,D }l
  5740. ,t }l
  5741. ,D Jp
  5742. ^d"Kt!-D##
  5743. ^t"Kd"-h##
  5744. ^T"KD"-
  5745. Kd",D }
  5746. Kd"-h##U
  5747. Kd",D }
  5748. Kd",D }
  5749. Kd"-h##U
  5750. Kd",D }
  5751. Kd",D }
  5752. #Kd",
  5753. Kd"-h##Q
  5754. Kt",P$
  5755. $,h(}@
  5756. $,h(}l
  5757. $,h(}
  5758. $,h(}
  5759. }d1#}
  5760. ,D }d1#
  5761. ,D }d1#
  5762. }d2#}
  5763. ,D }d2#
  5764. )-D##
  5765. ^<)K,)-
  5766. }d1#}
  5767. ),D }d1#
  5768. }d2#}
  5769. ),D }d2#
  5770. }(3#}
  5771. ),D }(3#
  5772. ^l)K\)-D##
  5773. )K|)-
  5774. }d1#}
  5775. Kl),D }d1#
  5776. }d2#}
  5777. Kl),D }d2#
  5778. )}84$
  5779. )-D##
  5780. ),D }T5#
  5781. ),t }T5#
  5782. ),D }
  5783. ),t }
  5784. +}06}P6
  5785. +Q4,}
  5786. ,Q@,}
  5787. ,Q\,}
  5788. -}|8K
  5789. -S4-^@-%PP-
  5790. N\-Ol-Qx-
  5791. }d2#} 
  5792. }d2#}|
  5793. -S4-^
  5794. -S4-^
  5795. -S4-^@-
  5796. -S4-^$.
  5797. -S4-^
  5798. -%OD.SP.
  5799. N\.Ql.
  5800. N\.Ox.Q
  5801. N\.Ox.Q
  5802. -S4-^@-%OD.SP.
  5803. -S4-^$.%OD.SP.
  5804. -S4-^@-%P /
  5805. N,/Ql.
  5806. NH/OX/Q
  5807. NH/OX/Qd/Jp/
  5808. NH/Ox.Q
  5809. /-D##
  5810. 0,D }T5#
  5811. 0,,0}
  5812. 0,D }
  5813. 0,,0}06#
  5814. N\0Q(,Jl0
  5815. 0Q4,}
  5816. N\0Q@,}
  5817. N\0Q\,}
  5818. N\0Qh,
  5819. 0-D##
  5820. -h##Q
  5821. -h##Q
  5822. 0,D1J
  5823. 0,t1J
  5824. ^,2+|
  5825. 2}4A#
  5826. ^\2K<2,$3#
  5827. K\2ST3
  5828. ^\2K<2,`3J\2#
  5829. 3QT3}
  5830. K\2ST3
  5831. ^\2K<2,`3J\2#
  5832. ^\2K<2,$3#
  5833. K\2ST3
  5834. ^\2K<2,`3J\2#
  5835. 3QT3}
  5836. K\2ST3
  5837. ^,2+|
  5838. ^L2K,2,
  5839. 2}pD#
  5840. ^l2KL2,$3#
  5841. K,2-D4#
  5842. }d1#}
  5843. ,D }d1#
  5844. }d2#}
  5845. ,D }d2#
  5846. 4-D##
  5847. -}|8K
  5848. N85Q(,W
  5849. NH5Q4,}
  5850. N85Q@,}
  5851. N85Q\,}
  5852. N85Qh,
  5853. )}84$
  5854. ^x5Kh5-D##
  5855. ^,6}8F
  5856. 5,<6J,6J
  5857. 5-t6#
  5858. 5-t6#
  5859. 5,\7}
  5860. 5,\7}(3#
  5861. }(3#}
  5862. 7Kx5,
  5863. 7Kx5,
  5864. 7Kx5,
  5865. ^ 84;
  5866. ^p84L
  5867. Query on Data'++LotusScript Development Environment:2:5:(Options):0:74
  5868. 'Const MB_ICONEXCLAMATION = 48
  5869. 'Const MB_YESNO = 4
  5870. Const CHFontEffectUnderline=512
  5871. 'Use "vendordata"
  5872. '++LotusScript Development Environment:2:5:(Forward):0:1
  5873. Declare Sub Initialize
  5874. Declare Sub Postopen( Source As Notesuidocument )
  5875. Declare Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
  5876. '++LotusScript Development Environment:2:5:(Declarations):0:2
  5877. '++LotusScript Development Environment:2:2:BindEvents:1:129
  5878. Private Sub BindEvents(Byval Objectname_ As String)
  5879.      Static Source As NOTESUIDOCUMENT
  5880.      Set Source = Bind(Objectname_)
  5881.      On Event Postopen From Source Call Postopen
  5882.      On Event Queryopen From Source Call Queryopen
  5883. End Sub
  5884. '++LotusScript Development Environment:2:2:Initialize:1:10
  5885. Sub Initialize
  5886.      
  5887. End Sub
  5888. '++LotusScript Development Environment:2:2:Postopen:2:12
  5889. %INCLUDE "pstoarr.lss"
  5890. Sub Postopen( Source As Notesuidocument )
  5891.      Dim Workspace As New NotesUIWorkspace
  5892.      Dim ThisDoc As NotesUIDocument
  5893.      Dim Session As New NotesSession
  5894.      Dim CurrentView As NotesView
  5895.      Dim doc As NotesDocument
  5896.      Dim OutputArray As Variant
  5897.      Dim i As Integer
  5898.      Dim sPlatform( 13 ) As String
  5899.      
  5900.      Set ThisDoc = Workspace.CurrentDocument
  5901.      If ThisDoc.FieldGetText( "MailFlag" ) = "1" Then
  5902.           Exit Sub
  5903.      End If
  5904.      
  5905.      Set Listdoc = CreateList( )
  5906.      
  5907.      bAlreadyDisplayedResponse = False
  5908.      bAlreadyDisplayedCost = False
  5909.      
  5910.      bGrowthListMaxReached = False  '  flag for growth list
  5911.      
  5912.      'initialize don't clear flag, should be cleared on any field changes
  5913.      bClearOutputArea = True
  5914.      
  5915.      '  graphic message display about resizing, only done once
  5916.      bGraphMessageDisplayed = False
  5917.      
  5918.      '  flag whether or not the graph is displayed
  5919.      bCostGraph = False
  5920.      bResponseGraph = False
  5921.      
  5922.      '     initialize default fields
  5923.      sPlatform( 0 ) = "AIX/RS6000"
  5924.      sPlatform( 1 ) = "AIX/SP2"
  5925.      sPlatform( 2 ) =  "HP-UX"
  5926.      sPlatform( 3 ) = "NetWare 3.12"
  5927.      sPlatform( 4 ) = "NetWare 4.1"
  5928.      sPlatform( 5 ) = " NT 3.51"
  5929.      sPlatform( 6 ) = " NT 4.0"
  5930.      sPlatform( 7 ) = " OS/2 2.11 SMP"
  5931.      sPlatform( 8 ) = " OS/2 Warp Connect"
  5932.      sPlatform( 9 ) = " OS/2 Warp Server 4.0"
  5933.      sPlatform( 10 ) = " Solaris 2.5"
  5934.      sPlatform( 11 ) = " Win95 1.0"
  5935.      sPlatform( 12 ) = "AS/400"
  5936.      sPlatform( 13) = "System/390"
  5937.      
  5938.      Set CurrentDB = Session.CurrentDatabase
  5939.      Set CurrentView = CurrentDB.GetView( "(List)" )
  5940.      Set doc = CurrentView.GetFirstDocument
  5941.      If doc Is Nothing Then
  5942.           Messagebox "Cannot Find List of Vendors", MB_ICONEXCLAMATION, "Query on Data"
  5943.           Exit Sub
  5944.      End If
  5945.      While doc.ListType( 0 ) <> "Database"
  5946.           Set doc = CurrentView.GetNextDocument( doc )
  5947.           If doc Is Nothing Then
  5948.                Messagebox "Cannot Find List of Vendors", MB_ICONEXCLAMATION, "Query on Data"
  5949.                Exit Sub
  5950.           End If
  5951.      Wend
  5952.      
  5953.  '        insert all vendors into list     
  5954.  '        Find the list document which contains the dynamic list
  5955.      i = 0
  5956.      While Not( doc Is Nothing )
  5957.           If doc.ListType( 0 ) = "Database" Then
  5958.                Set Listdoc = doc
  5959.                Listdoc.Form = "(List)"
  5960.                If Listdoc.list( 0 ) = "" Then
  5961.                     Messagebox "Warning:  No Vendor Database(s) to Search", MB_ICONEXCLAMATION, "Query on Data"
  5962.                     Exit Sub
  5963.                End If
  5964.                
  5965.                Forall vendorname In Listdoc.list 
  5966.                     If vendorname <> "" Then
  5967.                          Redim Preserve sVendor( i )
  5968.                          sVendor( i ) = vendorname
  5969.                          i = i + 1
  5970.                     End If
  5971.                End Forall
  5972.           End If
  5973.           Set doc = CurrentView.GetNextDocument( doc )
  5974.      Wend
  5975.      
  5976.      ThisDoc.document.VendorList = sVendor
  5977.      sgVendor = sVendor 'kludge
  5978.      ThisDoc.document.OutputSaveResults = "Output to Database"
  5979.      
  5980.      If ThisDoc.IsNewDoc = True Then
  5981.           ThisDoc.document.LayoutOSPlatform = sPlatform
  5982.           
  5983.           ThisDoc.document.LayoutUserResponseTime = "Slow (3.1 - 5 sec)"
  5984.           ThisDoc.document.LayoutPercentRange = "50"
  5985.           ThisDoc.document.LayoutTolerance = "100"   ' for the user count
  5986.           ThisDoc.document.LayoutTolerance_Response = "100"   'for the response time
  5987.           ThisDoc.document.LayoutDiskConfiguration = "Any Configuration"
  5988.           ThisDoc.document.EstimatedChoices = "Yes"  ' set it so estimated records will be included in query
  5989.           
  5990.           ThisDoc.document.PerGrowthProj = 20
  5991.           
  5992.           If ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Slow (3.1 - 5 sec)" Then
  5993.                ThisDoc.document.LayoutReplHub = "100"
  5994.                ThisDoc.document.LayoutReplHour = "*"
  5995.                ThisDoc.document.LayoutMBReplHour = "*"
  5996.                ThisDoc.document.LayoutMailHub = "100"
  5997.                ThisDoc.document.LayoutMessagesHour =  "*"
  5998.                ThisDoc.document.LayoutMBMessagesHour = "*"
  5999.           End If
  6000.      Else
  6001.           Dim vVendorList As Variant
  6002.           
  6003.           
  6004.           OutputArrayx = ParseStringToArray( ";",ThisDoc.FieldGetText( "sVendorList" ) )
  6005.           vVendorList = ThisDoc.document.sVendorList
  6006.           'ThisDoc.document.VendorList = vVendorList 
  6007.           ThisDoc.document.VendorList = OutputArrayx
  6008.      End If
  6009.      
  6010.      Call ThisDoc.ExpandAllSections         '  make sure user doesn't prevent any server.planner activities
  6011.      
  6012. End Sub
  6013. '++LotusScript Development Environment:2:2:Queryopen:1:12
  6014. Sub Queryopen(Source As Notesuidocument, Mode As Integer, Isnewdoc As Variant, Continue As Variant)
  6015.      Dim Workspace As New NotesUIWorkspace
  6016.      Dim session As New NotesSession
  6017.      Dim ThisDB As NotesDatabase
  6018.      Dim View As NotesView
  6019.      Dim doc As NotesDocument
  6020.      Dim sFileNameExtrace As String
  6021.      
  6022.      Exit Sub
  6023.      
  6024.      'Set ThisDoc = Workspace.CurrentDocument
  6025.      Set ThisDB = session.CurrentDatabase
  6026.        '  need to detect if current path is a mail item
  6027.      sFileNameExtract = Left$( ThisDB.FileName, 2 )
  6028.      'If Ucase( sFileNameExtract ) <> "CP"  Then
  6029.      'If Source.FieldGetText( "MailFlag" ) = "1" Then
  6030.       '    Exit Sub
  6031.      'End If
  6032.      
  6033.      
  6034.      Set View = ThisDB.GetView( "(List)" )
  6035.      Set doc = View.GetFirstDocument
  6036.      While doc.ListType( 0 ) <> "Database"
  6037.           Set doc = view.GetNextDocument( doc )
  6038.      Wend
  6039. %END REM
  6040.      Set Listdoc = CreateList( )
  6041.      
  6042.      bAlreadyDisplayedResponse = False
  6043.      bAlreadyDisplayedCost = False
  6044.      
  6045. End Sub
  6046. '++LotusScript Development Environment:2:5:(Options):0:66
  6047. '++LotusScript Development Environment:2:5:(Forward):0:1
  6048. Declare Sub Initialize
  6049. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6050. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6051. Private Sub BindEvents(Byval Objectname_ As String)
  6052.      Static Source As FIELD
  6053.      Set Source = Bind(Objectname_)
  6054. End Sub
  6055. '++LotusScript Development Environment:2:2:Initialize:1:10
  6056. Sub Initialize
  6057.      
  6058. End Sub
  6059. '++LotusScript Development Environment:2:5:(Options):0:66
  6060. '++LotusScript Development Environment:2:5:(Forward):0:1
  6061. Declare Sub Initialize
  6062. Declare Sub Entering(Source As Field)
  6063. Declare Sub Exiting(Source As Field)
  6064. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6065. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6066. Private Sub BindEvents(Byval Objectname_ As String)
  6067.      Static Source As FIELD
  6068.      Set Source = Bind(Objectname_)
  6069.      On Event Entering From Source Call Entering
  6070.      On Event Exiting From Source Call Exiting
  6071. End Sub
  6072. '++LotusScript Development Environment:2:2:Initialize:1:10
  6073. Sub Initialize
  6074.      Dim Workspace As New NotesUIWorkspace
  6075.      Dim ThisDoc As NotesUIDocument
  6076.      
  6077.      Set ThisDoc = Workspace.CurrentDocument
  6078.      
  6079.      ThisDoc.Document.VendorList = "Rent;Dana"
  6080. End Sub
  6081. '++LotusScript Development Environment:2:2:Entering:1:12
  6082. Sub Entering(Source As Field)
  6083.      Dim Workspace As New NotesUIWorkspace
  6084.      Dim ThisDoc As NotesUIDocument
  6085.      
  6086.      Set ThisDoc = Workspace.CurrentDocument
  6087.      sFieldName = "VendorList"
  6088.      'ThisDoc.document.VendorList = OutputArrayx
  6089.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6090.      'ThisDoc.GoToField( "VendorList" )
  6091. End Sub
  6092. '++LotusScript Development Environment:2:2:Exiting:1:12
  6093. Sub Exiting(Source As Field)
  6094.      Dim Workspace As New NotesUIWorkspace
  6095.      Dim ThisDoc As NotesUIDocument
  6096.      
  6097.      Set ThisDoc = Workspace.CurrentDocument
  6098.      
  6099.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6100.           Call ClearOutputFieldArea( ThisDoc )
  6101.      End If
  6102.      
  6103. End Sub
  6104. '++LotusScript Development Environment:2:5:(Options):0:66
  6105. '++LotusScript Development Environment:2:5:(Forward):0:1
  6106. Declare Sub Exiting(Source As Field)
  6107. Declare Sub Terminate
  6108. Declare Sub Entering(Source As Field)
  6109. Declare Sub Initialize
  6110. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6111. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6112. Private Sub BindEvents(Byval Objectname_ As String)
  6113.      Static Source As FIELD
  6114.      Set Source = Bind(Objectname_)
  6115.      On Event Exiting From Source Call Exiting
  6116.      On Event Entering From Source Call Entering
  6117. End Sub
  6118. '++LotusScript Development Environment:2:2:Exiting:1:12
  6119. Sub Exiting(Source As Field)
  6120.      
  6121. End Sub
  6122. '++LotusScript Development Environment:2:2:Terminate:1:10
  6123. Sub Terminate
  6124.      Dim workspace As New notesuiworkspace
  6125.      Dim ThisDoc As notesuidocument
  6126.      
  6127.      Set ThisDoc = workspace.CurrentDocument
  6128.      'TempString$ = ThisDoc.FieldGetText("VendorList")
  6129.      
  6130.      
  6131. End Sub
  6132. '++LotusScript Development Environment:2:2:Entering:1:12
  6133. Sub Entering(Source As Field)
  6134.      
  6135. End Sub
  6136. '++LotusScript Development Environment:2:2:Initialize:1:10
  6137. Sub Initialize
  6138.      
  6139. End Sub
  6140. '++LotusScript Development Environment:2:5:(Options):0:66
  6141. '++LotusScript Development Environment:2:5:(Forward):0:1
  6142. Declare Sub Entering(Source As Field)
  6143. Declare Sub Exiting(Source As Field)
  6144. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6145. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6146. Private Sub BindEvents(Byval Objectname_ As String)
  6147.      Static Source As FIELD
  6148.      Set Source = Bind(Objectname_)
  6149.      On Event Entering From Source Call Entering
  6150.      On Event Exiting From Source Call Exiting
  6151. End Sub
  6152. '++LotusScript Development Environment:2:2:Entering:1:12
  6153. Sub Entering(Source As Field)
  6154.      Dim Workspace As New NotesUIWorkspace
  6155.      Dim ThisDoc As NotesUIDocument
  6156.      
  6157.      Set ThisDoc = Workspace.CurrentDocument
  6158.      sFieldName = "LayoutServerTasks"
  6159.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6160.      'ThisDoc.GoToField( "LayoutServerTasks" )
  6161. End Sub
  6162. '++LotusScript Development Environment:2:2:Exiting:1:12
  6163. Sub Exiting(Source As Field)
  6164.      Dim Workspace As New NotesUIWorkspace
  6165.      Dim ThisDoc As NotesUIDocument
  6166.      
  6167.      Set ThisDoc = Workspace.CurrentDocument
  6168.      sFieldName = "LayoutServerTasks"
  6169.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName  ) And vFieldEntryValue <> "" ) Then
  6170.           Call ClearOutputFieldArea( ThisDoc )
  6171.           
  6172.      End If
  6173.      
  6174. End Sub
  6175. '++LotusScript Development Environment:2:5:(Options):0:66
  6176. '++LotusScript Development Environment:2:5:(Forward):0:1
  6177. Declare Sub Entering(Source As Field)
  6178. Declare Sub Exiting(Source As Field)
  6179. Declare Sub Initialize
  6180. Declare Sub Terminate
  6181. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6182. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6183. Private Sub BindEvents(Byval Objectname_ As String)
  6184.      Static Source As FIELD
  6185.      Set Source = Bind(Objectname_)
  6186.      On Event Entering From Source Call Entering
  6187.      On Event Exiting From Source Call Exiting
  6188. End Sub
  6189. '++LotusScript Development Environment:2:2:Entering:1:12
  6190. Sub Entering(Source As Field)
  6191.      Dim Workspace As New NotesUIWorkspace
  6192.      Dim ThisDoc As NotesUIDocument
  6193.      Dim sFieldName As String
  6194.      
  6195.      Set ThisDoc = Workspace.CurrentDocument
  6196.      sFieldName = "LayoutUserResponseTime"
  6197.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6198.      'ThisDoc.GoToField( "LayoutUserResponseTime" )
  6199.      
  6200. End Sub
  6201. '++LotusScript Development Environment:2:2:Exiting:1:12
  6202. Sub Exiting(Source As Field)
  6203.      Dim Workspace As New NotesUIWorkspace
  6204.      Dim ThisDoc As NotesUIDocument
  6205.      
  6206.      Set ThisDoc = Workspace.CurrentDocument
  6207.      sFieldName = "LayoutUserResponseTime"
  6208.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6209.           Call ClearOutputFieldArea( ThisDoc )
  6210.      End If
  6211.      
  6212. End Sub
  6213. '++LotusScript Development Environment:2:2:Initialize:1:10
  6214. Sub Initialize
  6215.      'Messagebox("Initialize")
  6216. End Sub
  6217. '++LotusScript Development Environment:2:2:Terminate:1:10
  6218. Sub Terminate
  6219.      'Messagebox("Terminate")
  6220. End Sub
  6221. '++LotusScript Development Environment:2:5:(Options):0:66
  6222. '++LotusScript Development Environment:2:5:(Forward):0:1
  6223. Declare Sub Entering(Source As Field)
  6224. Declare Sub Exiting(Source As Field)
  6225. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6226. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6227. Private Sub BindEvents(Byval Objectname_ As String)
  6228.      Static Source As FIELD
  6229.      Set Source = Bind(Objectname_)
  6230.      On Event Entering From Source Call Entering
  6231.      On Event Exiting From Source Call Exiting
  6232. End Sub
  6233. '++LotusScript Development Environment:2:2:Entering:1:12
  6234. Sub Entering(Source As Field)
  6235.      Dim Workspace As New NotesUIWorkspace
  6236.      Dim ThisDoc As NotesUIDocument
  6237.      
  6238.      Set ThisDoc = Workspace.CurrentDocument
  6239.      sFieldName = "LayoutPercentRange"
  6240.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6241.      'ThisDoc.GoToField( "LayoutPercentRange" )
  6242. End Sub
  6243. '++LotusScript Development Environment:2:2:Exiting:1:12
  6244. Sub Exiting(Source As Field)
  6245.      Dim Workspace As New NotesUIWorkspace
  6246.      Dim ThisDoc As NotesUIDocument
  6247.      
  6248.      Set ThisDoc = Workspace.CurrentDocument
  6249.      sFieldName = "LayoutPercentRange"
  6250.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6251.           Call ClearOutputFieldArea( ThisDoc )
  6252.      End If
  6253.      
  6254. End Sub
  6255. '++LotusScript Development Environment:2:5:(Options):0:66
  6256. '++LotusScript Development Environment:2:5:(Forward):0:1
  6257. Declare Sub Entering(Source As Field)
  6258. Declare Sub Exiting(Source As Field)
  6259. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6260. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6261. Private Sub BindEvents(Byval Objectname_ As String)
  6262.      Static Source As FIELD
  6263.      Set Source = Bind(Objectname_)
  6264.      On Event Entering From Source Call Entering
  6265.      On Event Exiting From Source Call Exiting
  6266. End Sub
  6267. '++LotusScript Development Environment:2:2:Entering:1:12
  6268. Sub Entering(Source As Field)
  6269.      Dim Workspace As New NotesUIWorkspace
  6270.      Dim ThisDoc As NotesUIDocument
  6271.      
  6272.      Set ThisDoc = Workspace.CurrentDocument
  6273.      sFieldName = "LayoutOSPlatform"
  6274.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6275.      
  6276. End Sub
  6277. '++LotusScript Development Environment:2:2:Exiting:1:12
  6278. Sub Exiting(Source As Field)
  6279.      Dim Workspace As New NotesUIWorkspace
  6280.      Dim ThisDoc As NotesUIDocument
  6281.      
  6282.      Set ThisDoc = Workspace.CurrentDocument
  6283.      
  6284.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6285.           Call ClearOutputFieldArea( ThisDoc )
  6286.      End If
  6287.      
  6288. End Sub
  6289. '++LotusScript Development Environment:2:5:(Options):0:66
  6290. '++LotusScript Development Environment:2:5:(Forward):0:1
  6291. Declare Sub Entering(Source As Field)
  6292. Declare Sub Exiting(Source As Field)
  6293. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6294. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6295. Private Sub BindEvents(Byval Objectname_ As String)
  6296.      Static Source As FIELD
  6297.      Set Source = Bind(Objectname_)
  6298.      On Event Entering From Source Call Entering
  6299.      On Event Exiting From Source Call Exiting
  6300. End Sub
  6301. '++LotusScript Development Environment:2:2:Entering:1:12
  6302. Sub Entering(Source As Field)
  6303.      Dim Workspace As New NotesUIWorkspace
  6304.      Dim ThisDoc As NotesUIDocument
  6305.      
  6306.      
  6307.      Set ThisDoc = Workspace.CurrentDocument
  6308.      sFieldName = "LayoutTolerance"
  6309.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6310.      
  6311. End Sub
  6312. '++LotusScript Development Environment:2:2:Exiting:1:12
  6313. Sub Exiting(Source As Field)
  6314.      Dim Workspace As New NotesUIWorkspace
  6315.      Dim ThisDoc As NotesUIDocument
  6316.      
  6317.      Set ThisDoc = Workspace.CurrentDocument
  6318.      
  6319.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6320.           Call ClearOutputFieldArea( ThisDoc )
  6321.      End If
  6322.      
  6323. End Sub
  6324. '++LotusScript Development Environment:2:5:(Options):0:66
  6325. '++LotusScript Development Environment:2:5:(Forward):0:1
  6326. Declare Sub Entering(Source As Field)
  6327. Declare Sub Exiting(Source As Field)
  6328. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6329. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6330. Private Sub BindEvents(Byval Objectname_ As String)
  6331.      Static Source As FIELD
  6332.      Set Source = Bind(Objectname_)
  6333.      On Event Entering From Source Call Entering
  6334.      On Event Exiting From Source Call Exiting
  6335. End Sub
  6336. '++LotusScript Development Environment:2:2:Entering:1:12
  6337. Sub Entering(Source As Field)
  6338.      Dim Workspace As New NotesUIWorkspace
  6339.      Dim ThisDoc As NotesUIDocument
  6340.      
  6341.      
  6342.      Set ThisDoc = Workspace.CurrentDocument
  6343.      sFieldName = "LayoutDiskConfiguration"
  6344.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6345.      
  6346. End Sub
  6347. '++LotusScript Development Environment:2:2:Exiting:1:12
  6348. Sub Exiting(Source As Field)
  6349.      Dim Workspace As New NotesUIWorkspace
  6350.      Dim ThisDoc As NotesUIDocument
  6351.      
  6352.      Set ThisDoc = Workspace.CurrentDocument
  6353.      
  6354.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6355.           Call ClearOutputFieldArea( ThisDoc )
  6356.      End If
  6357.      
  6358. End Sub
  6359. '++LotusScript Development Environment:2:5:(Options):0:66
  6360. '++LotusScript Development Environment:2:5:(Forward):0:1
  6361. Declare Sub Entering(Source As Field)
  6362. Declare Sub Exiting(Source As Field)
  6363. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6364. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6365. Private Sub BindEvents(Byval Objectname_ As String)
  6366.      Static Source As FIELD
  6367.      Set Source = Bind(Objectname_)
  6368.      On Event Entering From Source Call Entering
  6369.      On Event Exiting From Source Call Exiting
  6370. End Sub
  6371. '++LotusScript Development Environment:2:2:Entering:1:12
  6372. Sub Entering(Source As Field)
  6373.      Dim Workspace As New NotesUIWorkspace
  6374.      Dim ThisDoc As NotesUIDocument
  6375.      
  6376.      
  6377.      Set ThisDoc = Workspace.CurrentDocument
  6378.      sFieldName = "LayoutTolerance_Response"
  6379.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6380.      
  6381. End Sub
  6382. '++LotusScript Development Environment:2:2:Exiting:1:12
  6383. Sub Exiting(Source As Field)
  6384.      Dim Workspace As New NotesUIWorkspace
  6385.      Dim ThisDoc As NotesUIDocument
  6386.      
  6387.      Set ThisDoc = Workspace.CurrentDocument
  6388.      
  6389.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6390.           Call ClearOutputFieldArea( ThisDoc )
  6391.      End If
  6392.      
  6393. End Sub
  6394. '++LotusScript Development Environment:2:5:(Options):0:66
  6395. '++LotusScript Development Environment:2:5:(Forward):0:1
  6396. Declare Sub Entering(Source As Field)
  6397. Declare Sub Exiting(Source As Field)
  6398. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6399. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6400. Private Sub BindEvents(Byval Objectname_ As String)
  6401.      Static Source As FIELD
  6402.      Set Source = Bind(Objectname_)
  6403.      On Event Entering From Source Call Entering
  6404.      On Event Exiting From Source Call Exiting
  6405. End Sub
  6406. '++LotusScript Development Environment:2:2:Entering:1:12
  6407. Sub Entering(Source As Field)
  6408.      Dim Workspace As New NotesUIWorkspace
  6409.      Dim ThisDoc As NotesUIDocument
  6410.      
  6411.      
  6412.      Set ThisDoc = Workspace.CurrentDocument
  6413.      sFieldName = ThisDoc.CurrentField
  6414.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6415.      
  6416. End Sub
  6417. '++LotusScript Development Environment:2:2:Exiting:1:12
  6418. Sub Exiting(Source As Field)
  6419.      Dim Workspace As New NotesUIWorkspace
  6420.      Dim ThisDoc As NotesUIDocument
  6421.      
  6422.      
  6423.      Set ThisDoc = Workspace.CurrentDocument
  6424.      'sFieldName = ThisDoc.CurrentField
  6425.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6426.           Call ClearOutputFieldArea( ThisDoc )
  6427.      End If
  6428.      
  6429. End Sub
  6430. '++LotusScript Development Environment:2:5:(Options):0:66
  6431. '++LotusScript Development Environment:2:5:(Forward):0:1
  6432. Declare Sub Entering(Source As Field)
  6433. Declare Sub Exiting(Source As Field)
  6434. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6435. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6436. Private Sub BindEvents(Byval Objectname_ As String)
  6437.      Static Source As FIELD
  6438.      Set Source = Bind(Objectname_)
  6439.      On Event Entering From Source Call Entering
  6440.      On Event Exiting From Source Call Exiting
  6441. End Sub
  6442. '++LotusScript Development Environment:2:2:Entering:1:12
  6443. Sub Entering(Source As Field)
  6444.      Dim Workspace As New NotesUIWorkspace
  6445.      Dim ThisDoc As NotesUIDocument
  6446.      
  6447.      
  6448.      Set ThisDoc = Workspace.CurrentDocument
  6449.      sFieldName = ThisDoc.CurrentField
  6450.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6451.      
  6452. End Sub
  6453. '++LotusScript Development Environment:2:2:Exiting:1:12
  6454. Sub Exiting(Source As Field)
  6455.      Dim Workspace As New NotesUIWorkspace
  6456.      Dim ThisDoc As NotesUIDocument
  6457.      
  6458.      
  6459.      Set ThisDoc = Workspace.CurrentDocument
  6460.      'sFieldName = ThisDoc.CurrentField
  6461.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6462.           Call ClearOutputFieldArea( ThisDoc )
  6463.      End If
  6464.      
  6465. End Sub
  6466. '++LotusScript Development Environment:2:5:(Options):0:66
  6467. '++LotusScript Development Environment:2:5:(Forward):0:1
  6468. Declare Sub Exiting(Source As Field)
  6469. Declare Sub Entering(Source As Field)
  6470. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6471. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6472. Private Sub BindEvents(Byval Objectname_ As String)
  6473.      Static Source As FIELD
  6474.      Set Source = Bind(Objectname_)
  6475.      On Event Exiting From Source Call Exiting
  6476.      On Event Entering From Source Call Entering
  6477. End Sub
  6478. '++LotusScript Development Environment:2:2:Exiting:1:12
  6479. Sub Exiting(Source As Field)
  6480.      Dim Workspace As New NotesUIWorkspace
  6481.      Dim ThisDoc As NotesUIDocument
  6482.      
  6483.      Set ThisDoc = Workspace.CurrentDocument
  6484.      
  6485.      If ( Isnumeric(ThisDoc.Document.LayoutMailHub) = True ) Then
  6486.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  6487.           ThisDoc.GoToField( "LayoutMailHub" )
  6488.           Exit Sub
  6489.      End If
  6490.      
  6491.      If Len( ThisDoc.FieldGetText( "LayoutMailHub" ) ) = 0 Then
  6492.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  6493.           ThisDoc.GoToField( "LayoutMailHub" )
  6494.           Exit Sub
  6495.      End If
  6496.      
  6497.      If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  6498.           Call ClearOutputFieldArea( ThisDoc )
  6499.      End If
  6500.      
  6501. End Sub
  6502. '++LotusScript Development Environment:2:2:Entering:1:12
  6503. Sub Entering(Source As Field)
  6504.      Dim Workspace As New NotesUIWorkspace
  6505.      Dim ThisDoc As NotesUIDocument
  6506.      
  6507.      
  6508.      Set ThisDoc = Workspace.CurrentDocument
  6509.      sFieldName = "LayoutMailHub"
  6510.      If ThisDoc.FieldGetText( sFieldName ) <> "" Then
  6511.           vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6512.      End If
  6513.      
  6514. End Sub
  6515. '++LotusScript Development Environment:2:5:(Options):0:66
  6516. '++LotusScript Development Environment:2:5:(Forward):0:1
  6517. Declare Sub Entering(Source As Field)
  6518. Declare Sub Exiting(Source As Field)
  6519. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6520. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6521. Private Sub BindEvents(Byval Objectname_ As String)
  6522.      Static Source As FIELD
  6523.      Set Source = Bind(Objectname_)
  6524.      On Event Entering From Source Call Entering
  6525.      On Event Exiting From Source Call Exiting
  6526. End Sub
  6527. '++LotusScript Development Environment:2:2:Entering:1:12
  6528. Sub Entering(Source As Field)
  6529.      Dim Workspace As New NotesUIWorkspace
  6530.      Dim ThisDoc As NotesUIDocument
  6531.      
  6532.      
  6533.      Set ThisDoc = Workspace.CurrentDocument
  6534.      sFieldName = ThisDoc.CurrentField
  6535.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6536.      
  6537. End Sub
  6538. '++LotusScript Development Environment:2:2:Exiting:1:12
  6539. Sub Exiting(Source As Field)
  6540.      Dim Workspace As New NotesUIWorkspace
  6541.      Dim ThisDoc As NotesUIDocument
  6542.      
  6543.      
  6544.      Set ThisDoc = Workspace.CurrentDocument
  6545.      'sFieldName = ThisDoc.CurrentField
  6546.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6547.           Call ClearOutputFieldArea( ThisDoc )
  6548.      End If
  6549.      
  6550. End Sub
  6551. '++LotusScript Development Environment:2:5:(Options):0:66
  6552. '++LotusScript Development Environment:2:5:(Forward):0:1
  6553. Declare Sub Entering(Source As Field)
  6554. Declare Sub Exiting(Source As Field)
  6555. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6556. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6557. Private Sub BindEvents(Byval Objectname_ As String)
  6558.      Static Source As FIELD
  6559.      Set Source = Bind(Objectname_)
  6560.      On Event Entering From Source Call Entering
  6561.      On Event Exiting From Source Call Exiting
  6562. End Sub
  6563. '++LotusScript Development Environment:2:2:Entering:1:12
  6564. Sub Entering(Source As Field)
  6565.      Dim Workspace As New NotesUIWorkspace
  6566.      Dim ThisDoc As NotesUIDocument
  6567.      
  6568.      
  6569.      Set ThisDoc = Workspace.CurrentDocument
  6570.      sFieldName = ThisDoc.CurrentField
  6571.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6572.      
  6573. End Sub
  6574. '++LotusScript Development Environment:2:2:Exiting:1:12
  6575. Sub Exiting(Source As Field)
  6576.      Dim Workspace As New NotesUIWorkspace
  6577.      Dim ThisDoc As NotesUIDocument
  6578.      
  6579.      
  6580.      Set ThisDoc = Workspace.CurrentDocument
  6581.      'sFieldName = ThisDoc.CurrentField
  6582.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6583.           Call ClearOutputFieldArea( ThisDoc )
  6584.      End If
  6585.      
  6586. End Sub
  6587. '++LotusScript Development Environment:2:5:(Options):0:66
  6588. '++LotusScript Development Environment:2:5:(Forward):0:1
  6589. Declare Sub Exiting(Source As Field)
  6590. Declare Sub Entering(Source As Field)
  6591. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6592. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6593. Private Sub BindEvents(Byval Objectname_ As String)
  6594.      Static Source As FIELD
  6595.      Set Source = Bind(Objectname_)
  6596.      On Event Exiting From Source Call Exiting
  6597.      On Event Entering From Source Call Entering
  6598. End Sub
  6599. '++LotusScript Development Environment:2:2:Exiting:1:12
  6600. Sub Exiting(Source As Field)
  6601.      Dim Workspace As New NotesUIWorkspace
  6602.      Dim ThisDoc As NotesUIDocument
  6603.      
  6604.      Set ThisDoc = Workspace.CurrentDocument
  6605.      
  6606.      If ( Isnumeric(ThisDoc.Document.LayoutReplHub) = True ) Then
  6607.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  6608.           ThisDoc.GoToField( "LayoutReplHub" )
  6609.           Exit Sub
  6610.      End If
  6611.      
  6612.      If Len( ThisDoc.FieldGetText( "LayoutReplHub") ) = 0 Then
  6613.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  6614.           ThisDoc.GoToField( "LayoutReplHub" )
  6615.           Exit Sub
  6616.      End If
  6617.      
  6618.      If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  6619.           Call ClearOutputFieldArea( ThisDoc )
  6620.      End If
  6621.      
  6622. End Sub
  6623. '++LotusScript Development Environment:2:2:Entering:1:12
  6624. Sub Entering(Source As Field)
  6625.      Dim Workspace As New NotesUIWorkspace
  6626.      Dim ThisDoc As NotesUIDocument
  6627.      
  6628.      
  6629.      Set ThisDoc = Workspace.CurrentDocument
  6630.      sFieldName = "LayoutReplHub"
  6631.      If ThisDoc.FieldGetText( sFieldName )  <> "" Then
  6632.           vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6633.      End If
  6634.      
  6635. End Sub
  6636. '++LotusScript Development Environment:2:5:(Options):0:66
  6637. '++LotusScript Development Environment:2:5:(Forward):0:1
  6638. Declare Sub Entering(Source As Field)
  6639. Declare Sub Exiting(Source As Field)
  6640. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6641. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6642. Private Sub BindEvents(Byval Objectname_ As String)
  6643.      Static Source As FIELD
  6644.      Set Source = Bind(Objectname_)
  6645.      On Event Entering From Source Call Entering
  6646.      On Event Exiting From Source Call Exiting
  6647. End Sub
  6648. '++LotusScript Development Environment:2:2:Entering:1:12
  6649. Sub Entering(Source As Field)
  6650.      Dim Workspace As New NotesUIWorkspace
  6651.      Dim ThisDoc As NotesUIDocument
  6652.      
  6653.      
  6654.      Set ThisDoc = Workspace.CurrentDocument
  6655.      sFieldName = "LayoutMail"
  6656.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6657.      
  6658. End Sub
  6659. '++LotusScript Development Environment:2:2:Exiting:1:12
  6660. Sub Exiting(Source As Field)
  6661.      Dim Workspace As New NotesUIWorkspace
  6662.      Dim ThisDoc As NotesUIDocument
  6663.      
  6664.      
  6665.      Set ThisDoc = Workspace.CurrentDocument
  6666.      'sFieldName = ThisDoc.CurrentField
  6667.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6668.           Call ClearOutputFieldArea( ThisDoc )
  6669.      End If
  6670.      
  6671. End Sub
  6672. '++LotusScript Development Environment:2:5:(Options):0:66
  6673. '++LotusScript Development Environment:2:5:(Forward):0:1
  6674. Declare Sub Entering(Source As Field)
  6675. Declare Sub Exiting(Source As Field)
  6676. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6677. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6678. Private Sub BindEvents(Byval Objectname_ As String)
  6679.      Static Source As FIELD
  6680.      Set Source = Bind(Objectname_)
  6681.      On Event Entering From Source Call Entering
  6682.      On Event Exiting From Source Call Exiting
  6683. End Sub
  6684. '++LotusScript Development Environment:2:2:Entering:1:12
  6685. Sub Entering(Source As Field)
  6686.      Dim Workspace As New NotesUIWorkspace
  6687.      Dim ThisDoc As NotesUIDocument
  6688.      
  6689.      
  6690.      Set ThisDoc = Workspace.CurrentDocument
  6691.      sFieldName = ThisDoc.CurrentField
  6692.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6693.      
  6694. End Sub
  6695. '++LotusScript Development Environment:2:2:Exiting:1:12
  6696. Sub Exiting(Source As Field)
  6697.      Dim Workspace As New NotesUIWorkspace
  6698.      Dim ThisDoc As NotesUIDocument
  6699.      
  6700.      
  6701.      Set ThisDoc = Workspace.CurrentDocument
  6702.      'sFieldName = ThisDoc.CurrentField
  6703.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6704.           Call ClearOutputFieldArea( ThisDoc )
  6705.      End If
  6706.      
  6707. End Sub
  6708. '++LotusScript Development Environment:2:5:(Options):0:66
  6709. '++LotusScript Development Environment:2:5:(Forward):0:1
  6710. Declare Sub Entering(Source As Field)
  6711. Declare Sub Exiting(Source As Field)
  6712. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6713. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6714. Private Sub BindEvents(Byval Objectname_ As String)
  6715.      Static Source As FIELD
  6716.      Set Source = Bind(Objectname_)
  6717.      On Event Entering From Source Call Entering
  6718.      On Event Exiting From Source Call Exiting
  6719. End Sub
  6720. '++LotusScript Development Environment:2:2:Entering:1:12
  6721. Sub Entering(Source As Field)
  6722.      Dim Workspace As New NotesUIWorkspace
  6723.      Dim ThisDoc As NotesUIDocument
  6724.      
  6725.      
  6726.      Set ThisDoc = Workspace.CurrentDocument
  6727.      sFieldName = ThisDoc.CurrentField
  6728.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6729.      
  6730. End Sub
  6731. '++LotusScript Development Environment:2:2:Exiting:1:12
  6732. Sub Exiting(Source As Field)
  6733.      Dim Workspace As New NotesUIWorkspace
  6734.      Dim ThisDoc As NotesUIDocument
  6735.      
  6736.      
  6737.      Set ThisDoc = Workspace.CurrentDocument
  6738.      'sFieldName = ThisDoc.CurrentField
  6739.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6740.           Call ClearOutputFieldArea( ThisDoc )
  6741.      End If
  6742.      
  6743. End Sub
  6744. '++LotusScript Development Environment:2:5:(Options):0:66
  6745. '++LotusScript Development Environment:2:5:(Forward):0:1
  6746. Declare Sub Entering(Source As Field)
  6747. Declare Sub Exiting(Source As Field)
  6748. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6749. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6750. Private Sub BindEvents(Byval Objectname_ As String)
  6751.      Static Source As FIELD
  6752.      Set Source = Bind(Objectname_)
  6753.      On Event Entering From Source Call Entering
  6754.      On Event Exiting From Source Call Exiting
  6755. End Sub
  6756. '++LotusScript Development Environment:2:2:Entering:1:12
  6757. Sub Entering(Source As Field)
  6758.      Dim Workspace As New NotesUIWorkspace
  6759.      Dim ThisDoc As NotesUIDocument
  6760.      
  6761.      
  6762.      Set ThisDoc = Workspace.CurrentDocument
  6763.      sFieldName = ThisDoc.CurrentField
  6764.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6765.      
  6766. End Sub
  6767. '++LotusScript Development Environment:2:2:Exiting:1:12
  6768. Sub Exiting(Source As Field)
  6769.      Dim Workspace As New NotesUIWorkspace
  6770.      Dim ThisDoc As NotesUIDocument
  6771.      
  6772.      
  6773.      Set ThisDoc = Workspace.CurrentDocument
  6774.     'sFieldName = ThisDoc.CurrentField
  6775.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6776.           Call ClearOutputFieldArea( ThisDoc )
  6777.      End If
  6778.      
  6779. End Sub
  6780. '++LotusScript Development Environment:2:5:(Options):0:66
  6781. '++LotusScript Development Environment:2:5:(Forward):0:1
  6782. Declare Sub Entering(Source As Field)
  6783. Declare Sub Exiting(Source As Field)
  6784. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6785. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6786. Private Sub BindEvents(Byval Objectname_ As String)
  6787.      Static Source As FIELD
  6788.      Set Source = Bind(Objectname_)
  6789.      On Event Entering From Source Call Entering
  6790.      On Event Exiting From Source Call Exiting
  6791. End Sub
  6792. '++LotusScript Development Environment:2:2:Entering:1:12
  6793. Sub Entering(Source As Field)
  6794.      Dim Workspace As New NotesUIWorkspace
  6795.      Dim ThisDoc As NotesUIDocument
  6796.      
  6797.      
  6798.      Set ThisDoc = Workspace.CurrentDocument
  6799.      sFieldName = ThisDoc.CurrentField
  6800.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6801.      
  6802. End Sub
  6803. '++LotusScript Development Environment:2:2:Exiting:1:12
  6804. Sub Exiting(Source As Field)
  6805.      Dim Workspace As New NotesUIWorkspace
  6806.      Dim ThisDoc As NotesUIDocument
  6807.      
  6808.      
  6809.      Set ThisDoc = Workspace.CurrentDocument
  6810.      'sFieldName = ThisDoc.CurrentField
  6811.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6812.           Call ClearOutputFieldArea( ThisDoc )
  6813.      End If
  6814.      
  6815. End Sub
  6816. '++LotusScript Development Environment:2:5:(Options):0:66
  6817. '++LotusScript Development Environment:2:5:(Forward):0:1
  6818. Declare Sub Entering(Source As Field)
  6819. Declare Sub Exiting(Source As Field)
  6820. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6821. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6822. Private Sub BindEvents(Byval Objectname_ As String)
  6823.      Static Source As FIELD
  6824.      Set Source = Bind(Objectname_)
  6825.      On Event Entering From Source Call Entering
  6826.      On Event Exiting From Source Call Exiting
  6827. End Sub
  6828. '++LotusScript Development Environment:2:2:Entering:1:12
  6829. Sub Entering(Source As Field)
  6830.      Dim Workspace As New NotesUIWorkspace
  6831.      Dim ThisDoc As NotesUIDocument
  6832.      
  6833.      
  6834.      Set ThisDoc = Workspace.CurrentDocument
  6835.      sFieldName = ThisDoc.CurrentField
  6836.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6837.      
  6838. End Sub
  6839. '++LotusScript Development Environment:2:2:Exiting:1:12
  6840. Sub Exiting(Source As Field)
  6841.      Dim Workspace As New NotesUIWorkspace
  6842.      Dim ThisDoc As NotesUIDocument
  6843.      
  6844.      
  6845.      Set ThisDoc = Workspace.CurrentDocument
  6846.      'sFieldName = ThisDoc.CurrentField
  6847.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6848.           Call ClearOutputFieldArea( ThisDoc )
  6849.      End If
  6850.      
  6851. End Sub
  6852. '++LotusScript Development Environment:2:5:(Options):0:66
  6853. '++LotusScript Development Environment:2:5:(Forward):0:1
  6854. Declare Sub Entering(Source As Field)
  6855. Declare Sub Exiting(Source As Field)
  6856. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6857. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6858. Private Sub BindEvents(Byval Objectname_ As String)
  6859.      Static Source As FIELD
  6860.      Set Source = Bind(Objectname_)
  6861.      On Event Entering From Source Call Entering
  6862.      On Event Exiting From Source Call Exiting
  6863. End Sub
  6864. '++LotusScript Development Environment:2:2:Entering:1:12
  6865. Sub Entering(Source As Field)
  6866.      Dim Workspace As New NotesUIWorkspace
  6867.      Dim ThisDoc As NotesUIDocument
  6868.      
  6869.      
  6870.      Set ThisDoc = Workspace.CurrentDocument
  6871.      sFieldName = ThisDoc.CurrentField
  6872.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6873.      
  6874. End Sub
  6875. '++LotusScript Development Environment:2:2:Exiting:1:12
  6876. Sub Exiting(Source As Field)
  6877.      Dim Workspace As New NotesUIWorkspace
  6878.      Dim ThisDoc As NotesUIDocument
  6879.      
  6880.      
  6881.      Set ThisDoc = Workspace.CurrentDocument
  6882.      'sFieldName = ThisDoc.CurrentField
  6883.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6884.           Call ClearOutputFieldArea( ThisDoc )
  6885.      End If
  6886.      
  6887. End Sub
  6888. '++LotusScript Development Environment:2:5:(Options):0:66
  6889. '++LotusScript Development Environment:2:5:(Forward):0:1
  6890. Declare Sub Entering(Source As Field)
  6891. Declare Sub Exiting(Source As Field)
  6892. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6893. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6894. Private Sub BindEvents(Byval Objectname_ As String)
  6895.      Static Source As FIELD
  6896.      Set Source = Bind(Objectname_)
  6897.      On Event Entering From Source Call Entering
  6898.      On Event Exiting From Source Call Exiting
  6899. End Sub
  6900. '++LotusScript Development Environment:2:2:Entering:1:12
  6901. Sub Entering(Source As Field)
  6902.      Dim Workspace As New NotesUIWorkspace
  6903.      Dim ThisDoc As NotesUIDocument
  6904.      
  6905.      
  6906.      Set ThisDoc = Workspace.CurrentDocument
  6907.      sFieldName = ThisDoc.CurrentField
  6908.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6909.      
  6910. End Sub
  6911. '++LotusScript Development Environment:2:2:Exiting:1:12
  6912. Sub Exiting(Source As Field)
  6913.      Dim Workspace As New NotesUIWorkspace
  6914.      Dim ThisDoc As NotesUIDocument
  6915.      
  6916.      
  6917.      Set ThisDoc = Workspace.CurrentDocument
  6918.      'sFieldName = ThisDoc.CurrentField
  6919.      If ( vFieldEntryValue <> ThisDoc.FieldGetText( sFieldName ) And vFieldEntryValue <> "" ) Then
  6920.           Call ClearOutputFieldArea( ThisDoc )
  6921.      End If
  6922.      
  6923. End Sub
  6924. '++LotusScript Development Environment:2:5:(Options):0:66
  6925. '++LotusScript Development Environment:2:5:(Forward):0:1
  6926. Declare Sub Exiting(Source As Field)
  6927. Declare Sub Entering(Source As Field)
  6928. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6929. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6930. Private Sub BindEvents(Byval Objectname_ As String)
  6931.      Static Source As FIELD
  6932.      Set Source = Bind(Objectname_)
  6933.      On Event Exiting From Source Call Exiting
  6934.      On Event Entering From Source Call Entering
  6935. End Sub
  6936. '++LotusScript Development Environment:2:2:Exiting:1:12
  6937. Sub Exiting(Source As Field)
  6938.      Dim Workspace As New NotesUIWorkspace
  6939.      Dim ThisDoc As NotesUIDocument
  6940.      
  6941.      Set ThisDoc = Workspace.CurrentDocument
  6942.      
  6943.      If ( Isnumeric(ThisDoc.Document.LayoutMail_1) = True ) Then
  6944.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  6945.           ThisDoc.GoToField( "LayoutMail_1" )
  6946.           Exit Sub
  6947.      End If
  6948.      Dim vFieldExitValue As Variant
  6949.      vFieldExitValue = ThisDoc.Document.LayoutMail_1
  6950.      If vFieldExitValue( 0 )  = "" Then
  6951.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  6952.      Else
  6953.      'sFieldName = ThisDoc.CurrentField
  6954.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  6955.                Call ClearOutputFieldArea( ThisDoc )
  6956.           End If
  6957.      End If
  6958.      
  6959. End Sub
  6960. '++LotusScript Development Environment:2:2:Entering:1:12
  6961. Sub Entering(Source As Field)
  6962.      Dim Workspace As New NotesUIWorkspace
  6963.      Dim ThisDoc As NotesUIDocument
  6964.      
  6965.      
  6966.      Set ThisDoc = Workspace.CurrentDocument
  6967.      sFieldName = "LayoutMail_1"
  6968.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  6969.      
  6970. End Sub
  6971. '++LotusScript Development Environment:2:5:(Options):0:66
  6972. '++LotusScript Development Environment:2:5:(Forward):0:1
  6973. Declare Sub Exiting(Source As Field)
  6974. Declare Sub Entering(Source As Field)
  6975. '++LotusScript Development Environment:2:5:(Declarations):0:2
  6976. '++LotusScript Development Environment:2:2:BindEvents:1:129
  6977. Private Sub BindEvents(Byval Objectname_ As String)
  6978.      Static Source As FIELD
  6979.      Set Source = Bind(Objectname_)
  6980.      On Event Exiting From Source Call Exiting
  6981.      On Event Entering From Source Call Entering
  6982. End Sub
  6983. '++LotusScript Development Environment:2:2:Exiting:1:12
  6984. Sub Exiting(Source As Field)
  6985.      Dim Workspace As New NotesUIWorkspace
  6986.      Dim ThisDoc As NotesUIDocument
  6987.      
  6988.      
  6989.      Set ThisDoc = Workspace.CurrentDocument
  6990.      
  6991.      If ( Isnumeric(ThisDoc.Document.LayoutMailDB_1) = True ) Then
  6992.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  6993.           ThisDoc.GoToField( "LayoutMailDB_1" )
  6994.           Exit Sub
  6995.      End If
  6996.      
  6997.      Dim vFieldExitValue As Variant
  6998.      vFieldExitValue = ThisDoc.Document.LayoutMailDB_1
  6999.      If vFieldExitValue( 0 )  = "" Then
  7000.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7001.      Else
  7002.           
  7003.                'sFieldName = ThisDoc.CurrentField
  7004.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7005.                Call ClearOutputFieldArea( ThisDoc )
  7006.           End If
  7007.      End If
  7008.      
  7009. End Sub
  7010. '++LotusScript Development Environment:2:2:Entering:1:12
  7011. Sub Entering(Source As Field)
  7012.      Dim Workspace As New NotesUIWorkspace
  7013.      Dim ThisDoc As NotesUIDocument
  7014.      
  7015.      
  7016.      Set ThisDoc = Workspace.CurrentDocument
  7017.      sFieldName = "LayoutMailDB_1"
  7018.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7019.      
  7020. End Sub
  7021. '++LotusScript Development Environment:2:5:(Options):0:66
  7022. '++LotusScript Development Environment:2:5:(Forward):0:1
  7023. Declare Sub Exiting(Source As Field)
  7024. Declare Sub Entering(Source As Field)
  7025. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7026. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7027. Private Sub BindEvents(Byval Objectname_ As String)
  7028.      Static Source As FIELD
  7029.      Set Source = Bind(Objectname_)
  7030.      On Event Exiting From Source Call Exiting
  7031.      On Event Entering From Source Call Entering
  7032. End Sub
  7033. '++LotusScript Development Environment:2:2:Exiting:1:12
  7034. Sub Exiting(Source As Field)
  7035.      Dim Workspace As New NotesUIWorkspace
  7036.      Dim ThisDoc As NotesUIDocument
  7037.      
  7038.      Set ThisDoc = Workspace.CurrentDocument
  7039.      
  7040.      If ( Isnumeric(ThisDoc.Document.LayoutGroupware_1) = True ) Then
  7041.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7042.           ThisDoc.GoToField( "LayoutGroupware_1" )
  7043.           Exit Sub
  7044.      End If
  7045.      
  7046.      Dim vFieldExitValue As Variant
  7047.      vFieldExitValue = ThisDoc.Document.LayoutGroupware_1
  7048.      If vFieldExitValue( 0 )  = "" Then
  7049.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7050.      Else
  7051.      'sFieldName = ThisDoc.CurrentField
  7052.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7053.                Call ClearOutputFieldArea( ThisDoc )
  7054.           End If
  7055.      End If
  7056.      
  7057. End Sub
  7058. '++LotusScript Development Environment:2:2:Entering:1:12
  7059. Sub Entering(Source As Field)
  7060.      Dim Workspace As New NotesUIWorkspace
  7061.      Dim ThisDoc As NotesUIDocument
  7062.      
  7063.      
  7064.      Set ThisDoc = Workspace.CurrentDocument
  7065.      sFieldName = "LayoutGroupware_1"
  7066.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7067.      
  7068. End Sub
  7069. '++LotusScript Development Environment:2:5:(Options):0:66
  7070. '++LotusScript Development Environment:2:5:(Forward):0:1
  7071. Declare Sub Exiting(Source As Field)
  7072. Declare Sub Entering(Source As Field)
  7073. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7074. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7075. Private Sub BindEvents(Byval Objectname_ As String)
  7076.      Static Source As FIELD
  7077.      Set Source = Bind(Objectname_)
  7078.      On Event Exiting From Source Call Exiting
  7079.      On Event Entering From Source Call Entering
  7080. End Sub
  7081. '++LotusScript Development Environment:2:2:Exiting:1:12
  7082. Sub Exiting(Source As Field)
  7083.      Dim Workspace As New NotesUIWorkspace
  7084.      Dim ThisDoc As NotesUIDocument
  7085.      
  7086.      Set ThisDoc = Workspace.CurrentDocument
  7087.      
  7088.      If ( Isnumeric(ThisDoc.Document.LayoutNumActiveUsers) = True ) Then
  7089.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7090.           ThisDoc.GoToField( "LayoutNumActiveUsers" )
  7091.           Exit Sub
  7092.      End If
  7093.      
  7094.      
  7095.      If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7096.           Call ClearOutputFieldArea( ThisDoc )
  7097.      End If
  7098.      
  7099. End Sub
  7100. '++LotusScript Development Environment:2:2:Entering:1:12
  7101. Sub Entering(Source As Field)
  7102.      Dim Workspace As New NotesUIWorkspace
  7103.      Dim ThisDoc As NotesUIDocument
  7104.      
  7105.      
  7106.      Set ThisDoc = Workspace.CurrentDocument
  7107.      sFieldName = "LayoutNumActiveUsers"
  7108.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7109.      
  7110. End Sub
  7111. '++LotusScript Development Environment:2:5:(Options):0:66
  7112. '++LotusScript Development Environment:2:5:(Forward):0:1
  7113. Declare Sub Exiting(Source As Field)
  7114. Declare Sub Entering(Source As Field)
  7115. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7116. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7117. Private Sub BindEvents(Byval Objectname_ As String)
  7118.      Static Source As FIELD
  7119.      Set Source = Bind(Objectname_)
  7120.      On Event Exiting From Source Call Exiting
  7121.      On Event Entering From Source Call Entering
  7122. End Sub
  7123. '++LotusScript Development Environment:2:2:Exiting:1:12
  7124. Sub Exiting(Source As Field)
  7125.      Dim Workspace As New NotesUIWorkspace
  7126.      Dim ThisDoc As NotesUIDocument
  7127.      
  7128.      Set ThisDoc = Workspace.CurrentDocument
  7129.      
  7130.      If ( Isnumeric(ThisDoc.Document.LayoutMail_2) = True ) Then
  7131.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7132.           ThisDoc.GoToField( "LayoutMail_2" )
  7133.           Exit Sub
  7134.      End If
  7135.      
  7136.      Dim vFieldExitValue As Variant
  7137.      vFieldExitValue = ThisDoc.Document.LayoutMail_2
  7138.      If vFieldExitValue( 0 )  = "" Then
  7139.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7140.      Else
  7141.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName )  ) And vFieldEntryValue <> "" ) Then
  7142.                Call ClearOutputFieldArea( ThisDoc )
  7143.           End If
  7144.      End If
  7145. End Sub
  7146. '++LotusScript Development Environment:2:2:Entering:1:12
  7147. Sub Entering(Source As Field)
  7148.      Dim Workspace As New NotesUIWorkspace
  7149.      Dim ThisDoc As NotesUIDocument
  7150.      
  7151.      
  7152.      Set ThisDoc = Workspace.CurrentDocument
  7153.      sFieldName = "LayoutMail_2"
  7154.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7155. End Sub
  7156. '++LotusScript Development Environment:2:5:(Options):0:66
  7157. '++LotusScript Development Environment:2:5:(Forward):0:1
  7158. Declare Sub Exiting(Source As Field)
  7159. Declare Sub Entering(Source As Field)
  7160. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7161. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7162. Private Sub BindEvents(Byval Objectname_ As String)
  7163.      Static Source As FIELD
  7164.      Set Source = Bind(Objectname_)
  7165.      On Event Exiting From Source Call Exiting
  7166.      On Event Entering From Source Call Entering
  7167. End Sub
  7168. '++LotusScript Development Environment:2:2:Exiting:1:12
  7169. Sub Exiting(Source As Field)
  7170.      Dim Workspace As New NotesUIWorkspace
  7171.      Dim ThisDoc As NotesUIDocument
  7172.      
  7173.      Set ThisDoc = Workspace.CurrentDocument
  7174.      
  7175.      If ( Isnumeric(ThisDoc.Document.LayoutMail_3) = True ) Then
  7176.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7177.           ThisDoc.GoToField( "LayoutMail_3" )
  7178.           Exit Sub
  7179.      End If
  7180.      
  7181.      Dim vFieldExitValue As Variant
  7182.      vFieldExitValue = ThisDoc.Document.LayoutMail_3
  7183.      If vFieldExitValue( 0 )  = "" Then
  7184.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7185.      Else
  7186.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7187.                Call ClearOutputFieldArea( ThisDoc )
  7188.           End If
  7189.      End If
  7190.      
  7191. End Sub
  7192. '++LotusScript Development Environment:2:2:Entering:1:12
  7193. Sub Entering(Source As Field)
  7194.      Dim Workspace As New NotesUIWorkspace
  7195.      Dim ThisDoc As NotesUIDocument
  7196.      
  7197.      
  7198.      Set ThisDoc = Workspace.CurrentDocument
  7199.      sFieldName = "LayoutMail_3"
  7200.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7201.      
  7202. End Sub
  7203. '++LotusScript Development Environment:2:5:(Options):0:66
  7204. '++LotusScript Development Environment:2:5:(Forward):0:1
  7205. Declare Sub Exiting(Source As Field)
  7206. Declare Sub Entering(Source As Field)
  7207. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7208. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7209. Private Sub BindEvents(Byval Objectname_ As String)
  7210.      Static Source As FIELD
  7211.      Set Source = Bind(Objectname_)
  7212.      On Event Exiting From Source Call Exiting
  7213.      On Event Entering From Source Call Entering
  7214. End Sub
  7215. '++LotusScript Development Environment:2:2:Exiting:1:12
  7216. Sub Exiting(Source As Field)
  7217.      Dim Workspace As New NotesUIWorkspace
  7218.      Dim ThisDoc As NotesUIDocument
  7219.      
  7220.      Set ThisDoc = Workspace.CurrentDocument
  7221.      
  7222.      If ( Isnumeric(ThisDoc.Document.LayoutMailDB_2) = True ) Then
  7223.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7224.           ThisDoc.GoToField( "LayoutMailDB_2" )
  7225.           Exit Sub
  7226.      End If
  7227.      
  7228.      Dim vFieldExitValue As Variant
  7229.      vFieldExitValue = ThisDoc.Document.LayoutMailDB_2
  7230.      If vFieldExitValue( 0 )  = "" Then
  7231.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7232.      Else
  7233.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7234.                Call ClearOutputFieldArea( ThisDoc )
  7235.           End If
  7236.      End If
  7237.      
  7238. End Sub
  7239. '++LotusScript Development Environment:2:2:Entering:1:12
  7240. Sub Entering(Source As Field)
  7241.      Dim Workspace As New NotesUIWorkspace
  7242.      Dim ThisDoc As NotesUIDocument
  7243.      
  7244.      
  7245.      Set ThisDoc = Workspace.CurrentDocument
  7246.      sFieldName = "LayoutMailDB_2"
  7247.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7248.      
  7249. End Sub
  7250. '++LotusScript Development Environment:2:5:(Options):0:66
  7251. '++LotusScript Development Environment:2:5:(Forward):0:1
  7252. Declare Sub Exiting(Source As Field)
  7253. Declare Sub Entering(Source As Field)
  7254. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7255. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7256. Private Sub BindEvents(Byval Objectname_ As String)
  7257.      Static Source As FIELD
  7258.      Set Source = Bind(Objectname_)
  7259.      On Event Exiting From Source Call Exiting
  7260.      On Event Entering From Source Call Entering
  7261. End Sub
  7262. '++LotusScript Development Environment:2:2:Exiting:1:12
  7263. Sub Exiting(Source As Field)
  7264.      Dim Workspace As New NotesUIWorkspace
  7265.      Dim ThisDoc As NotesUIDocument
  7266.      
  7267.      Set ThisDoc = Workspace.CurrentDocument
  7268.      
  7269.      If ( Isnumeric(ThisDoc.Document.LayoutMailDB_3) = True ) Then
  7270.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7271.           ThisDoc.GoToField( "LayoutMailDB_3" )
  7272.           Exit Sub
  7273.      End If
  7274.      
  7275.      Dim vFieldExitValue As Variant
  7276.      vFieldExitValue = ThisDoc.Document.LayoutMailDB_3
  7277.      If vFieldExitValue( 0 )  = "" Then
  7278.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7279.      Else
  7280.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7281.                Call ClearOutputFieldArea( ThisDoc )
  7282.           End If
  7283.      End If
  7284.      
  7285. End Sub
  7286. '++LotusScript Development Environment:2:2:Entering:1:12
  7287. Sub Entering(Source As Field)
  7288.      Dim Workspace As New NotesUIWorkspace
  7289.      Dim ThisDoc As NotesUIDocument
  7290.      
  7291.      
  7292.      Set ThisDoc = Workspace.CurrentDocument
  7293.      sFieldName = "LayoutMailDB_3"
  7294.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7295.      
  7296. End Sub
  7297. '++LotusScript Development Environment:2:5:(Options):0:66
  7298. '++LotusScript Development Environment:2:5:(Forward):0:1
  7299. Declare Sub Exiting(Source As Field)
  7300. Declare Sub Entering(Source As Field)
  7301. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7302. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7303. Private Sub BindEvents(Byval Objectname_ As String)
  7304.      Static Source As FIELD
  7305.      Set Source = Bind(Objectname_)
  7306.      On Event Exiting From Source Call Exiting
  7307.      On Event Entering From Source Call Entering
  7308. End Sub
  7309. '++LotusScript Development Environment:2:2:Exiting:1:12
  7310. Sub Exiting(Source As Field)
  7311.      Dim Workspace As New NotesUIWorkspace
  7312.      Dim ThisDoc As NotesUIDocument
  7313.      
  7314.      Set ThisDoc = Workspace.CurrentDocument
  7315.      
  7316.      If ( Isnumeric(ThisDoc.Document.LayoutGroupware_2) = True ) Then
  7317.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7318.           ThisDoc.GoToField( "LayoutGroupware_2" )
  7319.           Exit Sub
  7320.      End If
  7321.      
  7322.      
  7323.      Dim vFieldExitValue As Variant
  7324.      vFieldExitValue = ThisDoc.Document.LayoutGroupware_2
  7325.      If vFieldExitValue( 0 )  = "" Then
  7326.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7327.      Else
  7328.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7329.                Call ClearOutputFieldArea( ThisDoc )
  7330.           End If
  7331.      End If
  7332.      
  7333. End Sub
  7334. '++LotusScript Development Environment:2:2:Entering:1:12
  7335. Sub Entering(Source As Field)
  7336.      Dim Workspace As New NotesUIWorkspace
  7337.      Dim ThisDoc As NotesUIDocument
  7338.      
  7339.      
  7340.      Set ThisDoc = Workspace.CurrentDocument
  7341.      sFieldName = "LayoutGroupware_2"
  7342.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7343.      
  7344. End Sub
  7345. '++LotusScript Development Environment:2:5:(Options):0:66
  7346. '++LotusScript Development Environment:2:5:(Forward):0:1
  7347. Declare Sub Exiting(Source As Field)
  7348. Declare Sub Entering(Source As Field)
  7349. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7350. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7351. Private Sub BindEvents(Byval Objectname_ As String)
  7352.      Static Source As FIELD
  7353.      Set Source = Bind(Objectname_)
  7354.      On Event Exiting From Source Call Exiting
  7355.      On Event Entering From Source Call Entering
  7356. End Sub
  7357. '++LotusScript Development Environment:2:2:Exiting:1:12
  7358. Sub Exiting(Source As Field)
  7359.      Dim Workspace As New NotesUIWorkspace
  7360.      Dim ThisDoc As NotesUIDocument
  7361.      
  7362.      Set ThisDoc = Workspace.CurrentDocument
  7363.      
  7364.      If ( Isnumeric(ThisDoc.Document.LayoutGroupware_3) = True ) Then
  7365.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7366.           ThisDoc.GoToField( "LayoutGroupware_3" )
  7367.           Exit Sub
  7368.      End If
  7369.      
  7370.      Dim vFieldExitValue As Variant
  7371.      vFieldExitValue = ThisDoc.Document.LayoutGroupware_3
  7372.      If vFieldExitValue( 0 )  = "" Then
  7373.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7374.      Else
  7375.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7376.                Call ClearOutputFieldArea( ThisDoc )
  7377.           End If
  7378.      End If
  7379.      
  7380. End Sub
  7381. '++LotusScript Development Environment:2:2:Entering:1:12
  7382. Sub Entering(Source As Field)
  7383.      Dim Workspace As New NotesUIWorkspace
  7384.      Dim ThisDoc As NotesUIDocument
  7385.      
  7386.      
  7387.      Set ThisDoc = Workspace.CurrentDocument
  7388.      sFieldName = "LayoutGroupware_3"
  7389.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7390.      
  7391. End Sub
  7392. '++LotusScript Development Environment:2:5:(Options):0:66
  7393. '++LotusScript Development Environment:2:5:(Forward):0:1
  7394. Declare Sub Exiting(Source As Field)
  7395. Declare Sub Entering(Source As Field)
  7396. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7397. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7398. Private Sub BindEvents(Byval Objectname_ As String)
  7399.      Static Source As FIELD
  7400.      Set Source = Bind(Objectname_)
  7401.      On Event Exiting From Source Call Exiting
  7402.      On Event Entering From Source Call Entering
  7403. End Sub
  7404. '++LotusScript Development Environment:2:2:Exiting:1:12
  7405. Sub Exiting(Source As Field)
  7406.      Dim Workspace As New NotesUIWorkspace
  7407.      Dim ThisDoc As NotesUIDocument
  7408.      
  7409.      Set ThisDoc = Workspace.CurrentDocument
  7410.      
  7411.      If ( Isnumeric(ThisDoc.Document.LayoutDatabase_1) = True ) Then
  7412.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7413.           ThisDoc.GoToField( "LayoutDatabase_1" )
  7414.           Exit Sub
  7415.      End If
  7416.      
  7417.      Dim vFieldExitValue As Variant
  7418.      vFieldExitValue = ThisDoc.Document.LayoutDatabase_1
  7419.      If vFieldExitValue( 0 )  = "" Then
  7420.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7421.      Else
  7422.           If Isnumeric( ThisDoc.FieldGetText( sFieldName ) ) Then
  7423.                If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) )And vFieldEntryValue <> "" ) Then
  7424.                     Call ClearOutputFieldArea( ThisDoc )
  7425.                End If
  7426.           Else
  7427.                If ( vFieldEntryValue <> ( ThisDoc.FieldGetText( sFieldName ) )And vFieldEntryValue <> "" ) Then
  7428.                     Call ClearOutputFieldArea( ThisDoc )
  7429.                End If
  7430.           End If
  7431.      End If
  7432.      
  7433. End Sub
  7434. '++LotusScript Development Environment:2:2:Entering:1:12
  7435. Sub Entering(Source As Field)
  7436.      Dim Workspace As New NotesUIWorkspace
  7437.      Dim ThisDoc As NotesUIDocument
  7438.      
  7439.      
  7440.      Set ThisDoc = Workspace.CurrentDocument
  7441.      sFieldName = "LayoutDatabase_1"
  7442.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7443.      
  7444. End Sub
  7445. '++LotusScript Development Environment:2:5:(Options):0:66
  7446. '++LotusScript Development Environment:2:5:(Forward):0:1
  7447. Declare Sub Exiting(Source As Field)
  7448. Declare Sub Entering(Source As Field)
  7449. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7450. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7451. Private Sub BindEvents(Byval Objectname_ As String)
  7452.      Static Source As FIELD
  7453.      Set Source = Bind(Objectname_)
  7454.      On Event Exiting From Source Call Exiting
  7455.      On Event Entering From Source Call Entering
  7456. End Sub
  7457. '++LotusScript Development Environment:2:2:Exiting:1:12
  7458. Sub Exiting(Source As Field)
  7459.      Dim Workspace As New NotesUIWorkspace
  7460.      Dim ThisDoc As NotesUIDocument
  7461.      
  7462.      Set ThisDoc = Workspace.CurrentDocument
  7463.      
  7464.      If ( Isnumeric(ThisDoc.Document.LayoutDatabase_2) = True ) Then
  7465.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7466.           ThisDoc.GoToField( "LayoutDatabase_2" )
  7467.           Exit Sub
  7468.      End If
  7469.      
  7470.      Dim vFieldExitValue As Variant
  7471.      vFieldExitValue = ThisDoc.Document.LayoutDatabase_2
  7472.      If vFieldExitValue( 0 )  = "" Then
  7473.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7474.      Else
  7475.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7476.                Call ClearOutputFieldArea( ThisDoc )
  7477.           End If
  7478.      End If
  7479.      
  7480. End Sub
  7481. '++LotusScript Development Environment:2:2:Entering:1:12
  7482. Sub Entering(Source As Field)
  7483.      Dim Workspace As New NotesUIWorkspace
  7484.      Dim ThisDoc As NotesUIDocument
  7485.      
  7486.      
  7487.      Set ThisDoc = Workspace.CurrentDocument
  7488.      sFieldName = "LayoutDatabase_2"
  7489.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7490.      
  7491. End Sub
  7492. '++LotusScript Development Environment:2:5:(Options):0:66
  7493. '++LotusScript Development Environment:2:5:(Forward):0:1
  7494. Declare Sub Exiting(Source As Field)
  7495. Declare Sub Entering(Source As Field)
  7496. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7497. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7498. Private Sub BindEvents(Byval Objectname_ As String)
  7499.      Static Source As FIELD
  7500.      Set Source = Bind(Objectname_)
  7501.      On Event Exiting From Source Call Exiting
  7502.      On Event Entering From Source Call Entering
  7503. End Sub
  7504. '++LotusScript Development Environment:2:2:Exiting:1:12
  7505. Sub Exiting(Source As Field)
  7506.      Dim Workspace As New NotesUIWorkspace
  7507.      Dim ThisDoc As NotesUIDocument
  7508.      
  7509.      Set ThisDoc = Workspace.CurrentDocument
  7510.      
  7511.      If ( Isnumeric(ThisDoc.Document.LayoutDatabase_3) = True ) Then
  7512.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7513.           ThisDoc.GoToField( "LayoutDatabase_3" )
  7514.           Exit Sub
  7515.      End If
  7516.      
  7517.      
  7518.      Dim vFieldExitValue As Variant
  7519.      vFieldExitValue = ThisDoc.Document.LayoutDatabase_3
  7520.      If vFieldExitValue( 0 )  = "" Then
  7521.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7522.      Else
  7523.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName )  ) And vFieldEntryValue <> "" ) Then
  7524.                Call ClearOutputFieldArea( ThisDoc )
  7525.           End If
  7526.      End If
  7527.      
  7528. End Sub
  7529. '++LotusScript Development Environment:2:2:Entering:1:12
  7530. Sub Entering(Source As Field)
  7531.      Dim Workspace As New NotesUIWorkspace
  7532.      Dim ThisDoc As NotesUIDocument
  7533.      
  7534.      
  7535.      Set ThisDoc = Workspace.CurrentDocument
  7536.      sFieldName = "LayoutDatabase_3"
  7537.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7538.      
  7539. End Sub
  7540. '++LotusScript Development Environment:2:5:(Options):0:66
  7541. '++LotusScript Development Environment:2:5:(Forward):0:1
  7542. Declare Sub Exiting(Source As Field)
  7543. Declare Sub Entering(Source As Field)
  7544. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7545. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7546. Private Sub BindEvents(Byval Objectname_ As String)
  7547.      Static Source As FIELD
  7548.      Set Source = Bind(Objectname_)
  7549.      On Event Exiting From Source Call Exiting
  7550.      On Event Entering From Source Call Entering
  7551. End Sub
  7552. '++LotusScript Development Environment:2:2:Exiting:1:12
  7553. Sub Exiting(Source As Field)
  7554.      Dim Workspace As New NotesUIWorkspace
  7555.      Dim ThisDoc As NotesUIDocument
  7556.      
  7557.      Set ThisDoc = Workspace.CurrentDocument
  7558.      
  7559.      If ( Isnumeric(ThisDoc.Document.LayoutCS_1) = True ) Then
  7560.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7561.           ThisDoc.GoToField( "LayoutCS_1" )
  7562.           Exit Sub
  7563.      End If
  7564.      
  7565.      Dim vFieldExitValue As Variant
  7566.      vFieldExitValue = ThisDoc.Document.LayoutCS_1
  7567.      If vFieldExitValue( 0 )  = "" Then
  7568.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7569.      Else
  7570.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7571.                Call ClearOutputFieldArea( ThisDoc )
  7572.           End If
  7573.      End If
  7574.      
  7575. End Sub
  7576. '++LotusScript Development Environment:2:2:Entering:1:12
  7577. Sub Entering(Source As Field)
  7578.      Dim Workspace As New NotesUIWorkspace
  7579.      Dim ThisDoc As NotesUIDocument
  7580.      
  7581.      
  7582.      Set ThisDoc = Workspace.CurrentDocument
  7583.      sFieldName = "LayoutCS_1"
  7584.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7585.      
  7586. End Sub
  7587. '++LotusScript Development Environment:2:5:(Options):0:66
  7588. '++LotusScript Development Environment:2:5:(Forward):0:1
  7589. Declare Sub Exiting(Source As Field)
  7590. Declare Sub Entering(Source As Field)
  7591. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7592. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7593. Private Sub BindEvents(Byval Objectname_ As String)
  7594.      Static Source As FIELD
  7595.      Set Source = Bind(Objectname_)
  7596.      On Event Exiting From Source Call Exiting
  7597.      On Event Entering From Source Call Entering
  7598. End Sub
  7599. '++LotusScript Development Environment:2:2:Exiting:1:12
  7600. Sub Exiting(Source As Field)
  7601.      Dim Workspace As New NotesUIWorkspace
  7602.      Dim ThisDoc As NotesUIDocument
  7603.      
  7604.      Set ThisDoc = Workspace.CurrentDocument
  7605.      
  7606.      If ( Isnumeric(ThisDoc.Document.LayoutCS_2) = True ) Then
  7607.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7608.           ThisDoc.GoToField( "LayoutCS_2" )
  7609.           Exit Sub
  7610.      End If
  7611.      
  7612.      Dim vFieldExitValue As Variant
  7613.      vFieldExitValue = ThisDoc.Document.LayoutCS_2
  7614.      If vFieldExitValue( 0 )  = "" Then
  7615.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7616.      Else
  7617.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7618.                Call ClearOutputFieldArea( ThisDoc )
  7619.           End If
  7620.      End If
  7621.      
  7622. End Sub
  7623. '++LotusScript Development Environment:2:2:Entering:1:12
  7624. Sub Entering(Source As Field)
  7625.      Dim Workspace As New NotesUIWorkspace
  7626.      Dim ThisDoc As NotesUIDocument
  7627.      
  7628.      
  7629.      Set ThisDoc = Workspace.CurrentDocument
  7630.      sFieldName = "LayoutCS_2"
  7631.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7632.      
  7633. End Sub
  7634. '++LotusScript Development Environment:2:5:(Options):0:66
  7635. '++LotusScript Development Environment:2:5:(Forward):0:1
  7636. Declare Sub Exiting(Source As Field)
  7637. Declare Sub Entering(Source As Field)
  7638. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7639. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7640. Private Sub BindEvents(Byval Objectname_ As String)
  7641.      Static Source As FIELD
  7642.      Set Source = Bind(Objectname_)
  7643.      On Event Exiting From Source Call Exiting
  7644.      On Event Entering From Source Call Entering
  7645. End Sub
  7646. '++LotusScript Development Environment:2:2:Exiting:1:12
  7647. Sub Exiting(Source As Field)
  7648.      Dim Workspace As New NotesUIWorkspace
  7649.      Dim ThisDoc As NotesUIDocument
  7650.      
  7651.      Set ThisDoc = Workspace.CurrentDocument
  7652.      
  7653.      If ( Isnumeric(ThisDoc.Document.LayoutCS_3) = True ) Then
  7654.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7655.           ThisDoc.GoToField( "LayoutCS_3" )
  7656.           Exit Sub
  7657.      End If
  7658.      
  7659.      Dim vFieldExitValue As Variant
  7660.      vFieldExitValue = ThisDoc.Document.LayoutCS_3
  7661.      If vFieldExitValue( 0 )  = "" Then
  7662.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7663.      Else
  7664.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName )  ) And vFieldEntryValue <> "" ) Then
  7665.                Call ClearOutputFieldArea( ThisDoc )
  7666.           End If
  7667.      End If
  7668.      
  7669. End Sub
  7670. '++LotusScript Development Environment:2:2:Entering:1:12
  7671. Sub Entering(Source As Field)
  7672.      Dim Workspace As New NotesUIWorkspace
  7673.      Dim ThisDoc As NotesUIDocument
  7674.      
  7675.      
  7676.      Set ThisDoc = Workspace.CurrentDocument
  7677.      sFieldName = "LayoutCS_3"
  7678.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7679.      
  7680. End Sub
  7681. '++LotusScript Development Environment:2:5:(Options):0:66
  7682. '++LotusScript Development Environment:2:5:(Forward):0:1
  7683. Declare Sub Exiting(Source As Field)
  7684. Declare Sub Entering(Source As Field)
  7685. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7686. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7687. Private Sub BindEvents(Byval Objectname_ As String)
  7688.      Static Source As FIELD
  7689.      Set Source = Bind(Objectname_)
  7690.      On Event Exiting From Source Call Exiting
  7691.      On Event Entering From Source Call Entering
  7692. End Sub
  7693. '++LotusScript Development Environment:2:2:Exiting:1:12
  7694. Sub Exiting(Source As Field)
  7695.      Dim Workspace As New NotesUIWorkspace
  7696.      Dim ThisDoc As NotesUIDocument
  7697.      
  7698.      Set ThisDoc = Workspace.CurrentDocument
  7699.      
  7700.      If ( Isnumeric(ThisDoc.Document.LayoutWW_1) = True ) Then
  7701.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7702.           ThisDoc.GoToField( "LayoutWW_1" )
  7703.           Exit Sub
  7704.      End If
  7705.      
  7706.      Dim vFieldExitValue As Variant
  7707.      vFieldExitValue = ThisDoc.Document.LayoutWW_1
  7708.      If vFieldExitValue( 0 )  = "" Then
  7709.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7710.      Else
  7711.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName )  ) And vFieldEntryValue <> "" ) Then
  7712.                Call ClearOutputFieldArea( ThisDoc )
  7713.           End If
  7714.      End If
  7715.      
  7716. End Sub
  7717. '++LotusScript Development Environment:2:2:Entering:1:12
  7718. Sub Entering(Source As Field)
  7719.      Dim Workspace As New NotesUIWorkspace
  7720.      Dim ThisDoc As NotesUIDocument
  7721.      
  7722.      
  7723.      Set ThisDoc = Workspace.CurrentDocument
  7724.      sFieldName = "LayoutWW_1"
  7725.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7726.      
  7727. End Sub
  7728. '++LotusScript Development Environment:2:5:(Options):0:66
  7729. '++LotusScript Development Environment:2:5:(Forward):0:1
  7730. Declare Sub Exiting(Source As Field)
  7731. Declare Sub Entering(Source As Field)
  7732. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7733. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7734. Private Sub BindEvents(Byval Objectname_ As String)
  7735.      Static Source As FIELD
  7736.      Set Source = Bind(Objectname_)
  7737.      On Event Exiting From Source Call Exiting
  7738.      On Event Entering From Source Call Entering
  7739. End Sub
  7740. '++LotusScript Development Environment:2:2:Exiting:1:12
  7741. Sub Exiting(Source As Field)
  7742.      Dim Workspace As New NotesUIWorkspace
  7743.      Dim ThisDoc As NotesUIDocument
  7744.      
  7745.      Set ThisDoc = Workspace.CurrentDocument
  7746.      
  7747.      If ( Isnumeric(ThisDoc.Document.LayoutWW_2) = True ) Then
  7748.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7749.           ThisDoc.GoToField( "LayoutWW_2" )
  7750.           Exit Sub
  7751.      End If
  7752.      
  7753.      Dim vFieldExitValue As Variant
  7754.      vFieldExitValue = ThisDoc.Document.LayoutWW_2
  7755.      If vFieldExitValue( 0 )  = "" Then
  7756.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7757.      Else
  7758.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName )  ) And vFieldEntryValue <> "" ) Then
  7759.                Call ClearOutputFieldArea( ThisDoc )
  7760.           End If
  7761.      End If
  7762.      
  7763. End Sub
  7764. '++LotusScript Development Environment:2:2:Entering:1:12
  7765. Sub Entering(Source As Field)
  7766.      Dim Workspace As New NotesUIWorkspace
  7767.      Dim ThisDoc As NotesUIDocument
  7768.      
  7769.      
  7770.      Set ThisDoc = Workspace.CurrentDocument
  7771.      sFieldName = "LayoutWW_2"
  7772.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7773.      
  7774. End Sub
  7775. '++LotusScript Development Environment:2:5:(Options):0:66
  7776. '++LotusScript Development Environment:2:5:(Forward):0:1
  7777. Declare Sub Exiting(Source As Field)
  7778. Declare Sub Entering(Source As Field)
  7779. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7780. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7781. Private Sub BindEvents(Byval Objectname_ As String)
  7782.      Static Source As FIELD
  7783.      Set Source = Bind(Objectname_)
  7784.      On Event Exiting From Source Call Exiting
  7785.      On Event Entering From Source Call Entering
  7786. End Sub
  7787. '++LotusScript Development Environment:2:2:Exiting:1:12
  7788. Sub Exiting(Source As Field)
  7789.      Dim Workspace As New NotesUIWorkspace
  7790.      Dim ThisDoc As NotesUIDocument
  7791.      
  7792.      Set ThisDoc = Workspace.CurrentDocument
  7793.      
  7794.      If ( Isnumeric(ThisDoc.Document.LayoutWW_3) = True ) Then
  7795.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7796.           ThisDoc.GoToField( "LayoutWW_3" )
  7797.           Exit Sub
  7798.      End If
  7799.      
  7800.      Dim vFieldExitValue As Variant
  7801.      vFieldExitValue = ThisDoc.Document.LayoutWW_3
  7802.      If vFieldExitValue( 0 )  = "" Then
  7803.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7804.      Else
  7805.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7806.                Call ClearOutputFieldArea( ThisDoc )
  7807.           End If
  7808.      End If
  7809.      
  7810. End Sub
  7811. '++LotusScript Development Environment:2:2:Entering:1:12
  7812. Sub Entering(Source As Field)
  7813.      Dim Workspace As New NotesUIWorkspace
  7814.      Dim ThisDoc As NotesUIDocument
  7815.      
  7816.      
  7817.      Set ThisDoc = Workspace.CurrentDocument
  7818.      sFieldName = "LayoutWW_3"
  7819.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7820.      
  7821. End Sub
  7822. '++LotusScript Development Environment:2:5:(Options):0:66
  7823. '++LotusScript Development Environment:2:5:(Forward):0:1
  7824. Declare Sub Exiting(Source As Field)
  7825. Declare Sub Entering(Source As Field)
  7826. '++LotusScript Development Environment:2:5:(Declarations):0:10
  7827. Dim ThisDoc As NotesUIDocument
  7828. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7829. Private Sub BindEvents(Byval Objectname_ As String)
  7830.      Static Source As FIELD
  7831.      Set Source = Bind(Objectname_)
  7832.      On Event Exiting From Source Call Exiting
  7833.      On Event Entering From Source Call Entering
  7834. End Sub
  7835. '++LotusScript Development Environment:2:2:Exiting:1:12
  7836. Sub Exiting(Source As Field)
  7837.      Dim Workspace As New NotesUIWorkspace
  7838.      
  7839.      Set ThisDoc = Workspace.CurrentDocument
  7840.      
  7841.      If ( Isnumeric(ThisDoc.Document.LayoutWB_1) = True ) Then
  7842.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7843.           ThisDoc.GoToField( "LayoutWB_1" )
  7844.           Exit Sub
  7845.      End If
  7846.      
  7847.      Dim vFieldExitValue As Variant
  7848.      vFieldExitValue = ThisDoc.Document.LayoutWB_1
  7849.      If vFieldExitValue( 0 )  = "" Then
  7850.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7851.      Else
  7852.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) )  And vFieldEntryValue <> "" ) Then
  7853.                Call ClearOutputFieldArea( ThisDoc )
  7854.           End If
  7855.      End If
  7856.      
  7857. End Sub
  7858. '++LotusScript Development Environment:2:2:Entering:1:12
  7859. Sub Entering(Source As Field)
  7860.      Dim Workspace As New NotesUIWorkspace
  7861.      Dim ThisDoc As NotesUIDocument
  7862.      
  7863.      
  7864.      Set ThisDoc = Workspace.CurrentDocument
  7865.      sFieldName = "LayoutWB_1"
  7866.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7867.      
  7868. End Sub
  7869. '++LotusScript Development Environment:2:5:(Options):0:66
  7870. '++LotusScript Development Environment:2:5:(Forward):0:1
  7871. Declare Sub Exiting(Source As Field)
  7872. Declare Sub Entering(Source As Field)
  7873. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7874. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7875. Private Sub BindEvents(Byval Objectname_ As String)
  7876.      Static Source As FIELD
  7877.      Set Source = Bind(Objectname_)
  7878.      On Event Exiting From Source Call Exiting
  7879.      On Event Entering From Source Call Entering
  7880. End Sub
  7881. '++LotusScript Development Environment:2:2:Exiting:1:12
  7882. Sub Exiting(Source As Field)
  7883.      Dim Workspace As New NotesUIWorkspace
  7884.      Dim ThisDoc As NotesUIDocument
  7885.      
  7886.      Set ThisDoc = Workspace.CurrentDocument
  7887.      
  7888.      If ( Isnumeric(ThisDoc.Document.LayoutWB_2) = True ) Then
  7889.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7890.           ThisDoc.GoToField( "LayoutWB_2" )
  7891.           Exit Sub
  7892.      End If
  7893.      
  7894.      Dim vFieldExitValue As Variant
  7895.      vFieldExitValue = ThisDoc.Document.LayoutWB_2
  7896.      If vFieldExitValue( 0 )  = "" Then
  7897.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7898.      Else
  7899.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName )  ) And vFieldEntryValue <> "" ) Then
  7900.                Call ClearOutputFieldArea( ThisDoc )
  7901.           End If
  7902.      End If
  7903.      
  7904. End Sub
  7905. '++LotusScript Development Environment:2:2:Entering:1:12
  7906. Sub Entering(Source As Field)
  7907.      Dim Workspace As New NotesUIWorkspace
  7908.      Dim ThisDoc As NotesUIDocument
  7909.      
  7910.      
  7911.      Set ThisDoc = Workspace.CurrentDocument
  7912.      sFieldName = "LayoutWB_2"
  7913.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7914.      
  7915. End Sub
  7916. '++LotusScript Development Environment:2:5:(Options):0:66
  7917. '++LotusScript Development Environment:2:5:(Forward):0:1
  7918. Declare Sub Exiting(Source As Field)
  7919. Declare Sub Entering(Source As Field)
  7920. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7921. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7922. Private Sub BindEvents(Byval Objectname_ As String)
  7923.      Static Source As FIELD
  7924.      Set Source = Bind(Objectname_)
  7925.      On Event Exiting From Source Call Exiting
  7926.      On Event Entering From Source Call Entering
  7927. End Sub
  7928. '++LotusScript Development Environment:2:2:Exiting:1:12
  7929. Sub Exiting(Source As Field)
  7930.      Dim Workspace As New NotesUIWorkspace
  7931.      Dim ThisDoc As NotesUIDocument
  7932.      
  7933.      Set ThisDoc = Workspace.CurrentDocument
  7934.      
  7935.      If ( Isnumeric(ThisDoc.Document.LayoutWB_3) = True ) Then
  7936.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7937.           ThisDoc.GoToField( "LayoutWB_3" )
  7938.           Exit Sub
  7939.      End If
  7940.      
  7941.      Dim vFieldExitValue As Variant
  7942.      vFieldExitValue = ThisDoc.Document.LayoutWB_3
  7943.      If vFieldExitValue( 0 )  = "" Then
  7944.           Call ThisDoc.FieldSetText( sFieldName, "0" )
  7945.      Else
  7946.           
  7947.           If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) ) And vFieldEntryValue <> "" ) Then
  7948.                Call ClearOutputFieldArea( ThisDoc )
  7949.           End If
  7950.      End If
  7951.      
  7952. End Sub
  7953. '++LotusScript Development Environment:2:2:Entering:1:12
  7954. Sub Entering(Source As Field)
  7955.      Dim Workspace As New NotesUIWorkspace
  7956.      Dim ThisDoc As NotesUIDocument
  7957.      
  7958.      
  7959.      Set ThisDoc = Workspace.CurrentDocument
  7960.      sFieldName = "LayoutWB_3"
  7961.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  7962.      
  7963. End Sub
  7964. '++LotusScript Development Environment:2:5:(Options):0:66
  7965. '++LotusScript Development Environment:2:5:(Forward):0:1
  7966. Declare Sub Exiting(Source As Field)
  7967. Declare Sub Entering(Source As Field)
  7968. '++LotusScript Development Environment:2:5:(Declarations):0:2
  7969. '++LotusScript Development Environment:2:2:BindEvents:1:129
  7970. Private Sub BindEvents(Byval Objectname_ As String)
  7971.      Static Source As FIELD
  7972.      Set Source = Bind(Objectname_)
  7973.      On Event Exiting From Source Call Exiting
  7974.      On Event Entering From Source Call Entering
  7975. End Sub
  7976. '++LotusScript Development Environment:2:2:Exiting:1:12
  7977. Sub Exiting(Source As Field)
  7978.      Dim Workspace As New NotesUIWorkspace
  7979.      Dim ThisDoc As NotesUIDocument
  7980.      
  7981.      Set ThisDoc = Workspace.CurrentDocument
  7982.      
  7983.      If ( Isnumeric(ThisDoc.Document.LayoutTotalProfile_1) = True ) Then
  7984.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  7985.           ThisDoc.GoToField( "LayoutTotalProfile_1" )
  7986.           Exit Sub
  7987.      End If
  7988.      
  7989.      
  7990.      If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName )  ) And vFieldEntryValue <> "" ) Then
  7991.           Call ClearOutputFieldArea( ThisDoc )
  7992.      End If
  7993.      
  7994. End Sub
  7995. '++LotusScript Development Environment:2:2:Entering:1:12
  7996. Sub Entering(Source As Field)
  7997.      Dim Workspace As New NotesUIWorkspace
  7998.      Dim ThisDoc As NotesUIDocument
  7999.      
  8000.      
  8001.      Set ThisDoc = Workspace.CurrentDocument
  8002.      sFieldName = "LayoutTotalProfile_1"
  8003.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  8004.      
  8005. End Sub
  8006. '++LotusScript Development Environment:2:5:(Options):0:66
  8007. '++LotusScript Development Environment:2:5:(Forward):0:1
  8008. Declare Sub Exiting(Source As Field)
  8009. Declare Sub Entering(Source As Field)
  8010. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8011. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8012. Private Sub BindEvents(Byval Objectname_ As String)
  8013.      Static Source As FIELD
  8014.      Set Source = Bind(Objectname_)
  8015.      On Event Exiting From Source Call Exiting
  8016.      On Event Entering From Source Call Entering
  8017. End Sub
  8018. '++LotusScript Development Environment:2:2:Exiting:1:12
  8019. Sub Exiting(Source As Field)
  8020.      Dim Workspace As New NotesUIWorkspace
  8021.      Dim ThisDoc As NotesUIDocument
  8022.      
  8023.      Set ThisDoc = Workspace.CurrentDocument
  8024.      
  8025.      If ( Isnumeric(ThisDoc.Document.LayoutTotalProfile_2) = True ) Then
  8026.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  8027.           ThisDoc.GoToField( "LayoutProfile_2" )
  8028.           Exit Sub
  8029.      End If
  8030.      
  8031.      
  8032.      If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) )  And vFieldEntryValue <> "" ) Then
  8033.           Call ClearOutputFieldArea( ThisDoc )
  8034.      End If
  8035.      
  8036. End Sub
  8037. '++LotusScript Development Environment:2:2:Entering:1:12
  8038. Sub Entering(Source As Field)
  8039.      Dim Workspace As New NotesUIWorkspace
  8040.      Dim ThisDoc As NotesUIDocument
  8041.      
  8042.      
  8043.      Set ThisDoc = Workspace.CurrentDocument
  8044.      sFieldName = "LayoutTotalProfile_2"
  8045.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  8046.      
  8047. End Sub
  8048. '++LotusScript Development Environment:2:5:(Options):0:66
  8049. '++LotusScript Development Environment:2:5:(Forward):0:1
  8050. Declare Sub Exiting(Source As Field)
  8051. Declare Sub Entering(Source As Field)
  8052. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8053. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8054. Private Sub BindEvents(Byval Objectname_ As String)
  8055.      Static Source As FIELD
  8056.      Set Source = Bind(Objectname_)
  8057.      On Event Exiting From Source Call Exiting
  8058.      On Event Entering From Source Call Entering
  8059. End Sub
  8060. '++LotusScript Development Environment:2:2:Exiting:1:12
  8061. Sub Exiting(Source As Field)
  8062.      Dim Workspace As New NotesUIWorkspace
  8063.      Dim ThisDoc As NotesUIDocument
  8064.      
  8065.      Set ThisDoc = Workspace.CurrentDocument
  8066.      
  8067.      If ( Isnumeric(ThisDoc.Document.LayoutProfile_3) = True ) Then
  8068.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  8069.           ThisDoc.GoToField( "LayoutProfile_3" )
  8070.           Exit Sub
  8071.      End If
  8072.      
  8073.      
  8074.      If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName )  ) And vFieldEntryValue <> "" ) Then
  8075.           Call ClearOutputFieldArea( ThisDoc )
  8076.      End If
  8077.      
  8078. End Sub
  8079. '++LotusScript Development Environment:2:2:Entering:1:12
  8080. Sub Entering(Source As Field)
  8081.      Dim Workspace As New NotesUIWorkspace
  8082.      Dim ThisDoc As NotesUIDocument
  8083.      
  8084.      
  8085.      Set ThisDoc = Workspace.CurrentDocument
  8086.      sFieldName = "LayoutTotalProfile_3"
  8087.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  8088.      
  8089. End Sub
  8090. '++LotusScript Development Environment:2:5:(Options):0:66
  8091. '++LotusScript Development Environment:2:5:(Forward):0:1
  8092. Declare Sub Exiting(Source As Field)
  8093. Declare Sub Entering(Source As Field)
  8094. '++LotusScript Development Environment:2:5:(Declarations):0:10
  8095. Dim ThisDoc As NotesUIDocument
  8096. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8097. Private Sub BindEvents(Byval Objectname_ As String)
  8098.      Static Source As FIELD
  8099.      Set Source = Bind(Objectname_)
  8100.      On Event Exiting From Source Call Exiting
  8101.      On Event Entering From Source Call Entering
  8102. End Sub
  8103. '++LotusScript Development Environment:2:2:Exiting:1:12
  8104. Sub Exiting(Source As Field)
  8105.      Dim Workspace As New NotesUIWorkspace
  8106.      
  8107.      Set ThisDoc = Workspace.CurrentDocument
  8108.      
  8109.      If ( Isnumeric(ThisDoc.Document.LayoutWB_1) = True ) Then
  8110.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  8111.           ThisDoc.GoToField( "LayoutWB_1" )
  8112.           Exit Sub
  8113.      End If
  8114.      
  8115.      
  8116.      If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) )  And vFieldEntryValue <> "" ) Then
  8117.           Call ClearOutputFieldArea( ThisDoc )
  8118.      End If
  8119.      
  8120.      
  8121. End Sub
  8122. '++LotusScript Development Environment:2:2:Entering:1:12
  8123. Sub Entering(Source As Field)
  8124.      Dim Workspace As New NotesUIWorkspace
  8125.      Dim ThisDoc As NotesUIDocument
  8126.      
  8127.      
  8128.      Set ThisDoc = Workspace.CurrentDocument
  8129.      sFieldName = "LayoutWB_1"
  8130.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  8131.      
  8132. End Sub
  8133. '++LotusScript Development Environment:2:5:(Options):0:66
  8134. '++LotusScript Development Environment:2:5:(Forward):0:1
  8135. Declare Sub Exiting(Source As Field)
  8136. Declare Sub Entering(Source As Field)
  8137. '++LotusScript Development Environment:2:5:(Declarations):0:10
  8138. Dim ThisDoc As NotesUIDocument
  8139. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8140. Private Sub BindEvents(Byval Objectname_ As String)
  8141.      Static Source As FIELD
  8142.      Set Source = Bind(Objectname_)
  8143.      On Event Exiting From Source Call Exiting
  8144.      On Event Entering From Source Call Entering
  8145. End Sub
  8146. '++LotusScript Development Environment:2:2:Exiting:1:12
  8147. Sub Exiting(Source As Field)
  8148.      Dim Workspace As New NotesUIWorkspace
  8149.      
  8150.      Set ThisDoc = Workspace.CurrentDocument
  8151.      
  8152.      If ( Isnumeric(ThisDoc.Document.LayoutWB_1) = True ) Then
  8153.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  8154.           ThisDoc.GoToField( "LayoutWB_1" )
  8155.           Exit Sub
  8156.      End If
  8157.      
  8158.      
  8159.      If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) )  And vFieldEntryValue <> "" ) Then
  8160.           Call ClearOutputFieldArea( ThisDoc )
  8161.      End If
  8162.      
  8163.      
  8164. End Sub
  8165. '++LotusScript Development Environment:2:2:Entering:1:12
  8166. Sub Entering(Source As Field)
  8167.      Dim Workspace As New NotesUIWorkspace
  8168.      Dim ThisDoc As NotesUIDocument
  8169.      
  8170.      
  8171.      Set ThisDoc = Workspace.CurrentDocument
  8172.      sFieldName = "LayoutWB_1"
  8173.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  8174.      
  8175. End Sub
  8176. '++LotusScript Development Environment:2:5:(Options):0:66
  8177. '++LotusScript Development Environment:2:5:(Forward):0:1
  8178. Declare Sub Exiting(Source As Field)
  8179. Declare Sub Entering(Source As Field)
  8180. '++LotusScript Development Environment:2:5:(Declarations):0:10
  8181. Dim ThisDoc As NotesUIDocument
  8182. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8183. Private Sub BindEvents(Byval Objectname_ As String)
  8184.      Static Source As FIELD
  8185.      Set Source = Bind(Objectname_)
  8186.      On Event Exiting From Source Call Exiting
  8187.      On Event Entering From Source Call Entering
  8188. End Sub
  8189. '++LotusScript Development Environment:2:2:Exiting:1:12
  8190. Sub Exiting(Source As Field)
  8191.      Dim Workspace As New NotesUIWorkspace
  8192.      
  8193.      Set ThisDoc = Workspace.CurrentDocument
  8194.      
  8195.      If ( Isnumeric(ThisDoc.Document.LayoutWB_1) = True ) Then
  8196.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Query on Data"
  8197.           ThisDoc.GoToField( "LayoutWB_1" )
  8198.           Exit Sub
  8199.      End If
  8200.      
  8201.      
  8202.      If ( vFieldEntryValue <> Cint( ThisDoc.FieldGetText( sFieldName ) )  And vFieldEntryValue <> "" ) Then
  8203.           Call ClearOutputFieldArea( ThisDoc )
  8204.      End If
  8205.      
  8206.      
  8207. End Sub
  8208. '++LotusScript Development Environment:2:2:Entering:1:12
  8209. Sub Entering(Source As Field)
  8210.      Dim Workspace As New NotesUIWorkspace
  8211.      Dim ThisDoc As NotesUIDocument
  8212.      
  8213.      
  8214.      Set ThisDoc = Workspace.CurrentDocument
  8215.      sFieldName = "LayoutWB_1"
  8216.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  8217.      
  8218. End Sub
  8219. '++LotusScript Development Environment:2:5:(Options):0:66
  8220. '++LotusScript Development Environment:2:5:(Forward):0:1
  8221. Declare Sub Entering(Source As Field)
  8222. Declare Sub Exiting(Source As Field)
  8223. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8224. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8225. Private Sub BindEvents(Byval Objectname_ As String)
  8226.      Static Source As FIELD
  8227.      Set Source = Bind(Objectname_)
  8228.      On Event Entering From Source Call Entering
  8229.      On Event Exiting From Source Call Exiting
  8230. End Sub
  8231. '++LotusScript Development Environment:2:2:Entering:1:12
  8232. Sub Entering(Source As Field)
  8233.      Dim Workspace As New NotesUIWorkspace
  8234.      Dim ThisDoc As NotesUIDocument
  8235.      
  8236.      Set ThisDoc = Workspace.CurrentDocument
  8237.      sFieldName = "LayoutSummary"
  8238.      vFieldEntryValue = ThisDoc.FieldGetText( sFieldName )
  8239. End Sub
  8240. '++LotusScript Development Environment:2:2:Exiting:1:12
  8241. Sub Exiting(Source As Field)
  8242.      Dim Workspace As New NotesUIWorkspace
  8243.      Dim ThisDoc As NotesUIDocument
  8244.      
  8245.      Set ThisDoc = Workspace.CurrentDocument
  8246.      
  8247.      
  8248.      
  8249. End Sub
  8250. '++LotusScript Development Environment:2:5:(Options):0:66
  8251. '++LotusScript Development Environment:2:5:(Forward):0:1
  8252. Declare Sub Entering(Source As Field)
  8253. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8254. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8255. Private Sub BindEvents(Byval Objectname_ As String)
  8256.      Static Source As FIELD
  8257.      Set Source = Bind(Objectname_)
  8258.      On Event Entering From Source Call Entering
  8259. End Sub
  8260. '++LotusScript Development Environment:2:2:Entering:1:12
  8261. Sub Entering(Source As Field)
  8262.      Dim Workspace As New NotesUIWorkspace
  8263.      Dim ThisDoc As NotesUIDocument
  8264.      
  8265.      Set ThisDoc = Workspace.CurrentDocument
  8266.      
  8267.      vFieldEntryValue = ThisDoc.FieldGetText("LayoutUserResponseTime")
  8268. End Sub
  8269. LayoutServerTasks
  8270.     4S5S
  8271. queryid
  8272. author
  8273. modified
  8274. numresults
  8275. SaveOptions
  8276. QueryAlreadyExists
  8277. FormNewLocation
  8278. CertifyCheckOn
  8279. UniqueCount
  8280. MailFlag
  8281. sVendorList
  8282.      
  8283. VendorListSelect one or more vendor databases to be searched.
  8284. LookupView
  8285. (List)
  8286.     1S2S
  8287. nocache
  8288. LookupView
  8289. Database
  8290.     0R6S8S10S12S
  8291. GraphResultsChoose one or both of the options (Output to Database or Mail Item to specified recipient(s)).
  8292. ResponsesCosts
  8293. OutputServerTarget Output Server.  Specify "Local" if it is to be stored on local system (without server).
  8294. OutputFilenameTarget Output Filename for results of query
  8295. OutputSaveResultsChoose one or both of the options (Output to Database or Mail Item to specified recipient(s)).
  8296. Create Mail ItemOutput to Database
  8297.                                                                                                                                                          
  8298. Tasks:
  8299. LayoutServerTasksRequired.  Select one or more workload performance areas.
  8300. Mail Routing Hub|MReplication Hub|RUser Tasks|U
  8301. Response Time:
  8302. LayoutUserResponseTimeRequired.  Select overall acceptable overall server response time.
  8303. Fast ( < 1 sec)Medium (1 - 3 sec)Slow (3.1 - 5 sec)
  8304. % Responses fall within Range:
  8305. LayoutPercentRangeRequired.  Select percentage of responses that must be within time range.
  8306. 50759095
  8307. Specify OS Platform(s) to Include:
  8308. LayoutOSPlatformRequired.  Select or deselect acceptable server platforms.  Use buttons to reset all.
  8309. AIX/RS6000|1AIX/SP2|2AS/400|13HP-UX|3NetWare 3.12|4NetWare 4.1|5NT 3.51|6NT 4.0|7OS/2 2.11 SMP|8OS/2 Warp Connect|9OS/2 Warp Server 4.0|10Solaris 2.5|11System/390|14Win95 1.0|12
  8310. FormNewLocation
  8311. '++LotusScript Development Environment:2:5:(Options):0:66
  8312. '++LotusScript Development Environment:2:5:(Forward):0:1
  8313. Declare Sub Click( Source As Button )
  8314. Declare Sub Initialize
  8315. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8316. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8317. Private Sub BindEvents(Byval Objectname_ As String)
  8318.      Static Source As BUTTON
  8319.      Set Source = Bind(Objectname_)
  8320.      On Event Click From Source Call Click
  8321. End Sub
  8322. '++LotusScript Development Environment:2:2:Click:1:12
  8323. Sub Click( Source As Button )
  8324.      Dim workspace As New NotesUIWorkspace
  8325.      Dim ThisDoc As NotesUIDocument
  8326.      Set ThisDoc = workspace.CurrentDocument
  8327.      Call workspace.DialogBox( "VendorSelection", True, True, True )
  8328.      globalvendordata = ThisDoc.FieldGetText( "VendorList" )
  8329. End Sub
  8330. '++LotusScript Development Environment:2:2:Initialize:1:10
  8331. Sub Initialize
  8332.      
  8333. End Sub
  8334. Vendor Selection
  8335. LayoutToleranceRequired.  Select allowable adjustments to # of users.  Percentage of total.
  8336. 010255075100
  8337. User Count Tolerance % Range:
  8338. '++LotusScript Development Environment:2:5:(Options):0:66
  8339. '++LotusScript Development Environment:2:5:(Forward):0:1
  8340. Declare Sub Click( Source As Button )
  8341. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8342. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8343. Private Sub BindEvents(Byval Objectname_ As String)
  8344.      Static Source As BUTTON
  8345.      Set Source = Bind(Objectname_)
  8346.      On Event Click From Source Call Click
  8347. End Sub
  8348. '++LotusScript Development Environment:2:2:Click:1:12
  8349. Sub Click( Source As Button )
  8350.      Dim workspace As New NotesUIWorkspace
  8351.      Dim ThisDoc As NotesUIDocument
  8352.      
  8353.      Set ThisDoc = workspace.CurrentDocument
  8354.      
  8355.      Dim sPlatform( 13 ) As String
  8356.      sPlatform( 0 ) = "AIX/RS6000"
  8357.      sPlatform( 1 ) = "AIX/SP2"
  8358.      sPlatform( 2 ) =  "HP-UX"
  8359.      sPlatform( 3 ) = "NetWare 3.12"
  8360.      sPlatform( 4 ) = "NetWare 4.1"
  8361.      sPlatform( 5 ) = " NT 3.51"
  8362.      sPlatform( 6 ) = " NT 4.0"
  8363.      sPlatform( 7 ) = " OS/2 2.11 SMP"
  8364.      sPlatform( 8 ) = " OS/2 Warp Connect"
  8365.      sPlatform( 9 ) = " OS/2 Warp Server 4.0"
  8366.      sPlatform( 10 ) = " Solaris 2.5"
  8367.      sPlatform( 11 ) = " Win95 1.0"
  8368.      sPlatform( 12 ) = "System/390"
  8369.      sPlatform( 13) = "AS/400"
  8370.      
  8371.      ThisDoc.document.LayoutOSPlatform = sPlatform
  8372.      
  8373. End Sub
  8374. Select All
  8375. '++LotusScript Development Environment:2:5:(Options):0:66
  8376. '++LotusScript Development Environment:2:5:(Forward):0:1
  8377. Declare Sub Click( Source As Button )
  8378. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8379. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8380. Private Sub BindEvents(Byval Objectname_ As String)
  8381.      Static Source As BUTTON
  8382.      Set Source = Bind(Objectname_)
  8383.      On Event Click From Source Call Click
  8384. End Sub
  8385. '++LotusScript Development Environment:2:2:Click:1:12
  8386. Sub Click( Source As Button )
  8387.      Dim workspace As New NotesUIWorkspace
  8388.      Dim ThisDoc As NotesUIDocument
  8389.      
  8390.      Set ThisDoc = workspace.CurrentDocument
  8391.      
  8392.      ThisDoc.document.LayoutOSPlatform = ""
  8393. End Sub
  8394. Deselect All
  8395. Disk Configuration:
  8396. LayoutDiskConfigurationRequired.  Specify if RAID 5 configuration use is required.
  8397. Any ConfigurationIncludes RAID 5
  8398. Select data sets to include in this query:
  8399. LayoutTolerance_ResponseRequired.  Select allowable adjustments to # of users.  Percentage of total.
  8400. 010255075100
  8401. Response Time Tolerance % Range:
  8402. EstimatedChoices
  8403. YesNo
  8404. Include Estimation Records in Query?
  8405. Percentage Growth Projected:  
  8406. PerGrowthProjThe percentage value is applied to the user count values specified within this query.  
  8407. LayoutServerTasks
  8408.     0S0E
  8409. Mail Routing Hub Task Information:
  8410. LayoutMessagesHourExpected Performance in an Hour
  8411. Messages/Minute
  8412. LayoutMBMessagesHourExpected Data Movement in an Hour
  8413. Bytes Routed/Minute
  8414. LayoutMailHubRequired.  Enter number of spokes required for Mail Hub configuration.
  8415. Spokes
  8416. LayoutServerTasks
  8417. Replication Hub Task Information:
  8418. LayoutReplHourExpected Performance in an Hour
  8419. Replications/Minute
  8420. LayoutMBReplHourExpected Data Movement in an Hour
  8421. LayoutReplHubRequired.  Enter number of spokes required for Replication Hub configuration.
  8422. Spokes
  8423. LayoutServerTasks
  8424.     4S5S
  8425. LayoutMailPercentage performing simple mail activities
  8426. LayoutMailDBPercentage performing simple mail activities
  8427. LayoutGroupwarePercentage performing simple mail activities
  8428. LayoutCS
  8429. LayoutDatabase
  8430. LayoutWW
  8431. LayoutWB
  8432. LayoutR5MDB
  8433. LayoutMail_1Enter percentage of users (for this profile) performing Mail task.
  8434. Mail (Low)
  8435. Mail & Database
  8436. (Medium)
  8437. Groupware
  8438. (High):
  8439. LayoutMailDB_1Enter percentage of users (for this profile) performing Mail & Database task.
  8440. LayoutGroupware_1Enter percentage of users (for this profile) performing Groupware task.
  8441. LayoutNumActiveUsersRequired.  Enter total number of active, connected, users on server.
  8442. User Task Information:
  8443. User Profile #1:
  8444. User Profile #2:
  8445. User Profile #3:
  8446. Mail (Low) 
  8447. Mail (Low) 
  8448. LayoutMail_2Enter percentage of users (for this profile) performing Mail task.
  8449. LayoutMail_3Enter percentage of users (for this profile) performing Mail task.
  8450. Mail & Database
  8451. (Medium)
  8452. Mail & Database 
  8453. (Medium) 
  8454. LayoutMailDB_2Enter percentage of users (for this profile) performing Mail & Database task.
  8455. LayoutMailDB_3Enter percentage of users (for this profile) performing Mail & Database task.
  8456. Database:
  8457. Calendar &
  8458. Scheduling:
  8459. Web Walker:
  8460. Web Buyer:
  8461. Groupware 
  8462. (High):
  8463. LayoutGroupware_2Enter percentage of users (for this profile) performing Groupware task.
  8464. LayoutGroupware_3Enter percentage of users (for this profile) performing Groupware task.
  8465. Groupware 
  8466. (High):
  8467. LayoutDatabase_1Enter percentage of users (for this profile) performing Database task.
  8468. LayoutDatabase_2Enter percentage of users (for this profile) performing Database task.
  8469. LayoutDatabase_3Enter percentage of users (for this profile) performing Database task.
  8470. Database:
  8471. Database:
  8472. LayoutCS_1Enter percentage of users (for this profile) performing Calendar & Scheduling.
  8473. LayoutCS_2Enter percentage of users (for this profile) performing Calendar & Scheduling.
  8474. LayoutCS_3Enter percentage of users (for this profile) performing Calendar & Scheduling.
  8475. Calendar & 
  8476. Scheduling:
  8477. Calendar & 
  8478. Scheduling:
  8479. LayoutWW_1Enter percentage of users (for this profile) performing Web Walker.
  8480. LayoutWW_2Enter percentage of users (for this profile) performing Web Walker.
  8481. LayoutWW_3Enter percentage of users (for this profile) performing Web Walker.
  8482. LayoutWB_1Enter percentage of users (for this profile) performing Web Buyer.
  8483. LayoutWB_2Enter percentage of users (for this profile) performing Web Buyer.
  8484. LayoutWB_3Enter percentage of users (for this profile) performing Web Buyer.
  8485. Web Walker:
  8486. Web Walker:
  8487. Web Buyer:
  8488. Web Buyer:
  8489. Profile #1
  8490. Total Users:
  8491. Profile #2
  8492. Total Users:
  8493. Profile #3
  8494. Total Users:
  8495. LayoutTotalProfile_1Enter total number of users for this profile.  Must be sum of all entries, this column.
  8496. LayoutTotalProfile_2Enter total number of users for this profile.  Must be sum of all entries, this column.
  8497. LayoutTotalProfile_3Enter total number of users for this profile.  Must be sum of all entries, this column.
  8498. Total Number of Active Users:
  8499. R5 Mail & Database
  8500. R5 Mail & Database
  8501. R5 Mail & Database
  8502. LayoutR5MDB_1Enter percentage of users (for this profile) performing Web Buyer.
  8503. LayoutR5MDB_2Enter percentage of users (for this profile) performing Web Buyer.
  8504. LayoutR5MDB_3Enter percentage of users (for this profile) performing Web Buyer.
  8505. Query Summary:
  8506. LayoutSummaryEnter optional descriptive text.  Appears in View Pane.
  8507. Other Workload Specifications
  8508. Description:
  8509. Amount (seconds)
  8510. OtherDesc1
  8511. OtherAmt1
  8512. OtherDesc2
  8513. OtherDesc3
  8514. OtherAmt2
  8515. OtherAmt3
  8516. Server Analysis Results
  8517. Results:
  8518. Vendor:
  8519. Machine ID:
  8520. Response Time:
  8521. CPU/#:
  8522. Platform:
  8523. 1%3(1%
  8524. Estimated:
  8525. OutResults1_2Vendor name returned from Query.  Field completed by Server.Planner.
  8526. OutResults1Machine Identifier returned from Query.  Field completed by Server.Planner.
  8527. OutResults1_6Server Response Time returned from Query.  Field completed by Server.Planner.
  8528. OutResults1_3Server CPU info returned from Query.  Field completed by Server.Planner.
  8529. OutResults1_4Server Platform info returned from Query.  Field completed by Server.Planner.
  8530. OutResults2_2Vendor name returned from Query.  Field completed by Server.Planner.
  8531. OutResults2Machine Identifier returned from Query.  Field completed by Server.Planner.
  8532. OutResults2_6Server Response Time returned from Query.  Field completed by Server.Planner.
  8533. OutResults2_3Server CPU info returned from Query.  Field completed by Server.Planner.
  8534. OutResults2_4Server Platform info returned from Query.  Field completed by Server.Planner.
  8535. OutResults3_2Vendor name returned from Query.  Field completed by Server.Planner.
  8536. OutResults3Machine Identifier returned from Query.  Field completed by Server.Planner.
  8537. OutResults3_6Server Response Time returned from Query.  Field completed by Server.Planner.
  8538. OutResults3_3Server CPU info returned from Query.  Field completed by Server.Planner.
  8539. OutResults3_4Server Platform info returned from Query.  Field completed by Server.Planner.
  8540. OutResults4_2Vendor name returned from Query.  Field completed by Server.Planner.
  8541. OutResults4Machine Identifier returned from Query.  Field completed by Server.Planner.
  8542. OutResults4_6Server Response Time returned from Query.  Field completed by Server.Planner.
  8543. OutResults4_3Server CPU info returned from Query.  Field completed by Server.Planner.
  8544. OutResults4_4Server Platform info returned from Query.  Field completed by Server.Planner.
  8545. OutResults5_2Vendor name returned from Query.  Field completed by Server.Planner.
  8546. OutResults5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8547. OutResults5_6Server Response Time returned from Query.  Field completed by Server.Planner.
  8548. OutResults5_3Server CPU info returned from Query.  Field completed by Server.Planner.
  8549. OutResults5_4Server Platform info returned from Query.  Field completed by Server.Planner.
  8550. OutResults6_2Vendor name returned from Query.  Field completed by Server.Planner.
  8551. OutResults6Machine Identifier returned from Query.  Field completed by Server.Planner.
  8552. OutResults6_6Server Response Time returned from Query.  Field completed by Server.Planner.
  8553. OutResults6_3Server CPU info returned from Query.  Field completed by Server.Planner.
  8554. OutResults6_4Server Platform info returned from Query.  Field completed by Server.Planner.
  8555. OutResults7_2Vendor name returned from Query.  Field completed by Server.Planner.
  8556. OutResults7Machine Identifier returned from Query.  Field completed by Server.Planner.
  8557. OutResults7_6Server Response Time returned from Query.  Field completed by Server.Planner.
  8558. OutResults7_3Server CPU info returned from Query.  Field completed by Server.Planner.
  8559. OutResults7_4Server Platform info returned from Query.  Field completed by Server.Planner.
  8560. OutResults8_2Vendor name returned from Query.  Field completed by Server.Planner.
  8561. OutResults8Machine Identifier returned from Query.  Field completed by Server.Planner.
  8562. OutResults8_6Server Response Time returned from Query.  Field completed by Server.Planner.
  8563. OutResults8_3Server CPU info returned from Query.  Field completed by Server.Planner.
  8564. OutResults8_4Server Platform info returned from Query.  Field completed by Server.Planner.
  8565. OutResults9_2Vendor name returned from Query.  Field completed by Server.Planner.
  8566. OutResults9Machine Identifier returned from Query.  Field completed by Server.Planner.
  8567. OutResults9_6Server Response Time returned from Query.  Field completed by Server.Planner.
  8568. OutResults9_3Server CPU info returned from Query.  Field completed by Server.Planner.
  8569. OutResults9_4Server Platform info returned from Query.  Field completed by Server.Planner.
  8570. OutResults10_2Vendor name returned from Query.  Field completed by Server.Planner.
  8571. OutResults10Machine Identifier returned from Query.  Field completed by Server.Planner.
  8572. OutResults10_6Server Response Time returned from Query.  Field completed by Server.Planner.
  8573. OutResults10_3Server CPU info returned from Query.  Field completed by Server.Planner.
  8574. OutResults10_4Server Platform info returned from Query.  Field completed by Server.Planner.
  8575. Machine ID:
  8576. Description:
  8577. OutResults1_5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8578. OutResults1_1System Description returned from Query.  Field completed by Server.Planner.
  8579. OutResults2_5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8580. OutResults2_1System Description returned from Query.  Field completed by Server.Planner.
  8581. OutResults3_5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8582. OutResults3_1System Description returned from Query.  Field completed by Server.Planner.
  8583. OutResults4_5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8584. OutResults4_1System Description returned from Query.  Field completed by Server.Planner.
  8585. OutResults5_5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8586. OutResults5_1System Description returned from Query.  Field completed by Server.Planner.
  8587. OutResults6_5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8588. OutResults6_1System Description returned from Query.  Field completed by Server.Planner.
  8589. OutResults7_5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8590. OutResults7_1System Description returned from Query.  Field completed by Server.Planner.
  8591. OutResults8_5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8592. OutResults8_1System Description returned from Query.  Field completed by Server.Planner.
  8593. OutResults9_5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8594. OutResults9_1System Description returned from Query.  Field completed by Server.Planner.
  8595. OutResults10_5Machine Identifier returned from Query.  Field completed by Server.Planner.
  8596. OutResults10_1System Description returned from Query.  Field completed by Server.Planner.
  8597. Server Analysis Results Summary:
  8598. OutSummaryEnter optional descriptive text.
  8599.     2S4S5S6S7S8S9S11S12S
  8600. Server Comparison Graphs
  8601. LayoutResponseChartServer.Planner inserts Response Chart here.  Use buttons to change sort order.
  8602. FormNewLocation
  8603.     2S4S5S6S7S8S9S11S12S13S2E14S18S
  8604.     '++LotusScript Development Environment:2:5:(Options):0:66
  8605. '++LotusScript Development Environment:2:5:(Forward):0:1
  8606. Declare Sub Click( Source As Button )
  8607. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8608. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8609. Private Sub BindEvents(Byval Objectname_ As String)
  8610.      Static Source As BUTTON
  8611.      Set Source = Bind(Objectname_)
  8612.      On Event Click From Source Call Click
  8613. End Sub
  8614. '++LotusScript Development Environment:2:2:Click:1:12
  8615. Sub Click( Source As Button )
  8616.      'Associated with Response Time
  8617.      Dim Workspace As New NotesUIWorkspace
  8618.      Dim ThisDoc As NotesUIDocument
  8619.      
  8620.      Dim iOutputCountx As Integer
  8621.      
  8622.      
  8623.      Set ThisDoc = Workspace.CurrentDocument
  8624.      
  8625.       '  on a saved query, make sure the query was performed again
  8626.      If bQueryPerformed <> True Then
  8627.           Messagebox "Need to Perform Query first, then Request Graphical Information", MB_ICONEXCLAMATION, "Graph Response Information"
  8628.           Exit Sub
  8629.      End If
  8630.      
  8631.      iOutputCountx = Cint( ThisDoc.FieldGetText( "numresults" ) )
  8632.      If iOutputCountx = 0 Then
  8633.           Messagebox "Need to Generate Output Results via Query for Graphs", MB_ICONEXCLAMATION, "Graph Response Information"
  8634.           Exit Sub
  8635.      End If
  8636.      
  8637.      'set up spreadsheet and chart
  8638.      '***how check to see if an object exists? ****
  8639.      On Error Goto ExitNow
  8640.      Set ResponseSheet = ThisDoc.GetObject( "ResponseSheet" )
  8641.      On Error Goto 0
  8642.      
  8643.      Dim SelIIdx As Integer
  8644.      Dim StartRow As Long, StartCol As Long, EndRow As Long, EndCol As Long
  8645.      
  8646.      'ResponseSheet.GetSelection SelIIdx, StartRow, StartCol, EndRow, EndCol
  8647.      
  8648.      StartRow = 2
  8649.      StartCol = 1
  8650.      EndRow =( iOutputCountx + StartRow ) - 1
  8651.      EndCol = 2
  8652.      
  8653.      '  set bidirectional sort
  8654.      If iResponseNameFlag > 0 Then
  8655.           iResponseNameFlag = -1
  8656.           ResponseSheet.Sort StartRow, StartCol, EndRow, EndCol, True, -1     
  8657.           ResponseChart.TitleText = "Average Response Time - Sort By Machine Name( Descending Order )"
  8658.           
  8659.      Else
  8660.           iResponseNameFlag = 1
  8661.           ResponseSheet.Sort StartRow, StartCol, EndRow, EndCol, True, 1   
  8662.           ResponseChart.TitleText = "Average Response Time - Sort By Machine Name( Ascending Order )"
  8663.           
  8664.      End If
  8665.      
  8666.      ThisDoc.GoToField( "LayoutResponseChart" )
  8667.      
  8668.      Exit Sub
  8669.      
  8670. ExitNow:
  8671.      Messagebox "Need to Generate Original Response Graph", MB_ICONEXCLAMATION, "Graph Response Information"
  8672.      Exit Sub
  8673.      
  8674.      
  8675. End Sub
  8676. New Button
  8677. Need a newer version of Notes to execute this button.
  8678.     0S0E
  8679. Sort by Machine
  8680.      
  8681.     '++LotusScript Development Environment:2:5:(Options):0:66
  8682. '++LotusScript Development Environment:2:5:(Forward):0:1
  8683. Declare Sub Click( Source As Button )
  8684. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8685. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8686. Private Sub BindEvents(Byval Objectname_ As String)
  8687.      Static Source As BUTTON
  8688.      Set Source = Bind(Objectname_)
  8689.      On Event Click From Source Call Click
  8690. End Sub
  8691. '++LotusScript Development Environment:2:2:Click:1:12
  8692. Sub Click( Source As Button )
  8693.      Dim Workspace As New NotesUIWorkspace
  8694.      Dim ThisDoc As NotesUIDocument
  8695.      
  8696.      Dim iOutputCounty As Integer
  8697.      
  8698.      
  8699.      Set ThisDoc = Workspace.CurrentDocument
  8700.      
  8701.       '  on a saved query, make sure the query was performed again
  8702.      If bQueryPerformed <> True Then
  8703.           Messagebox "Need to Perform Query first, then Request Graphical Information", MB_ICONEXCLAMATION, "Graph Response Information"
  8704.           Exit Sub
  8705.      End If
  8706.      
  8707.      iOutputCounty = Cint( ThisDoc.FieldGetText( "numresults" ) )
  8708.      If iOutputCounty = 0 Then
  8709.           Messagebox "Need to Generate Output Results via Query for Graphs", MB_ICONEXCLAMATION, "Graph Response Information"
  8710.           Exit Sub
  8711.      End If
  8712.      
  8713.      'set up spreadsheet and chart
  8714.      '***how check to see if an object exists? ****
  8715.      On Error Goto ExitNow
  8716.      Set ResponseSheet = ThisDoc.GetObject( "ResponseSheet" )
  8717.      On Error Goto 0
  8718.      
  8719.      Dim SelIIdx As Integer
  8720.      Dim StartRow As Long, StartCol As Long, EndRow As Long, EndCol As Long
  8721.      
  8722.      'ResponseSheet.GetSelection SelIIdx, StartRow, StartCol, EndRow, EndCol
  8723.      
  8724.      StartRow = 2
  8725.      StartCol = 1
  8726.      EndRow =( iOutputCounty + StartRow ) - 1
  8727.      EndCol = 2
  8728.      
  8729.      ' set bidirectional sort
  8730.      If iMachineResponseFlag > 0 Then
  8731.           iMachineResponseFlag = -2
  8732.           ResponseSheet.Sort StartRow, StartCol, EndRow, EndCol, True, -2
  8733.           ResponseChart.TitleText = "Average Response Time - Sort By Response Time( Descending Order )"
  8734.      Else
  8735.           iMachineResponseFlag = 2
  8736.           ResponseSheet.Sort StartRow, StartCol, EndRow, EndCol, True, 2 
  8737.           ResponseChart.TitleText = "Average Response Time - Sort By Response Time( Ascending Order )"
  8738.      End If
  8739.      
  8740.      ThisDoc.GoToField( "LayoutResponseChart" )
  8741.      
  8742.      Exit Sub
  8743.      
  8744. ExitNow:
  8745.      Messagebox "Need to Generate Original Response Graph", MB_ICONEXCLAMATION, "Graph Response Information"
  8746.      Exit Sub
  8747.      
  8748.      
  8749. End Sub
  8750. New Button
  8751. Need a newer version of Notes to execute this button.
  8752.     0S0E
  8753. Sort by ResponseTime
  8754. LayoutCostChartServer.Planner inserts Costs chart here.  Use buttons to change sort order.
  8755.     '++LotusScript Development Environment:2:5:(Options):0:66
  8756. '++LotusScript Development Environment:2:5:(Forward):0:1
  8757. Declare Sub Click( Source As Button )
  8758. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8759. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8760. Private Sub BindEvents(Byval Objectname_ As String)
  8761.      Static Source As BUTTON
  8762.      Set Source = Bind(Objectname_)
  8763.      On Event Click From Source Call Click
  8764. End Sub
  8765. '++LotusScript Development Environment:2:2:Click:1:12
  8766. Sub Click( Source As Button )
  8767.      'associated with Cost
  8768.      Dim Workspace As New NotesUIWorkspace
  8769.      Dim ThisDoc As NotesUIDocument
  8770.      
  8771.      Dim iOutputCount As Integer
  8772.      
  8773.      
  8774.      Set ThisDoc = Workspace.CurrentDocument
  8775.      
  8776.       '  on a saved query, make sure the query was performed again
  8777.      If bQueryPerformed <> True Then
  8778.           Messagebox "Need to Perform Query first, then Request Graphical Information", MB_ICONEXCLAMATION, "Graph Cost Information"
  8779.           Exit Sub
  8780.      End If
  8781.      
  8782.      iOutputCount = Cint( ThisDoc.FieldGetText( "numresults" ) )
  8783.      If iOutputCount = 0 Then
  8784.           Messagebox "Need to Generate Output Results via Query for Graphs", MB_ICONEXCLAMATION, "Graph Cost Information"
  8785.           Exit Sub
  8786.      End If
  8787.      
  8788.      'set up spreadsheet and chart
  8789.      '***how check to see if an object exists? ****
  8790.      On Error  Goto ExitNow
  8791.      Set CostSheet = ThisDoc.GetObject( "CostSheet" )
  8792.      Set CostChart = ThisDoc.GetObject( "CostChart" )
  8793.      On Error Goto 0
  8794.      
  8795.      Dim SelIIdx As Integer
  8796.      Dim StartRow As Long, StartCol As Long, EndRow As Long, EndCol As Long
  8797.      
  8798.      'CostSheet.GetSelection SelIIdx, StartRow, StartCol, EndRow, EndCol
  8799.      
  8800.      StartRow = 2
  8801.      StartCol = 1
  8802.      EndRow =( iOutputCount + StartRow ) - 1
  8803.      EndCol = 2
  8804.      
  8805.      '  set bidirectional sort
  8806.      If iCostNameFlag > 0 Then
  8807.           iCostNameFlag = -1
  8808.           CostSheet.Sort StartRow, StartCol, EndRow, EndCol, True, -1     
  8809.           CostChart.TitleText = "System Cost( List ) - Sort By Machine Name( Descending Order )"
  8810.      Else
  8811.           iCostNameFlag = 1
  8812.           CostSheet.Sort StartRow, StartCol, EndRow, EndCol, True, 1  
  8813.           CostChart.TitleText = "System Cost( List ) - Sort By Machine Name( Ascending Order )"
  8814.      End If
  8815.      
  8816.      ThisDoc.GoToField( "LayoutCostChart" )
  8817.      
  8818.      Exit Sub
  8819.      
  8820. ExitNow:
  8821.      Messagebox "Need to Generate Original Cost Graph", MB_ICONEXCLAMATION, "Graph Cost Information"
  8822.      Exit Sub
  8823.      
  8824. End Sub
  8825. New Button
  8826. Need a newer version of Notes to execute this button.
  8827.     0S0E
  8828. Sort by Machine
  8829.      
  8830.     '++LotusScript Development Environment:2:5:(Options):0:66
  8831. '++LotusScript Development Environment:2:5:(Forward):0:1
  8832. Declare Sub Click( Source As Button )
  8833. '++LotusScript Development Environment:2:5:(Declarations):0:2
  8834. '++LotusScript Development Environment:2:2:BindEvents:1:129
  8835. Private Sub BindEvents(Byval Objectname_ As String)
  8836.      Static Source As BUTTON
  8837.      Set Source = Bind(Objectname_)
  8838.      On Event Click From Source Call Click
  8839. End Sub
  8840. '++LotusScript Development Environment:2:2:Click:1:12
  8841. Sub Click( Source As Button )
  8842.      Dim Workspace As New NotesUIWorkspace
  8843.      Dim ThisDoc As NotesUIDocument
  8844.      
  8845.      Dim iOutputCount As Integer
  8846.      
  8847.      
  8848.      Set ThisDoc = Workspace.CurrentDocument
  8849.      
  8850.       '  on a saved query, make sure the query was performed again
  8851.      If bQueryPerformed <> True Then
  8852.           Messagebox "Need to Perform Query first, then Request Graphical Information", MB_ICONEXCLAMATION, "Graph Cost Information"
  8853.           Exit Sub
  8854.      End If
  8855.      
  8856.      iOutputCount = Cint( ThisDoc.FieldGetText( "numresults" ) )
  8857.      If iOutputCount = 0 Then
  8858.           Messagebox "Need to Generate Output Results via Query for Graphs", MB_ICONEXCLAMATION, "Graph Cost Information"
  8859.           Exit Sub
  8860.      End If
  8861.      
  8862.      'set up spreadsheet and chart
  8863.      '***how check to see if an object exists? ****
  8864.      On Error Goto ExitNow
  8865.      Set CostSheet = ThisDoc.GetObject( "CostSheet" )
  8866.      Set CostChart = ThisDoc.GetObject( "CostChart" )
  8867.      On Error Goto 0
  8868.      
  8869.      Dim SelIIdx As Integer
  8870.      Dim StartRow As Long, StartCol As Long, EndRow As Long, EndCol As Long
  8871.      
  8872.      'CostSheet.GetSelection SelIIdx, StartRow, StartCol, EndRow, EndCol
  8873.      
  8874.      StartRow = 2
  8875.      StartCol = 1
  8876.      EndRow =( iOutputCount + StartRow ) - 1
  8877.      EndCol = 2
  8878.      
  8879.      ' set bidirectional sort
  8880.      If iMachineCostFlag > 0 Then
  8881.           iMachineCostFlag = -2
  8882.           CostSheet.Sort StartRow, StartCol, EndRow, EndCol, True, -2
  8883.           CostChart.TitleText = "System Cost( List ) - Sort By Cost( Descending Order )"
  8884.      Else
  8885.           iMachineCostFlag = 2
  8886.           CostSheet.Sort StartRow, StartCol, EndRow, EndCol, True, 2
  8887.           CostChart.TitleText = "System Cost( List ) - Sort By Cost( Ascending Order )"
  8888.      End If
  8889.      
  8890.      ThisDoc.GoToField( "LayoutCostChart" )
  8891.      
  8892.      Exit Sub
  8893.      
  8894. ExitNow:
  8895.      Messagebox "Need to Generate Original Cost Graph", MB_ICONEXCLAMATION, "Graph Cost Information"
  8896.      Exit Sub
  8897.      
  8898. End Sub
  8899. New Button
  8900. Need a newer version of Notes to execute this button.
  8901.     0S0E
  8902. Sort by Cost
  8903. Systems Not Meeting Criteria
  8904. Vendor
  8905. Machine ID
  8906. Reason
  8907. vendor_1
  8908. machid_1
  8909. reason_1
  8910. vendor_2
  8911. machid_2
  8912. reason_2
  8913. vendor_3
  8914. machid_3
  8915. reason_3
  8916. vendor_4
  8917. machid_4
  8918. reason_4
  8919. vendor_5
  8920. machid_5
  8921. reason_5
  8922. vendor_6
  8923. machid_6
  8924. reason_6
  8925. vendor_7
  8926. machid_7
  8927. reason_7
  8928. vendor_8
  8929. machid_8
  8930. reason_8
  8931. vendor_9
  8932. machid_9
  8933. reason_9
  8934. vendor_10
  8935. machid_10
  8936. reason_10
  8937. vendor_11
  8938. machid_11
  8939. reason_11
  8940. vendor_12
  8941. machid_12
  8942. reason_12
  8943. vendor_13
  8944. machid_13
  8945. reason_13
  8946. vendor_14
  8947. machid_14
  8948. reason_14
  8949. vendor_15
  8950. machid_15
  8951. reason_15
  8952. vendor_16
  8953. machid_16
  8954. reason_16
  8955. vendor_17
  8956. machid_17
  8957. reason_17
  8958. vendor_18
  8959. machid_18
  8960. reason_18
  8961. vendor_19
  8962. machid_19
  8963. reason_19
  8964. vendor_20
  8965. machid_20
  8966. reason_20
  8967. vendor_21
  8968. machid_21
  8969. reason_21
  8970. vendor_22
  8971. machid_22
  8972. reason_22
  8973. vendor_23
  8974. machid_23
  8975. reason_23
  8976. vendor_24
  8977. machid_24
  8978. reason_24
  8979. vendor_25
  8980. machid_25
  8981. reason_25
  8982. Projected Growth Analysis:
  8983. Percentage Growth Projected:  
  8984. PerGrowthProj
  8985. PerGrowthProj_1The percentage value is applied to the user count values specified within this query.  
  8986. Vendor
  8987. Machine ID
  8988. Meets Current Requirements?
  8989. Meets Growth Requirements?
  8990. gvendor_1
  8991. gmachid_1
  8992. greason_1
  8993. greasong_1
  8994. gvendor_2
  8995. gmachid_2
  8996. greason_2
  8997. greasong_2
  8998. gvendor_3
  8999. gmachid_3
  9000. greason_3
  9001. greasong_3
  9002. gvendor_4
  9003. gmachid_4
  9004. greason_4
  9005. greasong_4
  9006. gvendor_5
  9007. gmachid_5
  9008. greason_5
  9009. greasong_5
  9010. gvendor_6
  9011. gmachid_6
  9012. greason_6
  9013. greasong_6
  9014. gvendor_7
  9015. gmachid_7
  9016. greason_7
  9017. greasong_7
  9018. gvendor_8
  9019. gmachid_8
  9020. greason_8
  9021. greasong_8
  9022. gvendor_9
  9023. gmachid_9
  9024. greason_9
  9025. greasong_9
  9026. gvendor_10
  9027. gmachid_10
  9028. greason_10
  9029. greasong_10
  9030. gvendor_11
  9031. gmachid_11
  9032. greason_11
  9033. greasong_11
  9034. gvendor_12
  9035. gmachid_12
  9036. greason_12
  9037. greasong_12
  9038. gvendor_13
  9039. gmachid_13
  9040. greason_13
  9041. greasong_13
  9042. gvendor_14
  9043. gmachid_14
  9044. greason_14
  9045. greasong_14
  9046. gvendor_15
  9047. gmachid_15
  9048. greason_15
  9049. greasong_15
  9050. gvendor_16
  9051. gmachid_16
  9052. greason_16
  9053. greasong_16
  9054. gvendor_17
  9055. gmachid_17
  9056. greason_17
  9057. greasong_17
  9058. gvendor_18
  9059. gmachid_18
  9060. greason_18
  9061. greasong_18
  9062. gvendor_19
  9063. gmachid_19
  9064. greason_19
  9065. greasong_19
  9066. gvendor_20
  9067. gmachid_20
  9068. greason_20
  9069. greasong_20
  9070. gvendor_21
  9071. gmachid_21
  9072. greason_21
  9073. greasong_21
  9074. gvendor_22
  9075. gmachid_22
  9076. greason_22
  9077. greasong_22
  9078. gvendor_23
  9079. gmachid_23
  9080. greason_23
  9081. greasong_23
  9082. gvendor_24
  9083. gmachid_24
  9084. greason_24
  9085. greasong_24
  9086. gvendor_25
  9087. gmachid_25
  9088. greason_25
  9089. greasong_25
  9090. Mailing Information:
  9091. SendTo}
  9092.     0S0E
  9093. SendToList of primary people to send memo.
  9094. CopyTo}
  9095. CopyToList of people to send a copy of the memo.
  9096. BlindCopyTo
  9097. BlindCopyToList of undisclosed people to send copies of memo.
  9098. Subject:
  9099. PhoneCaller
  9100. Phone Call: 
  9101. PhoneCaller
  9102. Subject
  9103. SubjectSubject of memo.
  9104. Delivery Priority:
  9105. Normal
  9106. DeliveryPriorityPriority: Normal, High (immediate delivery), Low (overnight delivery).
  9107. High|HLow|LNormal|N
  9108. Delivery Report:
  9109. DeliveryReportConditions upon which failure report will be sent back to you.
  9110. Basic|BConfirmed|CNo Report|N
  9111. Return Receipt:
  9112. ReturnReceipt
  9113. ReturnReceipt
  9114. ReturnReceiptReturn receipt requested.
  9115. No|0Yes|1
  9116. Query Information
  9117. Author:
  9118.     0S0E
  9119. LayoutAuthorOptional.  Author of this document.  Defaults to current user.
  9120. Creation Date: 
  9121. OutCreationDateOptional.  Date this form initially created.  Defaults to current date.
  9122. Modification Date: 
  9123. LayoutDateOptional.  Date this form last changed.  Defaults to current date.
  9124. Comments: 
  9125. OutCommentsOptional.  Any additional comments about this form.
  9126. Miscellaneous
  9127. LayoutResponseSheet
  9128. LayoutCostSheet
  9129. '++LotusScript Development Environment:2:5:(Options):0:66
  9130. '++LotusScript Development Environment:2:5:(Forward):0:1
  9131. Declare Function ProcessOneTask( sVendorDBBuffer As String, sOSPlatformWholeList As String )  As Integer
  9132. Declare Sub Initialize
  9133. Declare Function SearchForPossibleMatches( sLayoutServerTasks As String,  sSearchDB As String, sMachineID As String, sUserCount As String, sOther11 As String, sOther21 As String, bZeroBase As Integer, bMaxBase As Integer )  As NotesDocumentCollection 
  9134. Declare Function VerifyForm( sOSPlatform As String ) As Integer
  9135. Declare Function QueryOnDatabase( sSearchDB As String,  sMachineID As String, sLayoutServerTasks As String, sUserCount As String, sOther11 As String, sOther21 As String, sOSPlatformWholeList As String, iOutputCounty As Integer ) As Integer
  9136. Declare Function ProcessMultipleTasks( sVendorDBBuffer As String, sOSPlatformWholeList As String ) As Integer
  9137. Declare Function ProcessMultipleTasksCore( sSearchDB As String, sOSPlatformWholeList As String, iOutputCounta As Integer ) As Integer
  9138. Declare Function UserTaskCount( ThisDoc ) As Integer
  9139. Declare Sub ZeroFieldOut( ThisDoc As NotesUIDocument, sFieldNameOut As String )
  9140. Declare Function ExtractVendorName( sSearchDB As String ) As String
  9141. Declare Sub UserTaskArrayInitWhole ( doc As NotesDocument )
  9142. Declare Sub Click( Source As Button )
  9143. Declare Sub MainPathQuery( growthflag As Integer )
  9144. Declare Sub Objectexecute(Source As Button, Data As Variant)
  9145. '++LotusScript Development Environment:2:5:(Declarations):0:10
  9146. %INCLUDE "pstoarr.lss" 
  9147. Const MB_YESNO = 4
  9148. Const IDYES = 6
  9149. Const IDNO = 7
  9150. Const MB_ICONEXCLAMATION = 48
  9151. Const MB_ICONINFORMATION = 64
  9152. Const MB_ICONQUESTION = 32
  9153. Const numscripts = 10
  9154. '++LotusScript Development Environment:2:2:BindEvents:1:129
  9155. Private Sub BindEvents(Byval Objectname_ As String)
  9156.      Static Source As BUTTON
  9157.      Set Source = Bind(Objectname_)
  9158.      On Event Click From Source Call Click
  9159.      On Event Objectexecute From Source Call Objectexecute
  9160. End Sub
  9161. '++LotusScript Development Environment:2:1:ProcessOneTask:1:8
  9162. Function ProcessOneTask( sVendorDBBuffer As String, sOSPlatformWholeList As String )  As Integer
  9163.           ' accept query parameters for one task
  9164.      '  return results which will then need to be processed
  9165.      
  9166.      Dim ThisDoc As NotesUIDocument
  9167.      Dim Workspace As New NotesUIWorkspace
  9168.      
  9169.      Dim iPositionOfChar As Integer
  9170.      Dim iOutputCountz As Integer
  9171.      Dim iGrowthCount As Integer
  9172.      
  9173.      Dim sSearchDB As String
  9174.      
  9175.      Dim DateTime As New NotesDateTime( "1/1/96" )
  9176.      Dim DataCollection As NotesDocumentCollection 
  9177.      Dim DataCollection2 As NotesDocumentCollection 
  9178.      Dim sMachineIDx As String
  9179.      Dim VendorDB As NotesDatabase
  9180.      
  9181.      Set ThisDoc = Workspace.CurrentDocument
  9182.      
  9183.      iOutputCountz = 0
  9184.      iGrowthCount = 0
  9185.      iTotalCount = 0
  9186.      
  9187.      While Len( sVendorDBBuffer )  > 0
  9188.  '        extract filename only
  9189.           iPositionOfChar = Instr( 1, sVendorDBBuffer, ";" )
  9190.           If iPositionOfChar = 0 Then
  9191.                sVendorDB = sVendorDBBuffer
  9192.           Else
  9193.                sVendorDB = Left( sVendorDBBuffer,( iPositionOfChar - 1 ) )
  9194.           End If
  9195.           
  9196.           sVendorDB = Trim( sVendorDB )
  9197.           sSearchDB = "CP" & sVendorDB
  9198.           sSearchDB = sSearchDB & ".NSF"
  9199.           
  9200.           iVendorCount = iVendorCount - 1
  9201.           
  9202.             '  get list of possible machines under this vendor
  9203.           
  9204.           Set VendorDB = New NotesDatabase( "","" )
  9205.           Call VendorDB.Open( "",  sSearchDB ) 
  9206.           
  9207.           SearchFormula$ = " Form = ""Machine Identifier"" "
  9208.           Set DataCollection = VendorDB.Search( SearchFormula$, DateTime, 0 )
  9209.           Dim z As Integer
  9210.           Dim y As Integer
  9211.           Dim bSkipInsertion As Integer
  9212.           For z = 0 To ( DataCollection.Count - 1 )
  9213.                bSkipInsertion = False
  9214.           '  now get the list of machines found under this vendor
  9215.           '  query on the vendor database, machine id form and insert names returned
  9216.                If iRejectListCount = RejectMachineCount  Then
  9217.                     If bRejectMessageDisplayed = False Then
  9218.                          Messagebox ("Number of Machines analyzed for meeting the query parameters has been exceeded.  Continuing...")
  9219.                          bRejectMessageDisplayed = True
  9220.                     End If
  9221.                Else
  9222.                     '  first make sure the vendor and machine id is not already in the list
  9223.                     
  9224.                     If bSkipInsertion = False And ( iRejectListCount < ( RejectMachineCount + 1 ) ) Then              '  can then add to the list
  9225.                          sVendorName( iRejectListCount ) = ExtractVendorName( sSearchDB )
  9226.                          
  9227.                          Set MachineDoc = DataCollection.GetNthDocument( ( z + 1 ) )
  9228.                          sMachineIDx = MachineDoc.MachineID( 0 )
  9229.                          
  9230.                         'sMachineIDx = MachineDoc.MachineID( 0 )
  9231.                          
  9232.                          For y = 0 To ( iRejectListCount - 1 )
  9233.                               If sVendorName( y ) = ExtractVendorName( sSearchDB ) And sMachID ( y ) = sMachineIDx Then
  9234.                                    If Len( sReason( y ) ) > 0 Then
  9235.                                         bSkipInsertion = True
  9236.                                    End If
  9237.                               End If
  9238.                          Next y
  9239.                          If bSkipInsertion = False Then  '  still can add to list
  9240.                               sMachID( iRejectListCount ) =  sMachineIDx
  9241.                               iDisplayable( iRejectListCount ) = True
  9242.                               
  9243.                          '  now check on what scripts this machine has
  9244.                               
  9245.                               sLayoutServerTasks = ThisDoc.FieldGetText("LayoutServerTasks")
  9246.                               If Instr( 1, sLayoutServerTasks, "User Tasks" )  > 0 Then
  9247.                               '  remove User Tasks from the list and substitute in the tasks selected
  9248.                                    Dim iTempCalc As Integer
  9249.                                    Dim sLayoutServerTasksTemp2 As String
  9250.                                    iTempCalc = Instr( 1, sLayoutServerTasks, "User Tasks" )
  9251.                                    sLayoutServerTasksTemp2 = Left( sLayoutServerTasks, ( iTempCalc - 1 ) )
  9252.                                    sLayoutServerTasks = Mid( sLayoutServerTasks, ( iTempCalc + Len("User Tasks" ) ) )
  9253.                                    sLayoutServerTasks = sLayoutServerTasksTemp2 + sLayoutServerTasks
  9254.                               '  now add the tasks on
  9255.                                    Dim i As Integer
  9256.                                    For i = 1 To UserTaskArrayCount
  9257.                                         If sUserTaskArray( i, 2 ) > "0" Then
  9258.                                              sLayoutServerTasks = sUserTaskArray( i, 1 )  '  there will only be one task
  9259.                                         End If
  9260.                                    Next
  9261.                               End If
  9262.                               SearchFormula2$ = "Form = ""Vendor Data"" & DataUServerID = " & {"} & sMachineIDx & {"} & " & DataUScript1 = " & {"} & sLayoutServerTasks &  {"}
  9263.                               Set DataCollection2 = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  9264.                               If DataCollection2.Count = 0 Then
  9265.                                    sReason( iRejectListCount ) = sReason1 +  ":  " + sLayoutServerTasks
  9266.                               End If
  9267.                               iRejectListCount = iRejectListCount + 1
  9268.                          End If
  9269.                     End If
  9270.                End If
  9271.           Next
  9272.           
  9273.           Dim vTemp As Variant
  9274.           bProjectGrowthSelected = False  'alwy
  9275.           If( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "Replication Hub" ) Then
  9276.                vTemp = ThisDoc.Document.LayoutReplHub
  9277.                iOutputCountz = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( vTemp( 0 ) ), "*", "*",sOSPlatformWholeList, iOutputCountz )
  9278.           Elseif( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "Mail Routing Hub" ) Then
  9279.                vTemp = ThisDoc.Document.LayoutMailHub
  9280.                iOutputCountz = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( vTemp( 0 ) ), "*", "*",sOSPlatformWholeList, iOutputCountz )
  9281.           Elseif( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "User Tasks" ) Then
  9282.                For i = 1 To UserTaskArrayCount
  9283.                     If sUserTaskArray( i, 2 ) <> "0" Then
  9284.                          vTemp = ThisDoc.Document.LayoutNumActiveUsers
  9285.                          iOutputCountz = QueryOnDatabase( sSearchDB, "",   sUserTaskArray( i, 1 ), Cstr( vTemp( 0 ) ), "", "", sOSPlatformWholeList, iOutputCountz )
  9286.                          i = UserTaskArrayCount
  9287.                     End If
  9288.                Next i
  9289.           End If
  9290.           
  9291.           iTotalCount = iOutputCountz + iTotalCount
  9292.           
  9293.           'now do the growth projections
  9294.           If bProjectGrowthChecked = True Then
  9295.                bProjectGrowthSelected = True
  9296.                   '  now do percentage growth inc, vTemp contains the text version of numeric value
  9297.                Dim vTemp2 As Variant
  9298.                Dim vTempMultiplier As Variant
  9299.                Dim nTempMultiplier As Single
  9300.                Dim nTempResult As Single
  9301.                Dim ijunk As Integer
  9302.                Dim m As Integer
  9303.                
  9304.                If( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "Replication Hub" ) Then
  9305.                     vTemp = ThisDoc.Document.LayoutReplHub
  9306.                     vTemp2 = ThisDoc.Document.LayoutReplHub
  9307.                     vTempMultiplier = ThisDoc.Document.PerGrowthProj
  9308.                     nTempMultiplier = Cint( vTempMultiplier ( 0 ) )
  9309.                     nTempMultiplier = nTempMultiplier / 100
  9310.                     nTempResult = nTempMultiplier * Cint( vTemp( 0 ) )
  9311.                     vTemp( 0 ) = Cstr( nTempResult + Cint( vTemp2( 0 ) ) )
  9312.                     iGrowthCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( vTemp( 0 ) ), "*", "*", sOSPlatformWholeList, iGrowthCount )
  9313.                Elseif( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "Mail Routing Hub" ) Then
  9314.                     vTemp = ThisDoc.Document.LayoutMailHub
  9315.                     vTemp2 = ThisDoc.Document.LayoutMailHub
  9316.                     vTempMultiplier = ThisDoc.Document.PerGrowthProj
  9317.                     nTempMultiplier = Cint( vTempMultiplier ( 0 ) )
  9318.                     nTempMultiplier = nTempMultiplier / 100
  9319.                     nTempResult = nTempMultiplier * Cint( vTemp( 0 ) )
  9320.                     vTemp( 0 ) = Cstr( nTempResult + Cint( vTemp2( 0 ) ) )
  9321.                     iGrowthCount = QueryOnDatabase( sSearchDB, "", ThisDoc.FieldGetText( "LayoutServerTasks" ), Cstr( vTemp( 0 ) ), "*", "*",sOSPlatformWholeList, iGrowthCount )
  9322.                Elseif( ThisDoc.FieldGetText( "LayoutServerTasks" ) = "User Tasks" ) Then
  9323.                     For i = 1 To UserTaskArrayCount
  9324.                          If sUserTaskArray( i, 2 ) <> "0" Then
  9325.                               vTemp = ThisDoc.Document.LayoutNumActiveUsers
  9326.                               vTemp2 = ThisDoc.Document.LayoutNumActiveUsers
  9327.                               vTempMultiplier = ThisDoc.Document.PerGrowthProj
  9328.                               nTempMultiplier = Cint( vTempMultiplier ( 0 ) )
  9329.                               nTempMultiplier = nTempMultiplier / 100
  9330.                               nTempResult = nTempMultiplier * Cint( vTemp( 0 ) )
  9331.                               vTemp( 0 ) = Cstr( nTempResult + Cint( vTemp2( 0 ) ) )
  9332.                               iGrowthCount = QueryOnDatabase( sSearchDB, "",   sUserTaskArray( i, 1 ), Cstr( vTemp( 0 ) ), "", "", sOSPlatformWholeList, iGrowthCount )
  9333.                               i = UserTaskArrayCount
  9334.                          End If
  9335.                     Next i
  9336.                End If
  9337.           End If
  9338.           
  9339.  '        process next filename          
  9340.           If iPositionOfChar = 0 Then
  9341.                sVendorDBBuffer = ""
  9342.           Else
  9343.                sVendorDBBuffer = Trim( Right( sVendorDBBuffer, Len( sVendorDBBuffer )- iPositionOfChar ) )
  9344.           End If
  9345.           
  9346.      Wend
  9347.      
  9348.      ProcessOneTask = iTotalCount
  9349.      
  9350.      '  make sure there is a reason code inserted in each value
  9351.      For z = 0 To (iRejectListCount - 1)
  9352.           If sReason( z ) = "" Then
  9353.                sReason( z ) = sReason2 +  ":  " + sLayoutServerTasks
  9354.           End If
  9355.      Next
  9356.      
  9357.      
  9358.      'Call ThisDoc.FieldSetText("E1", "No" )
  9359.      '  now do percentage growth inc
  9360.      
  9361. End Function
  9362. '++LotusScript Development Environment:2:2:Initialize:1:10
  9363. Sub Initialize
  9364.      
  9365. End Sub
  9366. '++LotusScript Development Environment:2:1:SearchForPossibleMatches:2:8
  9367. Function SearchForPossibleMatches( sLayoutServerTasks As String,  sSearchDB As String, sMachineID As String, sUserCount As String, sOther11 As String, sOther21 As String, bZeroBase As Integer, bMaxBase As Integer )  As NotesDocumentCollection 
  9368. '     iOutputCount keeps track of number of output entries     
  9369.      Dim ThisDoc As NotesUIDocument
  9370.      Dim Workspace As New NotesUIWorkspace
  9371.      Dim DateTime As New NotesDateTime( "1/1/96" )
  9372.      Dim VendorDB As NotesDatabase
  9373.      Dim DataColl As NotesDocumentCollection
  9374.      Dim DataColl2 As NotesDocumentCollection
  9375.      Dim VendorDoc As NotesDocument
  9376.      Dim bMatchFound As Integer
  9377.      Dim SearchFormula2 As String
  9378.      Dim SearchFormula2Begin As String
  9379.      
  9380.      Set ThisDoc = Workspace.CurrentDocument
  9381.      Set VendorDB = New NotesDatabase( "", sSearchDB )
  9382.      
  9383. '         process specific database
  9384. '         Need to dynamically build query
  9385.  '      will build 'shadow' query for distinguishing the reason why a machine wasn't selected    
  9386.      
  9387.      SearchFormula$ =  "Form = " & {"} & "Vendor Data" & {"}
  9388.      SearchFormula2Begin$ =  "Form = " & {"} & "Vendor Data" & {"}
  9389.      
  9390.      
  9391.      nSearchTolerance = Csng( ThisDoc.FieldGetText( "LayoutTolerance" ) )   ' user count tolerance
  9392.      'nSearchTolerance =(( nSearchTolerance/2 ) / 100 )        ' now a percent
  9393.      nSearchTolerance =(( nSearchTolerance ) / 100 )        ' now a percent
  9394.      
  9395.      ' adjust sUserCount value translating real life-> benchmark  
  9396.      If sLayoutServerTasks = "Replication Hub" Then
  9397.           sUserCount = Cstr( Cint( sUserCount ) * nAdjust_ReplHub )
  9398.      Elseif sLayoutServerTasks = "Replication Hub" Then
  9399.           sUserCount = Cstr( Cint( sUserCount ) * nAdjust_MailHub )
  9400.      Else
  9401.           For i = 1 To UserTaskArrayCount
  9402.                If sLayoutServerTasks = sUserTaskArray( i, 1 ) Then
  9403.                     sUserCount = Cstr(( Cint( sUserCount ) * Cint( sUserTaskArray( i, 4 ) ) ) )
  9404.                End If
  9405.           Next
  9406.      End If
  9407.      
  9408.      'SearchFormula2$ = SearchFormula2$ + " & DataUNumberUsers1  >  " +  Cstr( 0 )  
  9409.      
  9410.      If sLayoutServerTasks = "Replication Hub"  Or  sLayoutServerTasks = "Mail Routing Hub" Then
  9411.                      ' Server Task
  9412.           SearchFormula$ = SearchFormula$ + " & DataUScript1  =  "+  {"} + sLayoutServerTasks +  {"}   
  9413.           SearchFormula2Begin$ = SearchFormula2Begin$ + " & DataUScript1  =  "+  {"} + sLayoutServerTasks +  {"}   
  9414.           
  9415.           ' Hub count with tolerance adjustment
  9416.           '  handle case where base for search should start at 0
  9417.           nUpper =  Cint( sUserCount ) +( Cint( sUserCount ) * nSearchTolerance )
  9418.           nLower =  Cint( sUserCount ) -( Cint( sUserCount ) * nSearchTolerance )
  9419.           If Cint( nLower ) = Cint( nUpper ) Then
  9420.                If bZeroBase = False Then
  9421.                     If nSearchTolerance = 0 Then
  9422.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  =  "+  Cstr( Cint( nLower ) ) 
  9423.                     Else
  9424.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr( Cint( nLower ) ) 
  9425.                     End If
  9426.                Else
  9427.                     SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr( 0 ) 
  9428.                End If
  9429.           Else
  9430.                If bZeroBase = False Then
  9431.                     If bMaxBase = False Then
  9432.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  9433.                     Else
  9434.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  
  9435.                     End If
  9436.                Else           '  start search with > 0 users    
  9437.                     ' check if there is a max number of users to be searched for
  9438.                     '  False means that check for a defined limit
  9439.                     If bMaxBase = False Then
  9440.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  " +  Cstr( 0 )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  9441.                     Else
  9442.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  " +  Cstr( 0 )  
  9443.                     End If           
  9444.                End If
  9445.           End If
  9446.           
  9447.           '  Replications/Hour with tolerance adjustment
  9448.           If sOther11 <> "*"  And sOther11 <> "0" Then        ' don't process wildcard
  9449.                nUpper =  Cint( sOther11 ) +( Cint( sOther11 ) * nSearchTolerance )
  9450.                nLower =  Cint( sOther11 ) -( Cint( sOther11 ) * nSearchTolerance )
  9451.                If Cint( nLower ) = Cint( nUpper ) Then
  9452.                     SearchFormula$ = SearchFormula$ + " & DataUOther11  > " +  Cstr( Cint( nLower ) ) 
  9453.                Else
  9454.                     SearchFormula$ = SearchFormula$ + " & DataUOther11  > " +  Cstr(( Cint( nLower ) - 1 ) )  & " & DataUOther11  < " +  Cstr(( Cint( nUpper ) + 1 ) )
  9455.                End If
  9456.           End If
  9457.           
  9458.           ' MB Replications/Hour with tolerance adjustment
  9459.           If sOther21 <> "*"  And sOther21 <> "0" Then        ' don't process wildcard
  9460.                nUpper =  Cint( sOther21 ) +( Cint( sOther21 ) * nSearchTolerance )
  9461.                nLower =  Cint( sOther21 ) -( Cint( sOther21 ) * nSearchTolerance )
  9462.                If Cint( nLower ) = Cint( nUpper ) Then
  9463.                     SearchFormula$ = SearchFormula$ + " & DataUOther21  >" +  Cstr( Cint( nLower ) ) 
  9464.                Else
  9465.                     SearchFormula$ = SearchFormula$ + " & DataUOther21  > " +  Cstr(( Cint( nLower ) - 1 ) )  & "DataUOther21  < " +  Cstr(( Cint( nUpper ) + 1 ) )
  9466.                End If
  9467.           End If
  9468.      Else
  9469.           If ThisDoc.FieldGetText( "LayoutNumActiveUsers" ) <> "" Then
  9470.                ' User count with tolerance adjustment
  9471.                nUpper =  Cint( sUserCount ) +( Cint( sUserCount ) * nSearchTolerance )
  9472.                nLower =  Cint( sUserCount ) -( Cint( sUserCount ) * nSearchTolerance )
  9473.                If Cint( nLower ) = Cint( nUpper ) Then
  9474.                     If bZeroBase = False Then
  9475.                          If nSearchTolerance = 0 Then
  9476.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  =  "+  Cstr( Cint( nLower ) ) 
  9477.                          Else
  9478.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr( Cint( nLower ) ) 
  9479.                          End If
  9480.                     Else
  9481.                          SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr( 0 ) 
  9482.                     End If
  9483.                Else
  9484.                     If bZeroBase = False Then
  9485.                          If bMaxBase = False Then
  9486.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  9487.                          Else
  9488.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  
  9489.                          End If
  9490.                     Else  
  9491.                          If bMaxBase = False Then
  9492.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )  &  " & DataUNumberUsers1  <  "+  Cstr(( Cint( nUpper ) + 1 ) )
  9493.                          Else   
  9494.                               SearchFormula$ = SearchFormula$ + " & DataUNumberUsers1  >  "+  Cstr(( Cint( nLower ) - 1 ) )                           
  9495.                          End If
  9496.                     End If
  9497.                End If
  9498.                 ' User Task
  9499.                SearchFormula$ = SearchFormula$ + " & DataUScript1  =  "+  {"} +  sLayoutServerTasks +  {"}   
  9500.                SearchFormula2Begin$ = SearchFormula2Begin$ + " & DataUScript1  =  "+  {"} +  sLayoutServerTasks +  {"}   
  9501.           End If
  9502.      End If
  9503.      
  9504.      If sMachineID <> "" Then
  9505.           SearchFormula$ = SearchFormula$ + " & DataUServerID  =  "+  {"} +  SMachineID +  {"}   
  9506.           
  9507.      End If
  9508.      
  9509.      If ThisDoc.FieldGetText( "LayoutUserResponseTime" )  <> "" Then
  9510.           If ThisDoc.FieldGetText( "LayoutUserResponseTime" )  = "Fast ( < 1 sec)" Then
  9511.                SearchFormula$ = SearchFormula$ + " &( DataUPercentFast * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" )  
  9512.           Elseif ThisDoc.FieldGetText( "LayoutUserResponseTime" )  = "Medium (1 - 3 sec)" Then
  9513.                SearchFormula$ = SearchFormula$ + " &( DataUPercentMedium * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" ) 
  9514.           Elseif ThisDoc.FieldGetText( "LayoutUserResponseTime" )  =  "Slow (3.1 - 5 sec)" Then
  9515.                SearchFormula$ = SearchFormula$ + " &( DataUPercentSlow * 100 ) >= " + ThisDoc.FieldGetText( "LayoutPercentRange" ) 
  9516.           End If
  9517.      End If
  9518.      '          end of query
  9519.      
  9520.      '  keep track of vendors search.  decrement vendor count for each one searched
  9521.      '  must make sure each vendor is represented
  9522.      If i = numoutputlines Then
  9523.           i = 1     ' wrap around
  9524.      Else
  9525.           i = i + 1
  9526.      End If 
  9527.      
  9528.      Set SearchForPossibleMatches = VendorDB.Search( SearchFormula$, DateTime, 0 )
  9529.       '  now do level 2 error checking, checking on individual componenets meeting criteria
  9530.      '  for each machine returned at this point, meets medium level criteria, will list as found in the reason code
  9531.      '  do another pass afterwards, any machine not listed as found in the reason code and iDisplayable = False, then reason 2 code inserted and iDisplayable = True
  9532.      '  need to determine if servertasks is always loaded
  9533.      Dim z As Integer
  9534.      Dim y As Integer
  9535.      Dim sMachineIDx As String
  9536.      bMatchFound = False
  9537.      If iRejectListCount = 0 Then
  9538.           'Messagebox " SearchForPossibleMatches; why is reject list count = 0"
  9539.      Elseif bProjectGrowthSelected = False Then  '  only do this processing on the first go round, not on the growth projections
  9540.           '  compare to existing list
  9541.           '  first clean out the found status, for this vendor
  9542.           For z = 0 To ( iRejectListCount - 1 )
  9543.                '  first need to reset the reason code from found, for this vendor - as it needs to be found for all scripts
  9544.                sTempString$ = ExtractVendorName( sSearchDB )  '  need to compare to sVendorName( z ), why no match
  9545.                If  sVendorName( z ) = ExtractVendorName( sSearchDB ) Then   '  match on vendor name, compare saved value to current vendor name
  9546.                     If sReason( z ) = "Found" Then
  9547.                          sReason( z) = ""
  9548.                          iDisplayable( z ) = False
  9549.                     End If
  9550.                End If
  9551.           Next z
  9552.           
  9553.           '  next need to isolate the possible matches
  9554.           For z = 0 To ( iRejectListCount - 1)
  9555.                sTempString$ = ExtractVendorName( sSearchDB )  '  need to compare to sVendorName( z ), why no match
  9556.                If  sVendorName( z ) = ExtractVendorName( sSearchDB ) Then   '  match on vendor name, compare saved value to current vendor name
  9557.                     If SearchForPossibleMatches.Count > 0 Then
  9558.                          For y = 1 To SearchForPossibleMatches.Count
  9559.                               Set DataDoc = SearchForPossibleMatches.GetNthDocument( y )
  9560.                               sMachineIDx = DataDoc.DataUServerID( 0 )
  9561.                               If sMachID( z ) = sMachineIDx  And Len( sReason( z ) ) < 2 Then  '  match on machine name, make sure nothing inserted before
  9562.                                    sReason( z ) = "Found"            
  9563.                                    bMatchFound = True  ' added to list
  9564.                               End If
  9565.                          Next
  9566.                     End If
  9567.                End If
  9568.           Next z
  9569.           
  9570.           '  now try and identify which have no listing
  9571.           For z = 0 To ( iRejectListCount - 1)
  9572.                sTempString$ = ExtractVendorName( sSearchDB )  '  need to compare to sVendorName( z ), why no match
  9573.                If  sVendorName( z ) = ExtractVendorName( sSearchDB ) Then   '  match on vendor name, compare saved value to current vendor name
  9574.                         ' no datapoints meet the criteria, mark as with reason 1 or 2
  9575.                     '  keep same prefix for search formula, change for possible machines
  9576.                     SearchFormula2$ = SearchFormula2Begin$ + " & DataUServerID  =  "+  {"} + sMachID( z ) +  {"}   
  9577.                     Set DataColl2 = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  9578.                     If Len( sReason( z ) ) < 2  Then  '  has a reason been given before
  9579.                          '  now need to distinguish between not found and not in range
  9580.                          '  query against the workoad with a user count of 1, same vendor, same script
  9581.                          '  if found, insert reason 2, else insert reason 1
  9582.                          If DataColl2.Count = 0 Then    ' no records found
  9583.                               sReason( z ) = sReason1 + ":  " + sLayoutServerTasks  'not found
  9584.                          Else
  9585.                               sReason( z ) = sReason2 + ":  " + sLayoutServerTasks  'not in range
  9586.                          End If
  9587.                          iDisplayable( z ) = True
  9588.                          bMatchFound = True    '  added to list
  9589.                     End If
  9590.                End If
  9591.           Next z
  9592.           
  9593.      End If
  9594.      
  9595. End Function
  9596. '++LotusScript Development Environment:2:1:VerifyForm:1:8
  9597. Function VerifyForm( sOSPlatform As String ) As Integer
  9598.      Dim ThisDoc As NotesUIDocument
  9599.      Dim Workspace As New NotesUIWorkspace
  9600.      Dim ThisDocBE As NotesDocument
  9601.      Dim lBoxType As Long
  9602.      Dim iAnswer As Integer
  9603.      Dim vPlatformArray As Variant
  9604.      Dim i As Integer
  9605.      Dim j As Integer
  9606.      Dim sFieldNameOut As String
  9607.      
  9608.      Set ThisDoc = Workspace.CurrentDocument
  9609.      Set ThisDocBE = ThisDoc.Document
  9610.      
  9611.      ThisDoc.document.OutSummary = ""
  9612.      
  9613.      ThisDoc.document.OutResults1 = ""
  9614.      For i = 1 To numoutputlines
  9615.           sFieldNameOut = "OutResults"& Cstr( i )
  9616.           Call ThisDoc.FieldSetText( sFieldNameOut, "" )
  9617.           For j = 1 To 6
  9618.               ' If j <> 5 Then      'somehow I skipped 5 - big mistake!
  9619.                '  added 5, dup of machine id name
  9620.                sFieldNameOutx = sFieldNameOut & "_" & Cstr( j )
  9621.                Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  9622.                ' End If
  9623.           Next j
  9624.           sFieldNameOutx = "E" & Cstr( i )
  9625.           Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  9626.           
  9627.           AllResults( i ) = ""
  9628.           AllResultsVendor( i ) = ""
  9629.      Next i
  9630.      For i = 0 To ( RejectMachineCount - 1 )
  9631.           sReason( i ) = ""
  9632.           sVendorName( i ) = ""
  9633.           sMachID( i ) = ""
  9634.           iDisplayable( i ) = False
  9635.           sFieldNameOutx = "vendor_" & Cstr( i + 1)
  9636.           Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  9637.           sFieldNameOutx = "machid_" & Cstr( i + 1 )
  9638.           Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  9639.           sFieldNameOutx = "reason_" & Cstr( i + 1 )
  9640.           Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  9641.           sFieldNameOutx = "reason_" & Cstr( i + 1 )
  9642.           Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  9643.      Next i
  9644.      
  9645.      For i = 0 To ( GrowthMachineCount  - 1)
  9646.           sgReason( i ) = ""
  9647.           sgReasong( i ) = ""
  9648.           sgVendorName( i ) = ""
  9649.           sgMachID( i ) = ""
  9650.           
  9651.           sFieldNameOutx = "gvendor_" & Cstr( i  + 1 )
  9652.           Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  9653.           sFieldNameOutx = "gmachid_" & Cstr( i  + 1 )
  9654.           Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  9655.           sFieldNameOutx = "greason_" & Cstr( i + 1 )
  9656.           Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  9657.           sFieldNameOutx = "greasong_" & Cstr( i  + 1 )
  9658.           Call ThisDoc.FieldSetText( sFieldNameOutx, "" )
  9659.      Next i
  9660.      
  9661.  '    Server Tasks or User Tasks need to have a value
  9662.      If Len( ThisDoc.FieldGetText( "LayoutServerTasks" ) ) = 0 Then
  9663.           Messagebox "Enter Task( s ) Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  9664.           ThisDoc.GotoField( "LayoutServerTasks" )
  9665.           VerifyForm = False
  9666.           Exit Function
  9667.      End If
  9668.      
  9669.      For j = 1 To UserTaskArrayCount
  9670.           For i = 1 To 3
  9671.                                '  make sure each field has at least a "0"
  9672.                sTempName$ = sUserTaskArray( j, 3 ) + "_" + Cstr( i ) 
  9673.                Call ZeroFieldOut( ThisDoc, sTempName$ )
  9674.           Next i
  9675.      Next j
  9676.      
  9677.  '    make sure data associated with Server Tasks is filled in
  9678.      '  check on replhub
  9679.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "R" ) > 0 Then
  9680.           If Len( ThisDoc.FieldGetText( "LayoutReplHour" ) ) = 0 Then
  9681.                Messagebox "Enter Replications/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  9682.                ThisDoc.GotoField( "LayoutReplHour" )
  9683.                VerifyForm = False
  9684.                Exit Function
  9685.           End If
  9686.           If Len( ThisDoc.FieldGetText( "LayoutMBReplHour" ) ) = 0 Then
  9687.                Messagebox "Enter MB Replicated/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  9688.                ThisDoc.GotoField( "LayoutMBReplHour" )
  9689.                VerifyForm = False
  9690.                Exit Function
  9691.           End If
  9692.      End If
  9693.           '  check on mailhub
  9694.      If  Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "M" ) > 0  Then
  9695.           If Len( ThisDoc.FieldGetText( "LayoutMessagesHour" ) ) = 0 Then
  9696.                Messagebox "Enter Messages/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  9697.                ThisDoc.GotoField( "LayoutMessagesHour" )
  9698.                VerifyForm = False
  9699.                Exit Function
  9700.           End If
  9701.           If Len( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) ) = 0 Then
  9702.                Messagebox "Enter MB Messages/Hour Specification( s )", MB_ICONEXCLAMATION, "Verify Form"
  9703.                ThisDoc.GotoField( "LayoutMBMessagesHour" )
  9704.                VerifyForm = False
  9705.                Exit Function
  9706.           End If
  9707.      End If
  9708.           '  check on user tasks
  9709.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ),  "U" ) > 0  Then
  9710.           
  9711.           If VerifyProfileMaster( ThisDoc ) = False Then
  9712.                Exit Function
  9713.           End If
  9714.           
  9715.            ' passes( almost ) all tests.  If User Tasks is specified, sum up the results
  9716.           Dim iTemp As Integer
  9717.           For i = 1 To UserTaskArrayCount
  9718.                iTemp = 0
  9719.                For j = 1 To 3
  9720.                     sTempName$ = sUserTaskArray( i, 3 ) + "_" + Cstr( j )
  9721.                     sTempProfile$ = "LayoutTotalProfile_" + Cstr( j )
  9722.                     ' storing the user count
  9723.                     iTemp =( Cint( ThisDoc.FieldGetText( sTempName$ ) )/100 ) *( Cint( ThisDoc.FieldGetText( sTempProfile$ ) ) ) + iTemp
  9724.                Next j
  9725.                sTempName$ = sUserTaskArray( i, 3 ) 
  9726.                Call ThisDoc.FieldSetText( sTempName$, Cstr( iTemp ) )
  9727.                '  workaround
  9728.                If i = 1 Then
  9729.                     Call ThisDoc.FieldSetText( "LayoutMail", Cstr( iTemp ) )
  9730.                Elseif i = 2 Then
  9731.                     Call ThisDoc.FieldSetText( "LayoutMailDB", Cstr( iTemp ) )
  9732.                Elseif i = 3 Then
  9733.                     Call ThisDoc.FieldSetText( "LayoutGroupware", Cstr( iTemp ) )
  9734.                Elseif i = 4 Then
  9735.                     Call ThisDoc.FieldSetText( "LayoutCS", Cstr( iTemp ) )
  9736.                Elseif i = 5 Then
  9737.                     Call ThisDoc.FieldSetText( "LayoutDatabase", Cstr( iTemp ) )
  9738.                Elseif i = 6 Then
  9739.                     Call ThisDoc.FieldSetText( "LayoutWW", Cstr( iTemp ) )
  9740.                Elseif i = 7 Then
  9741.                     Call ThisDoc.FieldSetText( "LayoutWB", Cstr( iTemp ) )
  9742.                Elseif i = 8 Then
  9743.                     Call ThisDoc.FieldSetText( "LayoutR5MDB", Cstr( iTemp ) )
  9744.                End If
  9745.                '  insert information into summary field
  9746.                sUserTaskArray( i, 2 ) = Cstr( iTemp )
  9747.           Next i
  9748.           
  9749.      End If
  9750.      
  9751.  '    % Fall within range 
  9752.  '    Make sure this is set    
  9753.      LayoutPercentRange =  ThisDoc.FieldGetText( "LayoutPercentRange" )
  9754. '     Messagebox LayoutPercentRange
  9755.      If LayoutPercentRange = "" Then
  9756.           Messagebox "Enter Percent Range", MB_ICONEXCLAMATION, "Verify Form"
  9757.           ThisDoc.GotoField( "LayoutPercentRange" )
  9758.           VerifyForm = False
  9759.           Exit Function
  9760.      End If
  9761.      
  9762. '    User Response Time
  9763.      ResponseTimeFlag$ =  ThisDoc.FieldGetText( "LayoutUserResponseTime" )
  9764.      If ResponseTimeFlag$ = "" Then
  9765.           Messagebox "Enter Response Time", MB_ICONEXCLAMATION, "Verify Form"
  9766.           ThisDoc.GotoField( "LayoutUserResponseTime" )
  9767.           VerifyForm = False
  9768.           Exit Function
  9769.      End If
  9770.      
  9771.  '    OS Platform Parsing
  9772.      If ThisDoc.FieldGetText( "LayoutOSPlatform" ) = "" Then
  9773.           Messagebox "Specify OS Platform(s)", MB_ICONEXCLAMATION, "Query on Data"
  9774.           ThisDoc.Gotofield( "LayoutOSPlatform" )
  9775.      End If
  9776.      
  9777.      '  verify percentage Growth projected value
  9778.      Dim iitemp As Integer
  9779.      If ThisDocBE.HasItem( "PerGrowthProj" )  = True  And Len( ThisDoc.FieldGetText( "PerGrowthProj" ) )  > 0 Then  '  make sure item exists
  9780.           iitemp = Cint( ThisDoc.FieldGetText( "PerGrowthProj" ) )
  9781.           iitemp = Len( ThisDoc.FieldGetText( "PerGrowthProj" ) )
  9782.           If  ( Cint( ThisDoc.FieldGetText( "PerGrowthProj" ) ) ) > 100 Or Len( ThisDoc.FieldGetText( "PerGrowthProj" ) ) = 0 Then
  9783.                Messagebox "Specify Percentage Growth Projected, within valid range; >=0 and <= 100", MB_ICONEXCLAMATION, "Query on Data"
  9784.                ThisDoc.Gotofield( "PerGrowthProj" )
  9785.           Else
  9786.           '  set flag that something is specified
  9787.                bProjectGrowthChecked = True
  9788.           End If
  9789.      End If
  9790.      
  9791.      VerifyForm = True
  9792.      
  9793. End Function
  9794. '++LotusScript Development Environment:2:1:QueryOnDatabase:1:8
  9795. Function QueryOnDatabase( sSearchDB As String,  sMachineID As String, sLayoutServerTasks As String, sUserCount As String, sOther11 As String, sOther21 As String, sOSPlatformWholeList As String, iOutputCounty As Integer ) As Integer
  9796. '     iOutputCounty keeps track of number of output entries     
  9797.      Dim Workspace As New NotesUIWorkspace
  9798.      Dim ThisDoc As NotesUIDocument
  9799.      Dim DateTime As New NotesDateTime( "1/1/96" )
  9800.      Dim DataCollection As NotesDocumentCollection 
  9801.      
  9802.      Dim DataCollection2 As NotesDocumentCollection
  9803.      Dim DataDoc As NotesDocument
  9804.      Dim MachineDoc As NotesDocument
  9805.      Dim RTItem As NotesRichTextItem
  9806.      Dim sFieldNameOutOut As String
  9807.      
  9808.      Dim iPositionOfChar As Integer
  9809.      Dim iSkipCount As Integer
  9810.      Dim bZeroBase As Integer
  9811.      Dim bMaxBase As Integer
  9812.      Dim sCPUInfo As String
  9813.      Dim sMachineID2 As String
  9814.      Dim vVendorDB As Variant
  9815.      Dim vTemp1 As Variant
  9816.      Dim vTemp2 As Variant
  9817.      
  9818.      Dim nUpper As Single
  9819.      Dim nLower As Single
  9820.      Dim nSearchTolerance As Single
  9821.      
  9822.      Dim dDataUPercentFast As Double
  9823.      Dim dDataUPercentMedium As Double
  9824.      Dim dLayoutPercentRange As Double
  9825.      
  9826.      
  9827.      Set ThisDoc = Workspace.CurrentDocument
  9828.      
  9829.      temp = Trim( sSearchDB )
  9830.      sMachineID2 = sMachineID    '  save off original machine name
  9831.      
  9832.      Set VendorDB = New NotesDatabase( "", Trim( sSearchDB ) )
  9833.      
  9834.      bQueryFlag = True
  9835.      bZeroBase= False    '  search begins at user count > 0
  9836.      bMaxBase = True  '  search does have a max user count
  9837.      
  9838.      iSkipCount = 0  ' number of dups found
  9839.      
  9840.      '  determine if estimated records should be included
  9841.      vEstimatedChoices = ThisDoc.FieldGetText("EstimatedChoices")
  9842.      
  9843.      '  call central routine to query on specified database for specified task
  9844.      Set DataCollection = SearchForPossibleMatches( sLayoutServerTasks, sSearchDB, sMachineID, sUserCount, sOther11, sOther21,  _
  9845.      bZeroBase, bMaxBase )
  9846.      
  9847.      If bProjectGrowthSelected = False Then  '  verfication for first pass only
  9848.       '  see if there are any entries which haven't been accounted for.  There should be an entry in sReason for each one.
  9849.           
  9850.           For i = 0 To ( iRejectListCount - 1 )
  9851.                If sReason( i ) = "Found" Then
  9852.                     sReason( i ) = ""
  9853.                Elseif sReason( i ) = "" Then
  9854.                     sReason( i ) = sReason2 + ":  " + sLayoutServerTasks
  9855.                     iDisplayable( i ) = True
  9856.                End If
  9857.           Next i
  9858.      End If
  9859.      
  9860.      '  assumes there's at least one entry
  9861.      For i = 1 To DataCollection.count
  9862.           If bProjectGrowthSelected = False Then  'verification for first pass only
  9863.                If ( iVendorCount + iOutputCounty ) = numoutputlines Then
  9864.                     If bAlreadyDisplayedWarning = False Then
  9865.                          Messagebox "Warning:  Reached Limit on entries to be added to the Server Analysis Results.  Need to verify the systems listed in the Systems Not Meeting Criteria Section as a result.", MB_ICONEXCLAMATION, "Output Verification"
  9866.                          bAlreadyDisplayedWarning = True
  9867.                     End If
  9868.                     QueryOnDatabase = iOutputCounty 
  9869.                     Exit Function
  9870.                End If
  9871.                
  9872.                Set DataDoc = DataCollection.GetNthDocument( i )
  9873.                 '   verify that machine is not already specified
  9874.                sMachineID= DataDoc.DataUServerID( 0 )
  9875.                SkipOver = False
  9876.                For j = 1 To iOutputCounty
  9877.                     sFieldNameOutOut = "OutResults"& Cstr( j )
  9878.                     If sMachineID = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  9879.                     '  now need to verify that vendors are not the same either
  9880.                          sFieldNameOutOut = "OutResults" & Cstr( j ) & "_2"
  9881.                          sVendor = ExtractVendorName( sSearchDB )
  9882.                          If sVendor = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  9883.                               SkipOver = True
  9884.                               iSkipCount = iSkipCount + 1
  9885.                          End If
  9886.                     End If
  9887.                Next j
  9888.           vCertifyCheck = ThisDoc.Document.CertifyCheckOn
  9889.                               'when CertifyCheckOn = "0" - debug mode
  9890.           If ( vCertifyCheck( 0 ) = "1" And ThisDocBE.IsSigned ) Or vCertifyCheck( 0 ) = "0" Then
  9891. %END REM
  9892.           '  make sure the document is signed
  9893.           'vCertifyCheck = DataDoc.CertifyCheckOn
  9894.                vCertifyCheck=ThisDoc.Document.CertifyCheckOn
  9895.                vIsSignedField = DataDoc.IsSignedField
  9896.                Dim vEstimated As Variant
  9897.                vEstimated = DataDoc.Estimated
  9898.                If vCertifyCheck( 0 ) = "1"  Then
  9899.                     If ( ( vIsSignedField( 0 ) = "0" And vEstimated( 0 ) = "No")  Or ( vIsSignedField( 0 ) = "1" And vEstimated ( 0 )= "Yes"  )  ) Then
  9900.                          SkipOver=True
  9901.                     Elseif ( vEstimated ( 0 )= "Yes" And vEstimatedChoices = "No" ) Then
  9902.                          SkipOver=True
  9903.                     End If
  9904.                End If
  9905.                
  9906.                '  make sure datadoc is within range
  9907.                vtemp1=DataDoc.DataUAverage
  9908.                If vtemp1( 0 ) > 5  Then
  9909.                     SkipOver = True
  9910.                     Elseif vtemp1( 0 ) > 3 And( ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Medium (1 - 3 sec)" Or _
  9911.                ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Fast ( < 1 sec)" ) Then
  9912.                     SkipOver = True
  9913.                Elseif vtemp1( 0 ) > 1 And ThisDoc.FieldGetText( "LayoutUserResponseTime" ) = "Fast ( < 1 sec)" Then
  9914.                     SkipOver = True
  9915.                End If
  9916.                
  9917.                 '  capture machine description, retrieve machine id info
  9918.                SearchFormula2$ = " Form = ""Machine Identifier""  & MachineID = " & {"} & sMachineID & {"} & " & ( "
  9919.                
  9920.                '  if replication hub selected, insert additional query parameters in
  9921.                
  9922.                '  check to see if document meets platform criteria
  9923.                '  check to see if multiple platforms are specified
  9924.                If Len( ThisDoc.FieldGetText( "LayoutOSPlatform" ) ) <> 0 Then
  9925.                     sOSPlatform = ThisDoc.FieldGetText( "LayoutOSPlatform" )
  9926.                Else
  9927.                     sOSPlatform = sOSPlatformWholeList
  9928.                End If
  9929.                
  9930.                If Instr( 1, sOSPlatform, ";" )  > 0 Then
  9931.                     While Len( sOSPlatform ) > 0
  9932.                          iPositionOfChar2 = Instr( 1, sOSPlatform, ";" )
  9933.                          If iPositionOfChar2 = 0 Then
  9934.                               sOSPlatformTemp = Trim( sOSPlatform )
  9935.                               SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & sOSPlatformTemp & {"} 
  9936.                          Else
  9937.                               sOSPlatformTemp = Trim( Left( sOSPlatform,( iPositionOfChar2 - 1 ) ) )
  9938.                               SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & sOSPlatformTemp & {"} & "  |  "
  9939.                          End If
  9940.                          
  9941.                          If iPositionOfChar2 = 0 Then
  9942.                               sOSPlatform = ""
  9943.                          Else
  9944.                               sOSPlatform = Trim( Right( sOSPlatform,( Len( sOSPlatform ) - iPositionOfChar2 ) ) )
  9945.                          End If
  9946.                     Wend
  9947.                Else
  9948.                     '  handle case where single specification
  9949.                     SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & ThisDoc.FieldGetText( "LayoutOSPlatform" ) & {"} 
  9950.                End If
  9951.                
  9952.                If ThisDoc.FieldGetText( "LayoutDiskConfiguration" ) = "Includes RAID 5" Then
  9953.                     SearchFormula2$ = SearchFormula2$ + " & ( MachineDiskType1 =  " +  {"} +  "Includes RAID 5" +  {"}  + _
  9954.                     " | MachineDiskType2 = "   +  {"} +  "Includes RAID 5" +  {"} + _
  9955.                     " | MachineDiskType3 = "   +  {"} +  "Includes RAID 5" +  {"} + _
  9956.                     " | MachineDiskType4 = "   +  {"} +  "Includes RAID 5" +  {"} + " )"
  9957.                 '  need to add on Type3 and Type4 *********
  9958.                End If
  9959.                
  9960.                SearchFormula2$ = SearchFormula2$ +  " )"
  9961.                
  9962.                Set MachineIDcollection = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  9963.                If(( MachineIDcollection.count > 0 ) And( SkipOver = False )   And ( ( iOutputCounty + iVendorCount ) <( numoutputlines + 1 ) ) ) Then
  9964.                     
  9965.                     iOutputCounty = iOutputCounty + 1   '  position at next entry
  9966.                     'Redim Preserve AllResults( iOutputCounty + 1 )
  9967.                     
  9968.                     AllResults( iOutputCounty )=sMachineID
  9969.                     ' save off machine id
  9970.                     sFieldNameOutOut = "OutResults"& Cstr( iOutputCounty )
  9971.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, AllResults( iOutputCounty ) )
  9972.                     
  9973.                     '  now save it off in a second field, _5 extension
  9974.                     sFieldNameOutOut = "OutResults"& Cstr( iOutputCounty ) & "_5"
  9975.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, AllResults( iOutputCounty ) )
  9976.                     
  9977.                     '  save off estimation flag, *** for now take datadoc - which one is selected?
  9978.                     sFieldNameOutOut = "E" & Cstr( iOutputCounty )
  9979.                     vtemp1=DataDoc.Estimated
  9980.                     
  9981.                     ' Messagebox (" doc is estimated?:" + vtemp1( 0 )  + "end")
  9982.                     If ( vtemp1( 0 )  = ""  Or vtemp1( 0 ) = "0") Then
  9983.                          EstimatedDisplay( iOutputCounty ) = "No"
  9984.                          Call ThisDoc.FieldSetText(sFieldNameOutOut, "No" )
  9985.                     Elseif ( vtemp1( 0 ) = "1" ) Then
  9986.                          EstimatedDisplay( iOutputCounty ) = "Yes"
  9987.                          Call ThisDoc.FieldSetText(sFieldNameOutOut, "Yes" )
  9988.                     Else
  9989.                          EstimatedDisplay( iOutputCounty ) = vtemp1( 0 )
  9990.                          Call ThisDoc.FieldSetText(sFieldNameOutOut, vtemp1( 0 ) )
  9991.                     End If
  9992.                     
  9993.                     sFieldNameOutOut = "OutResults"& Cstr( iOutputCounty )
  9994.                     ' save off machine description
  9995.                     sFieldNameOutOut = sFieldNameOutOut & "_1"
  9996.                     ' ***must make sure do not exceed length of table
  9997.                     ' ****must make sure a check is made if the documents are not found when expected
  9998.                     Set MachineIDDoc = MachineIDcollection.GetNthDocument( 1 )
  9999.                     temp = MachineIDDoc.GetItemValue( "MachineDescription" )
  10000.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, temp( 0 ) )
  10001.                     'save off vendor name
  10002.                     sFieldNameOutOut =  "OutResults" & Cstr( iOutputCounty ) & "_2"
  10003.                     sVendorDB = Mid$( SSearchDB, 3,( Len( sSearchDB ) - 6 ) )
  10004.                     AllResultsVendor( iOutputCounty ) = sVendorDB
  10005.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, sVendorDB )
  10006.                     ' save off cpu/# info
  10007.                     sFieldNameOutOut =   "OutResults" & Cstr( iOutputCounty ) & "_3"
  10008.                     vCPUInfo = MachineIDDoc.GetItemValue( "MachineCPUType" ) 
  10009.                     vCPUInfo( 0 ) = vCPUInfo( 0 ) & "/"
  10010.                     vTemp2 = MachineIDDoc.GetItemValue( "MachineCPUSpeed" ) 
  10011.                     vCPUInfo( 0 ) = vCPUInfo( 0 ) & vTemp2( 0 ) 
  10012.                     vCPUInfo( 0 ) = vCPUInfo( 0 ) & " x "
  10013.                     vTemp1 = MachineIDDoc.GetItemValue( "MachineNumberofCPUs" )
  10014.                     vCPUInfo( 0 ) = vCPUInfo( 0 ) & " " & Cstr( vTemp1( 0 ) )
  10015.                     If Cint( vTemp1( 0 ) ) > 1 Then
  10016.                          vCPUInfo( 0 ) = vCPUInfo( 0 ) & " (SMP)"
  10017.                     End If
  10018.                     
  10019.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, vCPUInfo( 0 ) )
  10020.                      ' save off OS info
  10021.                     sFieldNameOutOut = "OutResults"& Cstr( iOutputCounty ) & "_4"
  10022.                     vCPUInfo1 = MachineIDDoc.GetItemValue( "MachinePlatform" )
  10023.                     Call ThisDoc.FieldSetText( sFieldNameOutOut, vCPUInfo1( 0 ) )
  10024.                     
  10025.                     'create doclink
  10026.                     sFieldNameOutOut = "OR" & Cstr( iOutputCounty ) & "_5"
  10027.                     ' *** not sure how to create doclink on notesuidocument - subform?
  10028.                     
  10029.                     '  save off Average Response Time info for graphing
  10030.                     bQueryPerformed = True
  10031.                     vAverageResponse( iOutputCounty ) = DataDoc.DataUAverage
  10032.                     
  10033.                     '  save off Machine Cost for graphing
  10034.                     vMachineCost( iOutputCounty ) = MachineIDDoc.MachineCost
  10035.                     
  10036.                      '  display response time based on percent range specification
  10037.                     sFieldNameOutOut = "OutResults" & Cstr( iOutputCounty ) & "_6"
  10038.                     vtemp1=DataDoc.DataUAverage
  10039.                     
  10040.                     If vtemp1( 0 ) < 1 Then
  10041.                          Call ThisDoc.FieldSetText( sFieldNameOutOut, "Fast" )
  10042.                     Elseif vtemp1( 0 ) < 3 Then
  10043.                          Call ThisDoc.FieldSetText( sFieldNameOutOut, "Medium" )
  10044.                     Elseif vtemp1( 0 ) < 5 Then
  10045.                          Call ThisDoc.FieldSetText( sFieldNameOutOut, "Slow" )
  10046.                     Else
  10047.                          Call ThisDoc.FieldSetText( sFieldNameOutOut, "Out of Range" )
  10048.                     End If
  10049.                     
  10050.                Elseif ( MachineIDCollection.Count = 0 ) Then
  10051.                     If ( bProjectGrowthSelected = False ) Then
  10052.                            '  need to distinguish between disk configuration not RAID 5 and machine name not specified.  Need to re-query
  10053.                          SearchFormula2$ = " Form = ""Machine Identifier""  & MachineID = " & {"} & sMachineID & {"} 
  10054.                          Set MachineIDcollection = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  10055.                          If( MachineIDcollection.count = 0 ) Then
  10056.                               sErrorMessage$ = "Warning:  Machine Identifier Form is missing for " & sMachineID & "   Continuing ....."
  10057.                                    'sErrorMessage$ = "Machine Identifier Entry is missing for this associated Vendor Data.  Continuing..." 
  10058.                               Messagebox sErrorMessage$, MB_ICONEXCLAMATION, "Query on Data"
  10059.                          Else  '  workload doesn't exist for this platform, enter into table and then go onto the next one
  10060.                               Dim sMachineIDx As String
  10061.                               Dim bSkipInsertion As Integer
  10062.                               Dim iRejectListIndex As Integer  '  make as relative - either end of list or in the middle
  10063.                               
  10064.                               iRejectListIndex = iRejectListCount
  10065.                               bSkipInsertion = False
  10066.                               
  10067.                               Set MachineDoc = MachineIDcollection.GetNthDocument( 1 )
  10068.                               sMachineIDx = MachineDoc.MachineID( 0 )
  10069.                               
  10070.                                '  first make sure the vendor and machine id is not already in the list
  10071.                               If iRejectListCount > 0 Then                             
  10072.                                    For y = 0 To ( iRejectListCount - 1 )
  10073.                                         If sVendorName( y ) = ExtractVendorName( sSearchDB ) And sMachID ( y ) = sMachineIDx Then
  10074.                                              If Len( sReason( y ) ) > 0 Then
  10075.                                                   bSkipInsertion = True  '  system already in the list (shouldn't happen....)
  10076.                                              Else
  10077.                                                   iRejectListIndex = y      '  save off index to update this entry
  10078.                                              End If
  10079.                                         End If
  10080.                                    Next y
  10081.                               End If
  10082.                               
  10083.                               If bSkipInsertion = False Then
  10084.                                    sVendorName( iRejectListIndex ) = ExtractVendorName( sSearchDB )
  10085.                                    sMachID( iRejectListIndex ) =  sMachineIDx
  10086.                                    iDisplayable( iRejectListIndex ) = True
  10087.                                    
  10088.                                     '  now check on what scripts this machine has
  10089.                                    Dim sTempLayoutServerTasks As String
  10090.                                    sTempLayoutServerTasks = sProcessThisTask
  10091.                                    SearchFormula2$ = "Form = ""Vendor Data"" & DataUServerID = " & {"} & sMachineIDx & {"} & " & DataUScript1 = " & {"} & sLayoutServerTasks &  {"}
  10092.                                    
  10093.                                     '  check to see if document meets platform criteria
  10094.                                     '  check to see if multiple platforms are specified
  10095.                                    If Len( ThisDoc.FieldGetText( "LayoutOSPlatform" ) ) <> 0 Then
  10096.                                         sOSPlatform = ThisDoc.FieldGetText( "LayoutOSPlatform" )
  10097.                                    Else
  10098.                                         sOSPlatform = sOSPlatformWholeList
  10099.                                    End If
  10100.                                    SearchFormula2$ = SearchFormula2$ + " & "
  10101.                                    If Instr( 1, sOSPlatform, ";" )  > 0 Then
  10102.                                         While Len( sOSPlatform ) > 0
  10103.                                              iPositionOfChar2 = Instr( 1, sOSPlatform, ";" )
  10104.                                              If iPositionOfChar2 = 0 Then
  10105.                                                   sOSPlatformTemp = Trim( sOSPlatform )
  10106.                                                   SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & sOSPlatformTemp & {"} 
  10107.                                              Else
  10108.                                                   sOSPlatformTemp = Trim( Left( sOSPlatform,( iPositionOfChar2 - 1 ) ) )
  10109.                                                   SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & sOSPlatformTemp & {"} & "  |  "
  10110.                                              End If
  10111.                                              
  10112.                                              If iPositionOfChar2 = 0 Then
  10113.                                                   sOSPlatform = ""
  10114.                                              Else
  10115.                                                   sOSPlatform = Trim( Right( sOSPlatform,( Len( sOSPlatform ) - iPositionOfChar2 ) ) )
  10116.                                              End If
  10117.                                         Wend
  10118.                                    Else
  10119.                                         '  handle case where single specification
  10120.                                         SearchFormula2$ = SearchFormula2$ + " MachinePlatform = " & {"} & ThisDoc.FieldGetText( "LayoutOSPlatform" ) & {"} 
  10121.                                    End If
  10122.                                    
  10123.                                    Set DataCollection2 = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  10124.                                    If DataCollection2.Count = 0 Then
  10125.                                        'Messagebox sProcessThisTask
  10126.                                         sReason( iRejectListIndex ) = sReason4 + ":  " + " Platform: " + sOSPlatform + ", Workload: " + sLayoutServerTasks
  10127.                                    End If
  10128.                                    '  only increment if > iRejectListCount current entries modified
  10129.                                    If iRejectListIndex = iRejectListCount And ( iRejectListCount < ( RejectMachineCount + 1 ) ) Then
  10130.                                         iRejectListCount = iRejectListCount + 1
  10131.                                    End If
  10132.                               End If                                   
  10133.                          End If
  10134.                     Else 
  10135.                          'Messagebox "projectgrowthselectedb = true"
  10136.                     End If
  10137.                     
  10138.                Elseif SkipOver = True  Then
  10139.                          '  make sure best response time is displayed, when there are multiple listings for any given machine
  10140.                     For j = 1 To iOutputCounty
  10141.                          sFieldNameOutOut = "OutResults"& Cstr( j )
  10142.                          If sMachineID = ThisDoc.FieldGetText( sFieldNameOutOut ) Then
  10143.                               sFieldNameOutOut = "OutResults" & Cstr( j ) & "_6"
  10144.                               vtemp1 = DataDoc.DataUAverage
  10145.                               
  10146.                               If vtemp1( 0 )  < 1 And  ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Fast" Then
  10147.                                    Call ThisDoc.FieldSetText( sFieldNameOutOut, "Fast" )
  10148.                               Elseif vtemp1( 0 ) < 3.1  And vtemp1( 0 ) > .9  And( ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Fast"  And ThisDoc.FieldGetText( sFieldNameOutOut ) <> "Medium" ) Then
  10149.                                    Call ThisDoc.FieldSetText( sFieldNameOutOut, "Medium" )
  10150.                               Elseif vtemp1( 0 ) < 5  And vtemp1( 0 ) > 3  And ThisDoc.FieldGetText( sFieldNameOutOut ) = "Out of Range" Then
  10151.                                    Call ThisDoc.FieldSetText( sFieldNameOutOut, "Slow" )
  10152.                               End If
  10153.                               
  10154.                          End If
  10155.                     Next j
  10156.                End If
  10157.                
  10158.                '  handle the growth path
  10159.           Else 
  10160.                 '  process Growth path
  10161.                  ' need to check if entry is in list of systems, if so, check if in list recommended for current, update the status
  10162.                
  10163.                Dim sCurrentMachineID As String
  10164.                Dim sCurrentVendor As String
  10165.                Dim vCurrentMachineID As Variant
  10166.                Dim vCurrentVendor As Variant
  10167.                
  10168.                bCurrentMatchFound = False
  10169.                bGrowthMatchFound = False
  10170.                
  10171.                '  first need to match on Vendor name
  10172.                sTempVendorName = Mid$( SSearchDB, 3,( Len( sSearchDB ) - 6 ) )
  10173.                
  10174.                Set DataDoc = DataCollection.GetNthDocument( i )
  10175.                 '   verify that machine is not already specified
  10176.                sMachineID= DataDoc.DataUServerID( 0 )  '  machine id of record currently selected
  10177.                
  10178.                '  make sure all currently recommended machines, are in the list
  10179.                For j = 1 To numoutputlines   ' max number of entries in currently recommended list
  10180.                     sFieldNameOutOut = "OutResults" & Cstr( j )
  10181.                     sCurrentMachineID = ThisDoc.FieldGetText( sFieldNameOutOut )  
  10182.                     If Len( sCurrentMachineID ) =  0 Then  '  kludge to get around problem where data not retrieved as text
  10183.                          sCurrentMachineID = AllResults( j )
  10184.                          
  10185.                     End If
  10186.                     
  10187.                     sFieldNameOutOut = sFieldNameOutOut & "_2"
  10188.                     sCurrentVendor = ThisDoc.FieldGetText( sFieldNameOutOut )
  10189.                     
  10190.                     If Len( sCurrentVendor ) =  0 Then  '  kludge to get around problem where data not retrieved as text
  10191.                          sCurrentVendor = AllResultsVendor( j )
  10192.                     End If
  10193.                     
  10194.                     If Len( sCurrentMachineID ) > 0 Then   '  still have data listed
  10195.                          bGrowthMatchFound = False
  10196.                          For k = 0 To ( iGrowthListCount - 1 )
  10197.                               '  see if the current entry matches anything in the growth list
  10198.                               If sCurrentMachineID = sgMachID( k ) And sCurrentVendor = sgVendorName( k ) Then
  10199.                                    bGrowthMatchFound = True  '  in the list
  10200.                               End If
  10201.                          Next k
  10202.                          If ( iGrowthListCount < GrowthMachineCount ) Then
  10203.                               If bGrowthMatchFound = False Then'  if not, then add to growth list
  10204.                                    sgMachID( iGrowthListCount ) = sCurrentMachineID
  10205.                                    sgVendorName( iGrowthListCount ) = sCurrentVendor
  10206.                                    sgReason( iGrowthListCount ) = "Yes"    '  currently listed in current
  10207.                                    sgReasong( iGrowthListCount )  = "No"     '  not yet proven on the growth path
  10208.                                    iGrowthListCount = iGrowthListCount + 1
  10209.                               End If
  10210.                          Else
  10211.                               If bGrowthMatchFound = True Then
  10212.                                    If bGrowthListCountFlag = False Then  '  error message already displayed
  10213.                                         Messagebox ("Number of Machines to add to Projected Growth Analysis Section has been exceeded.  Continuing...." )
  10214.                                         bGrowthListCountFlag = True
  10215.                                    End If    
  10216.                               End If
  10217.                          End If
  10218.                     End If
  10219.                Next j
  10220.                
  10221.                bGrowthMatchFound = False
  10222.                  '  first check if machine already entered in currently recommended list also in  growth display
  10223.                If iGrowthListCount < ( GrowthMachineCount  ) Then   '  only process if it can be entered in the list, see if in the list
  10224.                     If iGrowthListCount > 0 Then
  10225.                          For k = 0 To ( iGrowthListCount - 1 )
  10226.                               If sgVendorName( k ) = sTempVendorName Then
  10227.                               '  next match on Machine ID
  10228.                                    If sgMachID( k) = sMachineID Then
  10229.                                         ' entry already exists - then don't have to add again
  10230.                                         bGrowthMatchFound = True  ' found a match on this machine id
  10231.                                         sgReasong( k ) = "Yes"    '  list as meeting growth criteria
  10232.                                    End If
  10233.                               End If
  10234.                          Next k
  10235.                     End If
  10236.                     '  handle case where machine doesn't match on exact but does on growth path
  10237.                     If bGrowthMatchFound = False Then
  10238.                          
  10239.                          '  check to see if machine exists on this platform
  10240.                          '  search through reject list and see if the machine exists, if reason4 given then don't add to the growth list
  10241.                          Dim bRejectListFound As Integer
  10242.                          bRejectListFound = False
  10243.                          For w = 0 To ( iRejectListCount - 1 )
  10244.                               If ( Strcompare( sMachineID, sMachID( w ), 5 ) = 0 ) And ( Strcompare( sTempVendorName, sVendorName( w ), 5 ) = 0  )  _
  10245.                               And ( Instr( 01, sReason( w ), sReason4 ) > 0 )  Then
  10246.                                    ' don't add in
  10247.                                    bRejectListFound = True
  10248.                               End If
  10249.                          Next w
  10250.                          
  10251.                          If bRejectListFound = False Then
  10252.                               sgMachID( iGrowthListCount ) = sMachineID
  10253.                               sgVendorName( iGrowthListCount ) = sTempVendorName
  10254.                               sgReason( iGrowthListCount ) = "No"    '  currently listed in current
  10255.                               sgReasong( iGrowthListCount )  = "Yes"     '  not yet proven on the growth path
  10256.                               iGrowthListCount = iGrowthListCount + 1
  10257.                          End If
  10258.                     End If
  10259.                Else
  10260.                     If bGrowthListCountFlag = False Then
  10261.                          Messagebox ("Number of Machines to add to Projected Growth Analysis Section has been exceeded.  Continuing...." )
  10262.                          bGrowthListCountFlag = True
  10263.                     End If                        
  10264.                End If    
  10265.           End If
  10266.      Next i
  10267.      
  10268.      If DataCollection.Count = 0  And bProjectGrowthSelected = False And Len( sMachinesIDx) > 0 Then   '  no match found on the current system path
  10269.           If iTotalCount > RejectMachineCount Then
  10270.                iTotalCount = RejectMachineCount
  10271.           End If
  10272.           
  10273.           sVendorName( iRejectListIndex ) = ExtractVendorName( sSearchDB )
  10274.           sMachID( iRejectListIndex ) =  sMachineIDx
  10275.           iDisplayable( iRejectListIndex ) = True
  10276.           
  10277.           '  now check on what scripts this machine has
  10278.           Dim sTempLayoutServerTasks2 As String
  10279.           sTempLayoutServerTasks2 = sProcessThisTask
  10280.           SearchFormula2$ = "Form = ""Vendor Data"" & DataUServerID = " & {"} & sMachineIDx & {"} & " & DataUScript1 = " & {"} & sLayoutServerTasks &  {"}
  10281.           Set DataCollection2 = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  10282.           If DataCollection2.Count = 0 Then  '  no match on platforms?
  10283.                sReason( iRejectListIndex ) = sReason4 + ":  " + " Platform: " + sOSPlatform + ", Workload: " + sLayoutServerTasks
  10284.           Else  '  no match on workload & generated datapoint
  10285.                sReason( iRejectListIndex ) = sReason2 + ":   Workload: " + sLayoutServerTasks
  10286.           End If
  10287.                                    '  only increment if > iRejectListCount current entries modified
  10288.           If iRejectListIndex = iRejectListCount And ( iRejectListCount < ( RejectMachineCount + 1 ) ) Then
  10289.                iRejectListCount = iRejectListCount + 1
  10290.           End If
  10291.           
  10292.      End If
  10293.      
  10294.      If DataCollection.Count = 0  And bProjectGrowthSelected = True And bGrowthListMaxReached = False Then   '  no match found on the growth path
  10295.           If iTotalCount > GrowthMachineCount Then
  10296.                iTotalCount = GrowthMachineCount
  10297.           End If
  10298.           '  extract core vendor name
  10299.           sVendorDB = Mid$( SSearchDB, 3,( Len( sSearchDB ) - 6 ) )
  10300.           '  copy entries over
  10301.           For i = 1 To numoutputlines  '  can only copy up to  the max of the results list
  10302.                If sVendorDB = AllResultsVendor( i ) Then  '  only insert entries from this vendor's db
  10303.                     If iGrowthListCount = GrowthMachineCount Then
  10304.                          Messagebox "Reached the limit on entries for the Growth Analysis Section.  Continuing..."
  10305.                          bGrowthListMaxReached = True
  10306.                     Else
  10307.                          sgMachID( iGrowthListCount ) = AllResults( i )
  10308.                          sgVendorName( iGrowthListCount ) = AllResultsVendor( i )
  10309.                          sgReason( iGrowthListCount ) = "Yes"    '  currently listed in current
  10310.                          sgReasong( iGrowthListCount )  = "No"     '  not yet proven on the growth path
  10311.                          iGrowthListCount = iGrowthListCount + 1
  10312.                     End If
  10313.                End If
  10314.           Next i
  10315.      End If
  10316.      
  10317.      ' return count of entries made
  10318.      If bProjectGrowthSelected = False Then 
  10319.           QueryOnDatabase = iOutputCounty                                  ' decrement for automatic positioning to next entry, and for number of dups
  10320.      Else
  10321.           QueryOnDatabase = iGrowthListCount
  10322.      End If
  10323.      
  10324. End Function
  10325. '++LotusScript Development Environment:2:1:ProcessMultipleTasks:1:8
  10326. Function ProcessMultipleTasks( sVendorDBBuffer As String, sOSPlatformWholeList As String ) As Integer
  10327.      Dim ThisDoc As NotesUIDocument
  10328.      Dim Workspace As New NotesUIWorkspace
  10329.      
  10330.      Dim iCountTasks As Integer
  10331.      Dim iPositionOfChar As Integer
  10332.      Dim iOutputCountz As Integer
  10333.      
  10334.      Dim sSearchDB As String
  10335.      Dim sMachineID As String
  10336.      Dim sVendorDBBufferSave As String
  10337.      
  10338.      Set ThisDoc = Workspace.CurrentDocument
  10339.      
  10340.      iTotalCount = 0
  10341.      
  10342.           ' need to determine if matching response values can be found within a given response range
  10343.      sVendorDBBufferSave = sVendorDBBuffer
  10344.      iOutputCountz = 0
  10345.      iTotalCount = 0
  10346.      While Len( sVendorDBBuffer )  > 0
  10347.  '             extract filename only
  10348.           iPositionOfChar = Instr( 1, sVendorDBBuffer, ";" )
  10349.           If iPositionOfChar = 0 Then
  10350.                sVendorDB = sVendorDBBuffer
  10351.                sVendorDBBuffer = ""
  10352.           Else
  10353.                sVendorDB = Left( sVendorDBBuffer,( iPositionOfChar - 1 ) )
  10354.                sVendorDBBuffer = Right( sVendorDBBuffer,( Len( sVendorDBBuffer ) - iPositionOfChar ) )
  10355.                sVendorDBBuffer = Trim( sVendorDBBuffer )
  10356.           End If
  10357.  '             put vendor name together    
  10358.           sVendorDB = Trim( sVendorDB )
  10359.           sSearchDB = "CP" & sVendorDB
  10360.           sSearchDB = sSearchDB & ".NSF"
  10361.           
  10362.           iVendorCount = iVendorCount - 1
  10363.           
  10364.           
  10365.           iOutputCountz = ProcessMultipleTasksCore( sSearchDB,  sOSPlatformWholeList, iTotalCount )
  10366.           
  10367.           'iTotalCount = iOutputCountz
  10368.          'iTotalCount = iTotalCount + iOutputCountz
  10369.           
  10370.      Wend  ' process a vendors database
  10371.      
  10372.      ProcessMultipleTasks = iTotalCount
  10373. End Function
  10374. '++LotusScript Development Environment:2:1:ProcessMultipleTasksCore:1:8
  10375. Function ProcessMultipleTasksCore( sSearchDB As String, sOSPlatformWholeList As String, iOutputCounta As Integer ) As Integer
  10376.      Dim ThisDoc As NotesUIDocument
  10377.      Dim Workspace As New NotesUIWorkspace
  10378.      Dim DataCollectionTemp As NotesDocumentCollection
  10379.      Dim DateTime As New NotesDateTime( "1/1/96" )
  10380.      Dim DataColl As NotesDocumentCollection 
  10381.      Dim DataCollection2 As NotesDocumentCollection 
  10382.      Dim sMachineIDx As String
  10383.      
  10384.      Dim DataDoc( numscripts ) As NotesDocument
  10385.      Dim DataCollection( numscripts ) As NotesDocumentCollection
  10386.      
  10387.      Dim iMatchFound( numoutputlines, numscripts ) As Integer
  10388.      Dim iMatchDoc( numoutputlines, numscripts ) As Integer
  10389.      
  10390.      Dim iGrowthCount As Integer
  10391.      
  10392.      Dim bZeroBase As Integer
  10393.      Dim bMaxBase As Integer
  10394.      
  10395.      Dim nTaskCalibration( numscripts ) As Single
  10396.      Dim nTaskHourCalibration( 2 ) As Single
  10397.      Dim nMBHourCalibration( 2 ) As Single
  10398.      
  10399.      Dim iTaskCountSpecification( numscripts ) As Integer
  10400.      Dim iTaskHourSpecification( 2 ) As Integer
  10401.      Dim iMBHourSpecification( 2 ) As Integer
  10402.      
  10403.      Dim sBaseValue As Single
  10404.      Dim sTaskBaseValue As Single
  10405.      Dim sMBBaseValue As Single
  10406.      
  10407.      Dim sLayoutServerTasks As String
  10408.      
  10409.      Dim nCalibratedTaskNumber As Single
  10410.      Dim nCalibratedTaskHour As Single
  10411.      Dim nCalibratedMBHour As Single
  10412.      
  10413.      Dim iCalibratedTaskNumber As Integer
  10414.      Dim iCalibratedTaskHour As Integer
  10415.      Dim iCalibratedMBHour As Integer
  10416.      Dim iTaskCount As Integer
  10417.      
  10418.      Dim sCalibrationTask As String
  10419.      Dim iCountTasks As Integer
  10420.      Dim iPositionOfChar As Integer
  10421.      
  10422.      'Dim iTotalCount As Integer
  10423.      Dim sMachineID As String
  10424.      Dim sProcessThisTask As String
  10425.      Dim iNumOutputLines As Integer
  10426.      Dim bMatchFound As Integer
  10427.      
  10428.      Dim sProcessTaskList As String
  10429.      Dim sProcessTaskListTemp As String
  10430.      
  10431.      Dim sMachineAlreadySelected( numoutputlines, 2) As String  '  store the machines already selected
  10432.      
  10433.      Set ThisDoc = Workspace.CurrentDocument
  10434.      
  10435.      Set VendorDB = New NotesDatabase( "", sSearchDB )
  10436.      
  10437.      bMatchFound = True   ' flag to exit query if no match found
  10438.      iNumOutputLines = 1
  10439.      
  10440.      bZeroBase = False  '  search begins at user count >  0
  10441.      bMaxBase = True  '  search include a max user count
  10442.      iGrowthCount = 0
  10443.      
  10444.      sProcessTaskList = ThisDoc.FieldGetText( "LayoutServerTasks" )
  10445.      
  10446.      iCountTasks = 0            '  keep count of number of scripts actually specified
  10447.      If Instr( 1, sProcessTaskList, "User Tasks" )  > 0 Then
  10448.      '  remove User Tasks from the list and substitute in the tasks selected
  10449.           Dim iTempCalc As Integer
  10450.           Dim sProcessTaskListTemp2 As String
  10451.           iTempCalc = Instr( 1, sProcessTaskList, "User Tasks" )
  10452.           sProcessTaskListTemp2 = Left( sProcessTaskList, ( iTempCalc - 1 ) )
  10453.           sProcessTaskList = Mid( sProcessTaskList, ( iTempCalc + Len("User Tasks" ) ) )
  10454.           sProcessTaskList = sProcessTaskListTemp2 + sProcessTaskList
  10455.           '  now add the tasks on
  10456.           Dim i As Integer
  10457.           For i = 1 To UserTaskArrayCount
  10458.                If sUserTaskArray( i, 2 ) > "0" Then
  10459.                     If Len( sProcessTaskList ) > 0 Then
  10460.                          sProcessTaskList = sProcessTaskList + "; " + sUserTaskArray( i, 1 )
  10461.                     Else
  10462.                          sProcessTaskList = sUserTaskArray( i, 1 )
  10463.                     End If
  10464.                End If
  10465.           Next
  10466.           
  10467.      End If
  10468.      While bMatchFound = True
  10469. '               Need to dynamically build query against response time
  10470. '              extract first tasks to key off search 
  10471.           iPositionOfChar = Instr( 1, sProcessTaskList, ";" )
  10472.           If iPositionOfChar = 0 Then
  10473.                sProcessThisTask = sProcessTaskList    '   reached last entry
  10474.                sProcessTaskList = ""
  10475.           Else 
  10476.                sProcessThisTask = Left( sProcessTaskList,( iPositionOfChar - 1 ) )
  10477.                sProcessTaskList = Right( sProcessTaskList, Len( sProcessTaskList ) - iPositionOfChar )
  10478.                sProcessTaskList = Trim( sProcessTaskList )
  10479.           End If
  10480.           
  10481.           '  first check if script exists
  10482.             '  get list of possible machines under this vendor
  10483.           'Set VendorDB = New NotesDatabase( "","" )
  10484.           'Call VendorDB.Open( "",  sSearchDB ) 
  10485.           
  10486.           SearchFormula$ = " Form = ""Machine Identifier"" "
  10487.           Set DataColl = VendorDB.Search( SearchFormula$, DateTime, 0 )
  10488.           Dim z As Integer
  10489.           Dim y As Integer
  10490.           Dim bSkipInsertion As Integer
  10491.           
  10492.           For z = 0 To ( DataColl.Count - 1 )
  10493.                bSkipInsertion = False
  10494.           '  now get the list of machines found under this vendor
  10495.           '  query on the vendor database, machine id form and insert names returned
  10496.                If iRejectListCount > RejectMachineCount Then
  10497.                     If bRejectMessageDisplayed = False Then
  10498.                          Messagebox ("Number of Machines analyzed for meeting the query parameters has been exceeded.  Continuing...")
  10499.                          bRejectMessageDisplayed = True
  10500.                     End If
  10501.                Else
  10502.                     
  10503.                     If bSkipInsertion = False Then              '  can then add to the list
  10504.                          sVendorName( iRejectListCount ) = ExtractVendorName( sSearchDB )
  10505.                          Set MachineDoc = DataColl.GetNthDocument( ( z + 1 ) )
  10506.                          sMachineIDx = MachineDoc.MachineID( 0 )
  10507.                          
  10508.                            '  first make sure the vendor and machine id is not already in the list
  10509.                          sMachineIDx = MachineDoc.MachineID( 0 )
  10510.                          
  10511.                          For y = 0 To ( iRejectListCount - 1 )
  10512.                               If sVendorName( y ) = ExtractVendorName( sSearchDB ) And sMachID ( y ) = sMachineIDx Then
  10513.                                    If Len( sReason( y ) ) > 0 Then
  10514.                                         bSkipInsertion = True
  10515.                                    End If
  10516.                               End If
  10517.                          Next y
  10518.                          If bSkipInsertion = False Then
  10519.                               sMachID( iRejectListCount ) =  sMachineIDx
  10520.                               iDisplayable( iRejectListCount ) = True
  10521.                               
  10522.                          '  now check on what scripts this machine has
  10523.                               Dim sTempLayoutServerTasks As String
  10524.                               sTempLayoutServerTasks = sProcessThisTask
  10525.                               SearchFormula2$ = "Form = ""Vendor Data"" & DataUServerID = " & {"} & sMachineIDx & {"} & " & DataUScript1 = " & {"} & sProcessThisTask &  {"}
  10526.                               Set DataCollection2 = VendorDB.Search( SearchFormula2$, DateTime, 0 )
  10527.                               If DataCollection2.Count = 0 Then
  10528.                               'Messagebox sProcessThisTask
  10529.                                    sReason( iRejectListCount ) = sReason1 + ":  " + sProcessThisTask
  10530.                               End If
  10531.                               iRejectListCount = iRejectListCount + 1
  10532.                          End If
  10533.                     End If
  10534.                End If
  10535.           Next
  10536.           
  10537.           bMaxBase = True  'start from specified base and look upward
  10538.           Dim vTemp As Variant
  10539.           If sProcessThisTask <> "User Tasks" Then
  10540.                If sProcessThisTask = "Replication Hub" Then
  10541.                     vTemp = ThisDoc.Document.LayoutReplHub
  10542.                     Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", _
  10543.                     Cstr(  vTemp( 0 ) ), ThisDoc.FieldGetText( "LayoutReplHour" ), ThisDoc.FieldGetText( "LayoutMBReplHour" ), _
  10544.                     bZeroBase, bMaxBase )
  10545.                Else   'will be mailhub
  10546.                     vTemp = ThisDoc.Document.LayoutMailHub
  10547.                     Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", _
  10548.                     Cstr( vTemp( 0 ) ), ThisDoc.FieldGetText( "LayoutMessagesHour" ), ThisDoc.FieldGetText( "LayoutMBMessagesHour" ), _
  10549.                     bZeroBase, bMaxBase )
  10550.                End If               
  10551.                Set DataCollection( iCountTasks + 1 ) = DataCollectionTemp
  10552.                If DataCollection( iCountTasks + 1 ).Count = 0 Then
  10553.                     iCountTasks = 0
  10554.                     bMatchFound = False
  10555.                End If
  10556.                iCountTasks = iCountTasks + 1
  10557.           Else
  10558.                '  see if any of the user tasks have been specified
  10559.                For i = 1 To UserTaskArrayCount
  10560.                     If sUserTaskArray( i, 2 ) <> "0" And bMatchFound = True Then
  10561.                          sProcessThisTask = sUserTaskArray( i, 1 )
  10562.                          bZeroBase = False  '  search on user count beginning > 0
  10563.                          Set DataCollectionTemp = SearchForPossibleMatches( sProcessThisTask, sSearchDB, "", sUserTaskArray( i, 2 ), "", "", _
  10564.                          bZeroBase, bMaxBase )
  10565.                          Set DataCollection( iCountTasks + 1 ) = DataCollectionTemp
  10566.                          If DataCollection( iCountTasks + 1 ).Count = 0 Then
  10567.                               iCountTasks = 0
  10568.                               bMatchFound = False
  10569.                          End If
  10570.                          iCountTasks = iCountTasks + 1  '  leave in as a flag on the error path
  10571.                     End If  
  10572.                Next i
  10573.           End If
  10574.           
  10575.           If sProcessTaskList = "" Then          ' nothing left to process
  10576.                bMatchFound = False
  10577.           End If
  10578.      Wend
  10579.      
  10580.      '  see if there are any entries which haven't been accounted for.  There should be an entry in sReason for each one.
  10581.      For z = 0 To ( iRejectListCount - 1 )
  10582.           If sReason( z ) = "Found" Then
  10583.                'sReason( z ) = ""
  10584.           Elseif sReason( z ) = "" Then
  10585.                sReason( z ) = "Not Found/Pass 2"
  10586.           End If
  10587.      Next
  10588.      
  10589.           ' found data assocated with each task?  error encountered?
  10590.      If iCountTasks = 1 Then   '  should always have at least 2 tasks to process
  10591.           ProcessMultipleTasksCore = 0
  10592.           Exit Function
  10593.      End If
  10594.      
  10595.            '  have a collection associated with task and response time and percent range
  10596.            '  now need to determine if a common response time value can be found
  10597.            '  ***( May have to limit query based on more parameters )
  10598.            '  ***( may have to adjust based on output tolerance value )
  10599.            '  *** create generic routine for verifying
  10600.      
  10601.           '  calculate adjust for tolerance range
  10602.      Dim nPercentAdjust As Single
  10603.      Dim nAdjustAmount As Single
  10604.      Dim nAdjustOther11 As Single
  10605.      Dim nAdjustOther21 As Single
  10606.      
  10607.      nPercentAdjust = 0
  10608.      nPercentAdjust = Csng( ThisDoc.FieldGetText( "LayoutTolerance_Response" ) )    'processing User Response Times
  10609.      If nPercentAdjust <> 0 Then
  10610.           nPercentAdjust =( nPercentAdjust ) / 100   '  halve to adjust to go higher and then lower
  10611.      End If
  10612.      
  10613.      For j = 1 To numscripts
  10614.           For i = 1 To numoutputlines
  10615.                iMatchFound( i, j ) = False
  10616.                iMatchDoc( i, j ) = 0
  10617.           Next i
  10618.      Next j
  10619.      
  10620.      For i = 1 To DataCollection( 1 ).Count
  10621.           Set DataDoc( 1 ) = DataCollection( 1 ).GetNthDocument( i )
  10622.           For j = 2 To iCountTasks
  10623.                For k = 1 To DataCollection( j ).Count
  10624.                     Set DataDoc( j ) = DataCollection( j ).GetNthDocument( k )
  10625.                          ' make sure the same machines are compared
  10626.                     vtemp1 = DataDoc( 1 ).GetItemValue( "DataUServerID" )
  10627.                     vtemp2 = DataDoc( j ).GetItemValue( "DataUServerID" )
  10628.                     If vtemp1( 0 ) = vtemp2( 0 ) Then    'keep looking for a match
  10629.                               ' do output tolerance calulations for range for response times
  10630.                          vtempj =( DataDoc( j ).GetItemValue( "DataUAverage" ) ) 
  10631.                          nAdjustAmount = Csng( vtempj( 0 ) ) * nPercentAdjust
  10632.                          vtemp1 =( DataDoc( 1 ).GetItemValue( "DataUAverage" ) ) 
  10633.                          If( Csng( vtemp1( 0 ) )  <= ( Csng( vtempj( 0 ) ) + nAdjustAmount ) )  And( Csng( vtemp1( 0 ) )  => ( Csng( vtempj( 0 ) ) - nAdjustAmount ) )  Then
  10634.                               '  need to do additional validation if Repl Hub and Mail Routing Hub involved
  10635.                               vtemp1 = DataDoc( 1 ).DataUScript1
  10636.                               vtemp2 = DataDoc( 2 ).DataUScript1
  10637.                               If vtemp1( 0 ) = "Replication Hub" And vtemp2( 0 ) = "Mail Routing Hub"  And j = 2 Then
  10638.                                    '  make sure extra parameters are within range
  10639.                                    vtemp211 = DataDoc( 2 ).GetItemValue( "DataUOther11" )
  10640.                                    vtemp221 = DataDoc( 2 ).GetItemValue( "DataUOther21" )
  10641.                                    vtemp111 = DataDoc( 1 ).GetItemValue( "DataUOther11" )
  10642.                                    vtemp121 = DataDoc( 1 ).GetItemValue( "DataUOther21" )
  10643.                                    nAdjustOther11 =  Csng( vtemp211( 0 ) ) * nPercentAdjust
  10644.                                    nAdjustOther21 =  Csng( vtemp221( 0 ) ) * nPercentAdjust
  10645.                                    If( Csng( vtemp111( 0 ) )  <= ( Csng( vtemp211( 0 ) ) + nAdjustOther11 ) )  And ( Csng( vtemp111( 0 ) )  => ( Csng( vtemp211( 0 ) ) - nAdjustOther11 ) ) _
  10646.                                    And ( Csng( vtemp121( 0 ) )  => ( Csng( vtemp221( 0 ) ) - nAdjustOther11 ) )  And ( Csng( vtemp121( 0 ) )  => ( Csng( vtemp221( 0 ) ) - nAdjustOther11 ) ) Then
  10647.                                         iMatchFound( iNumOutputLines, j ) = True
  10648.                                         iMatchDoc( iNumOutputLines, j ) = k  'save doc collection offset
  10649.                                         iMatchDoc( iNumOutputLines, 1 ) = i
  10650.                                    End If
  10651.                               Else
  10652.                                    '  need to check if machine already been selected
  10653.                                    Dim w As Integer
  10654.                                    Dim x As Integer
  10655.                                    Dim vMach1New As Variant
  10656.                                    Dim vMach2New As Variant
  10657.                                    Dim vMach1Already As Variant
  10658.                                    Dim vMach2Already As Variant
  10659.                                    Dim bEntryInserted As Integer
  10660.                                    Dim DataDoc1Already As NotesDocument
  10661.                                    Dim DataDoc2Already As NotesDocument
  10662.                                    Dim bValueInserted As Integer  'locate the data document?
  10663.                                    '  have any entries been inserted?
  10664.                                    
  10665.                                    bEntryInserted = False
  10666.                                    bValueInserted = False
  10667.                                    
  10668.                                    If ( iNumOutputLines - 1 ) > 0 Then
  10669.                                         For w = 1 To ( iNumOutputLines - 1 )  '  cycle through list of current entries, max count always 1 ahead
  10670.                                              '  current machines to compare, these are the ones being processed
  10671.                                              vMach1New = DataDoc( 1 ).GetItemValue( "DataUServerID" )
  10672.                                              vMach2New = DataDoc( j ).GetItemValue( "DataUServerID" )
  10673.                                              '  get the machine's doc previously selected
  10674.                                              Set DataDoc1Already = DataCollection( 1 ).GetNthDocument( iMatchDoc( w, 1 ) )
  10675.                                              '  find match on index, info is inserted as an offset within the data collection number
  10676.                                              For x = 2 To numscripts
  10677.                                                   If iMatchDoc( w, x ) <> 0 Then  '  have an entry inserted?
  10678.                                                        Set DataDoc2Already = DataCollection( x ).GetNthDocument( iMatchDoc( w, x ) )
  10679.                                                        bValueInserted = True
  10680.                                                   End If
  10681.                                                   
  10682.                                                   If bValueInserted = False Then  'validation
  10683.                                                        'Messagebox( "DataDoc2Already = Null" )
  10684.                                                        Exit Function
  10685.                                                   End If
  10686.                                                   
  10687.                                                   vMach1Already = DataDoc1Already.GetItemValue( "DataUServerID" )
  10688.                                                   vMach2Already = DataDoc2Already.GetItemValue( "DataUServerID" )
  10689.                                                   If ( vMach1Already( 0 ) = vMach1New( 0 ) ) And  ( vMach2Already( 0 ) = vMach2New( 0 ) ) Then
  10690.                                                        bEntryInserted = True  '  match found
  10691.                                                   End If
  10692.                                              Next x
  10693.                                              'Set DataDoc( j ) = DataCollection( j ).GetNthDocument( k )
  10694.                                              'sMach1Already=DataDoc(                                       bEntryInserted = True
  10695.                                         Next w
  10696.                                    End If
  10697.                                    
  10698.                                    If bEntryInserted = False Then   '  machines haven't been previously inserted
  10699.                                         iMatchFound( iNumOutputLines, j ) = True
  10700.                                         iMatchDoc( iNumOutputLines, j ) = k  'save doc collection offset
  10701.                                         iMatchDoc( iNumOutputLines, 1 ) = i
  10702.                                    End If
  10703.                               End If
  10704.                          End If
  10705.                     End If
  10706.                Next k
  10707.           Next j
  10708.           
  10709.           ' if full match made, then increment output count, else zero out 
  10710.           bMatchFound = True
  10711.           If iMatchDoc( iNumOutputLines, 1 ) > 0 Then
  10712.                For j = 2 To iCountTasks
  10713.                     If iMatchFound( iNumOutputLines, j ) <> True Then
  10714.                          bMatchFound = False
  10715.                     End If
  10716.                Next
  10717.           Else
  10718.                bMatchFound = False
  10719.           End If
  10720.           
  10721.           If bMatchFound = True Then   '  complete match found
  10722.                iMatchFound( iNumOutputLines, 1 ) = True    '  flag to show the whole match is made
  10723.                iNumOutputLines = iNumOutputLines + 1
  10724.           Else
  10725.                For j = 1 To iCountTasks
  10726.                     iMatchFound( iNumOutputLines, j ) = False
  10727.                     iMatchDoc( iNumOutputLines, j ) = 0
  10728.                Next j
  10729.           End If
  10730.           
  10731.           '  shouldn't be checking on equal to numoutputlines - as that refers to the output, not all these selections will make it
  10732.           '  move check to a better place
  10733.           If iNumOutputLines = numoutputlines  Then
  10734.                'Messagebox "Reached Maximum Number of Matches for Display.  Continuing...", MB_ICONEXCLAMATION, "Query on Database"
  10735.                '***really need to start redim the array
  10736.                i = DataCollection( 1 ).Count
  10737.           End If
  10738.      Next i
  10739.      
  10740.      '   Exit if when through an entire collection and no match was found
  10741.      bMatchFound = False
  10742.      If iMatchDoc( 1, 1 ) > 0 Then
  10743.           bMatchFound = True
  10744.      End If
  10745.      
  10746.      If bMatchFound = False Then
  10747.           ProcessMultipleTasksCore = 0
  10748.           Exit Function
  10749.      End If
  10750.      
  10751.  '  need to determine the first task in the list that everyone is calibrated to
  10752.      bMatchFound = False
  10753.      iTaskCount = 0
  10754.      sLayoutServerTasks = ThisDoc.FieldGetText( "LayoutServerTasks" )
  10755.      sProcessTaskListTemp=sLayoutServerTasks
  10756.      
  10757.      '  if User Tasks then expand
  10758.      iPositionOfChar = Instr( 1, sLayoutServerTasks, "User Tasks" )
  10759.      If iPositionOfChar > 0 Then
  10760.           '  remove User Tasks from the List
  10761.           '  handle case where it is first in list
  10762.           If iPositionOfChar >1 Then
  10763.                sProcessTaskListTemp = Left( sLayoutServerTasks,( iPositionOfChar - 1 ) )
  10764.           Else
  10765.                sProcessTaskListTemp = ""
  10766.           End If    
  10767.           '  add in specific tasks
  10768.           For j = 1 To UserTaskArrayCount
  10769.                If Cint( sUserTaskArray( j, 2 ) ) > 0 Then
  10770.                     If Len( sProcessTaskListTemp ) > 0 Then
  10771.                          sProcessTaskListTemp = sProcessTaskListTemp + "; "
  10772.                     End If
  10773.                     sProcessTaskListTemp = sProcessTaskListTemp + sUserTaskArray( j, 1 )
  10774.                End If   
  10775.           Next
  10776.           sLayoutServerTasks = Trim( sProcessTaskListTemp )
  10777.      End If
  10778.      
  10779.      While bMatchFound = False
  10780.           iPositionOfChar = Instr( 1, sLayoutServerTasks, ";" )
  10781.           If iPositionOfChar = 0 Then
  10782.                sCalibrationTask = sLayoutServerTasks    '   reached last entry
  10783.                sLayoutServerTasks = ""
  10784.           Else 
  10785.                sCalibrationTask = Left( sLayoutServerTasks,( iPositionOfChar - 1 ) )
  10786.                sLayoutServerTasks = Right( sLayoutServerTasks, Len( sLayoutServerTasks ) - iPositionOfChar )
  10787.                sLayoutServerTasks = Trim( sLayoutServerTasks )
  10788.           End If
  10789.           
  10790.           iTaskCount=iTaskCount+1
  10791.           '  loop for each match found within the vendor db
  10792.           For z = 1 To( iNumOutputLines - 1 )   '  start with the matching entry
  10793.            '  *** need to find a common equation for the values
  10794.                If iMatchFound( z, 1 ) = True Then
  10795.                     For j = 1 To iCountTasks 
  10796.                          Set DataDoc( j ) = DataCollection( j ).GetNthDocument( iMatchDoc( z, j ) )
  10797.                     Next j  
  10798.                     vtemp =( DataDoc( iTaskCount ).GetItemValue( "DataUNumberUsers1" ) )
  10799.                     iBaseValue = Cint( vtemp( 0 ) )
  10800.                     '  need to calibrate task activity/hour and mb/hour for replications and Mail Routing Hub
  10801.                     vtemp1 = DataDoc( 1 ).DataUScript1
  10802.                     vtemp2 = DataDoc( 2 ).DataUScript1
  10803.                     
  10804.                     If vtemp1( 0 ) = "Replication Hub"  And vtemp2( 0 ) = "Mail Routing Hub"Then
  10805.                          vtemp =( DataDoc( 1 ).GetItemValue( "DataUOther11" ) )
  10806.                          iTaskBaseValue = Cint( vtemp( 0 ) )
  10807.                          
  10808.                          vtemp =( DataDoc( 1 ).GetItemValue( "DataUOther21" ) )
  10809.                          iMBBaseValue = Cint( vtemp( 0 ) )
  10810.                          
  10811.                          For j = 1 To 2 '  calibrate repl/hour, mb/hour
  10812.                               vtemp111 =( DataDoc( j ).GetItemValue( "DataUOther11" ) )
  10813.                               vtemp211 =( DataDoc( j ).GetItemValue( "DataUOther21" ) )
  10814.                               If( Cint( vtemp111( 0 ) ) ) <> 0 Then
  10815.                                    nTaskHourCalibration( j ) = iTaskBaseValue / Cint( vtemp111( 0 ) )
  10816.                               End If
  10817.                               If( Cint( vtemp211( 0 ) ) ) <> 0 Then
  10818.                                    nMBHourCalibration( j ) = iMBBaseValue / Cint( vtemp211( 0 ) )
  10819.                               End If
  10820.                          Next j
  10821.                          
  10822.                     End If 
  10823.                     
  10824.                     For j = 1 To iCountTasks     '  till number of scripts specified
  10825.                           '  now start expressing things in terms of the first task processed
  10826.                          vtemp1 = DataDoc( j ).GetItemValue( "DataUNumberUsers1" )
  10827.                          If  Cint( vtemp1( 0 ) ) <> 0 Then
  10828.                               nTaskCalibration( j ) =  iBaseValue /  Cint( vtemp1( 0 ) )
  10829.                          End If
  10830.                     Next j
  10831.                     
  10832.                     For i = 1 To 2
  10833.                          iTaskHourSpecification( i ) = 0
  10834.                     Next i
  10835.                     
  10836.                     '  now need to calibrate in terms of a single task
  10837.                     '  collect user count specification
  10838.                     i = 1
  10839.                     nCalibratedTaskNumber = 0
  10840.                     If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "Replication Hub" ) > 0 Then
  10841.                          vTemp = ThisDoc.Document.LayoutReplHub
  10842.                          If  vTemp( 0 ) <> 0 Then
  10843.                               iTaskCountSpecification( i ) = vTemp( 0 )
  10844.                               nCalibratedTaskNumber = vTemp( 0 )
  10845.                          '  calibrate repl/hour and mb/hour
  10846.                               If ThisDoc.FieldGetText( "LayoutReplHour" ) <> "*" Then
  10847.                                    iTaskHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutReplHour" ) )
  10848.                                    nCalibratedTaskHour = Cint( ThisDoc.FieldGetText( "LayoutReplHour" ) )
  10849.                               End If
  10850.                               If ThisDoc.FieldGetText( "LayoutMBReplHour" ) <> "*" Then
  10851.                                    iMBHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMBReplHour" ) )
  10852.                                    nCalibratedMBHour = Csng( ThisDoc.FieldGetText( "LayoutMBReplHour" ) )
  10853.                               End If 
  10854.                               i = i + 1
  10855.                          End If
  10856.                     End If
  10857.                     If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), "Mail Routing Hub" ) > 0 Then
  10858.                          vTemp = ThisDoc.Document.LayoutMailHub
  10859.                          If  vTemp( 0 ) <> 0  Then
  10860.                               iTaskCountSpecification( i ) = vTemp( 0 ) 
  10861.                               nCalibratedTaskNumber = nCalibratedTaskNumber + vTemp( 0 ) * nTaskCalibration( i )
  10862.                           '  calibrate mail/hour and mb/hour
  10863.                               If ThisDoc.FieldGetText( "LayoutMessagesHour" ) <> "*" Then
  10864.                                    iTaskHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMessagesHour" ) )
  10865.                                    nCalibratedTaskHour = nCalibratedTaskHour + Cint( ThisDoc.FieldGetText( "LayoutMessagesHour" ) ) * nTaskHourCalibration( i )
  10866.                               End If
  10867.                               If ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) <> "*" Then
  10868.                                    iMBHourSpecification( i ) = Cint( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) )
  10869.                                    nCalibratedMBHour = nCalibratedMBHour + Csng( ThisDoc.FieldGetText( "LayoutMBMessagesHour" ) ) * nMBHourCalibration( i )
  10870.                               End If
  10871.                               i = i + 1
  10872.                          End If
  10873.                     End If
  10874.                     
  10875.                     For x = 1 To UserTaskArrayCount
  10876.                          If sUserTaskArray( x, 2 ) <> "0"  Then
  10877.                               iTaskCountSpecification( i ) = Cint( sUserTaskArray( x, 2 ) )
  10878.                               nCalibratedTaskNumber = nCalibratedTaskNumber + (( Cint( sUserTaskArray( x,2 ) ) )  *  nTaskCalibration( i ) )
  10879.                               i = i + 1
  10880.                          End If  
  10881.                     Next
  10882.                     
  10883.                     iCalibratedTaskNumber = Int( nCalibratedTaskNumber )  '  now we have a user count based on one task
  10884.                     
  10885.                     If nCalibratedTaskHour <> 0 Then   'only do if repl hub and Mail Routing Hub
  10886.                          iCalibratedTaskHour = Int( nCalibratedTaskHour )
  10887.                          iCalibratedMBHour = Int( nCalibratedMBHour )
  10888.                     End If
  10889.                     
  10890.                     vtemp1 = DataDoc( 1 ).GetItemValue( "DataUServerID" )   ' only query on this machine
  10891.                     '   can a match be found, need to override the task specification and the user count, rest of the form can be used
  10892.                     '  ***need to convert Other11 and Other21
  10893.                     bProjectGrowthSelected = False
  10894.                     
  10895.                     If( sCalibrationTask = "Replication Hub" )  Then
  10896.                         'iOutputCounta = QueryOnDatabase( sSearchDB, sCalibrationTask, Str( iCalibratedTaskNumber ), ThisDoc.FieldGetText( "LayoutReplHour" ) , ThisDoc.FieldGetText( "LayoutMBReplHour" ), sOSPlatformWholeList, iOutputCounta )
  10897.                          iOutputCounta = QueryOnDatabase( sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), Cstr( iCalibratedTaskHour ), Cstr( nCalibratedMBHour ), sOSPlatformWholeList, iOutputCounta )
  10898.                     Elseif sCalibrationTask = "Mail Routing Hub" Then
  10899.                          iOutputCounta = QueryOnDatabase(  sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), Cstr( iCalibratedTaskHour ), Cstr( nCalibratedMBHour ), sOSPlatformWholeList, iOutputCounta )
  10900.                     Else                         
  10901.                          For y = 1 To UserTaskArrayCount
  10902.                               If sCalibrationTask = sUserTaskArray( y, 1 ) Then
  10903.                                    iOutputCounta = QueryOnDatabase(  sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Str( iCalibratedTaskNumber ) ), "", "", sOSPlatformWholeList, iOutputCounta )
  10904.                               End If
  10905.                          Next y
  10906.                     End If    '  only process if a match was completely found
  10907.                     
  10908.                     '  now try and process the growth path
  10909.                      'now do the growth projections
  10910.                     If bProjectGrowthChecked = True Then
  10911.                          bProjectGrowthSelected = True
  10912.                          '  now do percentage growth inc, vTemp contains the text version of numeric value
  10913.                          Dim vTemp2x As Variant
  10914.                          Dim vTempMultiplier As Variant
  10915.                          Dim nTempMultiplier As Single
  10916.                          Dim nTempResult As Single
  10917.                          Dim ijunk As Integer
  10918.                          Dim m As Integer
  10919.                          
  10920.                          If( sCalibrationTask = "Replication Hub" ) Then
  10921.                               vTemp = iCalibratedTaskNumber
  10922.                               vTemp2x = iCalibratedTaskNumber
  10923.                               vTempMultiplier = ThisDoc.Document.PerGrowthProj
  10924.                               nTempMultiplier = Cint( vTempMultiplier ( 0 ) )
  10925.                               nTempMultiplier = nTempMultiplier / 100
  10926.                               nTempResult = nTempMultiplier * ( vTemp )
  10927.                               vTemp = Cstr( nTempResult +  vTemp2x )
  10928.                               iGrowthCount = QueryOnDatabase( sSearchDB,  vtemp1( 0 ), sCalibrationTask, Trim( Cstr( vTemp ) ), "*", "*", sOSPlatformWholeList, iGrowthCount )
  10929.                          Elseif( sCalibrationTask = "Mail Routing Hub" ) Then
  10930.                               vTemp = iCalibratedTaskNumber
  10931.                               vTemp2x = iCalibratedTaskNumber
  10932.                               vTempMultiplier = ThisDoc.Document.PerGrowthProj
  10933.                               nTempMultiplier = Cint( vTempMultiplier ( 0 ) )
  10934.                               nTempMultiplier = nTempMultiplier / 100
  10935.                               nTempResult = nTempMultiplier * ( vTemp( 0 ) )
  10936.                               vTemp = Cstr( nTempResult + vTemp2x )
  10937.                               iGrowthCount = QueryOnDatabase( sSearchDB, vtemp1( 0 ), sCalibrationTask, Trim( Cstr( vTemp ) ), "*", "*",sOSPlatformWholeList, iGrowthCount )
  10938.                          Else
  10939.                               For i = 1 To UserTaskArrayCount
  10940.                                    If sUserTaskArray( i, 2 ) <> "0" Then
  10941.                                         vTemp = iCalibratedTaskNumber
  10942.                                         vTemp2x = iCalibratedTaskNumber
  10943.                                         vTempMultiplier = ThisDoc.Document.PerGrowthProj
  10944.                                         nTempMultiplier = Cint( vTempMultiplier ( 0 ) )
  10945.                                         nTempMultiplier = nTempMultiplier / 100
  10946.                                         nTempResult = nTempMultiplier * ( vTemp )
  10947.                                         vTemp = Cstr( nTempResult +  vTemp2x )
  10948.                                         iGrowthCount = QueryOnDatabase( sSearchDB, vtemp1( 0 ),  sCalibrationTask, Trim( Cstr( vTemp ) ), "", "", sOSPlatformWholeList, iGrowthCount )
  10949.                                         i = UserTaskArrayCount
  10950.                                    End If
  10951.                               Next i
  10952.                          End If
  10953.                     End If
  10954.                End If
  10955.           Next z
  10956.           
  10957.           If iOutputCounta > 0 Or sLayoutServerTasks = "" Then      '  match found
  10958.                bMatchFound = True
  10959.           End If
  10960.      Wend
  10961.      ProcessMultipleTasksCore = iOutputCounta + ProcessMultipleTasksCount
  10962.      
  10963. End Function
  10964. '++LotusScript Development Environment:2:1:UserTaskCount:2:8
  10965. Function UserTaskCount( ThisDoc ) As Integer
  10966.     'Dim ThisDoc As NotesUIDocument
  10967.      Dim Workspace As New NotesUIWorkspace
  10968.      
  10969.      'Set ThisDoc = Workspace.CurrentDocument
  10970.      
  10971.      UserTaskCount=0  ' means user tasks option not selected
  10972.      For i = 1 To UserTaskArrayCount
  10973.           If( Cint( sUserTaskArray( i, 2 ) ) > 0 ) Then
  10974.                UserTaskCount=UserTaskCount + 1
  10975.           End If
  10976.      Next i
  10977. End Function
  10978. '++LotusScript Development Environment:2:2:ZeroFieldOut:2:8
  10979. Sub ZeroFieldOut( ThisDoc As NotesUIDocument, sFieldNameOut As String )
  10980.      If Len( ThisDoc.FieldGetText( sFieldNameOut ) ) = 0 Then
  10981.           Call ThisDoc.FieldSetText( sFieldNameOut, "0" )
  10982.      End If
  10983. End Sub
  10984. '++LotusScript Development Environment:2:1:ExtractVendorName:1:8
  10985. Function ExtractVendorName( sSearchDB As String ) As String
  10986.      
  10987.      ExtractVendorName = Left( sSearchDB,( Len( sSearchDB ) - 4 ) )   '  extract .NSF
  10988.      ExtractVendorName = Right( ExtractVendorName,( Len( ExtractVendorName ) - 2 ) )  '  extract CP prefix
  10989.      
  10990. End Function
  10991. '++LotusScript Development Environment:2:2:UserTaskArrayInitWhole:1:8
  10992. Sub UserTaskArrayInitWhole ( doc As NotesDocument )
  10993.      
  10994.      '  col1 = sProcessThisTask( UI selection ), col2 = associated fieldname contents, col3 = base for fieldname
  10995.      
  10996.      For i = 1 To UserTaskArrayCount
  10997.           sUserTaskArray( i, 2 ) = "0"
  10998.      Next
  10999.      
  11000.      sUserTaskArray( 1,1 ) = "Mail"
  11001.      sUserTaskArray( 1,3 ) = "LayoutMail"
  11002.      vtemp = doc.Adjust_Mail
  11003.      sUserTaskArray( 1,4 ) = Cstr( vtemp( 0 ) )
  11004.      
  11005.      sUserTaskArray( 2,1 ) = "Mail & Database"
  11006.      sUserTaskArray( 2,3 ) = "LayoutMailDB"
  11007.      vtemp = doc.Adjust_MailDB
  11008.      sUserTaskArray( 2,4 ) = Cstr( vtemp( 0 ) )
  11009.      
  11010.      sUserTaskArray( 3,1 ) = "Groupware #1"
  11011.      sUserTaskArray( 3,3 ) = "LayoutGroupware" 
  11012.      vtemp = doc.Adjust_Groupware
  11013.      sUserTaskArray( 3,4 ) = Cstr( vtemp( 0 ) )
  11014.      
  11015.      sUserTaskArray( 4,1 ) = "Calendar & Scheduling"
  11016.      sUserTaskArray( 4,3 ) = "LayoutCS"
  11017.      vtemp = doc.Adjust_CS
  11018.      sUserTaskArray( 4,4 ) = Cstr( vtemp( 0 ) )
  11019.      
  11020.      sUserTaskArray( 5,1 ) = "Database"
  11021.      sUserTaskArray( 5,3 ) = "LayoutDatabase"
  11022.      vtemp = doc.Adjust_Database
  11023.      sUserTaskArray( 5,4 ) = Cstr( vtemp( 0 ) )
  11024.      
  11025.      sUserTaskArray( 6,1 ) = "Web Walker"
  11026.      sUserTaskArray( 6,3 ) = "LayoutWW"
  11027.      vtemp = doc.Adjust_WW
  11028.      sUserTaskArray( 6,4 ) = Cstr( vtemp( 0 ) )
  11029.      
  11030.      sUserTaskArray( 7,1 ) = "Web Buyer"
  11031.      sUserTaskArray( 7,3 ) = "LayoutWB"
  11032.      vtemp = doc.Adjust_WB
  11033.      sUserTaskArray( 7,4 ) = Cstr( vtemp( 0 ) )
  11034.      
  11035.      sUserTaskArray( 8,1 ) = "R5 Mail & Database"
  11036.      'sUserTaskArray( 8,2 ) = ThisDoc.FieldGetText( "LayoutFTSearch" )
  11037.      sUserTaskArray( 8,3 ) = "LayoutR5MDB"
  11038.      vtemp = doc.Adjust_R5MDB
  11039.      sUserTaskArray( 8,4 ) = Cstr( vtemp( 0 ) )
  11040.      
  11041.      
  11042. End Sub
  11043. '++LotusScript Development Environment:2:2:Click:1:12
  11044. Sub Click( Source As Button )
  11045.      
  11046.      Call MainPathQuery( bProjectGrowthSelected )
  11047.      
  11048. End Sub
  11049. '++LotusScript Development Environment:2:2:MainPathQuery:1:8
  11050. Sub MainPathQuery( growthflag As Integer )
  11051.      Dim Workspace As New NotesUIWorkspace
  11052.      Dim ThisDoc As NotesUIDocument
  11053.      Dim DateTime As New NotesDateTime( "1/1/96" )
  11054.      Dim Session As New NotesSession
  11055.      Dim CurrentView As NotesView
  11056.      Dim doc As NotesDocument
  11057.      
  11058.      Dim sOSPlatformWholeList As String
  11059.      Dim sServerTasks As String
  11060.      Dim VendorDBBuffer As String
  11061.      Dim iPositionOfChar As Integer
  11062.      Dim iOutputCountb As Integer
  11063.      Dim sSearchDB As String
  11064.      
  11065.      Set CurrentDB = Session.CurrentDatabase
  11066.      Set CurrentView = CurrentDB.GetView( "(List)" )
  11067.      Set doc = CurrentView.GetFirstDocument
  11068.      
  11069.      If doc Is Nothing Then
  11070.           Messagebox "List Information Missing", MB_ICONEXCLAMATION, "Query on Data"
  11071.           Exit Sub
  11072.      End If
  11073.      While doc.ListType( 0 ) <> "Database"
  11074.           Set doc = CurrentView.GetNextDocument( doc )
  11075.           If doc Is Nothing Then
  11076.                Messagebox "Vendor Database List Information Missing", MB_ICONEXCLAMATION, "Query on Data"
  11077.                Exit Sub
  11078.           End If
  11079.      Wend
  11080.      Set ThisDoc = Workspace.CurrentDocument
  11081.      
  11082.      bAlreadyDisplayedWarning = False  '  signal for reporting 1x reached limit on output
  11083.      bProjectGrowthSelected = False   '  straighline query
  11084.      bGrowthListCountFlag = False  '  message display if growth list display exceeded
  11085.      
  11086.       '  extract rule of thumb information
  11087.      Set CurrentView = CurrentDB.GetView( "Conversion Guidelines" )
  11088.      Set doc = CurrentView.GetFirstDocument
  11089.      If doc Is Nothing Then
  11090.           Messagebox "Conversion Guidelines Document Missing", MB_ICONEXCLAMATION, "Query on Data"
  11091.           Exit Sub
  11092.      End If
  11093.      While doc.Profile( 0 ) <> "Default"
  11094.           Set doc = CurrentView.GetNextDocument( doc )
  11095.           If doc Is Nothing Then
  11096.                Messagebox "Conversion Guidelines Document Missing", MB_ICONEXCLAMATION, "Query on Data"
  11097.                Exit Sub
  11098.           End If
  11099.      Wend
  11100.      
  11101.      vtemp = doc.Adjust_ReplHub
  11102.      nAdjust_ReplHub = vtemp( 0 )
  11103.      vtemp = doc.Adjust_MailHub
  11104.      nAdjust_MailHub = vtemp( 0 )
  11105.      
  11106.      
  11107.      Call UserTaskArrayInitWhole (doc)
  11108.      
  11109.      
  11110.      If VerifyForm( sOSPlatformWholeList ) = False Then
  11111.           Exit Sub
  11112.      End If
  11113.      
  11114.      Set ListDoc =  CreateList( )         '  insure List form is present and up-to-date
  11115.      
  11116.      sOSPlatformWholeList = ThisDoc.FieldGetText( "LayoutOSPlatform" )
  11117.      If sOSPlatformWholeList = "" Then
  11118.           sOSPlatformWholeList = "AIX/RS6000; AIX/SP2;  HP-UX; NetWare 3.12; NetWare 4.1; NT 3.51; NT 4.0; OS/2 2.11 SMP; OS/2 Warp Connect; OS/2 Warp Server 4.0; Solaris 2.5; Win95 1.0;System/390;AS/400"
  11119.      End If
  11120.      
  11121.          'clear out the graphs as they won't be in sync with the output table generated
  11122.      ThisDoc.GoToField( "LayoutCostChart" )
  11123.      ThisDoc.FieldClear( "LayoutCostChart" )
  11124.      
  11125.      ThisDoc.GoToField( "LayoutCostSheet" )
  11126.      ThisDoc.FieldClear( "LayoutCostSheet" )
  11127.      
  11128.      ThisDoc.GoToField( "LayoutResponseChart" )
  11129.      ThisDoc.FieldClear( "LayoutResponseChart" )
  11130.      
  11131.      ThisDoc.GoToField( "LayoutResponseSheet" )
  11132.      ThisDoc.FieldClear( "LayoutResponseSheet" )
  11133.      Dim z As Integer
  11134.      For z = 1 To numoutputlines
  11135.           Call ThisDoc.FieldSetText("E" + Cstr( z ), "")
  11136.      Next z
  11137.      
  11138.      ThisDoc.GoToField( sFieldName )  '  position back at current field temporarily
  11139.      
  11140.      
  11141.  '    query against database
  11142.      VendorDBBuffer = ThisDoc.FieldGetText( "VendorList" )
  11143.      If Len( VendorDBBuffer ) = 0 Then
  11144.  '        Messagebox "no vendors selected"
  11145.  '        insert all vendors into list     
  11146.  '        Find the list document which contains the dynamic list
  11147.           If doc Is Nothing Then
  11148.                Messagebox "No Vendors Selected/Found", MB_ICONEXCLAMATION, "Query on Data"
  11149.           Else
  11150.                While Not( doc Is Nothing )
  11151.                     If doc.ListType( 0 ) = "Database" Then
  11152.                          Set Listdoc = doc
  11153.                          If Listdoc.list( 0 ) = "" Then
  11154.                               Messagebox "Warning:  No Vendor Databases to Search", MB_ICONEXCLAMATION, "Database Search"
  11155.                               ThisDoc.GotoField( "LayoutServerTasks" )
  11156.                               Exit Sub
  11157.                          End If
  11158.                          
  11159.                          Forall vendorname In Listdoc.list 
  11160. '                             format the string, separated by ;
  11161.                               If vendorname <> "" Then
  11162.                                    If VendorDBBuffer <> "" Then
  11163.                                         VendorDBBuffer = VendorDBBuffer & " ; "  
  11164.                                    End If
  11165.                                    VendorDBBuffer = VendorDBBuffer & vendorname
  11166.                               End If
  11167.                          End Forall
  11168.                     End If
  11169.                     Set doc = CurrentView.GetNextDocument( doc )
  11170.                Wend
  11171.           End If
  11172.      End If
  11173.      If Len( VendorDBBuffer ) = 0 Then
  11174.           Dim i As Integer
  11175.           Dim j As Integer
  11176.           i = 0
  11177.           j = Ubound( sgVendor)
  11178.           While i <> (j + 1)
  11179.                If Len( sgVendor( i ) ) > 0 Then
  11180.                     If i <> 0 Then
  11181.                          VendorDBBuffer = VendorDBBuffer & ";"
  11182.                     End If
  11183.                     VendorDBBuffer = VendorDBBuffer & sgVendor( i )
  11184.                     i = i + 1
  11185.                End If
  11186.           Wend
  11187.      End If
  11188.      '  count the vendors selected.  make sure there is always room for one entry each vendor
  11189.      iVendorCount = 0
  11190.      iPositionOfChar = 1
  11191.      While iPositionOfChar <> 0
  11192.           iPositionOfChar = Instr( iPositionOfChar, VendorDBBuffer, ";" )
  11193.           If iPositionOfChar <> 0 Then
  11194.                iPositionOfChar = iPositionOfChar + 1
  11195.           End If
  11196.           iVendorCount = iVendorCount + 1
  11197.      Wend
  11198.      
  11199.      If iVendorCount > numoutputlines Then       'currently limit set at 10 output values
  11200.           Messagebox "The number of output information exceeds the current display.  You should adjust your query specifications.",  MB_ICONEXCLAMATION, "Output Limit Reached"
  11201.           ThisDoc.GotoField( "VendorList" )
  11202.           Exit Sub
  11203.      End If
  11204.      
  11205. '    initialize queryid field    
  11206.      RandomValue = Cstr( Year( Today ) + Month( Today ) * 50 + Day( Today ) + Hour( Time ) * 360 + Minute( Time ) * 60 + Second( Time ) )
  11207. '    Need **** to verify that random value is unique , verify it for this document and anywhere it is stored
  11208.      ThisDoc.document.queryid =  RandomValue
  11209.      
  11210.      '  Calculate total amount specified
  11211.      nTotalAmt = Csng( ThisDoc.FieldGetText( "OtherAmt1" ) ) + Csng( ThisDoc.FieldGetText( "OtherAmt2" ) ) + Csng( ThisDoc.FieldGetText( "OtherAmt3" ) )
  11212.      
  11213.      '  determine why a machine wasn't selected
  11214.      '  choice 1:  machine doesn't have the necessary workload
  11215.      '  choice 2:  machine doesn't have the necessary workload in range; partial selection
  11216.      '  choice 3:  machine doesn't have the workload in range (via calculated results)
  11217.      '  strategy:
  11218.      '  1.  get the list of all the machines, all the vendors
  11219.      '  2.  can isolate choice 1 easily
  11220.      '  3.  can isolate choice 3 at the end, when the machines are rejected on the composite
  11221.      '  4.  determine choice 2 by default
  11222.      '  5.  need to factor in machines which are selected
  11223.      iRejectListCount = 0
  11224.      bRejectMessageDisplayed = False
  11225.      iGrowthListCount = 0
  11226.      iCurrentCount = 0
  11227.      
  11228.      If Instr( 1, ThisDoc.FieldGetText( "LayoutServerTasks" ), ";" ) = 0 And UserTaskCount( ThisDoc ) < 2 Then
  11229.           ' only one server task specified?
  11230.           iOutputCountb = ProcessOneTask( VendorDBBuffer, sOSPlatformWholeList )
  11231.      Else 
  11232.           iOutputCountb = ProcessMultipleTasks( VendorDBBuffer, sOSPlatformWholeList )
  11233.      End If
  11234.      
  11235.      Dim sCurrentVendorFieldName As String
  11236.      Dim sCurrentMachIDFieldName As String
  11237.      Dim vCurrentVendorFieldValue As Variant
  11238.      Dim vCurrentMachIDFieldName As Variant
  11239.      Dim bCurrentMatchFound As Integer
  11240.      
  11241.        '  recount, just to be sure
  11242.      Dim bMessageDisplay As Integer
  11243.      bMessageDisplay = False
  11244.      iOutputCountb = numoutputline  ' setup in case grid filled up
  11245.      For i = 1 To numoutputlines
  11246.           sCurrentMachIDFieldName = "OutResults" + Cstr( i )  '  Machine ID field name
  11247.           vCurrentMachIDFieldValue = ThisDoc.FieldGetText( sCurrentMachIDFieldName )
  11248.           If bMessageDisplay = False Then
  11249.                If Len( vCurrentMachIDFieldValue ) = 0 And vCurrentMachIDFieldValue <> " '" Then
  11250.                     'Messagebox "iOutputCountb " + Cstr( iOutputCountb ) + " loop count " + Cstr( i ) 
  11251.                     iOutputCountb = ( i - 1 )
  11252.                     bMessageDisplay = True
  11253.                End If
  11254.           End If
  11255.      Next
  11256.      
  11257.      iCurrentCount = iOutputCountb  'keep track of what was the number of entries for current
  11258.      'Call ThisDoc.FieldSetText("E2", "No" )
  11259.      If iOutputCountb = 0   And iRejectListCount > 0 Then
  11260.           Messagebox " No Query Results Found.  Please check the " + {"} + "Systems Not Meeting Criteria" + {"} + " Section to get a better understanding of why.", MB_ICONEXCLAMATION,  "Query Results"
  11261.           ThisDoc.GoToField( "vendor_1")
  11262.           '  now display machines in reject list;  compare machines found in result list, to machines in reject list which are displayable, display those with a reason 
  11263.      Elseif  iOutputCountb = 0   And iRejectListCount = 0 Then
  11264.           Messagebox " No Machine ID Forms found in Vendor Database(s).", MB_ICONEXCLAMATION,  "Query Results"
  11265.      End If
  11266.      
  11267.       '  go through the list again, anything that doesn't have a reason code and is iDisplayable = False
  11268.      For i = 0 To ( iRejectListCount - 1 )
  11269.           If iDisplayable( i ) = False And Len( sReason( i ) ) < 6 Then
  11270.                iDisplayable ( i ) = True
  11271.                'Messagebox sReason3
  11272.                'Messagebox sReason( i )
  11273.                'Dim vTempLayoutFieldTasks As Variant
  11274.                'vTempLayoutFieldTasks = ThisDoc.FieldGetText("LayoutServerTasks")
  11275.                
  11276.                sReason( i ) = sReason3 + ": " + ThisDoc.FieldGetText( "LayoutServerTasks" ) 
  11277.           Else
  11278.                If sReason(i) = "Found" Then          '  change reasoning for display
  11279.                     sReason( i ) = sReason3 + ": " + ThisDoc.FieldGetText( "LayoutServerTasks" ) 
  11280.                End If
  11281.           End If
  11282.      Next
  11283.      
  11284.      If iOutputCountb > numoutputlines Then
  11285.           iOutputCountb = numoutputlines  ' resychronize to be sure
  11286.      End If
  11287.      
  11288.      ' now reconcile which systems are recommended vs. which are in the total system list, insert reason3 for those systems which are not in the list
  11289.      Dim sTempFieldName As String
  11290.      Dim sCompareName As String
  11291.      For i = 0 To ( iRejectListCount - 1 )
  11292.           For j = 1 To iOutputCountb
  11293.                sTempFieldName = "OutResults" + Cstr( j ) + "_2"
  11294.                sCompareName = ThisDoc.FieldGetText( sTempFieldName )
  11295.                If sVendorName( i ) = sCompareName Then  '  found a match on vendor
  11296.                     sTempFieldName = "OutResults" + Cstr( j ) 
  11297.                     sCompareName = ThisDoc.FieldGetText( sTempFieldName )
  11298.                     If sMachID( i ) = sCompareName  And iDisplayable( i ) = True Then  '  found a match on machine id
  11299.                          iDisplayable( i ) = False  '  don't display this entry in the reject list
  11300.                     Else
  11301.                          If sReason( i ) = "Found" Then
  11302.                               sReason( i ) = sReason3
  11303.                          End If
  11304.                     End If
  11305.                End If
  11306.           Next j
  11307.           
  11308.      Next i
  11309.      
  11310.      If iRejectListCount > 0 Then
  11311.           Dim sRejectFieldName As String
  11312.           j = 1
  11313.           For i = 0 To ( iRejectListCount - 1 )
  11314.                If iDisplayable( i ) = True Then
  11315.                     '  move information over
  11316.                     sRejectFieldName = "vendor_" & Cstr( j )
  11317.                     If j < ( RejectMachineCount + 1 ) Then
  11318.                          Call ThisDoc.FieldSetText( sRejectFieldName, sVendorName( i ) )
  11319.                          
  11320.                          sRejectFieldName = "machid_" & Cstr( j )
  11321.                          Call ThisDoc.FieldSetText( sRejectFieldName, sMachID( i ) )
  11322.                          
  11323.                          sRejectFieldName = "reason_" & Cstr( j )
  11324.                          Call ThisDoc.FieldSetText( sRejectFieldName, sReason( i ) )
  11325.                          
  11326.                     End If
  11327.                     
  11328.                     j = j + 1  '  this counter goes with the display
  11329.                End If
  11330.           Next
  11331.      End If
  11332.      
  11333.      '  now update the growth information
  11334.      
  11335.      '  make sure the list contains all the system that meet the current, even if they don't meet the growth
  11336.      
  11337.      For j = 1 To iOutputCountb
  11338.           '  now verify if the currently meets is on the list
  11339.           If iGrowthListCount > 0 Then
  11340.                For i = 0 To ( iGrowthListCount - 1 )
  11341.                     sCurrentVendorFieldName = "OutResults" + Cstr( j ) + "_2"  '  Vendor field name
  11342.                     sCurrentMachIDFieldName = "OutResults" + Cstr( j )  '  Machine ID field name
  11343.                     vCurrentVendorFieldValue = ThisDoc.FieldGetText( sCurrentVendorFieldName )
  11344.                     vCurrentMachIDFieldValue = ThisDoc.FieldGetText( sCurrentMachIDFieldName )
  11345.                     If  vCurrentVendorFieldValue = sgVendorName( i ) And vCurrentMachIDFieldValue = sgMachID( i ) Then
  11346.                          bCurrentMatchFound = True
  11347.                     End If
  11348.                Next i
  11349.           End If
  11350.           
  11351.           If bCurrentMatchFound = False Then    '  need to add to list
  11352.                If iGrowthListCount = (GrowthMachineCount ) Then   '
  11353.                     
  11354.                     If bGrowthListCountFlag = False Then
  11355.                          Messagebox ("Number of Machines to add to Projected Growth Analysis Section has been exceeded.  Continuing...." )
  11356.                          bGrowthListCountFlag = True
  11357.                     End If
  11358.                Else
  11359.                     If Len( vCurrentVendorFieldValue ) > 0  And vCurrentVendorFieldValue <> " " Then
  11360.                          sgVendorName( iGrowthListCount ) = vCurrentVendorFieldValue
  11361.                          sgMachID( iGrowthListCount ) = vCurrentMachIDFieldValue
  11362.                          sgReason( iGrowthListCount ) = "Yes"
  11363.                          sgReasong( iGrowthListCount ) = "No"
  11364.                          iGrowthListCount = iGrowthListCount + 1
  11365.                     End If
  11366.                End If
  11367.                
  11368.           End If
  11369.           bCurrentMatchFound = False  
  11370.      Next j
  11371.      
  11372.      Dim sGrowthFieldName As String
  11373.      Dim vTempGrowthInfo As Variant
  11374.      If iGrowthListCount > (GrowthMachineCount - 2 ) Then
  11375.           iGrowthListCount = GrowthMachineCount - 1
  11376.      End If
  11377.      
  11378.      j = 1
  11379.      If iGrowthListCount > 0 Then
  11380.           For i = 0 To ( iGrowthListCount - 1 )
  11381.            '  move information over
  11382.                vTempGrowthInfo = ThisDoc.FieldGetText( "PerGrowthProj" )  '  update display, near output results
  11383.                Call ThisDoc.FieldSetText( "PerGrowthProj_1", vTempGrowthInfo )
  11384.                
  11385.                sGrowthFieldName = "gvendor_" & Cstr( j )  '  somehow an extra entry is being inserted, blanks for vendor & machine, reasons for sgreasong & sgreason,  happens on the last
  11386.                ' *** somehow iGrowthListCount is incremented one extra time
  11387.                If sgVendorName( i ) <> " " Then
  11388.                     Call ThisDoc.FieldSetText( sGrowthFieldName, sgVendorName( i ) )
  11389.                     sGrowthFieldName = "gmachid_" & Cstr( j )
  11390.                     Call ThisDoc.FieldSetText( sGrowthFieldName, sgMachID( i )  )
  11391.                     sGrowthFieldName = "greason_" & Cstr( j )
  11392.                     Call ThisDoc.FieldSetText( sGrowthFieldName, sgReason( i ) )
  11393.                     sGrowthFieldName = "greasong_" & Cstr( j )
  11394.                     Call ThisDoc.FieldSetText( sGrowthFieldName, sgReasong( i ) )
  11395.                End If
  11396.                j = j + 1  '  this counter goes with the display
  11397.           Next i
  11398.      End If
  11399.      
  11400.      '     output total count of documents processed     
  11401.      
  11402.      ThisDoc.document.numresults = Cstr( ( iOutputCountb - 1 ) )
  11403.      'Messagebox(ThisDoc.FieldGetText("OutResults1"))
  11404.      '  need to set FieldText for Estimation field here
  11405.      'Call ThisDoc.FieldSetText("E3", "No" )
  11406.      
  11407.      For i =   1 To iOutputCountb  '  kludge
  11408.           Call ThisDoc.FieldSetText( ("E" & Cstr(i)), EstimatedDisplay( i ) )
  11409.           EstimatedDisplay( i ) = ""  '  clean it out after setting it
  11410.      Next i
  11411.      
  11412.      
  11413.      If iOutputCountb > 0 Then
  11414.           ThisDoc.GoToField( "OutResults1_2")
  11415.      End If
  11416.      'Call ThisDoc.FieldSetText("E4", "No" )
  11417.      
  11418.      '  col1 = sProcessThisTask( UI selection ), col2 = associated fieldname contents, col3 = base for fieldname
  11419.      '  doesn't do column 4
  11420.      
  11421.      
  11422.      
  11423. End Sub
  11424. '++LotusScript Development Environment:2:2:Objectexecute:1:12
  11425. Sub Objectexecute(Source As Button, Data As Variant)
  11426.      
  11427. End Sub
  11428. Categori_ze
  11429. _Edit Document
  11430. Send Docu_ment
  11431. _Forward
  11432. _Move To Folder...
  11433. _Remove From Folder
  11434. Exit'++LotusScript Development Environment:2:5:(Options):0:66
  11435. '++LotusScript Development Environment:2:5:(Forward):0:1
  11436. Declare Sub Click( Source As Button )
  11437. '++LotusScript Development Environment:2:5:(Declarations):0:2
  11438. '++LotusScript Development Environment:2:2:BindEvents:1:129
  11439. Private Sub BindEvents(Byval Objectname_ As String)
  11440.      Static Source As BUTTON
  11441.      Set Source = Bind(Objectname_)
  11442.      On Event Click From Source Call Click
  11443. End Sub
  11444. '++LotusScript Development Environment:2:2:Click:1:12
  11445. Sub Click( Source As Button )
  11446.      Dim WorkSpace As New notesuiworkspace
  11447.      Dim ThisDoc As notesuidocument
  11448.      Set ThisDoc =WorkSpace.CurrentDocument
  11449.      ThisDoc.Document.SaveOptions="0"
  11450.      ThisDoc.Close
  11451. End Sub
  11452. Save Query'++LotusScript Development Environment:2:5:(Options):0:66
  11453. '++LotusScript Development Environment:2:5:(Forward):0:1
  11454. Declare Sub Click( Source As Button )
  11455. '++LotusScript Development Environment:2:5:(Declarations):0:2
  11456. '++LotusScript Development Environment:2:2:BindEvents:1:129
  11457. Private Sub BindEvents(Byval Objectname_ As String)
  11458.      Static Source As BUTTON
  11459.      Set Source = Bind(Objectname_)
  11460.      On Event Click From Source Call Click
  11461. End Sub
  11462. '++LotusScript Development Environment:2:2:Click:2:12
  11463. Sub Click( Source As Button )
  11464.      Call SaveQuery()
  11465. End Sub
  11466. FormNewLocation
  11467. Save Query & Results'++LotusScript Development Environment:2:5:(Options):0:66
  11468. '++LotusScript Development Environment:2:5:(Forward):0:1
  11469. Declare Sub Click( Source As Button )
  11470. Declare Function MoveQueryInformationOver( OutputDoc As NotesDocument, ListDoc As NotesDocument ) As Integer
  11471. '++LotusScript Development Environment:2:5:(Declarations):0:2
  11472. '++LotusScript Development Environment:2:2:BindEvents:1:129
  11473. Private Sub BindEvents(Byval Objectname_ As String)
  11474.      Static Source As BUTTON
  11475.      Set Source = Bind(Objectname_)
  11476.      On Event Click From Source Call Click
  11477. End Sub
  11478. '++LotusScript Development Environment:2:2:Click:2:12
  11479. %INCLUDE "pstoarr.lss"
  11480. Sub Click( Source As Button )
  11481.      ' to do
  11482.      '  if only create mail item, disable the server and filename options
  11483.      Dim OutputDB As New NotesDatabase( "", "" )
  11484.      Dim VendorDB As New NotesDatabase( "", "" )
  11485.      Dim OutputDBTemplate As New NotesDatabase( "", "DSPD.NTF" )
  11486.      Dim ThisDB As NotesDatabase 
  11487.      Dim Collection As NotesDocumentCollection
  11488.      Dim DateTime As New NotesDateTime( "01/01/96" )
  11489.      Dim ThisDoc As NotesUIDocument
  11490.      Dim HelpDoc As NotesDocument
  11491.      Dim ThisDocBE As NotesDocument
  11492.      Dim OutputDoc As NotesDocument     
  11493.      Dim OutputDocMachID As NotesDocument 
  11494.      Dim OutputDocMachID2 As NotesDocument
  11495.      Dim OutputDocQuery As NotesDocument   
  11496.      Dim ListDoc As NotesDocument
  11497.      Dim RuleofThumbDoc As NotesDocument
  11498.      Dim MachineIDDoc As NotesDocument
  11499.      Dim Workspace As New NotesUIWorkspace
  11500.      Dim View As NotesView
  11501.      Dim Outputview As NotesView
  11502.      Dim Session As New NotesSession
  11503.      Dim RTItem As NotesRichTextItem
  11504.      Dim iResults As Integer
  11505.      
  11506.      Dim OutputArray As Variant
  11507.      Dim sMachineID As String
  11508.      
  11509.      Set ThisDoc = Workspace.CurrentDocument
  11510.      Set ThisDB = Session.CurrentDatabase
  11511.      Set ThisDocBE = ThisDoc.document
  11512.      
  11513.      ThisDoc.document.OutputServer = "local"
  11514.      ThisDoc.document.OutputFilename = "OUTPUT.NSF"
  11515.      
  11516.      If( Workspace.DialogBox( "OutputInfo", True, True ) = False ) Then
  11517.           Exit Sub
  11518.      End If
  11519.      
  11520.      If ( SaveQuery() = False ) Then
  11521.           Exit Sub
  11522.      End If
  11523.      
  11524.      If ThisDoc.FieldGetText( "OutputSaveResults" ) = "" Then  '  no options selected
  11525.           'Messagebox "No Options Selected",  MB_ICONEXCLAMATION, "Save Query & Results"
  11526.           Exit Sub
  11527.      End If
  11528.      If( Instr( 1,ThisDoc.FieldGetText( "OutputSaveResults" ), "Create Mail Item" ) ) Then
  11529.             'verify info is specified in the sendto field
  11530.           If ThisDoc.FieldGetText( "SendTo" ) = "" Then
  11531.                Messagebox "Specify Recipient List in Mailing Section",  MB_ICONEXCLAMATION, "Save Query & Results"
  11532.                ThisDoc.GoToField( "SendTo" )
  11533.                Exit Sub
  11534.           End If
  11535.           
  11536.           ThisDocBE.FormNewLocation = "1"  '  flag for disabling action bar
  11537.           ThisDocBE.MailFlag = "1"
  11538.           ThisDocBE.Form = "Query on Data"
  11539.           ThisDocBE.Send( True )
  11540.           ThisDocBE.FormNewLocation = "0"    '  reset it for the moment
  11541.           ThisDocBE.MailFlag = "0"
  11542.      End If
  11543.      If( Instr( 1, ThisDoc.FieldGetText( "OutputSaveResults" ), "Output to Database" ) ) Then
  11544.           
  11545.            '  processing onward for database only
  11546.           QueryOutputFilename = ThisDoc.FieldGetText( "OutputFilename" )
  11547.           QueryOutputServer = ThisDoc.FieldGetText( "OutputServer" )
  11548.           If QueryOutputServer = "local" Then
  11549.                QueryOutputServer = ""
  11550.           End If
  11551.           
  11552.           If QueryOutputFilename = "" Then
  11553.                Messagebox "Cannot Create Output File", MB_ICONEXCLAMATION, "Save Query & Results"
  11554.                Exit Sub
  11555.           End If
  11556.           '    initialize queryid field  ( random value:  based on date and time offset )
  11557.           RandomValue = Cstr( Year( Today ) + Month( Today ) * 50 + Day( Today ) + Hour( Time ) * 360 + Minute( Time ) * 60 + Second( Time ) )
  11558.           
  11559.           '  need to make sure value is unique
  11560.           vTemp = ThisDoc.Document.UniqueCount
  11561.           RandomValue = RandomValue + vTemp( 0 )
  11562.           '  bump it up
  11563.           vTemp( 0 ) = vTemp( 0 ) + 2
  11564.           ThisDoc.Document.UniqueCount = vTemp( 0 )
  11565.           
  11566.            '    if database doesn't exist, create it   
  11567.           If( Not( OutputDB.Open( QueryOutputServer, QueryOutputFilename ) ) ) Then
  11568.                'Set OutputDB = ThisDB.CreateCopy( QueryOutputServer, QueryOutputFilename )
  11569.                'Set OutputDB = ThisDB.CreatefromTemplate( QueryOutputServer, QueryOutputFilename, True )
  11570.                Set OutputDB = OutputDBTemplate.CreateCopy( QueryOutputServer, QueryOutputFilename )
  11571.                
  11572.                OutputDb.Title = "Domino Server.Planner Output"
  11573.                
  11574.           End If
  11575.           
  11576.  '   save list document in output database 
  11577.  '   ***need to insure out a way to set the default view in the output database
  11578.           
  11579.           Set View = ThisDB.GetView( "(List)" ) 
  11580.           Set Outputview = OutputDB.GetView( "(All Documents\List)" )
  11581.           Set Listdoc = View.GetFirstDocument
  11582.           While Listdoc.ListType( 0 ) <> "Database"
  11583.                Set Listdoc = View.GetNextDocument( doc )
  11584.                '  how detect if out of documents?
  11585.           Wend
  11586.           Set OutputDoc = Outputview.GetFirstDocument
  11587.           If OutputDoc Is Nothing Then
  11588.                Set OutputDoc = OutputDB.createdocument
  11589.                OutputDoc.Form = "(List)"
  11590.                OutputDoc.ListType = "Database"
  11591.                OutputDoc.List=""
  11592.                Call OutputDoc.save( False,False )
  11593.           End If
  11594.           
  11595.           '    **** will need to query on this data later    
  11596.           OutputDoc.queryid = RandomValue
  11597.           OutputDoc.List = Listdoc.List
  11598.           SearchList = ListDoc.List
  11599.           
  11600.           '    save off List document with list of systems    
  11601.           Call OutputDoc.Save( False, False )
  11602.           
  11603.           Set OutputDoc = New NotesDocument( OutputDB )
  11604.           OutputDoc.Form = "Query Output"
  11605.           
  11606.           '    move query information over
  11607.           x = MoveQueryInformationOver( OutputDoc, ListDoc )
  11608.           OutputDoc.FormNewLocation = "1"  '  flag for disabling action bar
  11609.           
  11610.           '  create output document with text details( for view )
  11611.           Set OutputDocQuery = New NotesDocument( OutputDB )
  11612.           OutputDocQuery.Form = "Results Description"
  11613.           
  11614.           OutputDocQuery.queryid =  RandomValue
  11615.           
  11616.           QueryDescription = "Query Performed By:  " + ThisDoc.FieldGetText( "author" ) + "            Date:  " + ThisDoc.FieldGetText( "modified" )
  11617.           QueryDescription1 = "Tasks:  " + ThisDoc.FieldGetText( "LayoutServerTasks" ) + ""
  11618.           Dim bParenDisplayed As Integer
  11619.           bParenDisplayed = False
  11620.           If Cint( ThisDoc.FieldGetText( "LayoutMail" ) ) > 0 And bParenDisplayed = False Then
  11621.                QueryDescription1 = QueryDescription1 + "( Mail"
  11622.                bParenDisplayed = True
  11623.           Elseif Cint( ThisDoc.FieldGetText( "LayoutMail" ) ) > 0 And bParenDisplayed = True Then
  11624.                QueryDescription1 = QueryDescription1 + ", Mail"
  11625.           End If
  11626.           If Cint( ThisDoc.FieldGetText( "LayoutMailDB" ) ) > 0 And bParenDisplayed = False Then
  11627.                QueryDescription1 = QueryDescription1 + "( Mail & Database"
  11628.                bParenDisplayed = True
  11629.           Elseif Cint( ThisDoc.FieldGetText( "LayoutMailDB" ) ) > 0 And bParenDisplayed = True Then
  11630.                QueryDescription1 = QueryDescription1 + ", Mail & Database"
  11631.           End If
  11632.           If Cint( ThisDoc.FieldGetText( "LayoutGroupware" ) ) > 0 And bParenDisplayed = False Then
  11633.                QueryDescription1 = QueryDescription1 + "( Groupware #1"
  11634.                bParenDisplayed = True
  11635.           Elseif Cint( ThisDoc.FieldGetText( "LayoutGroupware" ) ) > 0 And bParenDisplayed = True Then
  11636.                QueryDescription1 = QueryDescription1 + ", Groupware #1"
  11637.           End If
  11638.           If Cint( ThisDoc.FieldGetText( "LayoutCS" ) ) > 0  And bParenDisplayed = False Then
  11639.                QueryDescription1 = QueryDescription1 + "( Calendar & Scheduling"
  11640.                bParenDisplayed = True
  11641.           Elseif Cint( ThisDoc.FieldGetText( "LayoutCS" ) ) > 0 And bParenDisplayed = True Then
  11642.                QueryDescription1 = QueryDescription1 + ", Calendar & Scheduling"
  11643.           End If
  11644.           If Cint( ThisDoc.FieldGetText( "LayoutDatabase" ) ) > 0 And bParenDisplayed = False Then
  11645.                QueryDescription1 = QueryDescription1 + "( Database"
  11646.                bParenDisplayed = True
  11647.           Elseif Cint( ThisDoc.FieldGetText( "LayoutDatabase" ) ) > 0 And bParenDisplayed = True Then
  11648.                QueryDescription1 = QueryDescription1 + ", Database"
  11649.           End If
  11650.           If Cint( ThisDoc.FieldGetText( "LayoutWW" ) ) > 0 And bParenDisplayed = False Then
  11651.                QueryDescription1 = QueryDescription1 + "( Web Walker"
  11652.                bParenDisplayed = True
  11653.           Elseif Cint( ThisDoc.FieldGetText( "LayoutWW" ) ) > 0 And bParenDisplayed = True Then
  11654.                QueryDescription1 = QueryDescription1 + ", Web Walker"
  11655.           End If
  11656.           If Cint( ThisDoc.FieldGetText( "LayoutWB" ) ) > 0 And bParenDisplayed = False Then
  11657.                QueryDescription1 = QueryDescription1 + "( Web Buyer"
  11658.                bParenDisplayed = True
  11659.           Elseif Cint( ThisDoc.FieldGetText( "LayoutWB" ) ) > 0 And bParenDisplayed = True Then
  11660.                QueryDescription1 = QueryDescription1 + ", Web Buyer"
  11661.           End If
  11662.           If bParenDisplayed = True Then
  11663.                QueryDescription1 = QueryDescription1 & " )"
  11664.           End If
  11665.           QueryDescription2 = "OS Platforms:  " + ThisDoc.FieldGetText( "LayoutOSPlatform" )
  11666.           
  11667.           QueryDescription3 = "Vendor Search List:  "
  11668.           If ThisDoc.FieldGetText( "VendorList" ) = "" Then
  11669.                '    include list of all vendor dbs 
  11670.                Forall k In Searchlist
  11671.                     If k <> "" Then
  11672.                          QueryDescription3 = QueryDescription3 +  k + ", "
  11673.                     End If
  11674.                End Forall
  11675.                
  11676.                QueryDescription3 = Left( QueryDescription3,( Len( QueryDescription3 ) - 2 ) )
  11677.           Else
  11678.                QueryDescription3 = QueryDescription3 + ThisDoc.FieldGetText( "VendorList" )
  11679.           End If
  11680.           
  11681.           QueryDescription4 = "Response Time:  " + ThisDoc.FieldGetText( "LayoutUserResponseTime" )
  11682.           QueryDescription4 = QueryDescription4 + ",  Percent Responses in Range: " + ThisDoc.FieldGetText( "LayoutPercentRange" ) + "%"
  11683.           QueryDescription4 = QueryDescription4 + ",  User Count Tolerance Range: " + ThisDoc.FieldGetText( "LayoutTolerance" ) + "%"
  11684.           QueryDescription4 = QueryDescription4 + ",  Response Time Tolerance Range: " + ThisDoc.FieldGetText( "LayoutTolerance_Response" ) + "%"
  11685.           
  11686.           OutputDocQuery.QueryDescription = QueryDescription
  11687.           OutputDocQuery.QueryDescription1 = QueryDescription1
  11688.           OutputDocQuery.QueryDescription2 = QueryDescription2
  11689.           OutputDocQuery.QueryDescription3 = QueryDescription3
  11690.           OutputDocQuery.QueryDescription4 = QueryDescription4
  11691.           
  11692.           Call OutputDocQuery.Save( False, False )
  11693.           
  11694.           '  move Conversion Guidelines (Rule of Thumb) Information over to output form
  11695.           Set View = ThisDB.GetView( "Conversion Guidelines" )
  11696.           Set RuleofThumbDoc = View.GetFirstDocument
  11697.           Call RuleofThumbDoc.CopyAllItems( OutputDoc )
  11698.           
  11699.           OutputDoc.FormNewLocation = "1"  '  flag to dynamically display action bar
  11700.           
  11701.            '    saved off query document with simple results( w/out doc links )
  11702.           'Call OutputDoc.Save( False, False )
  11703.           
  11704.           '   now create associated machine records
  11705.           '   first check if you have any
  11706.           If Cint( ThisDoc.FieldGetText( "numresults" ) ) = 0 Then
  11707.                Messagebox "Warning:  No output results", MB_ICONEXCLAMATION, "Validation"
  11708.           Else
  11709.                RandomValue = RandomValue + 1
  11710.                For j = 1 To Cint( ThisDoc.FieldGetText( "numresults" ) )
  11711.                     fieldname = "OutResults" +   Cstr( j )  
  11712.                     '    copy data records over, search on data form, using machine id
  11713.                     '    need to surround text with 1 double quote, each side
  11714.                     sMachineID ={"} + ThisDoc.FieldGetText( fieldname ) + {"}
  11715.                     If sMachineID = "" Then
  11716.                          Exit For
  11717.                     End If
  11718.                     
  11719.                     searchformula$="Form = ""Machine Identifier"" & MachineID = " & sMachineID
  11720.                     
  11721.                     fieldname = fieldname + "_2"
  11722.                     sVendorDB = ThisDoc.FieldGetText( fieldname )
  11723.                     sVendorDB = "CP" + sVendorDB + ".NSF"
  11724.                     Set VendorDB = New NotesDatabase( "","" )
  11725.                     Call VendorDB.Open( "",  sVendorDB ) 
  11726.                     Set collection = VendorDB.Search( searchformula$, dateTime, 0 )
  11727.                     If collection.Count = 0 Then
  11728.                          Messagebox( "No results returned from search" ) & sVendorDB, MB_ICONEXCLAMATION, "Database Search"
  11729.                     Else   
  11730.                          For i = 1 To collection.Count
  11731.                               Set OutputDocMachID = New NotesDocument( OutputDB )
  11732.                               OutputDocMachId.Form = "Machine Identifier"
  11733.                               Set MachineIDDoc = collection.GetNthDocument( i )
  11734.                               Call MachineIDDoc.CopyAllItems( OutputDocMachID )
  11735.                               OutputDocMachID.queryid =  RandomValue
  11736.                               OutputDocMachID.MachineType = "Output Results"
  11737.                               OutputDocMachID.QueryDescription = "  "
  11738.                               OutputDocMachID.QueryDescription1 = "  "
  11739.                               OutputDocMachID.QueryDescription2 = "  "
  11740.                               fieldname = "OutResults"& Cstr( j )  
  11741.                               fieldname = fieldname & "_3"
  11742.                               OutputDocMachID.MachineSummaryInfo = ThisDoc.FieldGetText( fieldname )
  11743.                               OutputDocMachID.FormNewLocation = "1"  '  flag to disable the action bar display
  11744.                               
  11745.                            '  create Doc Link to Machine ID
  11746.                               fieldname = "OR" & Cstr( j ) & "_5"
  11747.                               
  11748.                               ' let's do it the hard way
  11749.                               If j = 1 Then
  11750.                                    fieldname = "OR1_5"
  11751.                               Elseif j = 2 Then
  11752.                                    fieldname = "OR2_5"
  11753.                               Elseif j = 3 Then
  11754.                                    fieldname = "OR3_5"
  11755.                               End If
  11756.                               
  11757.                               Set RTItem = New NotesRichTextItem( OutputDoc, fieldname )
  11758.                               Call RTItem.AppendDocLink( OutputDocMachID, "Link to Machine Description" )
  11759.                               
  11760.                               vCertifyCheck = ThisDoc.Document.CertifyCheckOn
  11761.                               'when CertifyCheckOn = "0" - debug mode
  11762.                               '  If ( vCertifyCheck( 0 ) = "1" And ThisDocBE.IsSigned ) Or vCertifyCheck( 0 ) = "0" Then
  11763.                               Dim vIsSignedField2 As Variant
  11764.                               Dim vEstimated As Variant
  11765.                               vIsSignedField2 = MachineIDDoc.IsSignedField
  11766.                               '  vEstimated = MachinedIDDoc.Estimated  can't check for estimated machine id form
  11767.                               If vCertifyCheck( 0 ) = "0" Then  '  certify check not on
  11768.                                    Call OutputDocMachID.Save( False, False )
  11769.                                    
  11770.                                    'save it as a response document
  11771.                                    Set OutputDocMachID2 = New NotesDocument( OutputDB )
  11772.                                    Call OutputDocMachID.CopyAllItems( OutputDocMachID2 )
  11773.                                    Call OutputDocMachID2.MakeResponse( OutputDocQuery )
  11774.                                    Call OutputDocMachID2.Save( False, False )
  11775.                               'elseif ( ( vCertifyCheck( 0 ) = "1" ) And ( (  vIsSignedField2( 0 )= "1"  And vEstimated( 0 ) = "No" )   Or   ( vIsSignedField2( 0 ) = "0" And vEstimated ( 0 )= "Yes" ) )  ) Then
  11776.                               Elseif (  vCertifyCheck( 0 ) = "1"  And  vIsSignedField2( 0 )= "1"  ) Then
  11777.                                    ' Messagebox "saving outputdocmachid"
  11778.                                    '  save the regular document
  11779.                                    Call OutputDocMachID.Save( False, False )
  11780.                                    
  11781.                                    'save it as a response document
  11782.                                    Set OutputDocMachID2 = New NotesDocument( OutputDB )
  11783.                                    Call OutputDocMachID.CopyAllItems( OutputDocMachID2 )
  11784.                                    Call OutputDocMachID2.MakeResponse( OutputDocQuery )
  11785.                                    Call OutputDocMachID2.Save( False, False )
  11786.                               End If
  11787.                               
  11788.                          Next
  11789.                          vCertifyCheck = ThisDoc.Document.CertifyCheckOn
  11790.                               'when CertifyCheckOn = "0" - debug mode
  11791.                          If ( vCertifyCheck( 0 ) = "1" And ThisDocBE.IsSigned ) Or vCertifyCheck( 0 ) = "0" Then
  11792.                               Messagebox "saving outputdocmachid"
  11793.                               Call OutputDocMachID.Save( False, False )
  11794.                          End If
  11795. %END REM
  11796.                          
  11797.                     End If
  11798.                     VendorDB.Close       'close out the vendor specific database
  11799.                Next
  11800.                 '    saved off query document with simple results( w/doc links )
  11801.                'Call ThisDoc.Save ' bug bypass ***
  11802.                
  11803.                ' Call OutputDoc.Save( False, False )
  11804.                
  11805.           End If
  11806.           Call OutputDoc.Save( True, False )
  11807.      End If
  11808.      
  11809.      
  11810. End Sub
  11811. '++LotusScript Development Environment:2:1:MoveQueryInformationOver:2:8
  11812. Function MoveQueryInformationOver( OutputDoc As NotesDocument, ListDoc As NotesDocument ) As Integer
  11813.      
  11814.      Dim Workspace As New NotesUIWorkspace
  11815.      Dim ThisDoc As NotesUIDocument
  11816.      Dim OutputArray As Variant
  11817.      
  11818.      Set ThisDoc = Workspace.CurrentDocument
  11819.      
  11820.      ' need to convert the information
  11821.      OutputArray = ParseStringToArray( ";",ThisDoc.FieldGetText( "LayoutServerTasks" ) )
  11822.      
  11823.      OutputDoc.OutputServerTasks = OutputArray
  11824.      
  11825.      If ThisDoc.FieldGetText( "VendorList" ) = "" Then
  11826.           OutputDoc.OutputVendorList = Listdoc.List
  11827.      Else
  11828.           OutputArray = ParseStringToArray( ";",ThisDoc.FieldGetText( "VendorList" ) )
  11829.           OutputDoc.OutputVendorList=OutputArray
  11830.      End If
  11831.      
  11832.      If Len( ThisDoc.FieldGetText( "LayoutOSPlatform" ) ) = 0 Then
  11833.           sOSPlatform = "AIX/RS6000; AIX/SP2;  HP-UX; NetWare 3.12; NetWare 4.1; NT 3.51; NT 4.0; OS/2 2.11 SMP; OS/2 Warp Connect; OS/2 Warp Server 4.0; Solaris 2.5; Win95 1.0;AS/400;System/390"
  11834.           OutputArray =ParseStringToArray( ";",sOSPlatform )
  11835.      Else
  11836.           OutputArray =ParseStringToArray( ";",ThisDoc.FieldGetText( "LayoutOSPlatform" ) )
  11837.      End If
  11838.      OutputDoc.OutputOSPlatform = OutputArray
  11839.      
  11840.      Dim ThisDocBE As NotesDocument
  11841.      
  11842.      Set ThisDocBE = ThisDoc.document
  11843.      ' copy over user task grid, and Out Results form
  11844.      Call ThisDocBE.CopyAllItems( OutputDoc )
  11845.      
  11846.      OutputArray = ParseStringToArray( ";",ThisDoc.FieldGetText( "LayoutAuthor" ) )
  11847.      OutputDoc.OutputAuthor = OutputArray
  11848.      'OutputDoc.OutputAuthor = ThisDoc.FieldGetText( "LayoutAuthor" )
  11849.      
  11850.      'OutputArray = ParseStringToArray( ";",ThisDoc.FieldGetText( "LayoutDate" ) )
  11851.      'OutputDoc.OutputDate = OutputArray
  11852.      'OutputDoc.OutputDate = ThisDoc.FieldGetText( "LayoutDate" )
  11853.      
  11854.      OutputArray = ParseStringToArray( ";",ThisDoc.FieldGetText( "LayoutSummary" ) )
  11855.      OutputDoc.LayoutSummary = OutputArray
  11856.      OutputArray = ParseStringToArray( ";",ThisDoc.FieldGetText( "OutSummary" ) )
  11857.      OutputDoc.OutSummary = OutputArray
  11858.      'OutputDoc.OutSummary = ThisDoc.FieldGetText( "LayoutSummary" )
  11859.      'Messagebox(OutputDoc.OutSummary)
  11860.      OutputDoc.OutputQuerySummary = ThisDoc.FieldGetText( "LayoutSummary" )
  11861.      OutputDoc.OutputQuerySummary_1 = ThisDoc.FieldGetText( "OutComments" )
  11862.      
  11863.      OutputArray = ParseStringToArray( ";",ThisDoc.FieldGetText( "LayoutDiskConfiguration" ) )
  11864.      OutputDoc.LayoutDiskConfiguration = OutputArray
  11865.      'OutputDoc.LayoutDiskConfiguration = ThisDoc.FieldGetText("LayoutDiskConfiguration")
  11866.      
  11867.      OutputDoc.queryid =  RandomValue
  11868.      
  11869.      
  11870.      'Messagebox(ThisDoc.FieldGetText("OutResults1"))
  11871.      
  11872.      '  moving over the brute force method
  11873.      Call BruteForceMethod( ThisDoc, OutputDoc, True )
  11874.      
  11875. End Function
  11876. FormNewLocation
  11877. Query on Data?.
  11878. FormNewLocation
  11879. Graph Results
  11880. '++LotusScript Development Environment:2:5:(Options):0:66
  11881. '++LotusScript Development Environment:2:5:(Forward):0:1
  11882. Declare Sub Click(Source As Button)
  11883. Declare Sub GraphResponses()
  11884. Declare Sub GraphCosts()
  11885. '++LotusScript Development Environment:2:5:(Declarations):0:2
  11886. '++LotusScript Development Environment:2:2:BindEvents:1:129
  11887. Private Sub BindEvents(Byval Objectname_ As String)
  11888.      Static Source As BUTTON
  11889.      Set Source = Bind(Objectname_)
  11890.      On Event Click From Source Call Click
  11891. End Sub
  11892. '++LotusScript Development Environment:2:2:Click:2:12
  11893. %INCLUDE "chconsts.txt"
  11894. Sub Click(Source As Button)
  11895.      
  11896.      Dim workspace As New NotesUIWorkspace
  11897.      Dim ThisDoc As NotesUIDocument
  11898.      Dim iOutputCount As Integer
  11899.      
  11900.      Set ThisDoc = workspace.CurrentDocument
  11901.      
  11902.      bClearOutputArea = False  '  as there will be a field change, don't clear output area
  11903.      
  11904.      iOutputCount = Cint( ThisDoc.FieldGetText( "numresults" ) )
  11905.      If iOutputCount = 0 Then
  11906.           Messagebox "Need to Perform Query first for Results, then Request Graphical Information", MB_ICONEXCLAMATION, "Graph Results"
  11907.           Exit Sub
  11908.      End If
  11909.      
  11910.      Call workspace.DialogBox( "GraphResults", True, True, True)
  11911.      
  11912.         ' can specify either option or both
  11913.      If Instr( 1, ThisDoc.FieldGetText("GraphResults"), "Responses" ) Then
  11914.           Call GraphResponses()
  11915.      End If
  11916.      
  11917.      If Instr( 1, ThisDoc.FieldGetText("GraphResults"), "Costs" ) Then
  11918.           Call GraphCosts()
  11919.      End If
  11920.      
  11921.      bClearOutputArea = True
  11922.      
  11923.      
  11924.      If bGraphMessageDisplayed = False Then
  11925.           crlf$ = Chr( 13 ) &  Chr( 10 )
  11926.           message$ = "To interact with the Graph(s): " & crlf$ & "1.  To Resize:  Select the graph, grab a handle and drag " & crlf$ +  _
  11927.           "2.  To Change Graph Features:  Select the graph, rightmouse click on the graph, select Chart Properties "
  11928.           Messagebox message$, MB_OK + MB_ICONINFORMATION
  11929.           bGraphMessageDisplayed = True
  11930.      End If
  11931. End Sub
  11932. '++LotusScript Development Environment:2:2:GraphResponses:2:8
  11933. '%INCLUDE "chconsts.txt"
  11934. Sub GraphResponses()
  11935.      
  11936.      Dim Workspace As New NotesUIWorkspace
  11937.      Dim ThisDoc As NotesUIDocument
  11938.      Dim sFieldName As String     
  11939.      Dim iOutputCount As Integer
  11940.      
  11941.      
  11942.      Set ThisDoc = Workspace.CurrentDocument
  11943.      
  11944.      '  on a saved query, make sure the query was performed again
  11945.      If bQueryPerformed <>True Then
  11946.           Messagebox "Need to Perform Query first, then Request Graphical Information", MB_ICONEXCLAMATION, "Graph Response Information"
  11947.           Exit Sub
  11948.      End If
  11949.      
  11950.      ThisDoc.EditMode = True
  11951.      Call ThisDoc.ExpandAllSections         '  make sure user doesn't prevent graph from displaying
  11952.      
  11953.      iOutputCount = Cint( ThisDoc.FieldGetText( "numresults" ) )
  11954.      If iOutputCount = 0 Then
  11955.           Messagebox "Need to Generate Output Results via Query for Graphs", MB_ICONEXCLAMATION, "Graph Response Information"
  11956.           Exit Sub
  11957.      End If
  11958.      
  11959.      'set up spreadsheet and chart
  11960.      '***how check to see if an object exists? ****
  11961.      On Error Goto ObjectError
  11962.      On Error 4412 Goto ObjectError
  11963.      ThisDoc.GotoField( "LayoutResponseSheet" )
  11964.      ThisDoc.FieldClear( "LayoutResponseSheet" )
  11965.      Set ResponseSheet = ThisDoc.CreateObject( "ResponseSheet", "Lotus.Spreadsheet.1" )
  11966.      ThisDoc.GoToField( "LayoutResponseChart" )
  11967.      ThisDoc.FieldClear( "LayoutResponseChart" ) 
  11968.      Set ResponseChart = ThisDoc.CreateObject( "ResponseChart", "Lotus.Chart.1" )
  11969.      bResponseGraph = True
  11970.      ResponseChart.Repaint = False
  11971.      
  11972.      
  11973.      '********************************************************
  11974.      On Error Goto LCError
  11975.      
  11976.      ResponseChart.rowcount = numoutputlines 
  11977.      ResponseChart.columncount = 1
  11978.      ResponseSheet.tablename = "ResponseSheet"
  11979.      ResponseChart.sslinkbook = "ResponseSheet"
  11980.      test = 12
  11981.      ResponseChart.sslinkrange = "a1:m" + test
  11982.      'ResponseChart.sslinkmode = CHSsLinkModeOn
  11983.      ResponseChart.sslinkmode = 1
  11984.      
  11985.      '****************************
  11986.      'set up Response sheet
  11987.       '****************************
  11988.      ResponseSheet.displaycols =  3
  11989.      ResponseSheet.displayrows = 15
  11990.      ResponseSheet.showrowheading = False
  11991.      ResponseSheet.showcolheading = False
  11992.      
  11993.      '  set up headings
  11994.      ResponseSheet.row = 1
  11995.      ResponseSheet.col = 1
  11996.      ResponseSheet.text = "Machine Identifier"
  11997.      ResponseSheet.setfont "Arial", 10, True, False, False, False, 0, False, False
  11998.      
  11999.      ResponseSheet.col = 2
  12000.      ResponseSheet.text = "Average Response"
  12001.      ResponseSheet.setfont "Arial", 10, True, False, False, False, 0, False, False
  12002.      
  12003.      
  12004.      '********************************************************
  12005.      ' load up the spreadsheet with data
  12006.      For i = 1 To iOutputCount
  12007.           ResponseSheet.row = 1 + i
  12008.           ResponseSheet.col = 1 
  12009.           sFieldName = "OutResults" + i
  12010.           ResponseSheet.text = ThisDoc.FieldGetText( sFieldname )
  12011.           ResponseSheet.col = 2
  12012.           'ResponseSheet.text = Cstr( dAverageResponse( i ) )
  12013.           vTemp = vAverageResponse( i )
  12014.           ResponseSheet.text = Cstr( vTemp( 0 ) )
  12015.           'ResponseSheet.number = i
  12016.      Next i     
  12017.      
  12018.           'set columns to automatically resize
  12019.      ' *** number of rows should be set to the max, need to resize the spreadsheet
  12020.      ResponseSheet.SetColWidthAuto 1, 1,( iOutputCount + 1 ), 2 , True
  12021.      
  12022.      ResponseSheet.col = 1
  12023.      ResponseSheet.row = 1
  12024.      ResponseSheet.showselections = 0
  12025.      
  12026.      ' ****************************
  12027.      '  Response Chart Setup
  12028.       '****************************
  12029.      
  12030.      'set Response chart type to 2d bar
  12031.      'ResponseChart.chartType = CHChartType2dBar
  12032.      ResponseChart.chartType = CHChartType2dHorizontalBar
  12033.      ResponseChart.TitleText = "Average Response Time"
  12034.      
  12035.      ResponseChart.Plot.AutoLayout = True
  12036.      ResponseChart.Plot.DataSeriesInRow = False   'reads from a column
  12037.      
  12038.     'show major grid line in red and minor grid line in blue
  12039.      With ResponseChart.plot.axis( CHAxisIdY ).AxisGrid
  12040.           '.majorPen.VtColor.Set 255, 0, 0
  12041.           .majorPen.width = 1
  12042.           .minorPen.VtColor.Set 0, 0, 255
  12043.           .minorPen.width = 1
  12044.      End With
  12045.      
  12046.      With ResponseChart.Plot.axis( CHAxisIdX, 1 ).AxisTitle
  12047.           .visible = True
  12048.           .text = "Machine Id"
  12049.           .VtFont.name = "Arial"
  12050.           .VtFont.size = 10
  12051.           '.VtFont.style = CHFontStyleBold
  12052.           .VtFont.VtColor.set  0, 0, 255
  12053.      End With
  12054.      
  12055.      With ResponseChart.Plot.axis( CHAxisIdY, 1 ).AxisTitle
  12056.           .visible = True
  12057.           .text = "Response Time(sec)"
  12058.           .VtFont.name = "Arial"
  12059.           .VtFont.size = 10
  12060.           '.VtFont.style = CHFontStyleBold
  12061.           .VtFont.VtColor.set  0, 0, 255
  12062.      End With
  12063.      
  12064.      With ResponseChart.Plot.axis( CHAxisIdZ, 1 ).AxisTitle
  12065.           .visible = True
  12066.           .text = "Machine"
  12067.           .VtFont.name = "Arial"
  12068.           .VtFont.size = 10
  12069.           '.VtFont.style = CHFontStyleBold
  12070.           .VtFont.VtColor.set  0, 0, 255
  12071.      End With
  12072.      
  12073.      With ResponseChart.Plot.axis( CHAxisIdX ).Labels.Item( 1 )
  12074.         ' Set X Axis label properties
  12075.           .auto = True
  12076.           .VtFont.name = "Arial"
  12077.           .VtFont.size = 10
  12078.           '.VtFont.style = CHFontStyleBold
  12079.           .TextLayout.orientation = CHOrientationVertical
  12080.           .TextLayout.HorzAlignment = CHHorizontalAlignmentCenter
  12081.           .TextLayout.VertAlignment = CHVerticalAlignmentCenter
  12082.      End With
  12083.      
  12084.      With ResponseChart.Plot.axis( CHAxisIdY ).Labels.Item( 1 )
  12085.         ' Set X Axis label properties
  12086.           .auto = True
  12087.           .VtFont.name = "Arial"
  12088.           .VtFont.size = 10
  12089.           '.VtFont.style = CHFontStyleBold
  12090.      End With
  12091.      
  12092.      With ResponseChart.Plot.axis( CHAxisIdZ ).Labels.Item( 1 )
  12093.         ' Set X Axis label properties
  12094.           .auto = True
  12095.           .VtFont.name = "Arial"
  12096.           .VtFont.size = 10
  12097.           '.VtFont.style = CHFontStyleBold
  12098.      End With
  12099.      
  12100.      With ResponseChart.Plot.axis( CHAxisIdY2 ).Labels.Item( 1 )
  12101.         ' Set X Axis label properties
  12102.           .auto = True
  12103.           .VtFont.name = "Arial"
  12104.           .VtFont.size = 10
  12105.           '.VtFont.style = CHFontStyleBold
  12106.      End With
  12107.      
  12108.      j = iOutputCount 
  12109.      
  12110.      For i = 1 To j
  12111.      ' Set data label to First DataPoint in the First Series
  12112.           With ResponseChart.Plot.SeriesCollection.Item( 1 ).DataPoints.Item( i ).DataPointLabel
  12113.         ' Display label of First DataPoint
  12114.                .locationType = CHLabelLocationTypeAbovePoint
  12115.                .ValueFormat = "0.0"
  12116.                .VtFont.name = "Arial"
  12117.                .VtFont.size = 6
  12118.                .lineStyle = CHLabelLineStyleBent
  12119.           '.backdrop.frame.style = CHFrameStyleSingleLine
  12120.           End With
  12121.      Next i
  12122.      
  12123.       ' adjust size of title
  12124.      With ResponseChart.title.VtFont
  12125.           .name = "Arial"
  12126.           .size = 10
  12127.           .style = CHFontStyleBold
  12128.          ' .effect = CHFontEffectUnderline
  12129.           .effect = 512
  12130.           .VtColor.Set 0, 0, 255
  12131.      End With
  12132.      
  12133.      With ResponseChart.backdrop.fill
  12134.          '.style=0   'null
  12135.           .style=CHFillStyleBrush
  12136.           .Brush.style=CHBrushStyleSolid
  12137.      End With
  12138.      
  12139.     'use  manual scale to display y axis( value axis )
  12140.      With ResponseChart.plot.axis( CHAxisIdY ).ValueScale
  12141.           .auto = True
  12142.          ' .MajorDivision = 2
  12143.          ' .MinorDivision = 5
  12144.      End With
  12145.      
  12146.      '********************************************************
  12147.      '  set up the link between spreadsheet and chart
  12148.      
  12149.      '********************************************************
  12150.      ResponseChart.Repaint = False
  12151.      ResponseChart.rowcount = iOutputCount 
  12152.      ResponseChart.columncount = 1
  12153.      ResponseSheet.tablename = "ResponseSheet"
  12154.      ResponseChart.sslinkbook = "ResponseSheet"
  12155.      test = 12
  12156.      ResponseChart.sslinkrange = "a1:m" + test
  12157.      'ResponseChart.sslinkmode = CHSsLinkModeOn
  12158.      ResponseChart.sslinkmode = 1
  12159.      
  12160.      ResponseChart.Repaint = True
  12161.      Exit Sub
  12162.      
  12163. ObjectError:
  12164.      'Messagebox "Error" & Str(Err) & " " & Error$
  12165.      If Err = 0 Or Err = 8501 Then
  12166.           Messagebox "Lotus Components Must Be Correctly Installed to Proceed", MB_ICONEXCLAMATION, "Graph Response Information"
  12167.      Elseif Err = 4412 Then
  12168.           Messagebox "The " + {"} + "Graphical Information" + {"} + " and " + {"} + "Miscellaneous" + {"} + " Sections must be expanded to insert the graphical information.  Currently, one or both of the sections are collapsed.", MB_ICONEXCLAMATION, "Graph Response Information"
  12169.      Else
  12170.           Messagebox "Lotus Components Must Be Correctly Installed to Proceed", MB_ICONEXCLAMATION, "Graph Response Information"
  12171.      End If
  12172.      Exit Sub
  12173.      
  12174. LCError:
  12175.      Messagebox "Cannot create Cost Graph", MB_ICONEXCLAMATION, "Graph Cost Information"
  12176.      Exit Sub
  12177. End Sub
  12178. '++LotusScript Development Environment:2:2:GraphCosts:1:8
  12179. Sub GraphCosts()
  12180.      Dim Workspace As New NotesUIWorkspace
  12181.      Dim ThisDoc As NotesUIDocument
  12182.      Dim sFieldName As String
  12183.      Dim CostSheet As Variant
  12184.      Dim CostChart As Variant
  12185.      
  12186.      Dim iOutputCount As Integer
  12187.      
  12188.      
  12189.      Set ThisDoc = Workspace.CurrentDocument
  12190.      
  12191.       '  on a saved query, make sure the query was performed again
  12192.      If bQueryPerformed <> True Then
  12193.           Messagebox "Need to Perform Query first, then Request Graphical Information", MB_ICONEXCLAMATION, "Graph Cost Information"
  12194.           Exit Sub
  12195.      End If
  12196.      
  12197.      ThisDoc.EditMode = True
  12198.      Call ThisDoc.ExpandAllSections         '  make sure user doesn't prevent graph from displaying
  12199.      
  12200.      iOutputCount = Cint( ThisDoc.FieldGetText( "numresults" ) )
  12201.      If iOutputCount = 0 Then
  12202.           Messagebox "Need to Generate Output Results via Query for Graphs", MB_ICONEXCLAMATION, "Graph Cost Information"
  12203.           Exit Sub
  12204.      End If
  12205.      
  12206.      'set up spreadsheet and chart
  12207.      '***how check to see if an object exists? ****
  12208.      On Error Goto ObjectError
  12209.      ThisDoc.GotoField( "LayoutCostSheet" )
  12210.      ThisDoc.FieldClear( "LayoutCostSheet" )
  12211.      Set CostSheet = ThisDoc.CreateObject( "CostSheet", "Lotus.Spreadsheet.1" )
  12212.      ThisDoc.GoToField( "LayoutCostChart" )
  12213.      ThisDoc.FieldClear( "LayoutCostChart" ) 
  12214.      Set CostChart = ThisDoc.CreateObject( "CostChart", "Lotus.Chart.1" )
  12215.      bCostGraph=True
  12216.      CostChart.Repaint = False
  12217.      
  12218.      On Error Goto LCError
  12219.      CostChart.rowcount =numoutputlines
  12220.      CostChart.columncount = 1
  12221.      CostSheet.tablename = "CostSheet"
  12222.      CostChart.sslinkbook = "CostSheet"
  12223.      test = 12
  12224.      CostChart.sslinkrange = "a1:m" + test
  12225.      'CostChart.sslinkmode = CHSsLinkModeOn
  12226.      CostChart.sslinkmode = 1
  12227.      
  12228.      '****************************
  12229.      'set up Cost sheet
  12230.       '****************************
  12231.      CostSheet.displaycols =  3
  12232.      CostSheet.displayrows = 15
  12233.      CostSheet.showrowheading = False
  12234.      CostSheet.showcolheading = False
  12235.      
  12236.      '  set up headings
  12237.      CostSheet.row = 1
  12238.      CostSheet.col = 1
  12239.      CostSheet.text = "Machine Identifier"
  12240.      CostSheet.setfont "Arial", 10, True, False, False, False, 0, False, False
  12241.      
  12242.      CostSheet.col = 2
  12243.      CostSheet.text = "Average Cost"
  12244.      CostSheet.setfont "Arial", 10, True, False, False, False, 0, False, False
  12245.      
  12246.      
  12247.      '********************************************************
  12248.      ' load up the spreadsheet with data
  12249.      For i = 1 To iOutputCount
  12250.           CostSheet.row = 1 + i
  12251.           CostSheet.col = 1 
  12252.           sFieldName = "OutResults" + i
  12253.           CostSheet.text = ThisDoc.FieldGetText( sFieldname )
  12254.           CostSheet.col = 2
  12255.           'CostSheet.text = Cstr( dAverageCost( i ) )
  12256.           vTemp = vMachineCost( i )
  12257.           CostSheet.number = Cdbl( vTemp( 0 ) )
  12258.           'CostSheet.number = i
  12259.      Next i     
  12260.      
  12261.           'set columns to automatically resize
  12262.      ' *** number of rows should be set to the max, need to resize the spreadsheet
  12263.      CostSheet.SetColWidthAuto 1, 1,( iOutputCount + 1 ), 2 , True
  12264.      
  12265.      CostSheet.col = 1
  12266.      CostSheet.row = 1
  12267.      CostSheet.showselections = 0
  12268.      
  12269.      ' ****************************
  12270.      '  Cost Chart Setup
  12271.       '****************************
  12272.      
  12273.      'set Cost chart type to 2d bar
  12274.      'CostChart.chartType = CHChartType2dBar
  12275.      CostChart.chartType = CHChartType2dHorizontalBar
  12276.      
  12277.      CostChart.TitleText = "Machine Cost"
  12278.      
  12279.      'CostChart.Plot.AutoLayout = True
  12280.      CostChart.Plot.DataSeriesInRow = False   'reads from a column
  12281.      
  12282.     'show major grid line in red and minor grid line in blue
  12283.      With CostChart.plot.axis( CHAxisIdY ).AxisGrid
  12284.           '.majorPen.VtColor.Set 255, 0, 0
  12285.           .majorPen.width = 1
  12286.           .minorPen.VtColor.Set 0, 0, 255
  12287.           .minorPen.width = 1
  12288.      End With
  12289.      
  12290.      With CostChart.Plot.axis( CHAxisIdX, 1 ).AxisTitle
  12291.           .visible = True
  12292.           .text = "Machine Id"
  12293.           .VtFont.name = "Arial"
  12294.           .VtFont.size = 10
  12295.           '.VtFont.style = CHFontStyleBold
  12296.           .VtFont.VtColor.set  0, 0, 255
  12297.      End With
  12298.      
  12299.      With CostChart.Plot.axis( CHAxisIdY, 1 ).AxisTitle
  12300.           .visible = True
  12301.           .text = "Cost( $ )"
  12302.           .VtFont.name = "Arial"
  12303.           .VtFont.size = 10
  12304.           '.VtFont.style = CHFontStyleBold
  12305.           .VtFont.VtColor.set  0, 0, 255
  12306.      End With
  12307.      
  12308.      With CostChart.Plot.axis( CHAxisIdZ, 1 ).AxisTitle
  12309.           .visible = True
  12310.           .text = "Machine"
  12311.           .VtFont.name = "Arial"
  12312.           .VtFont.size = 10
  12313.           '.VtFont.style = CHFontStyleBold
  12314.           .VtFont.VtColor.set  0, 0, 255
  12315.      End With
  12316.      
  12317.      With CostChart.Plot.axis( CHAxisIdX ).Labels.Item( 1 )
  12318.         ' Set X Axis label properties
  12319.           .auto = True
  12320.           .VtFont.name = "Arial"
  12321.           .VtFont.size = 10
  12322.           '.VtFont.style = CHFontStyleBold
  12323.           .TextLayout.orientation = CHOrientationVertical
  12324.           .TextLayout.HorzAlignment = CHHorizontalAlignmentCenter
  12325.           .TextLayout.VertAlignment = CHVerticalAlignmentCenter
  12326.      End With
  12327.      
  12328.      With CostChart.Plot.axis( CHAxisIdY ).Labels.Item( 1 )
  12329.         ' Set X Axis label properties
  12330.           .auto = True
  12331.           .VtFont.name = "Arial"
  12332.           .VtFont.size = 10
  12333.           '.VtFont.style = CHFontStyleBold
  12334.           .Format="$#"
  12335.      End With
  12336.      
  12337.      With CostChart.Plot.axis( CHAxisIdZ ).Labels.Item( 1 )
  12338.         ' Set X Axis label properties
  12339.           .auto = True
  12340.           .VtFont.name = "Arial"
  12341.           .VtFont.size = 10
  12342.           '.VtFont.style = CHFontStyleBold
  12343.      End With
  12344.      
  12345.      With CostChart.backdrop.fill
  12346.          '.style=0   'null
  12347.           .style=CHFillStyleBrush
  12348.           .Brush.style=CHBrushStyleSolid
  12349.      End With
  12350.      
  12351.      With CostChart.Plot.axis( CHAxisIdY2 ).Labels.Item( 1 )
  12352.         ' Set X Axis label properties
  12353.           .auto = True
  12354.           .VtFont.name = "Arial"
  12355.           .VtFont.size = 10
  12356.           '.VtFont.style = CHFontStyleBold
  12357.      End With
  12358.      
  12359.      j = iOutputCount '*******BUG - can't go over 5
  12360.      
  12361.      For i = 1 To j
  12362.      ' Set data label to First DataPoint in the First Series
  12363.           With CostChart.Plot.SeriesCollection.Item( 1 ).DataPoints.Item( i ).DataPointLabel
  12364.         ' Display label of First DataPoint
  12365.                .locationType = CHLabelLocationTypeAbovePoint
  12366.                .ValueFormat = "$#"
  12367.                .VtFont.name = "Arial"
  12368.                .VtFont.size = 6
  12369.                .lineStyle = CHLabelLineStyleBent
  12370.                        '.backdrop.frame.style = CHFrameStyleSingleLine
  12371.           End With
  12372.      Next i
  12373.      
  12374.       ' adjust size of title
  12375.      With CostChart.title.VtFont
  12376.           .name = "Arial"
  12377.           .size = 10
  12378.           .style = CHFontStyleBold
  12379.          ' .effect = CHFontEffectUnderline
  12380.           .effect = 512
  12381.           .VtColor.Set 0, 0, 255
  12382.      End With
  12383.      
  12384.     'use  manual scale to display y axis( value axis )
  12385.      With CostChart.plot.axis( CHAxisIdY ).ValueScale
  12386.           .auto = True
  12387.          ' .MajorDivision = 2
  12388.          ' .MinorDivision = 5
  12389.      End With
  12390.      
  12391.      '********************************************************
  12392.      '  set up the link between spreadsheet and chart
  12393.      
  12394.      '********************************************************
  12395.      CostChart.Repaint = False
  12396.      CostChart.rowcount = iOutputCount 
  12397.      CostChart.columncount = 1
  12398.      CostSheet.tablename = "CostSheet"
  12399.      CostChart.sslinkbook = "CostSheet"
  12400.      test = 12
  12401.      CostChart.sslinkrange = "a1:m" + test
  12402.      'CostChart.sslinkmode = CHSsLinkModeOn
  12403.      CostChart.sslinkmode = 1
  12404.      CostChart.Repaint = True
  12405.      Exit Sub
  12406.      
  12407. ObjectError:
  12408.      If Err = 0 Or Err = 8501 Then
  12409.           Messagebox "Lotus Components Must Be Correctly Installed to Proceed", MB_ICONEXCLAMATION, "Graph Cost Information"
  12410.      Else
  12411.           Messagebox "Lotus Components Must Be Correctly Installed to Proceed", MB_ICONEXCLAMATION, "Graph Cost Information"
  12412.      End If
  12413.      Exit Sub
  12414.      
  12415. LCError:
  12416.      Messagebox "Cannot create Cost Graph", MB_ICONEXCLAMATION, "Graph Cost Information"
  12417.      Exit Sub
  12418.      
  12419. End Sub
  12420. FormNewLocation
  12421.     2S4S5S6S7S8S9S11S12S13S14S18S
  12422. Help^
  12423. DSPUG.NSF
  12424. Table of Contents
  12425.     4S10S12S13S
  12426. ,    L    ,
  12427. l    |    x
  12428. ^L    K,    -h
  12429. K,    -h
  12430. K,    -h
  12431. K,    ,\
  12432. K,    ,\
  12433. K,    ,\
  12434. K,    ,\
  12435. K,    ,\
  12436. K,    ,\
  12437. K,    -h
  12438. K,    -h
  12439. ^\    K<
  12440. K\    Qh
  12441. K\    Q(
  12442. ^\    +h
  12443. K,    ,\
  12444. K,    ,\
  12445. K,    ,\
  12446. K,    ,\
  12447. K,    ,\
  12448. K,    ,\
  12449. K,    ,\
  12450. K,    ,\
  12451. K,    ,\
  12452. K,    ,\
  12453. K,    ,\
  12454. K,    ,\
  12455. K,    ,\
  12456. K,    ,\
  12457. K,    ,\
  12458. K,    ,\
  12459. K,    ,\
  12460. K,    ,\
  12461. K,    ,\
  12462. K,    ,\
  12463. K,    ,\
  12464. K,    ,\
  12465. K,    ,\
  12466. K,    ,\
  12467. K,    ,\
  12468. K,    ,\
  12469. K,    ,\
  12470. K,    ,\
  12471. ^l    +h
  12472. Kl    Q(
  12473. K,    ,\
  12474. J\    JD
  12475. K,    -h
  12476. ^|    +h
  12477. ^|    +h
  12478. l#P"P"$
  12479. "8$8$
  12480. (0D*l/|'
  12481. -<'</d*|/
  12482. $!<#P
  12483. 4!T!h
  12484. !("8#
  12485. $ %@    
  12486. &d5`/
  12487. &x&X0
  12488. t(L)P
  12489. $)$)05
  12490. )t*(6
  12491. 4*H+L7
  12492. T*T*H
  12493. +(,$8
  12494. X+\- 
  12495.  - -t
  12496. |-|-H:
  12497. .l/ ;    
  12498. P50?i
  12499. 5@5|D
  12500. 5H6xF
  12501. 5X6LG
  12502. ^8"4_
  12503. '#},(
  12504. !SL#^
  12505. N<#PX#
  12506. #N<#S
  12507. #},*%
  12508. #}X*%
  12509. N<#PX#
  12510. !SL#^
  12511. N<#PX#
  12512. ^l$},,I
  12513.  N<#S
  12514. !SL#^
  12515. ^ %Jl"
  12516. ^0%Jl"
  12517. ^(&62
  12518. !SL#^
  12519. ^,'J,'
  12520. ^<'KL'-
  12521. *K<',H
  12522. ^ +4[
  12523. ^H+}@
  12524. *SL#^H+^l'
  12525. +K|',\
  12526. *SL#^
  12527. Jd*}(
  12528. Jd*}h
  12529. +K<'-l
  12530. K<',H
  12531. #K<',H
  12532. +K<'-l
  12533. K<',H
  12534. #K<',H
  12535. K<',H
  12536. ,}L9#
  12537. ,}L9#
  12538. ,}L9#
  12539. ,}L9#
  12540. ,}L9#
  12541. ,}L9#
  12542. ^<.6u
  12543. ^L.6S
  12544. ^\.4)
  12545. ^l.4+
  12546. ^|.6'
  12547. )K<',H
  12548. ,}h;#
  12549. ,}h;#
  12550. K<',H
  12551. +K<'-l
  12552. K<',H
  12553. o$)K<',H
  12554. K<',H
  12555. K<',H
  12556. oL)K<',H
  12557. K<',H
  12558. K<',H
  12559. +K<'-l
  12560. K<',H
  12561. o$)K<',H
  12562. K<',H
  12563. K<',H
  12564. oL)K<',H
  12565. K<',H
  12566. ,}L9#
  12567. J$*}h
  12568. J$*}h
  12569. ^</K<'-l
  12570. $    J,/
  12571. ^</K<'-l
  12572. $    J,/
  12573. ^</K<'-l
  12574. $    J,/
  12575. ^X04,
  12576. ]`    Ip    
  12577. ]`    I`    
  12578. 1+(1$
  12579. 3S<3}D?%
  12580. 2,H3#
  12581. 3S<3}L@%
  12582. 2,H3#
  12583. 4},C#
  12584. 4}XC#
  12585. #QP5J@5
  12586. ^H6}$
  12587. ^h66J
  12588. ^x66-
  12589. 4/4/4/
  12590. 3X1X1
  12591. 5H1H1(181
  12592. 7\7\7d8d8
  12593.  x P-
  12594.  X"\.
  12595. "X#P1
  12596. $x$(3
  12597. %x'd5
  12598. x'8(@8
  12599. (X*P9
  12600. )x*`<
  12601. +X-4?
  12602. ,x,d?
  12603. -8.TA
  12604. 1P2P2
  12605. 8181\B    
  12606. P3tK^
  12607. d48Ma{
  12608. P6HPb
  12609. ^$/+d.$
  12610. /K$/-
  12611. 0}tC#
  12612. ~`0}XD
  12613. K$/,p0}
  12614. 0}0EJ
  12615. ^(1+d.$
  12616. ^81K(1-
  12617. K81.|1
  12618. 0}tC#
  12619. [D2K81,P2}lI}
  12620. 2K81,P2}
  12621. 2Q,3}HKJ
  12622. ND2QD3
  12623. ND2QP3
  12624. ND2Q\3
  12625. ND2Qh3
  12626. ND2Qt3
  12627. ND2Qt3
  12628. 3K81,
  12629. 0JH1#
  12630. ND2Qt3
  12631. 2Q(4}hM
  12632. 2O44Q@4
  12633. 2O44QL4
  12634. 2O44SX4~
  12635. 2O44SX4~
  12636. 2O44SX4~
  12637. 2O44SX4~
  12638. 2O44SX4~
  12639. %O(5S45
  12640. N@5QP5
  12641. N@5O\5Qh5~
  12642. N@5O\5Qt5~(
  12643. N@5O\5Q
  12644. 2O44SX4~
  12645. %O(5S45
  12646. 2O44SX4~
  12647. %O(5S45
  12648. 2O44SX4~
  12649. %O(5S45
  12650. ^$64v
  12651. 2O44O
  12652. 5S45^
  12653. 2O46P
  12654. N@6QP6~
  12655. N@6Q\6
  12656. 2Oh6Pt6
  12657. 6QP6~H
  12658. 6QP6~h
  12659. 2O44SX4~
  12660. 2Q,3}HKJ
  12661. ~`0}xV
  12662. 6+d.$
  12663. ~`0}xV
  12664. 0}tC#
  12665. ~`0}xV
  12666. 6,P2}
  12667. 6,P2}<W}$J
  12668. 6Q,3}HKJL7
  12669. ^l7J\7
  12670. 6Q(4}
  12671. 6O44QL4
  12672. 6O44SX4~
  12673. 6O44SX4~
  12674. 6O44SX4~
  12675. 6O44SX4~
  12676. 6O44SX4~
  12677. %O(5S45
  12678. 8O\5Qh5~
  12679. 8O\5Qt5~(
  12680. 8O\5Q
  12681. 6O44SX4~
  12682. %O(5S45
  12683. 8Q(8}
  12684. 6O44SX4~
  12685. %O(5S45
  12686. N48QP5
  12687. 6Oh6Pt6
  12688. ND8QP6~H
  12689. 6QP6~h
  12690. 6O44SX4~
  12691. %O(5S45
  12692. NT8QP5
  12693. 6O44O
  12694. 5S45^\7%P
  12695. 6O46P
  12696. 8QP6~
  12697. 6O44SX4~
  12698. 6Q,3}HKJL7
  12699. ~`0}xV
  12700. ~`0}xV
  12701. ~`0}xV
  12702. O=Lotus Notes
  12703. O=Lotus Notes
  12704. PURSAFO
  12705. |.:#U
  12706. O=Lotus Notes
  12707. CN=Lotus Notes Template Development/O=Lotus Notes
  12708. PURSAFO
  12709. 7n].]
  12710. 'Hh3'|
  12711. LayoutNumberofUsers_1
  12712. LayoutNumberofUsers
  12713. $FILE
  12714. EXT27798.lss
  12715. $FILE
  12716. EXT27798.lso
  12717. testfield
  12718. vendorcount
  12719. $$ACTSRC_13
  12720. $SCRIPTOBJ_13
  12721. $$ACTSRC_11
  12722. $$ACTSRC_10
  12723. $$LayoutTolerance_1
  12724. $LayoutTolerance_1_O
  12725. $TITLE
  12726. $Info
  12727. $WindowTitle
  12728. $Script
  12729. $$Script_O
  12730. $$ScriptName
  12731. $$FormScript
  12732. $$$FormScript_O
  12733. $$queryid
  12734. $queryid_O
  12735. $$VendorList
  12736. $VendorList_O
  12737. $$GraphResults
  12738. $GraphResults_O
  12739. $$LayoutServerTasks
  12740. $LayoutServerTasks_O
  12741. $$LayoutUserResponseTime
  12742. $LayoutUserResponseTime_O
  12743. $$LayoutPercentRange
  12744. $LayoutPercentRange_O
  12745. $$LayoutOSPlatform
  12746. $LayoutOSPlatform_O
  12747. $$LayoutTolerance
  12748. $LayoutTolerance_O
  12749. $$LayoutDiskConfiguration
  12750. $LayoutDiskConfiguration_O
  12751. $$LayoutTolerance_Response
  12752. $LayoutTolerance_Response_O
  12753. $$LayoutMessagesHour
  12754. $LayoutMessagesHour_O
  12755. $$LayoutMBMessagesHour
  12756. $LayoutMBMessagesHour_O
  12757. $$LayoutMailHub
  12758. $LayoutMailHub_O
  12759. $$LayoutReplHour
  12760. $LayoutReplHour_O
  12761. $$LayoutMBReplHour
  12762. $LayoutMBReplHour_O
  12763. $$LayoutReplHub
  12764. $LayoutReplHub_O
  12765. $$LayoutMail
  12766. $LayoutMail_O
  12767. $$LayoutMailDB
  12768. $LayoutMailDB_O
  12769. $$LayoutGroupware
  12770. $LayoutGroupware_O
  12771. $$LayoutCS
  12772. $LayoutCS_O
  12773. $$LayoutDatabase
  12774. $LayoutDatabase_O
  12775. $$LayoutWW
  12776. $LayoutWW_O
  12777. $$LayoutWB
  12778. $LayoutWB_O
  12779. $$LayoutR5MDB
  12780. $LayoutR5MDB_O
  12781. $$LayoutMail_1
  12782. $LayoutMail_1_O
  12783. $$LayoutMailDB_1
  12784. $LayoutMailDB_1_O
  12785. $$LayoutGroupware_1
  12786. $LayoutGroupware_1_O
  12787. $$LayoutNumActiveUsers
  12788. $LayoutNumActiveUsers_O
  12789. $$LayoutMail_2
  12790. $LayoutMail_2_O
  12791. $$LayoutMail_3
  12792. $LayoutMail_3_O
  12793. $$LayoutMailDB_2
  12794. $LayoutMailDB_2_O
  12795. $$LayoutMailDB_3
  12796. $LayoutMailDB_3_O
  12797. $$LayoutGroupware_2
  12798. $LayoutGroupware_2_O
  12799. $$LayoutGroupware_3
  12800. $LayoutGroupware_3_O
  12801. $$LayoutDatabase_1
  12802. $LayoutDatabase_1_O
  12803. $$LayoutDatabase_2
  12804. $LayoutDatabase_2_O
  12805. $$LayoutDatabase_3
  12806. $LayoutDatabase_3_O
  12807. $$LayoutCS_1
  12808. $LayoutCS_1_O
  12809. $$LayoutCS_2
  12810. $LayoutCS_2_O
  12811. $$LayoutCS_3
  12812. $LayoutCS_3_O
  12813. $$LayoutWW_1
  12814. $LayoutWW_1_O
  12815. $$LayoutWW_2
  12816. $LayoutWW_2_O
  12817. $$LayoutWW_3
  12818. $LayoutWW_3_O
  12819. $$LayoutWB_1
  12820. $LayoutWB_1_O
  12821. $$LayoutWB_2
  12822. $LayoutWB_2_O
  12823. $$LayoutWB_3
  12824. $LayoutWB_3_O
  12825. $$LayoutTotalProfile_1
  12826. $LayoutTotalProfile_1_O
  12827. $$LayoutTotalProfile_2
  12828. $LayoutTotalProfile_2_O
  12829. $$LayoutTotalProfile_3
  12830. $LayoutTotalProfile_3_O
  12831. $$LayoutR5MDB_1
  12832. $LayoutR5MDB_1_O
  12833. $$LayoutR5MDB_2
  12834. $LayoutR5MDB_2_O
  12835. $$LayoutR5MDB_3
  12836. $LayoutR5MDB_3_O
  12837. $$LayoutSummary
  12838. $LayoutSummary_O
  12839. $$OtherDesc1
  12840. $OtherDesc1_O
  12841. queryid
  12842. UniqueCount
  12843. PerGrowthProj
  12844. LayoutMailHub
  12845. LayoutReplHub
  12846. LayoutMail_1
  12847. LayoutMailDB_1
  12848. LayoutGroupware_1
  12849. LayoutMail_2
  12850. LayoutMail_3
  12851. LayoutMailDB_2
  12852. LayoutMailDB_3
  12853. LayoutGroupware_2
  12854. LayoutGroupware_3
  12855. LayoutDatabase_1
  12856. LayoutDatabase_2
  12857. LayoutDatabase_3
  12858. LayoutCS_1
  12859. LayoutCS_2
  12860. LayoutCS_3
  12861. LayoutWW_1
  12862. LayoutWW_2
  12863. LayoutWW_3
  12864. LayoutWB_1
  12865. LayoutWB_2
  12866. LayoutWB_3
  12867. LayoutTotalProfile_1
  12868. LayoutTotalProfile_2
  12869. LayoutTotalProfile_3
  12870. LayoutR5MDB_1
  12871. LayoutR5MDB_2
  12872. LayoutR5MDB_3
  12873. OtherAmt1
  12874. OtherAmt2
  12875. OtherAmt3
  12876. OutCreationDate
  12877. LayoutDate
  12878. $Body
  12879. $$ACTSRC_9
  12880. $ACTIONS
  12881. $SCRIPTOBJ_6
  12882. $SCRIPTOBJ_7
  12883. $SCRIPTOBJ_8
  12884. $SCRIPTOBJ_9
  12885. $SCRIPTOBJ_10
  12886. Times New Roman
  12887. body text
  12888. Task List
  12889. &Switch To
  12890.                    
  12891. About Lotus Domino Server.Planner
  12892. Body Text
  12893. Domino Server.Planner is a capacity planning tool. It is a Notes
  12894. Application used to identify benchmarked server configurations that support
  12895. specified workload requirements for Domino servers.
  12896. Server.Planner provides information in several formats, but with primarily
  12897. two viewpoints:
  12898.    Server configuration recommendations that satisfy server workload
  12899.    requirements.
  12900.    Graphical performance analysis and comparisons.
  12901. This application is distributed as three Notes database templates.  Its
  12902.  use requires three kinds of Domino Server.Planner databases:
  12903.    Vendor Database
  12904.    Analyst Database
  12905.    Decision Maker Database
  12906. DISCLAIMER
  12907. :  This template is intended solely to provide you with a means
  12908. for matching your user requirements with performance results generated by
  12909. hardware vendors.  LOTUS DEVELOPMENT CORPORATION MAKES NO WARRANTIES,
  12910. GUARANTEES OR REPRESENTATIONS, WHETHER EXPRESS OR IMPLIED, INCLUDING
  12911. WITHOUT LIMITATION ANY WARRANTIES OF TITLE, MERCHANTABILITY OR FITNESS FOR
  12912. A PARTICULAR PURPOSE, WITH RESPECT TO THE TEMPLATE OR THE RECOMMENDATIONS
  12913. PRODUCED.  LOTUS WILL NOT BE LIABLE FOR ANY DAMAGES WHATSOEVER IN
  12914. CONNECTION WITH YOUR USE OF OR INABILITY TO USE THIS TEMPLATE, EVEN IF
  12915. ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
  12916. This application requires:
  12917.    Notes 4.6 or later
  12918.    Windows 95 or Windows NT 3.51 or later
  12919.    Lotus Components 1.1 or later (for graphical information)
  12920.              
  12921.  About the Domino Server.Planner Analyst Database
  12922. The Domino Server.Planner Analyst Database is a tool for creating
  12923.         and managing queries that you make against Vendor Databases.  It
  12924.         stores the results in a Decision Maker Database.
  12925.         The Analyst Database presents two views:
  12926. Query on Data
  12927. Conversion Guidelines
  12928.            
  12929.         You use the Query on Data view to create, use, and manage your
  12930.         queries.
  12931.         You use the Conversion Guidelines view to adjust the search
  12932.         requirements for specific workloads.
  12933.         Each view has an action button bar for ease of use.  You can also
  12934.         perform any of these actions from the menu bar.
  12935.         Server.Planner queries only certified Vendor Data and Machine
  12936.         Identification forms.
  12937. For more detailed information about this application, choose 
  12938. Help - Using
  12939. This Database
  12940. O=Lotus Notes
  12941. O=Lotus Notes
  12942. PURSAFO
  12943. |.:#U
  12944. O=Lotus Notes
  12945. CN=Lotus Notes Template Development/O=Lotus Notes
  12946. PURSAFO
  12947. Fde!f^^
  12948.  6m)U=
  12949. Fh=+n]A
  12950. :_sIi=
  12951. $Info
  12952. $Body
  12953. GraphicButton3
  12954.     hq"    S
  12955. hy<~    
  12956. u=3y=
  12957. hqG~hz|
  12958. |hbG!hzm
  12959. pO    8h
  12960.     sTy~M~hb8
  12961. XphQG
  12962. ~zbG    
  12963. =|zp8
  12964.         myL,hpRc
  12965. }gathbv
  12966. Mupb}
  12967. y[gpb
  12968. u=ubuM
  12969. M~VqbS
  12970. K:`FS
  12971. d EYXn}LH^#
  12972. PX0+)
  12973. `    Z6X^>
  12974. =(Z:j
  12975. rn*6+S
  12976. a >'*/)
  12977. rY(%'`8
  12978. ]^2'(0
  12979. \] m12
  12980. +YEsks~S
  12981. ksP^(6#
  12982. dm(%'%`8
  12983. &`<`+
  12984. Hm1>S
  12985. <m'212
  12986. .=*21S
  12987. <E>1'
  12988.     ]k%'2'(`8
  12989. Hm1>n8
  12990. a m1`
  12991. {>1%6
  12992. 2*#N8
  12993. Hm1>1_<
  12994. }>1*/+
  12995. H2*/+
  12996. .^v>1'
  12997. am212*~
  12998. d #0+/
  12999. '*6#*
  13000. E21%(/>
  13001. ^m*#+
  13002. *'12%60
  13003. #*'2*/
  13004. +    0(%'*6
  13005. +0/6#+
  13006. +0#/(
  13007. PX0+)
  13008. .E/(/0
  13009. <%/+)
  13010.  #6/`8
  13011. .=(*(#
  13012. . 12:
  13013. a>%6+
  13014. ]^2'(0
  13015. \arP21:
  13016. \] m12
  13017. kEY21:
  13018. ;X1X<
  13019. ;n12Z
  13020. ;X1>12
  13021. LX_6_
  13022. ;m>1Z
  13023.  *21S
  13024. Hm1>S
  13025. <m'212
  13026. H^=Pk
  13027. ]1%0)
  13028. ;E>1Z
  13029. Hm1>n8
  13030. ;X1>1'%*
  13031. rX('>XF
  13032. LE'0)
  13033. ;X1>1'
  13034. ;Ev1Z
  13035.  12(N8
  13036. Hm1>1_<
  13037. }>1*/+
  13038. ]X21'
  13039. \ /*2
  13040. ]X21'
  13041. ]=v1*
  13042. %*6/6
  13043. r>1*_{
  13044. am212*~
  13045. n21%6
  13046. P6%21'%Y
  13047. %6#6P
  13048. lv1*#n
  13049. m1*#0P
  13050. E21%(/>
  13051. ^m*#+
  13052. #*'2'
  13053. (/#/(%'%(
  13054. '2%(0
  13055. '1>2*#
  13056. '12*#+
  13057. #*'2*/
  13058. +    0(%'*6
  13059. 6(6#+
  13060. +#6/0
  13061. +#6(60
  13062.     -iI@QOJ
  13063. @QOJR
  13064. I@QOJ
  13065. COJtR
  13066.     ?@CWOtR
  13067. XXXxxx
  13068. HHHPPP
  13069. ((@@@@
  13070. PPXXX`
  13071. 0( 888HHHP
  13072. `X0`x
  13073. Button3Create QueryT
  13074. Query on Data
  13075.     0S0E
  13076. Button4Helpn
  13077. 852564B1:006F8A1C
  13078. Button5e
  13079. Conversion Guidelines
  13080.     0S0E
  13081. Text1 Change Weighting
  13082.               Factor
  13083. Conversion Guidelines
  13084.     0S0E
  13085. ViewQueriesView Queriese
  13086. Query on Data
  13087.     0S0E
  13088. Button7Web Links
  13089. Web Links
  13090.     0S0E
  13091. p+$-,
  13092. 4%&*-
  13093. 0.+$&
  13094. nos4x
  13095. ^24yz
  13096. oyz{|
  13097. outuo
  13098. mdkeR
  13099. XC')_c
  13100. \F7)b`
  13101. rh>5lf
  13102. EFMATGaXhN9'lc
  13103. H'6)c
  13104. r;'6dc
  13105. QI6'k`
  13106. HT76f
  13107. eiPXI'6)
  13108. <TNC:;5c
  13109. Q=8'k
  13110. dnPVF:8;k`
  13111. N;8'5
  13112. ZG=<6R
  13113. hH8:>k`
  13114. VF?:8')
  13115. ]FC?=8f
  13116. ZA;>?k`
  13117. SN@?;7)
  13118. VSFIB@:95
  13119. 6AMojo^R
  13120. joHN;<9'5d
  13121. EI;>?>k`
  13122. J;<9'lf
  13123. _kik6:
  13124. :<7;8')d
  13125. \L=@W
  13126. ><'ln
  13127. iPrF>=
  13128. <U;8'lf
  13129. hIBCR
  13130. iI?@B@:75
  13131. dcPicf
  13132. ^<')d
  13133. \L=@BR
  13134. iMCB?:96)c
  13135. P    Sj>?@?;k`
  13136. eD<'lf
  13137. hIBCG`
  13138. B?;')
  13139. ]FIBkc
  13140. [CB><')
  13141. @=9b`
  13142. ^A'gf
  13143. hIBCBUi
  13144. aCB=86
  13145. h@=86)
  13146. \NKCB?:7'[
  13147. \L'5W
  13148. ]I@B@=^
  13149. XL@:95
  13150. EF9768
  13151. j:?=<9=
  13152. M=86)
  13153. B>86)5H
  13154. EL97'A
  13155. M@B>;8C
  13156. NI=96
  13157. =?B@><7'9=@
  13158. A:;96569:>:9
  13159. 8:?@>;')
  13160. 9=?@=8'7<>
  13161. :<'569;:;7
  13162. :<7'9;
  13163. 6    7;>?=<')
  13164. :<96)5'8;:
  13165. ;8'5678<96
  13166. 57<:;8')
  13167. ;8'6'8
  13168. )6798;
  13169. ;89'6)
  13170. _ecOl
  13171. rh>5lf
  13172. \M'7'5)
  13173. =7'lf
  13174. [<'6gc
  13175. HT76f
  13176. eiPXI'6)
  13177. \M8;875
  13178. rA;8')gf
  13179. i>86f
  13180. n:9lc
  13181. F9<8k`
  13182. N;8'5
  13183. \L;=;95
  13184. H?:95
  13185. F;:;k`
  13186. VF?:8')
  13187. \FB@d
  13188. \L:>:95
  13189. ]C><6
  13190. F:>:k`
  13191. SN@?;7)
  13192. V]ZH@Bd
  13193. \L:>:95
  13194. H@:7lf
  13195. F=>:k`
  13196. VSFIB@:95
  13197. jMA@Bd
  13198. \L:>:95
  13199. hB>85f
  13200. QTBTi
  13201. F=>:k`
  13202. J;<9'lf
  13203. QTBCB@
  13204. XTU<U'l_
  13205. mdnPX
  13206. iJ?:6f
  13207. QTBKDi
  13208. F=@BR
  13209. F>?:k`
  13210. <U;8'lf
  13211. hIBCR
  13212. iI?@B@:75
  13213. hNLHjD`
  13214. SB>7f
  13215. eD<'lf
  13216. hIBCG`
  13217. B?;')
  13218. QTBCB?>=
  13219. ZT;?CTe
  13220. XM?7f
  13221. QTBCB?c
  13222. FB@;b`
  13223. ^A'gf
  13224. hIBCBUi
  13225. aCB=86
  13226. ST@B?:<
  13227. VF8=@
  13228. ST@B?
  13229. SLKB=Y
  13230. Z:>=<8<
  13231. ZCB=U[
  13232. \L'5W
  13233. ]I@B@=^
  13234. XL@:95
  13235. G@B><'6
  13236. H<>@B?>A
  13237. ><9<H
  13238. JKB=9G
  13239. IB=97H
  13240. EL97'A
  13241. M@B>;8C
  13242. NI=96
  13243. 9:?@=95)
  13244. 59=?@?
  13245. :A:;898;>?>;
  13246. <:?@>;7'9=
  13247. 8:?BC@=9
  13248. 9:>:965'8:?B@=96)69=
  13249. 9=?@=8'7<>
  13250. ;9'6'8:
  13251. ;9'9;
  13252. 7;:;96
  13253. :96)69:
  13254. :<7'9;
  13255. 6    7;>?=<')
  13256. 8'5)68
  13257. <;<96
  13258. )69;:;86
  13259. 69<875
  13260. )69<;<75)57<
  13261. ;8'6'8
  13262. pppxxx
  13263. hhh```XXXPPPXX`HHH@@@@Xx
  13264. (HHP 
  13265. 888H( 8888((@0(@
  13266.  `X0 
  13267. 22222222
  13268. 44444444
  13269. 00000000
  13270. O=Lotus Notes
  13271. O=Lotus Notes
  13272. PURSAFO
  13273. |.:#U
  13274. O=Lotus Notes
  13275. CN=Lotus Notes Template Development/O=Lotus Notes
  13276. PURSAFO
  13277. $ViewMapDataset
  13278. $ViewMapLayout
  13279. $NavImagemap
  13280. Footlight MT Light
  13281. (List)
  13282. queryid
  13283. ListType
  13284.  List
  13285. O=Lotus Notes
  13286. O=Lotus Notes
  13287. PURSAFO
  13288. |.:#U
  13289. O=Lotus Notes
  13290. CN=Lotus Notes Template Development/O=Lotus Notes
  13291. PURSAFO
  13292. Fde!f^^
  13293. W{}#OR
  13294. pmF'7'
  13295. $TITLE
  13296. $Info
  13297. $$ScriptName
  13298. $Body
  13299. ConvertConversion GuidelinesC
  13300. Adjust_R5MDBAdjust_WBAdjust_WWAdjust_CSAdjust_GroupwareAdjust_MailDBAdjust_DatabaseAdjust_MailAdjust_MailHubAdjust_ReplHubProfile
  13301. CN=Richard Kanosky/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes
  13302. ##########################################################
  13303. OutputInfoC
  13304. OutputSaveResultsOutputFilenameOutputServer
  13305. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes#
  13306. Server.Planner: AnalystGraphResultsC
  13307. GraphResults
  13308. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes#############################
  13309. VPlatform(List)
  13310. AIX/RS6000AIX/SP2HP-UXNetWare 3.12Netware 4.1 NT 3.51 NT 4.0 OS/2 2.11 SMP OS/2 Warp Connect OS/2 Warp Server 4.0 Solaris 2.5 Win95 1.0System/390AS/400
  13311. CN=Carol Zimmet/O=IrisCN=Richard Kanosky/O=Iris
  13312. ################################
  13313. Conversion GuidelinesDefault
  13314. CN=Carol Zimmet/O=Iris
  13315. ##################################
  13316. `TM0H
  13317.     Database Scriptt34Q1
  13318. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes###################
  13319. HelpConversion Guidelines
  13320. You can use this feature to make an optional adjustment to the selection of
  13321. benchmark workload results for your queries.
  13322. Because benchmark data is obtained in a laboratory environment, it may not
  13323. portray the real-life environment that you want to analyze.  Domino
  13324. Server.Planner uses the Conversion Guidelines values to make a transparent
  13325. adjustment to the selection criteria when performing a query.
  13326. For example, industry observations might indicate that your real-life mail
  13327. usage has an overhead of twice that of the benchmarking environment.  To
  13328. adjust the queries to compensate for this difference, you can change the
  13329. guidelines number for Mail, Mail and Shared Database, and Mail Routing Hub
  13330. to 2.00.  Then if your query is set up to look for results for 200 active
  13331. users, Server.Planner would look for 400-user results for these mail
  13332. workloads, while looking for 200-user results for any others.
  13333.    Any changes you make to these values are applied to all subsequent
  13334.    queries.
  13335.    The guidelines are used to adjust the number of users or spokes.
  13336.    The values used are reported with the query output.
  13337.    You can use fractional values, such as 1.50.
  13338.    You can adjust to accept lower performance with values, such as .50.
  13339. CN=Carol Zimmet/O=Iris
  13340. #####################################################
  13341. (All)
  13342. LayoutServerTasks
  13343. Replication Hub
  13344. Mail Hub
  13345. User Tasks
  13346.     1S4S5S6S7S8S10S11S12S13S14S
  13347. queryidLayoutDateLayoutAuthorLayoutSummary$1$Conflict$REF
  13348. Query on Data
  13349.     L1S2S3S1
  13350. queryidLayoutDateDate/TimeLayoutAuthorAuthorLayoutSummarySummary$1Tasks
  13351. LayoutServerTasks
  13352. Replication Hub
  13353. Mail Hub
  13354. User Tasks
  13355.     1S4S5S6S7S8S10S11S12S13S14S&
  13356. CN=Carol Zimmet/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes
  13357. Database(List)
  13358. ADECCOMPAQIBMPCCRICHXDANAHADES
  13359. CN=Carol Zimmet/O=IrisCN=Richard Kanosky/O=Iris
  13360. #######################
  13361. Query on Data
  13362. @09/19/97 04:47:37 PM11101
  13363. 0Output to DatabaseRSlow (3.1 - 5 sec)50
  13364. 123456789101112100Any Configuration**
  13365. Y@0000000
  13366. Sample
  13367. NBCarol Zimmet/IrisCarol Zimmeta9r
  13368. CN=Carol Zimmet/O=Iris
  13369. ##################################################
  13370. Server.Planner: AnalystWeb LinksG3
  13371. CN=Richard Kanosky/O=IrisCN=Lotus Notes Template Development/O=Lotus Notes##########################################################
  13372. ##########################################################
  13373. ##########################################################
  13374. ##########################################################
  13375. ##########################################################
  13376. ##########################################################
  13377. ##########################################################
  13378. ##########################################################
  13379. ##########################################################
  13380. ##########################################################
  13381. ##########################################################
  13382. ##########################################################
  13383. ##########################################################
  13384. ##########################################################
  13385. Conversion Guidelines
  13386.  Conversion Guidelines'++LotusScript Development Environment:2:5:(Options):0:66
  13387. '++LotusScript Development Environment:2:5:(Forward):0:1
  13388. Declare Sub Postopen(Source As Notesuidocument)
  13389. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13390. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13391. Private Sub BindEvents(Byval Objectname_ As String)
  13392.      Static Source As NOTESUIDOCUMENT
  13393.      Set Source = Bind(Objectname_)
  13394.      On Event Postopen From Source Call Postopen
  13395. End Sub
  13396. '++LotusScript Development Environment:2:2:Postopen:2:12
  13397. Sub Postopen(Source As Notesuidocument)
  13398.      
  13399. End Sub
  13400. '++LotusScript Development Environment:2:5:(Options):0:66
  13401. '++LotusScript Development Environment:2:5:(Forward):0:1
  13402. Declare Sub Exiting(Source As Field)
  13403. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13404. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13405. Private Sub BindEvents(Byval Objectname_ As String)
  13406.      Static Source As FIELD
  13407.      Set Source = Bind(Objectname_)
  13408.      On Event Exiting From Source Call Exiting
  13409. End Sub
  13410. '++LotusScript Development Environment:2:2:Exiting:1:12
  13411. Sub Exiting(Source As Field)
  13412.      Dim Workspace As New NotesUIWorkspace
  13413.      Dim ThisDoc As NotesUIDocument
  13414.      
  13415.      Set ThisDoc = Workspace.CurrentDocument
  13416.      
  13417.      If ( Isnumeric(ThisDoc.Document.Adjust_ReplHub) = True ) Then
  13418.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13419.           ThisDoc.GoToField( "Adjust_ReplHub" )
  13420.      End If
  13421. End Sub
  13422. '++LotusScript Development Environment:2:5:(Options):0:66
  13423. '++LotusScript Development Environment:2:5:(Forward):0:1
  13424. Declare Sub Exiting(Source As Field)
  13425. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13426. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13427. Private Sub BindEvents(Byval Objectname_ As String)
  13428.      Static Source As FIELD
  13429.      Set Source = Bind(Objectname_)
  13430.      On Event Exiting From Source Call Exiting
  13431. End Sub
  13432. '++LotusScript Development Environment:2:2:Exiting:1:12
  13433. Sub Exiting(Source As Field)
  13434.      Dim Workspace As New NotesUIWorkspace
  13435.      Dim ThisDoc As NotesUIDocument
  13436.      
  13437.      Set ThisDoc = Workspace.CurrentDocument
  13438.      
  13439.      If ( Isnumeric(ThisDoc.Document.Adjust_MailHub) = True ) Then
  13440.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13441.           ThisDoc.GoToField( "Adjust_MailHub" )
  13442.      End If
  13443. End Sub
  13444. '++LotusScript Development Environment:2:5:(Options):0:66
  13445. '++LotusScript Development Environment:2:5:(Forward):0:1
  13446. Declare Sub Exiting(Source As Field)
  13447. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13448. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13449. Private Sub BindEvents(Byval Objectname_ As String)
  13450.      Static Source As FIELD
  13451.      Set Source = Bind(Objectname_)
  13452.      On Event Exiting From Source Call Exiting
  13453. End Sub
  13454. '++LotusScript Development Environment:2:2:Exiting:1:12
  13455. Sub Exiting(Source As Field)
  13456.      Dim Workspace As New NotesUIWorkspace
  13457.      Dim ThisDoc As NotesUIDocument
  13458.      
  13459.      Set ThisDoc = Workspace.CurrentDocument
  13460.      
  13461.      If ( Isnumeric(ThisDoc.Document.Adjust_Mail) = True ) Then
  13462.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13463.           ThisDoc.GoToField( "Adjust_Mail" )
  13464.      End If
  13465. End Sub
  13466. '++LotusScript Development Environment:2:5:(Options):0:66
  13467. '++LotusScript Development Environment:2:5:(Forward):0:1
  13468. Declare Sub Exiting(Source As Field)
  13469. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13470. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13471. Private Sub BindEvents(Byval Objectname_ As String)
  13472.      Static Source As FIELD
  13473.      Set Source = Bind(Objectname_)
  13474.      On Event Exiting From Source Call Exiting
  13475. End Sub
  13476. '++LotusScript Development Environment:2:2:Exiting:1:12
  13477. Sub Exiting(Source As Field)
  13478.      Dim Workspace As New NotesUIWorkspace
  13479.      Dim ThisDoc As NotesUIDocument
  13480.      
  13481.      Set ThisDoc = Workspace.CurrentDocument
  13482.      
  13483.      If ( Isnumeric(ThisDoc.Document.Adjust_Database) = True ) Then
  13484.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13485.           ThisDoc.GoToField( "Adjust_Database" )
  13486.      End If  
  13487. End Sub
  13488. '++LotusScript Development Environment:2:5:(Options):0:66
  13489. '++LotusScript Development Environment:2:5:(Forward):0:1
  13490. Declare Sub Exiting(Source As Field)
  13491. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13492. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13493. Private Sub BindEvents(Byval Objectname_ As String)
  13494.      Static Source As FIELD
  13495.      Set Source = Bind(Objectname_)
  13496.      On Event Exiting From Source Call Exiting
  13497. End Sub
  13498. '++LotusScript Development Environment:2:2:Exiting:1:12
  13499. Sub Exiting(Source As Field)
  13500.      Dim Workspace As New NotesUIWorkspace
  13501.      Dim ThisDoc As NotesUIDocument
  13502.      
  13503.      Set ThisDoc = Workspace.CurrentDocument
  13504.      
  13505.      If ( Isnumeric(ThisDoc.Document.Adjust_MailDB) = True ) Then
  13506.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13507.           ThisDoc.GoToField( "Adjust_MailDB" )
  13508.      End If
  13509. End Sub
  13510. '++LotusScript Development Environment:2:5:(Options):0:66
  13511. '++LotusScript Development Environment:2:5:(Forward):0:1
  13512. Declare Sub Exiting(Source As Field)
  13513. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13514. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13515. Private Sub BindEvents(Byval Objectname_ As String)
  13516.      Static Source As FIELD
  13517.      Set Source = Bind(Objectname_)
  13518.      On Event Exiting From Source Call Exiting
  13519. End Sub
  13520. '++LotusScript Development Environment:2:2:Exiting:1:12
  13521. Sub Exiting(Source As Field)
  13522.      Dim Workspace As New NotesUIWorkspace
  13523.      Dim ThisDoc As NotesUIDocument
  13524.      
  13525.      Set ThisDoc = Workspace.CurrentDocument
  13526.      
  13527.      If ( Isnumeric(ThisDoc.Document.Adjust_Groupware) = True ) Then
  13528.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13529.           ThisDoc.GoToField( "Adjust_Groupware" )
  13530.      End If
  13531. End Sub
  13532. '++LotusScript Development Environment:2:5:(Options):0:66
  13533. '++LotusScript Development Environment:2:5:(Forward):0:1
  13534. Declare Sub Exiting(Source As Field)
  13535. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13536. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13537. Private Sub BindEvents(Byval Objectname_ As String)
  13538.      Static Source As FIELD
  13539.      Set Source = Bind(Objectname_)
  13540.      On Event Exiting From Source Call Exiting
  13541. End Sub
  13542. '++LotusScript Development Environment:2:2:Exiting:1:12
  13543. Sub Exiting(Source As Field)
  13544.      Dim Workspace As New NotesUIWorkspace
  13545.      Dim ThisDoc As NotesUIDocument
  13546.      
  13547.      Set ThisDoc = Workspace.CurrentDocument
  13548.      
  13549.      If ( Isnumeric(ThisDoc.Document.Adjust_CS) = True ) Then
  13550.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13551.           ThisDoc.GoToField( "Adjust_CS" )
  13552.      End If
  13553. End Sub
  13554. '++LotusScript Development Environment:2:5:(Options):0:66
  13555. '++LotusScript Development Environment:2:5:(Forward):0:1
  13556. Declare Sub Exiting(Source As Field)
  13557. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13558. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13559. Private Sub BindEvents(Byval Objectname_ As String)
  13560.      Static Source As FIELD
  13561.      Set Source = Bind(Objectname_)
  13562.      On Event Exiting From Source Call Exiting
  13563. End Sub
  13564. '++LotusScript Development Environment:2:2:Exiting:1:12
  13565. Sub Exiting(Source As Field)
  13566.      Dim Workspace As New NotesUIWorkspace
  13567.      Dim ThisDoc As NotesUIDocument
  13568.      
  13569.      Set ThisDoc = Workspace.CurrentDocument
  13570.      
  13571.      If ( Isnumeric(ThisDoc.Document.Adjust_WW) = True ) Then
  13572.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13573.           ThisDoc.GoToField( "Adjust_WW" )
  13574.      End If
  13575. End Sub
  13576. '++LotusScript Development Environment:2:5:(Options):0:66
  13577. '++LotusScript Development Environment:2:5:(Forward):0:1
  13578. Declare Sub Exiting(Source As Field)
  13579. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13580. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13581. Private Sub BindEvents(Byval Objectname_ As String)
  13582.      Static Source As FIELD
  13583.      Set Source = Bind(Objectname_)
  13584.      On Event Exiting From Source Call Exiting
  13585. End Sub
  13586. '++LotusScript Development Environment:2:2:Exiting:1:12
  13587. Sub Exiting(Source As Field)
  13588.      Dim Workspace As New NotesUIWorkspace
  13589.      Dim ThisDoc As NotesUIDocument
  13590.      
  13591.      Set ThisDoc = Workspace.CurrentDocument
  13592.      
  13593.      If ( Isnumeric(ThisDoc.Document.Adjust_WB) = True ) Then
  13594.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13595.           ThisDoc.GoToField( "Adjust_WB" )
  13596.      End If
  13597. End Sub
  13598. '++LotusScript Development Environment:2:5:(Options):0:66
  13599. '++LotusScript Development Environment:2:5:(Forward):0:1
  13600. Declare Sub Exiting(Source As Field)
  13601. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13602. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13603. Private Sub BindEvents(Byval Objectname_ As String)
  13604.      Static Source As FIELD
  13605.      Set Source = Bind(Objectname_)
  13606.      On Event Exiting From Source Call Exiting
  13607. End Sub
  13608. '++LotusScript Development Environment:2:2:Exiting:1:12
  13609. Sub Exiting(Source As Field)
  13610.      Dim Workspace As New NotesUIWorkspace
  13611.      Dim ThisDoc As NotesUIDocument
  13612.      
  13613.      Set ThisDoc = Workspace.CurrentDocument
  13614.      
  13615.      If ( Isnumeric(ThisDoc.Document.Adjust_WB) = True ) Then
  13616.           Messagebox "Field Value Must be Numeric", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13617.           ThisDoc.GoToField( "Adjust_WB" )
  13618.      End If
  13619. End Sub
  13620. Default
  13621. Profile
  13622. Body Text
  13623. If you wish to adjust the server selection algorithms for specific workload types to reflect real world usage, change the table values below. The default values reflect the laboratory environment of the benchmark scenarios where the vendor data was created. 
  13624. The initial value for each workload is 1.00, resulting in no actual adjustment of the workload results during the query. You can adjust the conversion factors of any or all of the workloads. You can use fractional numbers (for example, 1.5), or numbers less than 1.00, to adjust for better-than-benchmark adjustment.
  13625. For example if you wish to apply a rule of thumb in which your actual mail users consume twice the resources as a benchmark mail user, then increase the Mail Adjustment amount to 2.0.
  13626. Workload Weighting Table:
  13627. Script
  13628. Adjustment Amount
  13629. Replication Hub
  13630. Adjust_ReplHubEnter multiplier for number-of-users adjustment for this workload.
  13631. Mail Routing Hub
  13632. Adjust_MailHubEnter multiplier for number-of-users adjustment for this workload.
  13633. Adjust_MailEnter multiplier for number-of-users adjustment for this workload.
  13634. Database
  13635. Adjust_DatabaseEnter multiplier for number-of-users adjustment for this workload.
  13636. Mail & Database
  13637. Adjust_MailDBEnter multiplier for number-of-users adjustment for this workload.
  13638. Groupware
  13639. Adjust_GroupwareEnter multiplier for number-of-users adjustment for this workload.
  13640. Calendar & Scheduling
  13641. Adjust_CSEnter multiplier for number-of-users adjustment for this workload.
  13642. Web Walker
  13643. Adjust_WWEnter multiplier for number-of-users adjustment for this workload.
  13644. Web Buyer
  13645. Adjust_WBEnter multiplier for number-of-users adjustment for this workload.
  13646. R5 Mail & Database
  13647. Adjust_R5MDBEnter multiplier for number-of-users adjustment for this workload.
  13648. Categori_zeu
  13649. _Edit Document
  13650. Send Docu_ment
  13651. _Forward
  13652. _Move To Folder...
  13653. _Remove From Folder
  13654. Exit 
  13655.     0S0E
  13656. Save'++LotusScript Development Environment:2:5:(Options):0:66
  13657. '++LotusScript Development Environment:2:5:(Forward):0:1
  13658. Declare Sub Click(Source As Button)
  13659. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13660. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13661. Private Sub BindEvents(Byval Objectname_ As String)
  13662.      Static Source As BUTTON
  13663.      Set Source = Bind(Objectname_)
  13664.      On Event Click From Source Call Click
  13665. End Sub
  13666. '++LotusScript Development Environment:2:2:Click:1:12
  13667. Sub Click(Source As Button)
  13668.      Dim WorkSpace As New NotesUIWorkspace
  13669.      Dim ThisDoc As NotesUIDocument
  13670.      
  13671.      Set ThisDoc = WorkSpace.CurrentDocument
  13672.      
  13673.      ThisDoc.Save
  13674.      
  13675. End Sub
  13676. Edit 
  13677.     0S0E
  13678. Help^
  13679. DSPUG.NSF
  13680. Table of Contents
  13681.     4S10S12S13S
  13682. O=Lotus Notes
  13683. O=Lotus Notes
  13684. PURSAFO
  13685. |.:#U
  13686. O=Lotus Notes
  13687. CN=Lotus Notes Template Development/O=Lotus Notes
  13688. PURSAFO
  13689. $TITLE
  13690. $Info
  13691. $WindowTitle
  13692. $$ScriptName
  13693. $$FormScript
  13694. $$$FormScript_O
  13695. $$Adjust_ReplHub
  13696. $Adjust_ReplHub_O
  13697. $$Adjust_MailHub
  13698. $Adjust_MailHub_O
  13699. $$Adjust_Mail
  13700. $Adjust_Mail_O
  13701. $$Adjust_Database
  13702. $Adjust_Database_O
  13703. $$Adjust_MailDB
  13704. $Adjust_MailDB_O
  13705. $$Adjust_Groupware
  13706. $Adjust_Groupware_O
  13707. $$Adjust_CS
  13708. $Adjust_CS_O
  13709. $$Adjust_WW
  13710. $Adjust_WW_O
  13711. $$Adjust_WB
  13712. $Adjust_WB_O
  13713. $$Adjust_R5MDB
  13714. $Adjust_R5MDB_O
  13715. Adjust_ReplHub
  13716. Adjust_MailHub
  13717. Adjust_Mail
  13718. Adjust_Database
  13719. Adjust_MailDB
  13720. Adjust_Groupware
  13721. Adjust_CS
  13722. Adjust_WW
  13723. Adjust_WB
  13724. Adjust_R5MDB
  13725. $Body
  13726. $ACTIONS
  13727. $SCRIPTOBJ_7
  13728. ProfileProfileAdjust_ReplHubRepl HubAdjust_MailHubMail HubAdjust_CSCal & SchedAdjust_DatabaseDatabaseAdjust_GroupwareGroupwareAdjust_MailMailAdjust_MailDBMail & DatabaseAdjust_WBWeb BuyerAdjust_WWWeb Walker&
  13729. O=Lotus Notes
  13730. O=Lotus Notes
  13731. PURSAFO
  13732. |.:#U
  13733. O=Lotus Notes
  13734. CN=Lotus Notes Template Development/O=Lotus Notes
  13735. PURSAFO
  13736. $TITLE
  13737. $Index
  13738. $Formula
  13739. $FormulaClass
  13740. $ViewFormat
  13741. $Comment
  13742. OutputInfo
  13743. Output Database Information:
  13744. Server:
  13745. OutputServer
  13746. OutputFilename
  13747. Filename:
  13748. Save Results:
  13749. OutputSaveResults
  13750. Create Mail ItemOutput to Database
  13751. O=Lotus Notes
  13752. O=Lotus Notes
  13753. PURSAFO
  13754. |.:#U
  13755. O=Lotus Notes
  13756. CN=Lotus Notes Template Development/O=Lotus Notes
  13757. PURSAFO
  13758. $TITLE
  13759. $Info
  13760. $$Script_O
  13761. $$ScriptName
  13762. $Body
  13763. Footlight MT Light
  13764. '++LotusScript Development Environment:2:5:(Options):0:66
  13765. '++LotusScript Development Environment:2:5:(Forward):0:1
  13766. Declare Sub Exiting(Source As Field)
  13767. Declare Sub Terminate
  13768. Declare Sub Entering(Source As Field)
  13769. Declare Sub Initialize
  13770. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13771. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13772. Private Sub BindEvents(Byval Objectname_ As String)
  13773.      Static Source As FIELD
  13774.      Set Source = Bind(Objectname_)
  13775.      On Event Exiting From Source Call Exiting
  13776.      On Event Entering From Source Call Entering
  13777. End Sub
  13778. '++LotusScript Development Environment:2:2:Exiting:1:12
  13779. Sub Exiting(Source As Field)
  13780.      
  13781. End Sub
  13782. '++LotusScript Development Environment:2:2:Terminate:1:10
  13783. Sub Terminate
  13784.      Dim workspace As New notesuiworkspace
  13785.      Dim ThisDoc As notesuidocument
  13786.      
  13787.      Set ThisDoc = workspace.CurrentDocument
  13788.      TempString$ = ThisDoc.FieldGetText("VendorList")
  13789.      
  13790.      
  13791. End Sub
  13792. '++LotusScript Development Environment:2:2:Entering:1:12
  13793. Sub Entering(Source As Field)
  13794.      
  13795. End Sub
  13796. '++LotusScript Development Environment:2:2:Initialize:1:10
  13797. Sub Initialize
  13798.      
  13799. End Sub
  13800. GraphResults'++LotusScript Development Environment:2:5:(Options):0:66
  13801. '++LotusScript Development Environment:2:5:(Forward):0:1
  13802. Declare Sub Terminate
  13803. Declare Sub Postopen(Source As Notesuidocument)
  13804. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13805. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13806. Private Sub BindEvents(Byval Objectname_ As String)
  13807.      Static Source As NOTESUIDOCUMENT
  13808.      Set Source = Bind(Objectname_)
  13809.      On Event Postopen From Source Call Postopen
  13810. End Sub
  13811. '++LotusScript Development Environment:2:2:Terminate:1:10
  13812. Sub Terminate
  13813.      
  13814. End Sub
  13815. '++LotusScript Development Environment:2:2:Postopen:2:12
  13816. %INCLUDE "pstoarr.lss"
  13817. Sub Postopen(Source As Notesuidocument)
  13818.      
  13819. End Sub
  13820. '++LotusScript Development Environment:2:5:(Options):0:66
  13821. '++LotusScript Development Environment:2:5:(Forward):0:1
  13822. Declare Sub Exiting(Source As Field)
  13823. Declare Sub Terminate
  13824. Declare Sub Entering(Source As Field)
  13825. Declare Sub Initialize
  13826. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13827. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13828. Private Sub BindEvents(Byval Objectname_ As String)
  13829.      Static Source As FIELD
  13830.      Set Source = Bind(Objectname_)
  13831.      On Event Exiting From Source Call Exiting
  13832.      On Event Entering From Source Call Entering
  13833. End Sub
  13834. '++LotusScript Development Environment:2:2:Exiting:1:12
  13835. Sub Exiting(Source As Field)
  13836.      
  13837. End Sub
  13838. '++LotusScript Development Environment:2:2:Terminate:1:10
  13839. Sub Terminate
  13840.      Dim workspace As New notesuiworkspace
  13841.      Dim ThisDoc As notesuidocument
  13842.      
  13843.      Set ThisDoc = workspace.CurrentDocument
  13844.      'TempString$ = ThisDoc.FieldGetText("VendorList")
  13845.      
  13846.      
  13847. End Sub
  13848. '++LotusScript Development Environment:2:2:Entering:1:12
  13849. Sub Entering(Source As Field)
  13850.      
  13851. End Sub
  13852. '++LotusScript Development Environment:2:2:Initialize:1:10
  13853. Sub Initialize
  13854.      
  13855. End Sub
  13856. GraphResults
  13857. ResponsesCosts
  13858. Graph Results:
  13859. O=Lotus Notes
  13860. O=Lotus Notes
  13861. PURSAFO
  13862. |.:#U
  13863. O=Lotus Notes
  13864. CN=Lotus Notes Template Development/O=Lotus Notes
  13865. PURSAFO
  13866. $$VendorList
  13867. $VendorList_O
  13868. $TITLE
  13869. $Info
  13870. $$Script_O
  13871. $$ScriptName
  13872. $$FormScript
  13873. $$$FormScript_O
  13874. $$GraphResults
  13875. $GraphResults_O
  13876. $Body
  13877. '++LotusScript Development Environment:2:5:(Options):0:66
  13878. '++LotusScript Development Environment:2:5:(Forward):0:1
  13879. Declare Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
  13880. '++LotusScript Development Environment:2:5:(Declarations):0:2
  13881. '++LotusScript Development Environment:2:2:BindEvents:1:129
  13882. Private Sub BindEvents(Byval Objectname_ As String)
  13883.      Static Source As NOTESUIDATABASE
  13884.      Set Source = Bind(Objectname_)
  13885.      On Event Querydocumentdelete From Source Call Querydocumentdelete
  13886. End Sub
  13887. '++LotusScript Development Environment:2:2:Querydocumentdelete:1:12
  13888. Sub Querydocumentdelete(Source As Notesuidatabase, Continue As Variant)
  13889.      Dim Workspace As New NotesUIWorkspace
  13890.      Dim Session As New NotesSession
  13891.      Dim CurrentView As NotesView
  13892.      Dim doc As NotesDocument
  13893.      Dim CurrentDB As NotesDatabase
  13894. %END REM
  13895.      
  13896.      Dim DocCollection As NotesDocumentCollection
  13897.      Dim i As Integer
  13898.      Dim DelDoc As NotesDocument
  13899.      Dim vtemp As Variant
  13900.      
  13901.      Set DocCollection = Source.Documents
  13902.      For i = 1 To DocCollection.Count
  13903.           Set DelDoc = DocCollection.GetNthDocument( i )
  13904.           '  need to verify if currently selected document is of the Form Conversion Guidelines
  13905.           vTemp = DelDoc.Form
  13906.           If vTemp( 0 ) = "Conversion Guidelines" Then
  13907.                 '  need to verify correct form type
  13908.                Messagebox "Cannot delete the Conversion Guidelines Document", MB_ICONEXCLAMATION, "Conversion Guidelines"
  13909.                Continue = False
  13910.           End If
  13911.      Next i
  13912.      
  13913.      
  13914.      
  13915.      
  13916.      Set CurrentDB = Session.CurrentDatabase
  13917.      Set CurrentView = CurrentDB.GetView( "(List)" )
  13918.      Set doc = CurrentView.GetFirstDocument
  13919.      If doc Is Nothing Then
  13920.           Messagebox "Cannot Find List of Vendors", MB_ICONEXCLAMATION, "Vendor Data"
  13921.           Exit Sub
  13922.      End If
  13923.      While doc.ListType( 0 ) <> "Database"
  13924.           Set doc = CurrentView.GetNextDocument( doc )
  13925.           If doc Is Nothing Then
  13926.                Messagebox "Cannot Find List of Vendors", MB_ICONEXCLAMATION, "Vendor Data"
  13927.                Exit Sub
  13928.           End If
  13929.      Wend
  13930. %END REM
  13931. End Sub
  13932. O=Lotus Notes
  13933. O=Lotus Notes
  13934. PURSAFO
  13935. |.:#U
  13936. O=Lotus Notes
  13937. CN=Lotus Notes Template Development/O=Lotus Notes
  13938. PURSAFO
  13939. Fde!f^^
  13940. (s%e-
  13941. $DBScript
  13942. $DBScript_O
  13943. $TITLE
  13944. $Flags
  13945. $PublicAccess
  13946. O=Lotus Notes
  13947. O=Lotus Notes
  13948. PURSAFO
  13949. |.:#U
  13950. O=Lotus Notes
  13951. CN=Lotus Notes Template Development/O=Lotus Notes
  13952. PURSAFO
  13953. Fde!f^^
  13954. eit}a
  13955. fUpGvf.
  13956. $TITLE
  13957. $Index
  13958. $Formula
  13959. $FormulaClass
  13960. $ViewFormat
  13961. $Comment
  13962. EC4M768
  13963. Elwood/4CPU/768Mem
  13964. Pentium (P5)/133 x  4 (SMP)
  13965. NT 4.0
  13966. Query on Data
  13967. @06/26/98 02:07:50 PM101101
  13968.  @0IBM2; DANA
  13969. IBM2DANAlocalOUTPUT.NSFOutput to DatabaseUSlow (3.1 - 5 sec)50
  13970. 1213345678910111412100Any Configuration100No
  13971. Y@3000000000
  13972. NoNoNoNoNoNoNoNoNoNoNBCarol Zimmet/IrisCarol Zimmetd
  13973. CN=Carol Zimmet/O=Iris
  13974. ###############
  13975. Query on Data
  13976. CN=Carol Zimmet/O=Iris
  13977. @Carol Zimmet/Iris06/26/98 02:07:50 PM101101
  13978. IBM2IBMPCCCOMPAQRICH2TESTUSlow (3.1 - 5 sec)50
  13979. 1213345678910111412100Any Configuration100No**
  13980. Y@300000000
  13981. NoNoNoNoNoNoNoNoNoNoNBCarol Zimmetd
  13982. localOUTPUT.NSFOutput to Database#########################################
  13983. Query on Data
  13984. @08/02/98 06:40:35 PM11101
  13985. IBM2IBMPCCOutput to DatabaseUMedium (1 - 3 sec)50
  13986. 121334567891011141210Any Configuration50Yes**
  13987. Y@00200010000
  13988. Y@0300
  13989. Demo Tolerance
  13990. NoNBCarol Zimmet/IrisCarol Zimmet
  13991. CN=Carol Zimmet/O=Iris
  13992. ###########
  13993. Query on Data
  13994. @08/02/98 11:45:06 PM41101
  13995. IBM2IBMPCCCAROLlocalOUTPUT.NSFOutput to DatabaseUMedium (1 - 3 sec)50
  13996. 12133456789101114120Any Configuration0Yes**
  13997. Y@100000000
  13998. Estimation
  13999. NoNoYesYes      NBCarol Zimmet/IrisCarol Zimmet
  14000. CN=Carol Zimmet/O=Iris
  14001. ###############################################
  14002. Query on Data
  14003. @08/17/98 11:10:02 AM01101
  14004. IBM2IBMPCCCAROLRENTOutput to DatabaseUSlow (3.1 - 5 sec)50
  14005. 1213345678910111412100Any Configuration100No**
  14006. Y@0000001000
  14007. web walker - should match
  14008.           
  14009. NBCarol Zimmet/IrisCarol Zimmet
  14010. CN=Carol Zimmet/O=Iris
  14011. #########################################################
  14012. Query on Data
  14013. CN=Carol Zimmet/O=Iris
  14014. Carol Zimmet/Iris08/17/98 11:10:02 AM01101
  14015. 0RENTOutput to DatabaseUSlow (3.1 - 5 sec)50
  14016. 1213345678910111412100Any Configuration100No**
  14017. Y@0000000
  14018. mail, cprent
  14019.           NBCarol Zimmet
  14020. ####################################################
  14021. ##########################################################
  14022. ##########################################################
  14023. ##########################################################
  14024. ##########################################################
  14025. ##########################################################
  14026. ##########################################################
  14027. ##########################################################
  14028. ##########################################################
  14029. ##########################################################
  14030. PCS704-200MHZ1P6-512MB
  14031. Pentium Pro (P6)/200 x  1
  14032. NT 4.0
  14033. PCS325-233MHZ1P6-384MB
  14034. Pentium II/233 x  1
  14035. NT 4.0
  14036. NF3500-233MHZ1P6-320MB
  14037. Pentium II/233 x  1
  14038. NT 4.0
  14039. IBMPCC
  14040. PCS704-200MHZ1P6-512MB
  14041. Pentium Pro (P6)/200 x  1
  14042. NT 4.0
  14043. IBMPCC
  14044. PCS325-233MHZ1P6-384MB
  14045. Pentium II/233 x  1
  14046. NT 4.0
  14047. IBMPCC
  14048. NF3500-233MHZ1P6-320MB
  14049. Pentium II/233 x  1
  14050. NT 4.0
  14051. IBMPCC
  14052. PCS330-300MHZ1PII-512MB
  14053. Pentium II (PII)/300 x  1
  14054. NT 4.0
  14055. COMPAQ
  14056. CMPQPL800-200MHZ1P6-512MB
  14057. Pentium Pro (P6)/200 x  1
  14058. NT 4.0
  14059. RICH2
  14060. PCS704-200MHZ1P6-512MB
  14061. Pentium Pro (P6)/200 x  1
  14062. NT 4.0
  14063. PCS704-200MHZ1P6-512MB
  14064. Pentium Pro (P6)/200 x  1
  14065. NT 4.0
  14066. LayoutServerTasks
  14067.     4S5S
  14068. PCS704-200MHZ1P6-512MB
  14069. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14070. LayoutServerTasks
  14071.     4S5S
  14072. PCS325-233MHZ1P6-384MB
  14073. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14074. LayoutServerTasks
  14075.     4S5S
  14076. NF3500-233MHZ1P6-320MB
  14077. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  14078. LayoutServerTasks
  14079.     4S5S
  14080. PCS704-200MHZ1P6-512MB
  14081. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14082. LayoutServerTasks
  14083.     4S5S
  14084. PCS325-233MHZ1P6-384MB
  14085. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14086. LayoutServerTasks
  14087.     4S5S
  14088. NF3500-233MHZ1P6-320MB
  14089. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  14090. LayoutServerTasks
  14091.     4S5S
  14092. PCS330-300MHZ1PII-512MB
  14093. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  14094. LayoutServerTasks
  14095.     4S5S
  14096. CMPQPL800-200MHZ1P6-512MB
  14097. Compaq ProLiant 800 with 1 CPU (P6/200MHz) and 512MB RAM
  14098. LayoutServerTasks
  14099.     4S5S
  14100. PCS704-200MHZ1P6-512MB
  14101. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14102. LayoutServerTasks
  14103.     4S5S
  14104. PCS704-200MHZ1P6-512MB
  14105. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14106. $UpdatedBy$ACLDigest$Signature$Name$DesignVersion$Version$Formula$FormulaClass$Collation$Info$Flags$Fonts$Body$FlagsNoRefresh$DefaultNavigatorIconBitmap$TITLE$Index$ViewFormat$Comment$ViewGlobalScript_O$ViewScript$ViewScript_O$$Script_O$$ScriptName$$FormScript$$$FormScript_O$$VendorList$VendorList_OVendorList$ReplVersion$ReplSrcServers$ReplClassMasks$ReplFormula$ReplView$ReplPrivateFolder$ReplFieldsLayoutNumberofUsers_1LayoutNumberofUsers$FILEtestfieldabcvendorcount$$ACTSRC_13$SCRIPTOBJ_13$$ACTSRC_11$$ACTSRC_10$$LayoutTolerance_1$LayoutTolerance_1_O$WindowTitle$Script$$queryid$queryid_O$$GraphResults$GraphResults_O$$LayoutServerTasks$LayoutServerTasks_O$$LayoutUserResponseTime$LayoutUserResponseTime_O$$LayoutPercentRange$LayoutPercentRange_O$$LayoutOSPlatform$LayoutOSPlatform_O$$LayoutTolerance$LayoutTolerance_O$$LayoutDiskConfiguration$LayoutDiskConfiguration_O$$LayoutTolerance_Response$LayoutTolerance_Response_O$$LayoutMessagesHour$LayoutMessagesHour_O$$LayoutMBMessagesHour$LayoutMBMessagesHour_O$$LayoutMailHub$LayoutMailHub_O$$LayoutReplHour$LayoutReplHour_O$$LayoutMBReplHour$LayoutMBReplHour_O$$LayoutReplHub$LayoutReplHub_O$$LayoutMail$LayoutMail_O$$LayoutMailDB$LayoutMailDB_O$$LayoutGroupware$LayoutGroupware_O$$LayoutCS$LayoutCS_O$$LayoutDatabase$LayoutDatabase_O$$LayoutWW$LayoutWW_O$$LayoutWB$LayoutWB_O$$LayoutR5MDB$LayoutR5MDB_O$$LayoutMail_1$LayoutMail_1_O$$LayoutMailDB_1$LayoutMailDB_1_O$$LayoutGroupware_1$LayoutGroupware_1_O$$LayoutNumActiveUsers$LayoutNumActiveUsers_O$$LayoutMail_2$LayoutMail_2_O$$LayoutMail_3$LayoutMail_3_O$$LayoutMailDB_2$LayoutMailDB_2_O$$LayoutMailDB_3$LayoutMailDB_3_O$$LayoutGroupware_2$LayoutGroupware_2_O$$LayoutGroupware_3$LayoutGroupware_3_O$$LayoutDatabase_1$LayoutDatabase_1_O$$LayoutDatabase_2$LayoutDatabase_2_O$$LayoutDatabase_3$LayoutDatabase_3_O$$LayoutCS_1$LayoutCS_1_O$$LayoutCS_2$LayoutCS_2_O$$LayoutCS_3$LayoutCS_3_O$$LayoutWW_1$LayoutWW_1_O$$LayoutWW_2$LayoutWW_2_O$$LayoutWW_3$LayoutWW_3_O$$LayoutWB_1$LayoutWB_1_O$$LayoutWB_2$LayoutWB_2_O$$LayoutWB_3$LayoutWB_3_O$$LayoutTotalProfile_1$LayoutTotalProfile_1_O$$LayoutTotalProfile_2$LayoutTotalProfile_2_O$$LayoutTotalProfile_3$LayoutTotalProfile_3_O$$LayoutR5MDB_1$LayoutR5MDB_1_O$$LayoutR5MDB_2$LayoutR5MDB_2_O$$LayoutR5MDB_3$LayoutR5MDB_3_O$$LayoutSummary$LayoutSummary_O$$OtherDesc1$OtherDesc1_OqueryidauthormodifiednumresultsSaveOptionsQueryAlreadyExistsFormNewLocationCertifyCheckOnUniqueCountMailFlagsVendorListGraphResultsOutputServerOutputFilenameOutputSaveResultsLayoutServerTasksLayoutUserResponseTimeLayoutPercentRangeLayoutOSPlatformLayoutToleranceLayoutDiskConfigurationLayoutTolerance_ResponseEstimatedChoicesPerGrowthProjLayoutMessagesHourLayoutMBMessagesHourLayoutMailHubLayoutReplHourLayoutMBReplHourLayoutReplHubLayoutMailLayoutMailDBLayoutGroupwareLayoutCSLayoutDatabaseLayoutWWLayoutWBLayoutR5MDBLayoutMail_1LayoutMailDB_1LayoutGroupware_1LayoutNumActiveUsersLayoutMail_2LayoutMail_3LayoutMailDB_2LayoutMailDB_3LayoutGroupware_2LayoutGroupware_3LayoutDatabase_1LayoutDatabase_2LayoutDatabase_3LayoutCS_1LayoutCS_2LayoutCS_3LayoutWW_1LayoutWW_2LayoutWW_3LayoutWB_1LayoutWB_2LayoutWB_3LayoutTotalProfile_1LayoutTotalProfile_2LayoutTotalProfile_3LayoutR5MDB_1LayoutR5MDB_2LayoutR5MDB_3LayoutSummaryOtherDesc1OtherAmt1OtherDesc2OtherDesc3OtherAmt2OtherAmt3OutResults1_2OutResults1OutResults1_6OutResults1_3OutResults1_4E1OutResults2_2OutResults2OutResults2_6OutResults2_3OutResults2_4E2OutResults3_2OutResults3OutResults3_6OutResults3_3OutResults3_4E3OutResults4_2OutResults4OutResults4_6OutResults4_3OutResults4_4E4OutResults5_2OutResults5OutResults5_6OutResults5_3OutResults5_4E5OutResults6_2OutResults6OutResults6_6OutResults6_3OutResults6_4E6OutResults7_2OutResults7OutResults7_6OutResults7_3OutResults7_4E7OutResults8_2OutResults8OutResults8_6OutResults8_3OutResults8_4E8OutResults9_2OutResults9OutResults9_6OutResults9_3OutResults9_4E9OutResults10_2OutResults10OutResults10_6OutResults10_3OutResults10_4E10OutResults1_5OutResults1_1OutResults2_5OutResults2_1OutResults3_5OutResults3_1OutResults4_5OutResults4_1OutResults5_5OutResults5_1OutResults6_5OutResults6_1OutResults7_5OutResults7_1OutResults8_5OutResults8_1OutResults9_5OutResults9_1OutResults10_5OutResults10_1OutSummaryLayoutResponseChartLayoutCostChartvendor_1machid_1reason_1vendor_2machid_2reason_2vendor_3machid_3reason_3vendor_4machid_4reason_4vendor_5machid_5reason_5vendor_6machid_6reason_6vendor_7machid_7reason_7vendor_8machid_8reason_8vendor_9machid_9reason_9vendor_10machid_10reason_10vendor_11machid_11reason_11vendor_12machid_12reason_12vendor_13machid_13reason_13vendor_14machid_14reason_14vendor_15machid_15reason_15vendor_16machid_16reason_16vendor_17machid_17reason_17vendor_18machid_18reason_18vendor_19machid_19reason_19vendor_20machid_20reason_20vendor_21machid_21reason_21vendor_22machid_22reason_22vendor_23machid_23reason_23vendor_24machid_24reason_24vendor_25machid_25reason_25PerGrowthProj_1gvendor_1gmachid_1greason_1greasong_1gvendor_2gmachid_2greason_2greasong_2gvendor_3gmachid_3greason_3greasong_3gvendor_4gmachid_4greason_4greasong_4gvendor_5gmachid_5greason_5greasong_5gvendor_6gmachid_6greason_6greasong_6gvendor_7gmachid_7greason_7greasong_7gvendor_8gmachid_8greason_8greasong_8gvendor_9gmachid_9greason_9greasong_9gvendor_10gmachid_10greason_10greasong_10gvendor_11gmachid_11greason_11greasong_11gvendor_12gmachid_12greason_12greasong_12gvendor_13gmachid_13greason_13greasong_13gvendor_14gmachid_14greason_14greasong_14gvendor_15gmachid_15greason_15greasong_15gvendor_16gmachid_16greason_16greasong_16gvendor_17gmachid_17greason_17greasong_17gvendor_18gmachid_18greason_18greasong_18gvendor_19gmachid_19greason_19greasong_19gvendor_20gmachid_20greason_20greasong_20gvendor_21gmachid_21greason_21greasong_21gvendor_22gmachid_22greason_22greasong_22gvendor_23gmachid_23greason_23greasong_23gvendor_24gmachid_24greason_24greasong_24gvendor_25gmachid_25greason_25greasong_25SendToCopyToBlindCopyToSubjectDeliveryPriorityDeliveryReportReturnReceiptLayoutAuthorOutCreationDateLayoutDateOutCommentsLayoutResponseSheetLayoutCostSheet$Fields$$ACTSRC_9$ACTIONS$SCRIPTOBJ_6$SCRIPTOBJ_7$SCRIPTOBJ_8$SCRIPTOBJ_9$SCRIPTOBJ_10$ViewMapDataset$ViewMapLayout$NavImagemapListTypeList$$Adjust_ReplHub$Adjust_ReplHub_O$$Adjust_MailHub$Adjust_MailHub_O$$Adjust_Mail$Adjust_Mail_O$$Adjust_Database$Adjust_Database_O$$Adjust_MailDB$Adjust_MailDB_O$$Adjust_Groupware$Adjust_Groupware_O$$Adjust_CS$Adjust_CS_O$$Adjust_WW$Adjust_WW_O$$Adjust_WB$Adjust_WB_O$$Adjust_R5MDB$Adjust_R5MDB_OProfileAdjust_ReplHubAdjust_MailHubAdjust_MailAdjust_DatabaseAdjust_MailDBAdjust_GroupwareAdjust_CSAdjust_WWAdjust_WBAdjust_R5MDB$ClassForm$Revisions$DBScript$DBScript_O$PublicAccessHelpOutputResponseChartOutputResponseSheetOutputCostChartOutputCostSheetgreasong__1greasong__2greasong__3greasong__4greasong__5greasong__6greasong__7greasong__8greasong__9greasong__10greasong__11greasong__12greasong__13greasong__14greasong__15greasong__16greasong__17greasong__18greasong__19greasong__20greasong__21greasong__22greasong__23greasong__24greasong__25
  14107. IBMPCC
  14108. PCS330-300MHZ1PII-512MB
  14109. Pentium II (PII)/300 x  1
  14110. NT 4.0
  14111. CAROL
  14112. PCS330-300MHZ1PII-512MB
  14113. Pentium II (PII)/300 x  1
  14114. NT 4.0
  14115. CAROL
  14116. NF3500-233MHZ1P6-320MB
  14117. Pentium II/233 x  1
  14118. NT 4.0
  14119. CAROL
  14120. NF7000-200MHZ2P6-1280MB
  14121. Pentium Pro (P6)/200 x  2 (SMP)
  14122. NT 4.0
  14123. LayoutServerTasks
  14124.     4S5S
  14125. PCS330-300MHZ1PII-512MB
  14126. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  14127. LayoutServerTasks
  14128.     4S5S
  14129. PCS330-300MHZ1PII-512MB
  14130. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  14131. LayoutServerTasks
  14132.     4S5S
  14133. NF3500-233MHZ1P6-320MB
  14134. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  14135. LayoutServerTasks
  14136.     4S5S
  14137. NF7000-200MHZ2P6-1280MB
  14138. Netfinity 7000 with 2 CPUs (200 MHZ Pentium Pro), 1280 MB RAM, and 10 Hard Drives (4.5 GB) in a RAID5 array.
  14139. LayoutServerTasks
  14140.     4S5S
  14141. LayoutServerTasks
  14142.     4S5S
  14143. LayoutServerTasks
  14144.     4S5S
  14145. LayoutServerTasks
  14146.     4S5S
  14147. LayoutServerTasks
  14148.     4S5S
  14149. LayoutServerTasks
  14150.     4S5S
  14151. LayoutServerTasks
  14152.     4S5S
  14153. LayoutServerTasks
  14154.     4S5S
  14155. LayoutServerTasks
  14156.     4S5S
  14157. LayoutServerTasks
  14158.     4S5S
  14159. LayoutServerTasks
  14160.     4S5S
  14161. LayoutServerTasks
  14162.     4S5S
  14163. LayoutServerTasks
  14164.     4S5S
  14165. LayoutServerTasks
  14166.     4S5S
  14167. LayoutServerTasks
  14168.     4S5S
  14169. LayoutServerTasks
  14170.     4S5S
  14171. PCS704-200MHZ1P6-512MB
  14172. NotesBench workload not generated for this machine:  Web Buyer
  14173. PCS325-233MHZ1P6-384MB
  14174. NotesBench workload not generated for this machine:  Web Buyer
  14175. NF3500-233MHZ1P6-320MB
  14176. NotesBench workload not generated for this machine:  Web Buyer
  14177. IBMPCC
  14178. PCS704-200MHZ1P6-512MB
  14179. NotesBench workload not generated for this machine:  Web Buyer
  14180. IBMPCC
  14181. PCS325-233MHZ1P6-384MB
  14182. NotesBench workload not generated for this machine:  Web Buyer
  14183. IBMPCC
  14184. NF3500-233MHZ1P6-320MB
  14185. NotesBench workload not generated for this machine:  Web Buyer
  14186. IBMPCC
  14187. PCS330-300MHZ1PII-512MB
  14188. NotesBench workload not generated for this machine:  Web Buyer
  14189. IBMPCC
  14190. NF7000-200MHZ2P6-1280MB
  14191. NotesBench workload not generated for this machine:  Web Buyer
  14192. CAROL
  14193. PCS704-200MHZ1P6-512MB
  14194. NotesBench workload not generated for this machine:  Web Buyer
  14195. CAROL
  14196. PCS325-233MHZ1P6-384MB
  14197. NotesBench workload not generated for this machine:  Web Buyer
  14198. CAROL
  14199. NF3500-233MHZ1P6-320MB
  14200. NotesBench workload not generated for this machine:  Web Buyer
  14201. CAROL
  14202. PCS330-300MHZ1PII-512MB
  14203. NotesBench workload not generated for this machine:  Web Buyer
  14204. CAROL
  14205. NF7000-200MHZ2P6-1280MB
  14206. NotesBench workload not generated for this machine:  Web Buyer
  14207. CAROL
  14208. CMPQPL5000-200MHZ1P6-512MB
  14209. NotesBench workload not generated for this machine:  Web Buyer
  14210. CAROL
  14211. CMPQS200PII-233MHZ1P6-384MB
  14212. NotesBench workload not generated for this machine:  Web Buyer
  14213. Rent4CPU1GB
  14214. NotesBench workload not generated for this machine:  Web Buyer
  14215. Rent4CPU1GBnb4.61prod
  14216. NotesBench workload not generated for this machine:  Web Buyer
  14217. Rent4CPU1GBWebwkrGW_BMR
  14218. NotesBench workload not generated for this machine:  Web Buyer
  14219. Rent2CPU512MBGW_BNB4.61Prod
  14220. NotesBench workload not generated for this machine:  Web Buyer
  14221. Rent2CPU512MBGW_BNB4.61c
  14222. NotesBench workload not generated for this machine:  Web Buyer
  14223. Rent2CPU512MBWebMailMR101ChildNB4.61c
  14224. NotesBench workload not generated for this machine:  Web Buyer
  14225. LayoutServerTasks
  14226.     4S5S
  14227. LayoutServerTasks
  14228.     4S5S
  14229. LayoutServerTasks
  14230.     4S5S
  14231. LayoutServerTasks
  14232.     4S5S
  14233. LayoutServerTasks
  14234.     4S5S
  14235. LayoutServerTasks
  14236.     4S5S
  14237. LayoutServerTasks
  14238.     4S5S
  14239. LayoutServerTasks
  14240.     4S5S
  14241. LayoutServerTasks
  14242.     4S5S
  14243. LayoutServerTasks
  14244.     4S5S
  14245. Query on Data
  14246. 08/19/98 11:48:30 AM01101
  14247. IBM2IBMPCCCAROLRENTOutput to Database
  14248. MUSlow (3.1 - 5 sec)50
  14249. 1213345678910111412100Any Configuration100Yes**
  14250. Y@100000000
  14251. mail&mail
  14252.           NBCarol Zimmet/IrisCarol Zimmet
  14253. CN=Carol Zimmet/O=Iris
  14254. Query on Data
  14255. 08/20/98 11:03:01 AM01101
  14256. IBM2IBMPCCCAROLRENTOutput to DatabaseUSlow (3.1 - 5 sec)50
  14257. 121334567891011141210Any Configuration100Yes**
  14258. Y@00000000
  14259. 01500
  14260. clement's first query
  14261.           
  14262. NBCarol Zimmet/IrisCarol Zimmet
  14263. CN=Carol Zimmet/O=Iris
  14264. ####################
  14265. Query on Data
  14266. @08/17/98 11:10:02 AM01101
  14267. IBM2IBMPCCCAROLRENTOutput to DatabaseUSlow (3.1 - 5 sec)50
  14268. 1213345678910111412100Any Configuration100No**
  14269. Y@0000003000
  14270. web buyer 2 not found
  14271.           
  14272. NBCarol Zimmet/IrisCarol Zimmet
  14273. CN=Carol Zimmet/O=Iris
  14274. ###############################################
  14275. Query on Data
  14276. CN=Carol Zimmet/O=Iris
  14277. @Carol Zimmet/Iris08/20/98 11:03:01 AM91101
  14278. IBM2IBMPCCCAROLRENTOutput to DatabaseUSlow (3.1 - 5 sec)50
  14279. 1213345678910111412100Any Configuration100Yes**
  14280. Y@102036008004000
  14281. 01500
  14282. clement's first query 222
  14283. NoNoNoNoNoNoNoNoNo 
  14284. NBCarol Zimmet
  14285. ###############################################
  14286. -;+~V
  14287. Query on Data
  14288. @09/10/98 11:44:43 AM01101
  14289. IBM2IBMPCCCAROLRENTOutput to DatabaseUSlow (3.1 - 5 sec)50
  14290. 121334567891011141210Any Configuration100Yes**
  14291. Y@00100000000
  14292. Y@01000
  14293. groupware 1000 users -not in range
  14294.           
  14295. NBCarol Zimmet/IrisCarol Zimmet+~V
  14296. CN=Carol Zimmet/O=Iris
  14297. ##############################################
  14298. ##########################################################
  14299. ##########################################################
  14300. ##########################################################
  14301. ##########################################################
  14302. ##########################################################
  14303. ##########################################################
  14304. ##########################################################
  14305. LayoutServerTasks
  14306.     4S5S
  14307. LayoutServerTasks
  14308.     4S5S
  14309. LayoutServerTasks
  14310.     4S5S
  14311. LayoutServerTasks
  14312.     4S5S
  14313. LayoutServerTasks
  14314.     4S5S
  14315. LayoutServerTasks
  14316.     4S5S
  14317. LayoutServerTasks
  14318.     4S5S
  14319. LayoutServerTasks
  14320.     4S5S
  14321. LayoutServerTasks
  14322.     4S5S
  14323. LayoutServerTasks
  14324.     4S5S
  14325. LayoutServerTasks
  14326.     4S5S
  14327. LayoutServerTasks
  14328.     4S5S
  14329. LayoutServerTasks
  14330.     4S5S
  14331. LayoutServerTasks
  14332.     4S5S
  14333. LayoutServerTasks
  14334.     4S5S
  14335. LayoutServerTasks
  14336.     4S5S
  14337. LayoutServerTasks
  14338.     4S5S
  14339. LayoutServerTasks
  14340.     4S5S
  14341. LayoutServerTasks
  14342.     4S5S
  14343. LayoutServerTasks
  14344.     4S5S
  14345. LayoutServerTasks
  14346.     4S5S
  14347. LayoutServerTasks
  14348.     4S5S
  14349. LayoutServerTasks
  14350.     4S5S
  14351. LayoutServerTasks
  14352.     4S5S
  14353. LayoutServerTasks
  14354.     4S5S
  14355. LayoutServerTasks
  14356.     4S5S
  14357. LayoutServerTasks
  14358.     4S5S
  14359. LayoutServerTasks
  14360.     4S5S
  14361. LayoutServerTasks
  14362.     4S5S
  14363. LayoutServerTasks
  14364.     4S5S
  14365. PCS704-200MHZ1P6-512MB
  14366. Pentium Pro (P6)/200 x  1
  14367. NT 4.0
  14368. PCS325-233MHZ1P6-384MB
  14369. Pentium II/233 x  1
  14370. NT 4.0
  14371. NF3500-233MHZ1P6-320MB
  14372. Pentium II/233 x  1
  14373. NT 4.0
  14374. IBMPCC
  14375. PCS704-200MHZ1P6-512MB
  14376. Pentium Pro (P6)/200 x  1
  14377. NT 4.0
  14378. IBMPCC
  14379. PCS325-233MHZ1P6-384MB
  14380. Pentium II/233 x  1
  14381. NT 4.0
  14382. IBMPCC
  14383. NF3500-233MHZ1P6-320MB
  14384. Pentium II/233 x  1
  14385. NT 4.0
  14386. CAROL
  14387. PCS704-200MHZ1P6-512MB
  14388. Pentium Pro (P6)/200 x  1
  14389. NT 4.0
  14390. CAROL
  14391. PCS325-233MHZ1P6-384MB
  14392. Pentium II/233 x  1
  14393. NT 4.0
  14394. CAROL
  14395. NF3500-233MHZ1P6-320MB
  14396. Pentium II/233 x  1
  14397. NT 4.0
  14398. LayoutServerTasks
  14399.     4S5S
  14400. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14401. LayoutServerTasks
  14402.     4S5S
  14403. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14404. LayoutServerTasks
  14405.     4S5S
  14406. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  14407. LayoutServerTasks
  14408.     4S5S
  14409. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14410. LayoutServerTasks
  14411.     4S5S
  14412. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14413. LayoutServerTasks
  14414.     4S5S
  14415. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  14416. LayoutServerTasks
  14417.     4S5S
  14418. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14419. LayoutServerTasks
  14420.     4S5S
  14421. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14422. LayoutServerTasks
  14423.     4S5S
  14424. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  14425. LayoutServerTasks
  14426.     4S5S
  14427. LayoutServerTasks
  14428.     4S5S
  14429. LayoutServerTasks
  14430.     4S5S
  14431. LayoutServerTasks
  14432.     4S5S
  14433. LayoutServerTasks
  14434.     4S5S
  14435. LayoutServerTasks
  14436.     4S5S
  14437. LayoutServerTasks
  14438.     4S5S
  14439. LayoutServerTasks
  14440.     4S5S
  14441. LayoutServerTasks
  14442.     4S5S
  14443. LayoutServerTasks
  14444.     4S5S
  14445. LayoutServerTasks
  14446.     4S5S
  14447. PCS704-200MHZ1P6-512MB
  14448. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14449. PCS325-233MHZ1P6-384MB
  14450. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14451. NF3500-233MHZ1P6-320MB
  14452. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14453. IBMPCC
  14454. PCS704-200MHZ1P6-512MB
  14455. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14456. IBMPCC
  14457. PCS325-233MHZ1P6-384MB
  14458. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14459. IBMPCC
  14460. NF3500-233MHZ1P6-320MB
  14461. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14462. IBMPCC
  14463. PCS330-300MHZ1PII-512MB
  14464. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14465. IBMPCC
  14466. NF7000-200MHZ2P6-1280MB
  14467. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14468. CAROL
  14469. PCS704-200MHZ1P6-512MB
  14470. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14471. CAROL
  14472. PCS325-233MHZ1P6-384MB
  14473. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14474. CAROL
  14475. NF3500-233MHZ1P6-320MB
  14476. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14477. CAROL
  14478. PCS330-300MHZ1PII-512MB
  14479. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14480. CAROL
  14481. NF7000-200MHZ2P6-1280MB
  14482. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14483. CAROL
  14484. CMPQPL5000-200MHZ1P6-512MB
  14485. NotesBench workload not generated for this machinea:  Groupware #1
  14486. CAROL
  14487. CMPQS200PII-233MHZ1P6-384MB
  14488. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14489. Rent4CPU1GB
  14490. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14491. Rent4CPU1GBnb4.61prod
  14492. NotesBench workload not generated for this machinea:  Groupware #1
  14493. Rent4CPU1GBWebwkrGW_BMR
  14494. NotesBench workload not generated for this machinea:  Groupware #1
  14495. Rent2CPU512MBGW_BNB4.61Prod
  14496. NotesBench workload results not in range for individual results comparison:  Groupware #1
  14497. Rent2CPU512MBGW_BNB4.61c
  14498. NotesBench workload not generated for this machinea:  Groupware #1
  14499. Rent2CPU512MBWebMailMR101ChildNB4.61c
  14500. NotesBench workload not generated for this machinea:  Groupware #1
  14501. {RapP
  14502. Query on Data
  14503. CN=Carol Zimmet/O=Iris
  14504. @Carol Zimmet/Iris08/19/98 11:48:30 AM101101
  14505. IBM2IBMPCCCAROLOutput to DatabaseUFast ( < 1 sec)90
  14506. 121334567891011141210Any Configuration10Yes**
  14507. Y@1000000000
  14508. mail&mail ran out of room - missing error messages
  14509. NoNoNoNoNoNoNoNoNoNo
  14510. NBCarol Zimmet
  14511. ##########################################################
  14512. Query on Data
  14513. CN=Carol Zimmet/O=Iris
  14514. @Carol Zimmet/Iris08/20/98 11:03:01 AM01101
  14515. 0CAROLOutput to DatabaseUSlow (3.1 - 5 sec)50
  14516. 121334567891011141210Any Configuration100Yes**
  14517. Y@8703401508000600
  14518. 01500
  14519. clement's first query, database carol, c&s not in range
  14520.           
  14521. NBCarol Zimmet
  14522. ####################################################
  14523. Query on Data
  14524. CN=Carol Zimmet/O=Iris
  14525. @Carol Zimmet/Iris08/20/98 11:03:01 AM41101
  14526. IBM2IBMPCCOutput to DatabaseUMedium (1 - 3 sec)95
  14527. 121334567891011141250Any Configuration100Yes**
  14528. Y@930360908004000
  14529. 01500
  14530. clement's first query 222 330 web walker has a problem with reason code
  14531. NoNoNoNo      
  14532. NBCarol Zimmet
  14533. ####################################################
  14534. Query on Data
  14535. @09/23/98 03:48:34 PM01101
  14536. 0IBM2Output to DatabaseUSlow (3.1 - 5 sec)50
  14537. 1213345678910111412100Any Configuration100Yes**
  14538. Y@00000000
  14539. testing growth
  14540.           
  14541. 4@NBCarol Zimmet/IrisCarol Zimmet\
  14542. CN=Carol Zimmet/O=Iris
  14543. ############################
  14544. ##########################################################
  14545. ##########################################################
  14546. ##########################################################
  14547. ##########################################################
  14548. ##########################################################
  14549. ##########################################################
  14550. ##########################################################
  14551. ##########################################################
  14552. ##########################################################
  14553. ##########################################################
  14554. ##########################################################
  14555. ##########################################################
  14556. ##########################################################
  14557. ##########################################################
  14558. ##########################################################
  14559. ##########################################################
  14560. ##########################################################
  14561. ##########################################################
  14562. ##########################################################
  14563. ##########################################################
  14564. ##########################################################
  14565. ##########################################################
  14566. ##########################################################
  14567. ##########################################################
  14568. ##########################################################
  14569. ##########################################################
  14570. ##########################################################
  14571. ##########################################################
  14572. ##########################################################
  14573. ##########################################################
  14574. ##########################################################
  14575. ##########################################################
  14576. ##########################################################
  14577. ##########################################################
  14578. ##########################################################
  14579. ##########################################################
  14580. ##########################################################
  14581. ##########################################################
  14582. ##########################################################
  14583. ##########################################################
  14584. ##########################################################
  14585. ##########################################################
  14586. ##########################################################
  14587. ##########################################################
  14588. ##########################################################
  14589. ##########################################################
  14590. ##########################################################
  14591. ##########################################################
  14592. ##########################################################
  14593. ##########################################################
  14594. ##########################################################
  14595. ##########################################################
  14596. ##########################################################
  14597. PCS704-200MHZ1P6-512MB
  14598. Pentium Pro (P6)/200 x  1
  14599. NT 4.0
  14600. PCS325-233MHZ1P6-384MB
  14601. Pentium II/233 x  1
  14602. NT 4.0
  14603. NF3500-233MHZ1P6-320MB
  14604. Pentium II/233 x  1
  14605. NT 4.0
  14606. IBMPCC
  14607. PCS704-200MHZ1P6-512MB
  14608. Pentium Pro (P6)/200 x  1
  14609. NT 4.0
  14610. IBMPCC
  14611. PCS325-233MHZ1P6-384MB
  14612. Pentium II/233 x  1
  14613. NT 4.0
  14614. IBMPCC
  14615. NF3500-233MHZ1P6-320MB
  14616. Pentium II/233 x  1
  14617. NT 4.0
  14618. IBMPCC
  14619. PCS330-300MHZ1PII-512MB
  14620. Pentium II (PII)/300 x  1
  14621. NT 4.0
  14622. IBMPCC
  14623. NF7000-200MHZ2P6-1280MB
  14624. Pentium Pro (P6)/200 x  2 (SMP)
  14625. NT 4.0
  14626. CAROL
  14627. PCS704-200MHZ1P6-512MB
  14628. Pentium Pro (P6)/200 x  1
  14629. NT 4.0
  14630. CAROL
  14631. PCS325-233MHZ1P6-384MB
  14632. Pentium II/233 x  1
  14633. NT 4.0
  14634. LayoutServerTasks
  14635.     4S5S
  14636. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14637. LayoutServerTasks
  14638.     4S5S
  14639. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14640. LayoutServerTasks
  14641.     4S5S
  14642. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  14643. LayoutServerTasks
  14644.     4S5S
  14645. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14646. LayoutServerTasks
  14647.     4S5S
  14648. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14649. LayoutServerTasks
  14650.     4S5S
  14651. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  14652. LayoutServerTasks
  14653.     4S5S
  14654. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  14655. LayoutServerTasks
  14656.     4S5S
  14657. Netfinity 7000 with 2 CPUs (200 MHZ Pentium Pro), 1280 MB RAM, and 10 Hard Drives (4.5 GB) in a RAID5 array.
  14658. LayoutServerTasks
  14659.     4S5S
  14660. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14661. LayoutServerTasks
  14662.     4S5S
  14663. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14664. LayoutServerTasks
  14665.     4S5S
  14666. LayoutServerTasks
  14667.     4S5S
  14668. LayoutServerTasks
  14669.     4S5S
  14670. LayoutServerTasks
  14671.     4S5S
  14672. LayoutServerTasks
  14673.     4S5S
  14674. LayoutServerTasks
  14675.     4S5S
  14676. LayoutServerTasks
  14677.     4S5S
  14678. LayoutServerTasks
  14679.     4S5S
  14680. LayoutServerTasks
  14681.     4S5S
  14682. LayoutServerTasks
  14683.     4S5S
  14684. PCS704-200MHZ1P6-512MB
  14685. Pentium Pro (P6)/200 x  1
  14686. NT 4.0
  14687. PCS325-233MHZ1P6-384MB
  14688. Pentium II/233 x  1
  14689. NT 4.0
  14690. IBMPCC
  14691. PCS704-200MHZ1P6-512MB
  14692. Pentium Pro (P6)/200 x  1
  14693. NT 4.0
  14694. IBMPCC
  14695. PCS325-233MHZ1P6-384MB
  14696. Pentium II/233 x  1
  14697. NT 4.0
  14698. LayoutServerTasks
  14699.     4S5S
  14700. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14701. LayoutServerTasks
  14702.     4S5S
  14703. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14704. LayoutServerTasks
  14705.     4S5S
  14706. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14707. LayoutServerTasks
  14708.     4S5S
  14709. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14710. LayoutServerTasks
  14711.     4S5S
  14712. LayoutServerTasks
  14713.     4S5S
  14714. LayoutServerTasks
  14715.     4S5S
  14716. LayoutServerTasks
  14717.     4S5S
  14718. LayoutServerTasks
  14719.     4S5S
  14720. LayoutServerTasks
  14721.     4S5S
  14722. LayoutServerTasks
  14723.     4S5S
  14724. LayoutServerTasks
  14725.     4S5S
  14726. LayoutServerTasks
  14727.     4S5S
  14728. LayoutServerTasks
  14729.     4S5S
  14730. LayoutServerTasks
  14731.     4S5S
  14732. LayoutServerTasks
  14733.     4S5S
  14734. LayoutServerTasks
  14735.     4S5S
  14736. LayoutServerTasks
  14737.     4S5S
  14738. LayoutServerTasks
  14739.     4S5S
  14740. LayoutServerTasks
  14741.     4S5S
  14742. PCS704-200MHZ1P6-512MB
  14743. NotesBench workload results not in range for individual results comparison:  Mail
  14744. PCS325-233MHZ1P6-384MB
  14745. NotesBench workload not generated for this machine:  Mail
  14746. NF3500-233MHZ1P6-320MB
  14747. NotesBench workload not generated for this machine:  Mail
  14748. Query on Data
  14749. @10/07/98 04:13:51 PM31101
  14750. IBM2IBMPCCCAROLOutput to DatabaseUFast ( < 1 sec)95
  14751. 12133456789101114120Any Configuration0No
  14752. Y@00010000
  14753. dana user count = 1
  14754. NoNoNo       
  14755. 4@NBCarol Zimmet/IrisCarol Zimmet
  14756. CN=Carol Zimmet/O=Iris
  14757. #####################################################
  14758. Query on Data
  14759. @10/07/98 04:13:51 PM11101
  14760. IBM2IBMPCCDANAlocalOUTPUT.NSFOutput to DatabaseUFast ( < 1 sec)95
  14761. 12133456789101114120Any Configuration0No
  14762. Y@0001000000
  14763. dana user count = 1, overwrites results
  14764. No         
  14765. 4@NBCarol Zimmet/IrisCarol Zimmet
  14766. CN=Carol Zimmet/O=Iris
  14767. ##########################################################
  14768. Query on Data
  14769. @10/20/98 04:46:52 PM101101
  14770. IBM2IBMPCCDANAlocalOUTPUT.NSFOutput to DatabaseUSlow (3.1 - 5 sec)50
  14771. 1213345678910111412100Any Configuration100Yes
  14772. Y@0030000000
  14773. Y@0300
  14774. NoNoNoNoNoNoNoNoNoNBCarol Zimmet/IrisCarol Zimmet
  14775. CN=Carol Zimmet/O=Iris
  14776. ##################################################
  14777. Query on Data
  14778. @10/27/98 02:35:25 PM101101
  14779. 0IBM2IBM2Output to DatabaseUSlow (3.1 - 5 sec)50
  14780. 1213345678910111412100Any Configuration100Yes
  14781. Y@0005000000
  14782. rich's user count=500 cannot locate field c&s
  14783. NoNoNo       NBCarol Zimmet/IrisCarol Zimmet    
  14784. CN=Carol Zimmet/O=Iris
  14785. #########################################################
  14786. ##########################################################
  14787. ##########################################################
  14788. ##########################################################
  14789. ##########################################################
  14790. ##########################################################
  14791. ##########################################################
  14792. ##########################################################
  14793. ##########################################################
  14794. ##########################################################
  14795. ##########################################################
  14796. ##########################################################
  14797. ##########################################################
  14798. ##########################################################
  14799. ##########################################################
  14800. ##########################################################
  14801. ##########################################################
  14802. ##########################################################
  14803. ##########################################################
  14804. ##########################################################
  14805. ##########################################################
  14806. ##########################################################
  14807. ##########################################################
  14808. ##########################################################
  14809. ##########################################################
  14810. ##########################################################
  14811. ##########################################################
  14812. ##########################################################
  14813. ##########################################################
  14814. ##########################################################
  14815. ##########################################################
  14816. ##########################################################
  14817. ##########################################################
  14818. ##########################################################
  14819. PCS704-200MHZ1P6-512MB
  14820. Pentium Pro (P6)/200 x  1
  14821. NT 4.0
  14822. PCS325-233MHZ1P6-384MB
  14823. Pentium II/233 x  1
  14824. NT 4.0
  14825. NF3500-233MHZ1P6-320MB
  14826. Pentium II/233 x  1
  14827. NT 4.0
  14828. LayoutServerTasks
  14829.     4S5S
  14830. PCS704-200MHZ1P6-512MB
  14831. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14832. LayoutServerTasks
  14833.     4S5S
  14834. PCS325-233MHZ1P6-384MB
  14835. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14836. LayoutServerTasks
  14837.     4S5S
  14838. NF3500-233MHZ1P6-320MB
  14839. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  14840. LayoutServerTasks
  14841.     4S5S
  14842. LayoutServerTasks
  14843.     4S5S
  14844. LayoutServerTasks
  14845.     4S5S
  14846. LayoutServerTasks
  14847.     4S5S
  14848. LayoutServerTasks
  14849.     4S5S
  14850. LayoutServerTasks
  14851.     4S5S
  14852. LayoutServerTasks
  14853.     4S5S
  14854. IBMPCC
  14855. PCS704-200MHZ1P6-512MB
  14856. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14857. IBMPCC
  14858. PCS325-233MHZ1P6-384MB
  14859. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14860. IBMPCC
  14861. NF3500-233MHZ1P6-320MB
  14862. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14863. IBMPCC
  14864. PCS330-300MHZ1PII-512MB
  14865. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14866. IBMPCC
  14867. NF7000-200MHZ2P6-1280MB
  14868. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14869. CAROL
  14870. PCS704-200MHZ1P6-512MB
  14871. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14872. CAROL
  14873. PCS325-233MHZ1P6-384MB
  14874. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14875. CAROL
  14876. NF3500-233MHZ1P6-320MB
  14877. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14878. CAROL
  14879. PCS330-300MHZ1PII-512MB
  14880. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14881. CAROL
  14882. NF7000-200MHZ2P6-1280MB
  14883. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14884. CAROL
  14885. CMPQPL5000-200MHZ1P6-512MB
  14886. NotesBench workload not generated for this machinea:  Calendar & Scheduling
  14887. CAROL
  14888. CMPQS200PII-233MHZ1P6-384MB
  14889. NotesBench workload not generated for this machinea:  Calendar & Scheduling
  14890. PCS704-200MHZ1P6-512MB
  14891. PCS704-200MHZ1P6-512MB
  14892. PCS325-233MHZ1P6-384MB
  14893. NF3500-233MHZ1P6-320MB
  14894. IBMPCC
  14895. PCS704-200MHZ1P6-512MB
  14896. IBMPCC
  14897. CAROL
  14898. PCS704-200MHZ1P6-512MB
  14899. CAROL
  14900. IBMPCC
  14901. PCS330-300MHZ1PII-512MB
  14902. Pentium II (PII)/300 x  1
  14903. NT 4.0
  14904. LayoutServerTasks
  14905.     4S5S
  14906. PCS330-300MHZ1PII-512MB
  14907. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  14908. LayoutServerTasks
  14909.     4S5S
  14910. LayoutServerTasks
  14911.     4S5S
  14912. LayoutServerTasks
  14913.     4S5S
  14914. LayoutServerTasks
  14915.     4S5S
  14916. LayoutServerTasks
  14917.     4S5S
  14918. LayoutServerTasks
  14919.     4S5S
  14920. LayoutServerTasks
  14921.     4S5S
  14922. LayoutServerTasks
  14923.     4S5S
  14924. LayoutServerTasks
  14925.     4S5S
  14926. PCS704-200MHZ1P6-512MB
  14927. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14928. PCS325-233MHZ1P6-384MB
  14929. NotesBench workload not generated for this machine:  Calendar & Scheduling
  14930. NF3500-233MHZ1P6-320MB
  14931. NotesBench workload not generated for this machine:  Calendar & Scheduling
  14932. IBMPCC
  14933. PCS704-200MHZ1P6-512MB
  14934. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14935. IBMPCC
  14936. PCS325-233MHZ1P6-384MB
  14937. NotesBench workload not generated for this machine:  Calendar & Scheduling
  14938. IBMPCC
  14939. NF3500-233MHZ1P6-320MB
  14940. NotesBench workload not generated for this machine:  Calendar & Scheduling
  14941. IBMPCC
  14942. NF7000-200MHZ2P6-1280MB
  14943. NotesBench workload not generated for this machine:  Calendar & Scheduling
  14944. IBMPCC
  14945. NF5500-350MHZ2PII-1024MB
  14946. NotesBench workload not generated for this machine:  Calendar & Scheduling
  14947. PCS704-200MHZ1P6-512MB
  14948. NotesBench workload results not in range for individual results comparison:  Calendar & Scheduling
  14949. PCS325-233MHZ1P6-384MB
  14950. NotesBench workload not generated for this machine:  Calendar & Scheduling
  14951. NF3500-233MHZ1P6-320MB
  14952. NotesBench workload not generated for this machine:  Calendar & Scheduling
  14953. IBMPCC
  14954. PCS330-300MHZ1PII-512MB
  14955. PCS704-200MHZ1P6-512MB
  14956. Pentium Pro (P6)/200 x  1
  14957. NT 4.0
  14958. PCS325-233MHZ1P6-384MB
  14959. Pentium II/233 x  1
  14960. NT 4.0
  14961. NF3500-233MHZ1P6-320MB
  14962. Pentium II/233 x  1
  14963. NT 4.0
  14964. IBMPCC
  14965. PCS704-200MHZ1P6-512MB
  14966. Pentium Pro (P6)/200 x  1
  14967. NT 4.0
  14968. IBMPCC
  14969. PCS325-233MHZ1P6-384MB
  14970. Pentium II/233 x  1
  14971. NT 4.0
  14972. IBMPCC
  14973. NF3500-233MHZ1P6-320MB
  14974. Pentium II/233 x  1
  14975. NT 4.0
  14976. IBMPCC
  14977. PCS330-300MHZ1PII-512MB
  14978. Pentium II (PII)/300 x  1
  14979. NT 4.0
  14980. IBMPCC
  14981. NF7000-200MHZ2P6-1280MB
  14982. Pentium Pro (P6)/200 x  2 (SMP)
  14983. NT 4.0
  14984. IBMPCC
  14985. NF5500-350MHZ2PII-1024MB
  14986. Pentium II (PII)/350 x  2 (SMP)
  14987. NT 4.0
  14988. LayoutServerTasks
  14989.     4S5S
  14990. PCS704-200MHZ1P6-512MB
  14991. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  14992. LayoutServerTasks
  14993.     4S5S
  14994. PCS325-233MHZ1P6-384MB
  14995. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  14996. LayoutServerTasks
  14997.     4S5S
  14998. NF3500-233MHZ1P6-320MB
  14999. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  15000. LayoutServerTasks
  15001.     4S5S
  15002. PCS704-200MHZ1P6-512MB
  15003. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  15004. LayoutServerTasks
  15005.     4S5S
  15006. PCS325-233MHZ1P6-384MB
  15007. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  15008. LayoutServerTasks
  15009.     4S5S
  15010. NF3500-233MHZ1P6-320MB
  15011. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  15012. LayoutServerTasks
  15013.     4S5S
  15014. PCS330-300MHZ1PII-512MB
  15015. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  15016. LayoutServerTasks
  15017.     4S5S
  15018. NF7000-200MHZ2P6-1280MB
  15019. Netfinity 7000 with 2 CPUs (200 MHZ Pentium Pro), 1280 MB RAM, and 10 Hard Drives (4.5 GB) in a RAID5 array.
  15020. LayoutServerTasks
  15021.     4S5S
  15022. NF5500-350MHZ2PII-1024MB
  15023. Netfinity 5500 with 2 CPUs (350 MHz Pentium II) and 1024 MB RAM.  The system included 10 hard disk drives (4.5 GB each) that were configured into one array.  The array was partitioned such that the first logical drive (C:) was a RAID1 volume of 4 GB (for OS and Domino executables).  The second logical drive (D:) was a RAID5 volume of the remaining free disk space (approximately 32 GB).  The standard integrated  network adapter on the system was used to connect to the 10 MBits Ethernet network.
  15024. LayoutServerTasks
  15025.     4S5S
  15026. PCS704-200MHZ1P6-512MB
  15027. IBMPCC
  15028. PCS704-200MHZ1P6-512MB
  15029. PCS325-233MHZ1P6-384MB
  15030. NF3500-233MHZ1P6-320MB
  15031. IBMPCC
  15032. PCS325-233MHZ1P6-384MB
  15033. IBMPCC
  15034. NF3500-233MHZ1P6-320MB
  15035. IBMPCC
  15036. PCS330-300MHZ1PII-512MB
  15037. IBMPCC
  15038. NF7000-200MHZ2P6-1280MB
  15039. IBMPCC
  15040. NF5500-350MHZ2PII-1024MB
  15041. PCS704-200MHZ1P6-512MB
  15042. Pentium Pro (P6)/200 x  1
  15043. NT 4.0
  15044. PCS325-233MHZ1P6-384MB
  15045. Pentium II/233 x  1
  15046. NT 4.0
  15047. NF3500-233MHZ1P6-320MB
  15048. Pentium II/233 x  1
  15049. NT 4.0
  15050. LayoutServerTasks
  15051.     4S5S
  15052. PCS704-200MHZ1P6-512MB
  15053. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  15054. LayoutServerTasks
  15055.     4S5S
  15056. PCS325-233MHZ1P6-384MB
  15057. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  15058. LayoutServerTasks
  15059.     4S5S
  15060. NF3500-233MHZ1P6-320MB
  15061. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  15062. LayoutServerTasks
  15063.     4S5S
  15064. LayoutServerTasks
  15065.     4S5S
  15066. LayoutServerTasks
  15067.     4S5S
  15068. LayoutServerTasks
  15069.     4S5S
  15070. LayoutServerTasks
  15071.     4S5S
  15072. LayoutServerTasks
  15073.     4S5S
  15074. LayoutServerTasks
  15075.     4S5S
  15076. 12/09/98 10:29:41 PM Richard Kanosky/Iris deleted Carol Zimmet/Iris
  15077. 12/09/98 10:29:38 PM Richard Kanosky/Iris deleted Richard Kanosky/Iris
  15078. 12/04/98 07:33:08 PM Richard Kanosky/Iris updated LocalDomainServers
  15079. 12/04/98 07:22:32 PM Richard Kanosky/Iris updated Carol Zimmet/Iris
  15080. 12/04/98 07:22:10 PM Richard Kanosky/Iris added Carol Zimmet/Iris
  15081. 12/04/98 07:22:10 PM Richard Kanosky/Iris deleted */Iris
  15082. 12/04/98 07:21:49 PM Richard Kanosky/Iris updated */Iris
  15083. 12/04/98 07:21:04 PM Richard Kanosky/Iris added */Iris
  15084. 12/04/98 07:20:47 PM Richard Kanosky/Iris updated Parallan/CAM/Notes
  15085. 12/04/98 07:20:05 PM Richard Kanosky/Iris added Parallan/CAM/Notes
  15086. 12/04/98 07:18:24 PM Richard Kanosky/Iris updated Richard Kanosky/Iris
  15087. 12/04/98 07:18:13 PM Richard Kanosky/Iris added Richard Kanosky/Iris
  15088. 08/21/97 02:23:19 PM Carol Zimmet/Iris updated [LocalDomainServers]
  15089. 08/21/97 02:23:15 PM Carol Zimmet/Iris updated [OtherDomainServers]
  15090. 08/21/97 02:23:04 PM Carol Zimmet/Iris added [OtherDomainServers]
  15091. 08/21/97 02:23:04 PM Carol Zimmet/Iris deleted [-OtherDomainServers-]
  15092. 08/21/97 02:22:47 PM Carol Zimmet/Iris added [LocalDomainServers]
  15093. 08/21/97 02:22:47 PM Carol Zimmet/Iris deleted [-LocalDomainServers-]
  15094. 08/21/97 02:22:20 PM Carol Zimmet/Iris updated [-OtherDomainServers-]
  15095. 08/21/97 02:22:12 PM Carol Zimmet/Iris added [-OtherDomainServers-]
  15096. -Default-
  15097. LocalDomainServers
  15098. OtherDomainServers
  15099. [-Default-]
  15100. [LocalDomainServers]
  15101. [OtherDomainServers]
  15102. CN=Parallan/OU=CAM/O=Notes
  15103. Query on Data
  15104. @10/28/98 09:44:51 AM01101
  15105. 0IBM2; IBMPCC
  15106. IBM2IBMPCCOutput to DatabaseUSlow (3.1 - 5 sec)50
  15107. 11100Any Configuration100Yes
  15108. Y@10000000
  15109. rk:  platform doesn't exist
  15110.           NBCarol Zimmet/IrisCarol Zimmet
  15111. CN=Carol Zimmet/O=Iris
  15112. ##########################################################
  15113. Query on Data
  15114. 10/28/98 01:17:53 PM01101
  15115. 0IBMPCC; DANA; RENT
  15116. IBMPCCDANARENTOutput to DatabaseUSlow (3.1 - 5 sec)50
  15117. 1213345678910111412100Any Configuration100Yes
  15118. Y@00000000
  15119. subset vendor list
  15120.           NBCarol Zimmet/IrisCarol Zimmet
  15121. CN=Carol Zimmet/O=Iris
  15122. ######################
  15123. Query on Data
  15124. @10/29/98 02:08:32 PM61101
  15125. 0IBMPCCIBMPCCOutput to DatabaseUSlow (3.1 - 5 sec)95
  15126. 1213345678910111412100Any Configuration100Yes
  15127. Y@5000000000
  15128. testing growth:  one workload, one database
  15129. NoNoNoNoNoNo    NBCarol Zimmet/IrisCarol Zimmet
  15130. CN=Carol Zimmet/O=Iris
  15131. #############
  15132. Query on Data
  15133. CN=Carol Zimmet/O=Iris
  15134. @Carol Zimmet/Iris10/29/98 02:08:32 PM01101
  15135. 0IBM2IBM2Output to DatabaseUSlow (3.1 - 5 sec)95
  15136. 12133456789101114120Any Configuration100Yes
  15137. Y@5000000000
  15138. testing growth: growth machine 3500 one workload, one database
  15139. NBCarol Zimmet
  15140. ##############################
  15141. ##########################################################
  15142. ##########################################################
  15143. ##########################################################
  15144. ##########################################################
  15145. ##########################################################
  15146. ##########################################################
  15147. ##########################################################
  15148. ##########################################################
  15149. ##########################################################
  15150. ##########################################################
  15151. ##########################################################
  15152. ##########################################################
  15153. ##########################################################
  15154. ##########################################################
  15155. ##########################################################
  15156. ##########################################################
  15157. ##########################################################
  15158. ##########################################################
  15159. ##########################################################
  15160. ##########################################################
  15161. ##########################################################
  15162. ##########################################################
  15163. ##########################################################
  15164. ##########################################################
  15165. ##########################################################
  15166. ##########################################################
  15167. ##########################################################
  15168. ##########################################################
  15169. ##########################################################
  15170. ##########################################################
  15171. ##########################################################
  15172. ##########################################################
  15173. ##########################################################
  15174. ##########################################################
  15175. ##########################################################
  15176. LayoutServerTasks
  15177.     4S5S
  15178. LayoutServerTasks
  15179.     4S5S
  15180. LayoutServerTasks
  15181.     4S5S
  15182. LayoutServerTasks
  15183.     4S5S
  15184. LayoutServerTasks
  15185.     4S5S
  15186. LayoutServerTasks
  15187.     4S5S
  15188. LayoutServerTasks
  15189.     4S5S
  15190. LayoutServerTasks
  15191.     4S5S
  15192. LayoutServerTasks
  15193.     4S5S
  15194. LayoutServerTasks
  15195.     4S5S
  15196. PCS704-200MHZ1P6-512MB
  15197. NotesBench workload results not in range for individual results comparison:  Mail
  15198. PCS325-233MHZ1P6-384MB
  15199. NotesBench workload results not in range for individual results comparison:  Mail
  15200. NF3500-233MHZ1P6-320MB
  15201. NotesBench workload results not in range for individual results comparison:  Mail
  15202. PCS704-200MHZ1P6-512MB
  15203. NotesBench workload results not generated for this platform:   Platform: Solaris 2.5, Workload: 
  15204. PCS325-233MHZ1P6-384MB
  15205. NotesBench workload results not generated for this platform:   Platform: Solaris 2.5, Workload: 
  15206. NF3500-233MHZ1P6-320MB
  15207. NotesBench workload results not generated for this platform:   Platform: Solaris 2.5, Workload: 
  15208. LayoutServerTasks
  15209.     4S5S
  15210. LayoutServerTasks
  15211.     4S5S
  15212. LayoutServerTasks
  15213.     4S5S
  15214. LayoutServerTasks
  15215.     4S5S
  15216. LayoutServerTasks
  15217.     4S5S
  15218. LayoutServerTasks
  15219.     4S5S
  15220. LayoutServerTasks
  15221.     4S5S
  15222. LayoutServerTasks
  15223.     4S5S
  15224. LayoutServerTasks
  15225.     4S5S
  15226. LayoutServerTasks
  15227.     4S5S
  15228. IBMPCC
  15229. PCS704-200MHZ1P6-512MB
  15230. Pentium Pro (P6)/200 x  1
  15231. NT 4.0
  15232. IBMPCC
  15233. PCS325-233MHZ1P6-384MB
  15234. Pentium II/233 x  1
  15235. NT 4.0
  15236. IBMPCC
  15237. NF3500-233MHZ1P6-320MB
  15238. Pentium II/233 x  1
  15239. NT 4.0
  15240. IBMPCC
  15241. PCS330-300MHZ1PII-512MB
  15242. Pentium II (PII)/300 x  1
  15243. NT 4.0
  15244. IBMPCC
  15245. NF7000-200MHZ2P6-1280MB
  15246. Pentium Pro (P6)/200 x  2 (SMP)
  15247. NT 4.0
  15248. IBMPCC
  15249. NF5500-350MHZ2PII-1024MB
  15250. Pentium II (PII)/350 x  2 (SMP)
  15251. NT 4.0
  15252. LayoutServerTasks
  15253.     4S5S
  15254. PCS704-200MHZ1P6-512MB
  15255. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  15256. LayoutServerTasks
  15257.     4S5S
  15258. PCS325-233MHZ1P6-384MB
  15259. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  15260. LayoutServerTasks
  15261.     4S5S
  15262. NF3500-233MHZ1P6-320MB
  15263. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  15264. LayoutServerTasks
  15265.     4S5S
  15266. PCS330-300MHZ1PII-512MB
  15267. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  15268. LayoutServerTasks
  15269.     4S5S
  15270. NF7000-200MHZ2P6-1280MB
  15271. Netfinity 7000 with 2 CPUs (200 MHZ Pentium Pro), 1280 MB RAM, and 10 Hard Drives (4.5 GB) in a RAID5 array.
  15272. LayoutServerTasks
  15273.     4S5S
  15274. NF5500-350MHZ2PII-1024MB
  15275. Netfinity 5500 with 2 CPUs (350 MHz Pentium II) and 1024 MB RAM.  The system included 10 hard disk drives (4.5 GB each) that were configured into one array.  The array was partitioned such that the first logical drive (C:) was a RAID1 volume of 4 GB (for OS and Domino executables).  The second logical drive (D:) was a RAID5 volume of the remaining free disk space (approximately 32 GB).  The standard integrated  network adapter on the system was used to connect to the 10 MBits Ethernet network.
  15276. LayoutServerTasks
  15277.     4S5S
  15278. LayoutServerTasks
  15279.     4S5S
  15280. LayoutServerTasks
  15281.     4S5S
  15282. LayoutServerTasks
  15283.     4S5S
  15284. IBMPCC
  15285. PCS704-200MHZ1P6-512MB
  15286. IBMPCC
  15287. PCS325-233MHZ1P6-384MB
  15288. IBMPCC
  15289. NF3500-233MHZ1P6-320MB
  15290. IBMPCC
  15291. PCS330-300MHZ1PII-512MB
  15292. IBMPCC
  15293. NF7000-200MHZ2P6-1280MB
  15294. IBMPCC
  15295. NF5500-350MHZ2PII-1024MB
  15296. LayoutServerTasks
  15297.     4S5S
  15298. PCS704-200MHZ1P6-512MB
  15299. LayoutServerTasks
  15300.     4S5S
  15301. PCS325-233MHZ1P6-384MB
  15302. LayoutServerTasks
  15303.     4S5S
  15304. NF3500-233MHZ1P6-320MB
  15305. LayoutServerTasks
  15306.     4S5S
  15307. PCS330-300MHZ1PII-512MB
  15308. LayoutServerTasks
  15309.     4S5S
  15310. NF7000-200MHZ2P6-1280MB
  15311. LayoutServerTasks
  15312.     4S5S
  15313. NF5500-350MHZ2PII-1024MB
  15314. LayoutServerTasks
  15315.     4S5S
  15316. LayoutServerTasks
  15317.     4S5S
  15318. LayoutServerTasks
  15319.     4S5S
  15320. LayoutServerTasks
  15321.     4S5S
  15322. IBMPCC
  15323. PCS704-200MHZ1P6-512MB
  15324. IBMPCC
  15325. PCS325-233MHZ1P6-384MB
  15326. IBMPCC
  15327. NF3500-233MHZ1P6-320MB
  15328. IBMPCC
  15329. PCS330-300MHZ1PII-512MB
  15330. IBMPCC
  15331. NF7000-200MHZ2P6-1280MB
  15332. IBMPCC
  15333. NF5500-350MHZ2PII-1024MB
  15334. Query on Data
  15335. @11/01/98 11:06:15 PM21101
  15336. 0IBMPCCIBMPCCOutput to DatabaseUSlow (3.1 - 5 sec)50
  15337. 1213345678910111412100Any Configuration100Yes
  15338. Y@100100000000
  15339. growth, multiple systems
  15340. NoNoNBCarol Zimmet/IrisCarol Zimmet
  15341. CN=Carol Zimmet/O=Iris
  15342. ##########################################################
  15343. Query on Data
  15344. CN=Carol Zimmet/O=Iris
  15345. @Carol Zimmet/Iris11/01/98 11:06:15 PM21101
  15346. 0IBMPCCIBMPCCOutput to DatabaseUSlow (3.1 - 5 sec)50
  15347. 1213345678910111412100Any Configuration100Yes
  15348. Y@100100000000
  15349. growth, multiple systems
  15350. NoNoNBCarol Zimmet
  15351. ########################################################
  15352. Query on Data
  15353. @10/28/98 01:17:53 PM21101
  15354. 0IBMPCCIBMPCCOutput to DatabaseUSlow (3.1 - 5 sec)50
  15355. 12133456789101114120Any Configuration100Yes
  15356. Y@1000000000
  15357. subset vendor list; 330/5500 show up in growth
  15358. NoNoNBCarol Zimmet/IrisCarol ZimmetG
  15359. CN=Carol Zimmet/O=Iris
  15360. ##########
  15361. Query on Data
  15362. @11/09/98 10:15:27 AM21101
  15363. 0IBMPCCIBMPCCOutput to DatabaseUSlow (3.1 - 5 sec)50
  15364. 12133456789101114120Any Configuration100Yes
  15365. Y@1000000000
  15366. 0%, 0%, Y Y N N
  15367. NoNoNBCarol Zimmet/IrisCarol Zimmet
  15368. CN=Carol Zimmet/O=Iris
  15369. ###############
  15370. ##########################################################
  15371. ##########################################################
  15372. ##########################################################
  15373. ##########################################################
  15374. ##########################################################
  15375. ##########################################################
  15376. ##########################################################
  15377. ##########################################################
  15378. ##########################################################
  15379. ##########################################################
  15380. ##########################################################
  15381. ##########################################################
  15382. ##########################################################
  15383. ##########################################################
  15384. ##########################################################
  15385. ##########################################################
  15386. ##########################################################
  15387. ##########################################################
  15388. ##########################################################
  15389. ##########################################################
  15390. ##########################################################
  15391. ##########################################################
  15392. ##########################################################
  15393. ##########################################################
  15394. ##########################################################
  15395. ##########################################################
  15396. ##########################################################
  15397. ##########################################################
  15398. ##########################################################
  15399. ##########################################################
  15400. ##########################################################
  15401. ##########################################################
  15402. ##########################################################
  15403. ##########################################################
  15404. ##########################################################
  15405. ##########################################################
  15406. IBMPCC
  15407. PCS704-200MHZ1P6-512MB
  15408. Pentium Pro (P6)/200 x  1
  15409. NT 4.0
  15410. IBMPCC
  15411. PCS325-233MHZ1P6-384MB
  15412. Pentium II/233 x  1
  15413. NT 4.0
  15414. LayoutServerTasks
  15415.     4S5S
  15416. PCS704-200MHZ1P6-512MB
  15417. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  15418. LayoutServerTasks
  15419.     4S5S
  15420. PCS325-233MHZ1P6-384MB
  15421. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  15422. LayoutServerTasks
  15423.     4S5S
  15424. LayoutServerTasks
  15425.     4S5S
  15426. LayoutServerTasks
  15427.     4S5S
  15428. LayoutServerTasks
  15429.     4S5S
  15430. LayoutServerTasks
  15431.     4S5S
  15432. LayoutServerTasks
  15433.     4S5S
  15434. LayoutServerTasks
  15435.     4S5S
  15436. LayoutServerTasks
  15437.     4S5S
  15438. IBMPCC
  15439. NF3500-233MHZ1P6-320MB
  15440. NotesBench workload results not in range for individual results comparison:  Mail
  15441. IBMPCC
  15442. PCS330-300MHZ1PII-512MB
  15443. NotesBench workload results not in range for individual results comparison:  Mail
  15444. IBMPCC
  15445. NF7000-200MHZ2P6-1280MB
  15446. NotesBench workload results not in range for individual results comparison:  Mail
  15447. IBMPCC
  15448. NF5500-350MHZ2PII-1024MB
  15449. NotesBench workload results not in range for individual results comparison:  Mail
  15450. IBMPCC
  15451. PCS704-200MHZ1P6-512MB
  15452. Pentium Pro (P6)/200 x  1
  15453. NT 4.0
  15454. IBMPCC
  15455. PCS325-233MHZ1P6-384MB
  15456. Pentium II/233 x  1
  15457. NT 4.0
  15458. LayoutServerTasks
  15459.     4S5S
  15460. PCS704-200MHZ1P6-512MB
  15461. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  15462. LayoutServerTasks
  15463.     4S5S
  15464. PCS325-233MHZ1P6-384MB
  15465. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  15466. LayoutServerTasks
  15467.     4S5S
  15468. LayoutServerTasks
  15469.     4S5S
  15470. LayoutServerTasks
  15471.     4S5S
  15472. LayoutServerTasks
  15473.     4S5S
  15474. LayoutServerTasks
  15475.     4S5S
  15476. LayoutServerTasks
  15477.     4S5S
  15478. LayoutServerTasks
  15479.     4S5S
  15480. LayoutServerTasks
  15481.     4S5S
  15482. IBMPCC
  15483. NF3500-233MHZ1P6-320MB
  15484. NotesBench workload results not in range for individual results comparison:  Mail
  15485. IBMPCC
  15486. PCS330-300MHZ1PII-512MB
  15487. NotesBench workload results not in range for individual results comparison:  Mail
  15488. IBMPCC
  15489. NF7000-200MHZ2P6-1280MB
  15490. NotesBench workload results not in range for individual results comparison:  Mail
  15491. IBMPCC
  15492. NF5500-350MHZ2PII-1024MB
  15493. NotesBench workload results not in range for individual results comparison:  Mail
  15494. IBMPCC
  15495. PCS330-300MHZ1PII-512MB
  15496. Pentium II (PII)/300 x  1
  15497. NT 4.0
  15498. IBMPCC
  15499. NF5500-350MHZ2PII-1024MB
  15500. Pentium II (PII)/350 x  2 (SMP)
  15501. NT 4.0
  15502. LayoutServerTasks
  15503.     4S5S
  15504. PCS330-300MHZ1PII-512MB
  15505. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  15506. LayoutServerTasks
  15507.     4S5S
  15508. NF5500-350MHZ2PII-1024MB
  15509. Netfinity 5500 with 2 CPUs (350 MHz Pentium II) and 1024 MB RAM.  The system included 10 hard disk drives (4.5 GB each) that were configured into one array.  The array was partitioned such that the first logical drive (C:) was a RAID1 volume of 4 GB (for OS and Domino executables).  The second logical drive (D:) was a RAID5 volume of the remaining free disk space (approximately 32 GB).  The standard integrated  network adapter on the system was used to connect to the 10 MBits Ethernet network.
  15510. LayoutServerTasks
  15511.     4S5S
  15512. LayoutServerTasks
  15513.     4S5S
  15514. LayoutServerTasks
  15515.     4S5S
  15516. LayoutServerTasks
  15517.     4S5S
  15518. LayoutServerTasks
  15519.     4S5S
  15520. LayoutServerTasks
  15521.     4S5S
  15522. LayoutServerTasks
  15523.     4S5S
  15524. LayoutServerTasks
  15525.     4S5S
  15526. IBMPCC
  15527. PCS704-200MHZ1P6-512MB
  15528. NotesBench workload results not in range for individual results comparison:  Mail
  15529. IBMPCC
  15530. PCS325-233MHZ1P6-384MB
  15531. NotesBench workload results not in range for individual results comparison:  Mail
  15532. IBMPCC
  15533. NF3500-233MHZ1P6-320MB
  15534. NotesBench workload results not in range for individual results comparison:  Mail
  15535. IBMPCC
  15536. NF7000-200MHZ2P6-1280MB
  15537. NotesBench workload results not in range for individual results comparison:  Mail
  15538. IBMPCC
  15539. PCS330-300MHZ1PII-512MB
  15540. Pentium II (PII)/300 x  1
  15541. NT 4.0
  15542. IBMPCC
  15543. NF5500-350MHZ2PII-1024MB
  15544. Pentium II (PII)/350 x  2 (SMP)
  15545. NT 4.0
  15546. LayoutServerTasks
  15547.     4S5S
  15548. PCS330-300MHZ1PII-512MB
  15549. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  15550. LayoutServerTasks
  15551.     4S5S
  15552. NF5500-350MHZ2PII-1024MB
  15553. Netfinity 5500 with 2 CPUs (350 MHz Pentium II) and 1024 MB RAM.  The system included 10 hard disk drives (4.5 GB each) that were configured into one array.  The array was partitioned such that the first logical drive (C:) was a RAID1 volume of 4 GB (for OS and Domino executables).  The second logical drive (D:) was a RAID5 volume of the remaining free disk space (approximately 32 GB).  The standard integrated  network adapter on the system was used to connect to the 10 MBits Ethernet network.
  15554. LayoutServerTasks
  15555.     4S5S
  15556. LayoutServerTasks
  15557.     4S5S
  15558. LayoutServerTasks
  15559.     4S5S
  15560. LayoutServerTasks
  15561.     4S5S
  15562. LayoutServerTasks
  15563.     4S5S
  15564. LayoutServerTasks
  15565.     4S5S
  15566. LayoutServerTasks
  15567.     4S5S
  15568. LayoutServerTasks
  15569.     4S5S
  15570. IBMPCC
  15571. PCS704-200MHZ1P6-512MB
  15572. NotesBench workload results not in range for individual results comparison:  Mail
  15573. IBMPCC
  15574. PCS325-233MHZ1P6-384MB
  15575. NotesBench workload results not in range for individual results comparison:  Mail
  15576. IBMPCC
  15577. NF3500-233MHZ1P6-320MB
  15578. NotesBench workload results not in range for individual results comparison:  Mail
  15579. IBMPCC
  15580. NF7000-200MHZ2P6-1280MB
  15581. NotesBench workload results not in range for individual results comparison:  Mail
  15582. IBMPCC
  15583. PCS330-300MHZ1PII-512MB
  15584. IBMPCC
  15585. NF5500-350MHZ2PII-1024MB
  15586. IBMPCC
  15587. NF3500-233MHZ1P6-320MB
  15588. IBMPCC
  15589. NF7000-200MHZ2P6-1280MB
  15590. Query on Data
  15591. @11/11/98 10:47:43 PM81101
  15592. 0IBM2; IBMPCC
  15593. IBM2IBMPCClocalOUTPUT.NSFOutput to DatabaseUSlow (3.1 - 5 sec)50
  15594. 121334567891011141210Any Configuration100Yes
  15595. Y@100100000000
  15596. NoNoNoNoNoNoNoNoNoNBCarol Zimmet/IrisCarol Zimmetj
  15597. CN=Carol Zimmet/O=Iris
  15598. #############################################
  15599. ##########################################################
  15600. ##########################################################
  15601. ##########################################################
  15602. ##########################################################
  15603. ##########################################################
  15604. ##########################################################
  15605. ##########################################################
  15606. ##########################################################
  15607. ##########################################################
  15608. ##########################################################
  15609. ##########################################################
  15610. ##########################################################
  15611. ##########################################################
  15612. ##########################################################
  15613. ##########################################################
  15614. ##########################################################
  15615. ##########################################################
  15616. ##########################################################
  15617. ##########################################################
  15618. ##########################################################
  15619. ##########################################################
  15620. ##########################################################
  15621. ##########################################################
  15622. ##########################################################
  15623. ##########################################################
  15624. ##########################################################
  15625. ##########################################################
  15626. ##########################################################
  15627. ##########################################################
  15628. ##########################################################
  15629. ##########################################################
  15630. ##########################################################
  15631. ##########################################################
  15632. ##########################################################
  15633. ##########################################################
  15634. ##########################################################
  15635. ##########################################################
  15636. ##########################################################
  15637. ##########################################################
  15638. ##########################################################
  15639. ##########################################################
  15640. ##########################################################
  15641. ##########################################################
  15642. ##########################################################
  15643. ##########################################################
  15644. ##########################################################
  15645. ##########################################################
  15646. ##########################################################
  15647. ##########################################################
  15648. ##########################################################
  15649. ##########################################################
  15650. ##########################################################
  15651. ##########################################################
  15652. ##########################################################
  15653. ##########################################################
  15654. ##########################################################
  15655. ##########################################################
  15656. ##########################################################
  15657. ##########################################################
  15658. ##########################################################
  15659. ##########################################################
  15660. ##########################################################
  15661. ##########################################################
  15662. ##########################################################
  15663. ##########################################################
  15664. ##########################################################
  15665. ##########################################################
  15666. ##########################################################
  15667. ##########################################################
  15668. ##########################################################
  15669. ##########################################################
  15670. ##########################################################
  15671. ##########################################################
  15672. ##########################################################
  15673. ##########################################################
  15674. ##########################################################
  15675. ##########################################################
  15676. ##########################################################
  15677. ##########################################################
  15678. ##########################################################
  15679. ##########################################################
  15680. ##########################################################
  15681. ##########################################################
  15682. ##########################################################
  15683. ##########################################################
  15684. ##########################################################
  15685. ##########################################################
  15686. ##########################################################
  15687. ##########################################################
  15688. ##########################################################
  15689. ##########################################################
  15690. ##########################################################
  15691. ##########################################################
  15692. ##########################################################
  15693. ##########################################################
  15694. ##########################################################
  15695. ##########################################################
  15696. ##########################################################
  15697. ##########################################################
  15698. ##########################################################
  15699. ##########################################################
  15700. ##########################################################
  15701. ##########################################################
  15702. ##########################################################
  15703. ##########################################################
  15704. ##########################################################
  15705. ##########################################################
  15706. ##########################################################
  15707. ##########################################################
  15708. ##########################################################
  15709. ##########################################################
  15710. ##########################################################
  15711. ##########################################################
  15712. ##########################################################
  15713. ##########################################################
  15714. ##########################################################
  15715. ##########################################################
  15716. ##########################################################
  15717. ##########################################################
  15718. ##########################################################
  15719. ##########################################################
  15720. ##########################################################
  15721. ##########################################################
  15722. ##########################################################
  15723. ##########################################################
  15724. ##########################################################
  15725. ##########################################################
  15726. ##########################################################
  15727. ##########################################################
  15728. ##########################################################
  15729. ##########################################################
  15730. ##########################################################
  15731. ##########################################################
  15732. ##########################################################
  15733. ##########################################################
  15734. ##########################################################
  15735. ##########################################################
  15736. ##########################################################
  15737. ##########################################################
  15738. ##########################################################
  15739. ##########################################################
  15740. ##########################################################
  15741. ##########################################################
  15742. ##########################################################
  15743. ##########################################################
  15744. ##########################################################
  15745. ##########################################################
  15746. ##########################################################
  15747. ##########################################################
  15748. ##########################################################
  15749. ##########################################################
  15750. ##########################################################
  15751. ##########################################################
  15752. ##########################################################
  15753. ##########################################################
  15754. ##########################################################
  15755. ##########################################################
  15756. ##########################################################
  15757. ##########################################################
  15758. ##########################################################
  15759. ##########################################################
  15760. ##########################################################
  15761. ##########################################################
  15762. ##########################################################
  15763. ##########################################################
  15764. ##########################################################
  15765. ##########################################################
  15766. ##########################################################
  15767. ##########################################################
  15768. ##########################################################
  15769. ##########################################################
  15770. ##########################################################
  15771. ##########################################################
  15772. ##########################################################
  15773. ##########################################################
  15774. ##########################################################
  15775. ##########################################################
  15776. ##########################################################
  15777. ##########################################################
  15778. ##########################################################
  15779. ##########################################################
  15780. ##########################################################
  15781. ##########################################################
  15782. ##########################################################
  15783. ##########################################################
  15784. ##########################################################
  15785. ##########################################################
  15786. ##########################################################
  15787. ##########################################################
  15788. ##########################################################
  15789. ##########################################################
  15790. ##########################################################
  15791. ##########################################################
  15792. ##########################################################
  15793. ##########################################################
  15794. ##########################################################
  15795. ##########################################################
  15796. ##########################################################
  15797. ##########################################################
  15798. ##########################################################
  15799. PCS704-200MHZ1P6-512MB
  15800. Pentium Pro (P6)/200 x  1
  15801. NT 4.0
  15802. PCS325-233MHZ1P6-384MB
  15803. Pentium II/233 x  1
  15804. NT 4.0
  15805. NF3500-233MHZ1P6-320MB
  15806. Pentium II/233 x  1
  15807. NT 4.0
  15808. IBMPCC
  15809. PCS704-200MHZ1P6-512MB
  15810. Pentium Pro (P6)/200 x  1
  15811. NT 4.0
  15812. IBMPCC
  15813. PCS325-233MHZ1P6-384MB
  15814. Pentium II/233 x  1
  15815. NT 4.0
  15816. IBMPCC
  15817. NF3500-233MHZ1P6-320MB
  15818. Pentium II/233 x  1
  15819. NT 4.0
  15820. IBMPCC
  15821. PCS330-300MHZ1PII-512MB
  15822. Pentium II (PII)/300 x  1
  15823. NT 4.0
  15824. IBMPCC
  15825. NF7000-200MHZ2P6-1280MB
  15826. Pentium Pro (P6)/200 x  2 (SMP)
  15827. NT 4.0
  15828. IBMPCC
  15829. NF5500-350MHZ2PII-1024MB
  15830. Pentium II (PII)/350 x  2 (SMP)
  15831. NT 4.0
  15832. LayoutServerTasks
  15833.     4S5S
  15834. PCS704-200MHZ1P6-512MB
  15835. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  15836. LayoutServerTasks
  15837.     4S5S
  15838. PCS325-233MHZ1P6-384MB
  15839. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  15840. LayoutServerTasks
  15841.     4S5S
  15842. NF3500-233MHZ1P6-320MB
  15843. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  15844. LayoutServerTasks
  15845.     4S5S
  15846. PCS704-200MHZ1P6-512MB
  15847. PCS704 with 1 CPU (P6/200MHz) and 512MB RAM
  15848. LayoutServerTasks
  15849.     4S5S
  15850. PCS325-233MHZ1P6-384MB
  15851. PCS325 with 1 CPU (Pentium II/233MHz) and 384 MB RAM
  15852. LayoutServerTasks
  15853.     4S5S
  15854. NF3500-233MHZ1P6-320MB
  15855. Netfinity 3500 with 1 CPU (233MHz Pentium II) and 320 MB RAM
  15856. LayoutServerTasks
  15857.     4S5S
  15858. PCS330-300MHZ1PII-512MB
  15859. IBM PCS330 with 1 CPU (Pentium II/330MHz) and 512 MB RAM using NT4.0
  15860. LayoutServerTasks
  15861.     4S5S
  15862. NF7000-200MHZ2P6-1280MB
  15863. Netfinity 7000 with 2 CPUs (200 MHZ Pentium Pro), 1280 MB RAM, and 10 Hard Drives (4.5 GB) in a RAID5 array.
  15864. LayoutServerTasks
  15865.     4S5S
  15866. NF5500-350MHZ2PII-1024MB
  15867. Netfinity 5500 with 2 CPUs (350 MHz Pentium II) and 1024 MB RAM.  The system included 10 hard disk drives (4.5 GB each) that were configured into one array.  The array was partitioned such that the first logical drive (C:) was a RAID1 volume of 4 GB (for OS and Domino executables).  The second logical drive (D:) was a RAID5 volume of the remaining free disk space (approximately 32 GB).  The standard integrated  network adapter on the system was used to connect to the 10 MBits Ethernet network.
  15868. LayoutServerTasks
  15869.     4S5S
  15870.     2S4S5S6S7S8S9S11S12S
  15871. PCS704-200MHZ1P6-512MB
  15872. PCS325-233MHZ1P6-384MB
  15873. NF3500-233MHZ1P6-320MB
  15874. IBMPCC
  15875. PCS704-200MHZ1P6-512MB
  15876. IBMPCC
  15877. PCS325-233MHZ1P6-384MB
  15878. IBMPCC
  15879. NF3500-233MHZ1P6-320MB
  15880. IBMPCC
  15881. PCS330-300MHZ1PII-512MB
  15882. IBMPCC
  15883. NF7000-200MHZ2P6-1280MB
  15884. IBMPCC
  15885. NF5500-350MHZ2PII-1024MB
  15886. GraphicButton3
  15887.     hq"    S
  15888. hy<~    
  15889. u=3y=
  15890. hqG~hz|
  15891. |hbG!hzm
  15892. pO    8h
  15893.     sTy~M~hb8
  15894. XphQG
  15895. ~zbG    
  15896. =|zp8
  15897.         myL,hpRc
  15898. }gathbv
  15899. Mupb}
  15900. y[gpb
  15901. u=ubuM
  15902. M~VqbS
  15903. K:`FS
  15904. d EYXn}LH^#
  15905. PX0+)
  15906. `    Z6X^>
  15907. =(Z:j
  15908. rn*6+S
  15909. a >'*/)
  15910. rY(%'`8
  15911. ]^2'(0
  15912. \] m12
  15913. +YEsks~S
  15914. ksP^(6#
  15915. dm(%'%`8
  15916. &`<`+
  15917. Hm1>S
  15918. <m'212
  15919. .=*21S
  15920. <E>1'
  15921.     ]k%'2'(`8
  15922. Hm1>n8
  15923. a m1`
  15924. {>1%6
  15925. 2*#N8
  15926. Hm1>1_<
  15927. }>1*/+
  15928. H2*/+
  15929. .^v>1'
  15930. am212*~
  15931. d #0+/
  15932. '*6#*
  15933. E21%(/>
  15934. ^m*#+
  15935. *'12%60
  15936. #*'2*/
  15937. +    0(%'*6
  15938. +0/6#+
  15939. +0#/(
  15940. PX0+)
  15941. .E/(/0
  15942. <%/+)
  15943.  #6/`8
  15944. .=(*(#
  15945. . 12:
  15946. a>%6+
  15947. ]^2'(0
  15948. \arP21:
  15949. \] m12
  15950. kEY21:
  15951. ;X1X<
  15952. ;n12Z
  15953. ;X1>12
  15954. LX_6_
  15955. ;m>1Z
  15956.  *21S
  15957. Hm1>S
  15958. <m'212
  15959. H^=Pk
  15960. ]1%0)
  15961. ;E>1Z
  15962. Hm1>n8
  15963. ;X1>1'%*
  15964. rX('>XF
  15965. LE'0)
  15966. ;X1>1'
  15967. ;Ev1Z
  15968.  12(N8
  15969. Hm1>1_<
  15970. }>1*/+
  15971. ]X21'
  15972. \ /*2
  15973. ]X21'
  15974. ]=v1*
  15975. %*6/6
  15976. r>1*_{
  15977. am212*~
  15978. n21%6
  15979. P6%21'%Y
  15980. %6#6P
  15981. lv1*#n
  15982. m1*#0P
  15983. E21%(/>
  15984. ^m*#+
  15985. #*'2'
  15986. (/#/(%'%(
  15987. '2%(0
  15988. '1>2*#
  15989. '12*#+
  15990. #*'2*/
  15991. +    0(%'*6
  15992. 6(6#+
  15993. +#6/0
  15994. +#6(60
  15995.     -iI@QOJ
  15996. @QOJR
  15997. I@QOJ
  15998. COJtR
  15999.     ?@CWOtR
  16000. XXXxxx
  16001. HHHPPP
  16002. ((@@@@
  16003. PPXXX`
  16004. 0( 888HHHP
  16005. `X0`x
  16006. Button1
  16007. http://www.notesbench.org
  16008.     0S0E
  16009. Text2Notesbench.org
  16010. http://www.notesbench.org
  16011.     0S0E
  16012. Button4
  16013. http://www.lotus.com/performance
  16014.     0S0E
  16015. Text3           Domino Performance Zone
  16016. http://www.lotus.com/performance
  16017.     0S0E
  16018. Button2latest download
  16019. http://www.notes.net/pubdown.nsf/788925f20e7931c7852563e6006a0707/ab787358c5ac38ca852565520069fba1?OpenDocument
  16020.     0S0E
  16021. Button3Notes.net
  16022. http://www.notes.net
  16023.     0S0E
  16024. Button5Lotus
  16025. http://www.lotus.com
  16026.     0S0E
  16027. Button6IBM
  16028. http://www.ibm.com
  16029.     0S0E
  16030. Button17BACK
  16031. Query on Data
  16032.     0S0E
  16033. p*%-,
  16034. 4&')-
  16035. 0.*%'
  16036. nos4x
  16037. ^24yz
  16038. oyz{|
  16039. outuo
  16040. mdkeR
  16041. XC$5_c
  16042. \F75b`
  16043. rh>+lf
  16044. EFMATGaXhN9$lc
  16045. H$65c
  16046. r;$6dc
  16047. QI6$k`
  16048. HT76f
  16049. eiPXI$65
  16050. <TNC:;+c
  16051. Q=8$k
  16052. dnPVF:8;k`
  16053. N;8$+
  16054. ZG=<6R
  16055. hH8:>k`
  16056. VF?:8$5
  16057. ]FC?=8f
  16058. ZA;>?k`
  16059. SN@?;75
  16060. VSFIB@:9+
  16061. 6AMojo^R
  16062. joHN;<9$+d
  16063. EI;>?>k`
  16064. J;<9$lf
  16065. _kik6:
  16066. :<7;8$5d
  16067. \L=@W
  16068. ><$ln
  16069. iPrF>=
  16070. <U;8$lf
  16071. hIBCR
  16072. iI?@B@:7+
  16073. dcPicf
  16074. ^<$5d
  16075. \L=@BR
  16076. iMCB?:965c
  16077. P    Sj>?@?;k`
  16078. eD<$lf
  16079. hIBCG`
  16080. B?;$5
  16081. ]FIBkc
  16082. [CB><$5
  16083. @=9b`
  16084. ^A$gf
  16085. hIBCBUi
  16086. aCB=86
  16087. h@=865
  16088. \NKCB?:7$[
  16089. \L$+W
  16090. ]I@B@=^
  16091. XL@:9+
  16092. EF9768
  16093. j:?=<9=
  16094. M=865
  16095. B>865+H
  16096. EL97$A
  16097. M@B>;8C
  16098. NI=96
  16099. =?B@><7$9=@
  16100. A:;96+69:>:9
  16101. 8:?@>;$5
  16102. 9=?@=8$7<>
  16103. :<$+69;:;7
  16104. :<7$9;
  16105. 6    7;>?=<$5
  16106. :<965+$8;:
  16107. ;8$+678<96
  16108. +7<:;8$5
  16109. ;8$6$8
  16110. 56798;
  16111. ;89$65
  16112. _ecOl
  16113. rh>+lf
  16114. \M$7$+5
  16115. =7$lf
  16116. [<$6gc
  16117. HT76f
  16118. eiPXI$65
  16119. \M8;87+
  16120. rA;8$5gf
  16121. i>86f
  16122. n:9lc
  16123. F9<8k`
  16124. N;8$+
  16125. \L;=;9+
  16126. H?:9+
  16127. F;:;k`
  16128. VF?:8$5
  16129. \FB@d
  16130. \L:>:9+
  16131. ]C><6
  16132. F:>:k`
  16133. SN@?;75
  16134. V]ZH@Bd
  16135. \L:>:9+
  16136. H@:7lf
  16137. F=>:k`
  16138. VSFIB@:9+
  16139. jMA@Bd
  16140. \L:>:9+
  16141. hB>8+f
  16142. QTBTi
  16143. F=>:k`
  16144. J;<9$lf
  16145. QTBCB@
  16146. XTU<U$l_
  16147. mdnPX
  16148. iJ?:6f
  16149. QTBKDi
  16150. F=@BR
  16151. F>?:k`
  16152. <U;8$lf
  16153. hIBCR
  16154. iI?@B@:7+
  16155. hNLHjD`
  16156. SB>7f
  16157. eD<$lf
  16158. hIBCG`
  16159. B?;$5
  16160. QTBCB?>=
  16161. ZT;?CTe
  16162. XM?7f
  16163. QTBCB?c
  16164. FB@;b`
  16165. ^A$gf
  16166. hIBCBUi
  16167. aCB=86
  16168. ST@B?:<
  16169. VF8=@
  16170. ST@B?
  16171. SLKB=Y
  16172. Z:>=<8<
  16173. ZCB=U[
  16174. \L$+W
  16175. ]I@B@=^
  16176. XL@:9+
  16177. G@B><$6
  16178. H<>@B?>A
  16179. ><9<H
  16180. JKB=9G
  16181. IB=97H
  16182. EL97$A
  16183. M@B>;8C
  16184. NI=96
  16185. 9:?@=9+5
  16186. +9=?@?
  16187. :A:;898;>?>;
  16188. <:?@>;7$9=
  16189. 8:?BC@=9
  16190. 9:>:96+$8:?B@=96569=
  16191. 9=?@=8$7<>
  16192. ;9$6$8:
  16193. ;9$9;
  16194. 7;:;96
  16195. :96569:
  16196. :<7$9;
  16197. 6    7;>?=<$5
  16198. 8$+568
  16199. <;<96
  16200. 569;:;86
  16201. 69<87+
  16202. 569<;<7+5+7<
  16203. ;8$6$8
  16204. pppxxx
  16205. hhh```XXXPPPXX`HHH@@@@Xx
  16206. (HHP 
  16207. 888H( 8888((@0(@
  16208.  `X0 
  16209. ("http://www.not22222222ab787358c5ac3
  16210. 44444444
  16211. 00000000
  16212. 00000000
  16213. 7358c5ac3
  16214. 7358c5ac3
  16215. 00000000
  16216. c5ac3
  16217. 7358c5ac3
  16218. O=Lotus Notes
  16219. O=Lotus Notes
  16220. PURSAFO
  16221. |.:#U
  16222. O=Lotus Notes
  16223. CN=Lotus Notes Template Development/O=Lotus Notes
  16224. PURSAFO
  16225. $ViewMapDataset
  16226. $ViewMapLayout
  16227. $NavImagemap
  16228.