home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 1998 October A / Pcwk10a98.iso / Lotus / LOTUS / SMASTERS / FLG / GTSCRPT2.LSS < prev    next >
Text File  |  1996-03-18  |  27KB  |  775 lines

  1. Use "lsconst"
  2. Use "gtstring"
  3. Use "gtconst"
  4.  
  5.  
  6. '//-------------------------------------------------------------------------------------
  7. '// Post Tips scripts - displayed at when a Content Topic is chosen
  8. '//-------------------------------------------------------------------------------------
  9. Public Sub ITStrategyMessage()
  10.     Dim OutMsg As String
  11.     
  12.     OutMsg = WelcomeText1 + ITStrategyTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  13.              ITStrategyMsg1 + Chr$(10) + Chr$(10) + ITStrategyMsg2
  14.     Messagebox OutMsg, 0, WelcomeTitle
  15. End Sub
  16.  
  17. Public Sub MarketStrategyMessage()
  18.     Dim OutMsg As String
  19.     
  20.     OutMsg = WelcomeText1 + MarketStrategyTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  21.              MarketStrategyMsg + Chr$(10) + Chr$(10) + KotlerCommon1 + Chr$(10) + Chr$(10) + _
  22.                 KotlerCommon2 + Chr$(10) + Chr$(10) + KotlerCommon3 + Chr$(10) + Chr$(10) + KotlerCommon4 
  23.     Messagebox OutMsg, 0, WelcomeTitle
  24. End Sub
  25.  
  26. Public Sub MarketSegmentationMessage()
  27.     Dim OutMsg As String
  28.     
  29.     OutMsg = WelcomeText1 + MarketSegmentationTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  30.              MarketSegmentationMsg + Chr$(10) + Chr$(10) + KotlerCommon1 + Chr$(10) + Chr$(10) + _
  31.                 KotlerCommon2 + Chr$(10) + Chr$(10) + KotlerCommon3 + Chr$(10) + Chr$(10) + KotlerCommon4 
  32.     Messagebox OutMsg, 0, WelcomeTitle
  33. End Sub
  34.  
  35. Public Sub MarketingMixMessage()
  36.     Dim OutMsg As String
  37.     
  38.     OutMsg = WelcomeText1 + MarketingMixTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  39.                 MarketingMixMsg + Chr$(10) + Chr$(10) + KotlerCommon1 + Chr$(10) + Chr$(10) + _
  40.                 KotlerCommon2 + Chr$(10) + Chr$(10) + KotlerCommon3 + Chr$(10) + Chr$(10) + KotlerCommon4 
  41.     Messagebox OutMsg, 0, WelcomeTitle
  42. End Sub
  43.  
  44. Public Sub MarketingPlanMessage()
  45.     Dim OutMsg As String
  46.     
  47.     OutMsg = WelcomeText1 + MarketingPlanTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  48.                 MarketingPlanMsg + Chr$(10) + Chr$(10) + KotlerCommon1 + Chr$(10) + Chr$(10) + _
  49.                 KotlerCommon2 + Chr$(10) + Chr$(10) + KotlerCommon3 + Chr$(10) + Chr$(10) + KotlerCommon4 
  50.     Messagebox OutMsg, 0, WelcomeTitle
  51. End Sub
  52.  
  53. Public Sub MeetingMessage()
  54.     Dim OutMsg As String
  55.     
  56.     OutMsg = WelcomeText1 + MeetingTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  57.                 MeetingMsg1 + Chr$(10) + Chr$(10) + MeetingMsg2 + Chr$(10) + _
  58.                 Chr$(10) + MeetingMsg3 + Chr$(10) + Chr$(10) + MeetingMsg4 + Chr$(10) + _
  59.                 Chr$(10) + MeetingMsg5 + Chr$(10) + Chr$(10) + MeetingMsg6
  60.     Messagebox OutMsg, 0, WelcomeTitle
  61. End Sub
  62.  
  63. Public Sub PositioningMessage()
  64.     Dim OutMsg As String
  65.     
  66.     OutMsg = WelcomeText1 + PositioningTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  67.                 PositioningMsg1 + Chr$(10) + Chr$(10) + PositioningMsg2
  68.     Messagebox OutMsg, 0, WelcomeTitle
  69. End Sub
  70.  
  71. Public Sub QualityImprovementMessage()
  72.     Dim OutMsg As String
  73.     
  74.     OutMsg = WelcomeText1 + QualityImprovementTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  75.                 QualityImprovementMsg1 + Chr$(10) + Chr$(10) + QualityImprovementMsg2 + Chr$(10) + Chr$(10) + _
  76.                 QualityImprovementMsg3 + Chr$(10) + QualityImprovementMsg4 + Chr$(10) + QualityImprovementMsg5 + _
  77.                 Chr$(10) + QualityImprovementMsg6 + Chr$(10) + QualityImprovementMsg7 + Chr$(10) + Chr$(10) + _
  78.                 QualityImprovementMsg8
  79.     Messagebox OutMsg, 0, WelcomeTitle
  80. End Sub
  81.  
  82. Public Sub SalesByKenWaxMessage()
  83.     Dim OutMsg As String
  84.     
  85.     OutMsg = WelcomeText1 + SalesByKenWaxTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  86.                 SalesByKenWaxMsg1 + Chr$(10) + Chr$(10) + SalesByKenWaxMsg2
  87.     
  88.     Messagebox OutMsg, 0, WelcomeTitle
  89. End Sub
  90.  
  91. Public Sub SalesByZiglarMessage()
  92.     Dim OutMsg As String
  93.     
  94.     OutMsg = WelcomeText1 + SalesByZiglarTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  95.                 SalesByZiglarMsg1 + Chr$(10) + Chr$(10) + SalesByZiglarMsg2 + Chr$(10) + Chr$(10) + _
  96.                 SalesByZiglarMsg3
  97.     Messagebox OutMsg, 0, WelcomeTitle
  98. End Sub
  99.  
  100. Public Sub StrategicAllianceMessage()
  101.     Dim OutMsg As String
  102.     
  103.     OutMsg = WelcomeText1 + StrategicAllianceTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  104.                 StrategicAllianceMsg1 + Chr$(10) + Chr$(10) + StrategicAllianceMsg2 + Chr$(10) + _
  105.                 Chr$(10) +     StrategicAllianceMsg3 + Chr$(10) + Chr$(10) + StrategicAllianceMsg4
  106.     Messagebox OutMsg, 0, WelcomeTitle
  107. End Sub
  108.  
  109. Public Sub StrategicPlanMessage()
  110.     Dim OutMsg As String
  111.     
  112.     OutMsg = WelcomeText1 + StrategicPlanTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  113.                 StrategicPlanMsg1 + Chr$(10) + Chr$(10) + StrategicPlanMsg2 + Chr$(10) + Chr$(10) + _
  114.                 StrategicPlanMsg3 + Chr$(10) + StrategicPlanMsg4 + Chr$(10) + StrategicPlanMsg5 + Chr$(10) + _
  115.                 StrategicPlanMsg6 + Chr$(10) + StrategicPlanMsg7 + Chr$(10) + Chr$(10) + _
  116.                 StrategicPlanMsg8
  117.     Messagebox OutMsg, 0, WelcomeTitle
  118. End Sub
  119.  
  120. Public Sub TrainingMessage()
  121.     Dim OutMsg As String
  122.     
  123.     OutMsg = WelcomeText1 + TrainingTitle + WelcomeText2 + Chr$(10) + Chr$(10) + _ 
  124.                 TrainingMsg1 + Chr$(10) + Chr$(10) + TrainingMsg2 + Chr$(10) + _
  125.                 Chr$(10) + TrainingMsg3    + Chr$(10) + TrainingMsg4 + Chr$(10) + _
  126.                 TrainingMsg5 + Chr$(10) + Chr$(10) + TrainingMsg6
  127.     Messagebox OutMsg, 0, WelcomeTitle
  128. End Sub
  129.  
  130.  
  131. '//-----------------------------------------------------------------------------------------------------------------------
  132. '// Scripts for More Info Buttons
  133. '//-----------------------------------------------------------------------------------------------------------------------
  134. Public Sub MoreITStrategyInfo()
  135.     Messagebox ITStrategyInfo, 0, MoreInformationTitle
  136.     Selection.ClearSelection
  137. End Sub
  138.  
  139. Public Sub MoreKotlerInfo()
  140.     Messagebox KotlerInfo, 0, MoreInformationTitle
  141.     Selection.ClearSelection
  142. End Sub
  143.  
  144. Public Sub MorePositioningInfo()
  145.     Messagebox PositioningInfo, 0, MoreInformationTitle
  146.     Selection.ClearSelection
  147. End Sub
  148.  
  149. Public Sub MoreQualityImprovementInfo()
  150.     Messagebox QualityImprovementInfo, 0, MoreInformationTitle
  151.     Selection.ClearSelection
  152. End Sub
  153.  
  154. Public Sub MoreSalesByKenWaxInfo()
  155.     Messagebox SalesByKenWaxInfo, 0, MoreInformationTitle
  156.     Selection.ClearSelection
  157. End Sub
  158.  
  159. Public Sub MoreSalesByZiglarInfo()
  160.     Messagebox SalesByZiglarInfo, 0, MoreInformationTitle
  161.     Selection.ClearSelection
  162. End Sub
  163.  
  164. Public Sub MoreStrategicPlanInfo()
  165.     Dim OutMsg As String
  166.     
  167.     OutMsg = StrategicPlanInfo1 + Chr$(10) + Chr$(10) + StrategicPlanInfo2 + Chr$(10) + StrategicPlanInfo3 + _
  168.     Chr$(10) + StrategicPlanInfo4 + Chr$(10) + StrategicPlanInfo5
  169.     Messagebox OutMsg, 0, MoreInformationTitle
  170.     Selection.ClearSelection
  171. End Sub
  172.  
  173.  
  174. '//-------------------------------------------------------------------------------------
  175. '// Drop symbol 9 of textbox.sym
  176. '//-------------------------------------------------------------------------------------
  177. Public Sub DropStarBurst
  178.     Dim NewSym As DrawObject
  179.     
  180.     Set NewSym = CurrentPage.CreateSymbol([Freelance].Preferences.TemplateDir + "textbox.sym", 8)
  181.     NewSym.Move 1000,1000
  182.     Selection.ClearSelection
  183. End Sub
  184.  
  185.  
  186. '//-------------------------------------------------------------------------------------
  187. '// Fill in Team Members 
  188. '//-------------------------------------------------------------------------------------
  189. Public Sub FillTeamMembers
  190.     Dim TeamTxtBlk As DrawObject
  191.     
  192.     Set TeamTxtBlk = CurrentPage.FindObject(TeamMembersPBName)
  193.     TeamTxtBlk.TextBlock.Text = TeamMembersText
  194.     Selection.ClearSelection
  195. End Sub
  196.  
  197.  
  198. '//-------------------------------------------------------------------------------------
  199. '// Drop 'X' on page
  200. '//-------------------------------------------------------------------------------------
  201. Public Sub DropX
  202.     Dim NewSym As DrawObject
  203.     
  204.     Set NewSym = CurrentPage.CreateSymbol([Freelance].Preferences.TemplateDir + "buttons.sym", 1)
  205.     NewSym.Stretch 0, 0, 100, 100, 11, 11, 1
  206.     NewSym.Move 10900,5100
  207.     Selection.ClearSelection
  208. End Sub
  209.  
  210.  
  211. '//-------------------------------------------------------------------------------------
  212. '// Launch browser off a button
  213. '//-------------------------------------------------------------------------------------
  214. Public Sub LaunchTextBox
  215.     CurrentPage.CreateSymbol [Freelance].Preferences.TemplateDir + "textbox.sym"
  216.     Selection.ClearSelection
  217. End Sub
  218.  
  219.  
  220. '//----------------------------------------------------------------------------------------
  221. '// Routines for Agenda scripts
  222. '//----------------------------------------------------------------------------------------
  223. Private Sub SetAgenda(TextToInsert As String)
  224.     Dim    AgendaTxtBlk As DrawObject,    _
  225.     DummyTextBlk As DrawObject
  226.     
  227.     Set AgendaTxtBlk = CurrentPage.FindObject(AgendaPBName)
  228.     Set DummyTextBlk = Currentpage.CreateText(1000,1000,1000,1000)
  229.     DummyTextBlk.Textblock.Text = "temp"
  230.     AgendaTxtBlk.Insert(DummyTextBlk)
  231.     
  232.     Forall Object In currentpage.objects
  233.         If(Object.TextBlock.text = "temp") Then
  234.             Object.TextBlock.text = TextToInsert
  235.             Object.TextBlock.EnterEditMode
  236.             Exit Forall
  237.         End If
  238.     End Forall    
  239. End Sub
  240.  
  241. Public Sub BenefitsPlanAgenda()
  242.     SetAgenda(BenefitsPlanAgndTxt)
  243. End Sub
  244.  
  245. Public Sub BusinessPlanAgenda()
  246.     SetAgenda(BusinessPlanAgndTxt)
  247.     Print BusinessPlanAgndTxt
  248. End Sub
  249.  
  250. Public Sub BrainStormingAgenda()
  251.     SetAgenda(BrainStormingAgndTxt)
  252. End Sub
  253.  
  254. Public Sub BusinessReviewAgenda()
  255.     SetAgenda(BusinessReviewAgndTxt)
  256. End Sub
  257.  
  258. Public Sub CompensationPlanAgenda()
  259.     SetAgenda(CompensationPlanAgndTxt)
  260. End Sub
  261.  
  262. Public Sub CompetitorAgenda()
  263.     SetAgenda(CompetitorAgndTxt)
  264. End Sub
  265.  
  266. Public Sub CorporateOverviewAgenda()
  267.     SetAgenda(CorporateOverviewAgndTxt)
  268. End Sub
  269.  
  270. Public Sub IndustryAgenda()
  271.     SetAgenda(IndustryAgndTxt)
  272. End Sub
  273.  
  274. Public Sub ITAgenda()
  275.     SetAgenda(ITAgndTxt)
  276. End Sub
  277.  
  278. Public Sub MarketingMixAgenda()
  279.     SetAgenda(MarketingMixAgndTxt)
  280. End Sub
  281.  
  282. Public Sub MarketingPlanAgenda()
  283.     SetAgenda(MarketingPlanAgndTxt)
  284. End Sub
  285.  
  286. Public Sub MarketResearchAgenda()
  287.     SetAgenda(MarketResearchAgndTxt)
  288. End Sub
  289.  
  290. Public Sub MarketSegmentationAgenda()
  291.     SetAgenda(MarketSegmentationAgndTxt)
  292. End Sub
  293.  
  294. Public Sub MarketStrategyAgenda()
  295.     SetAgenda(MarketStrategyAgndTxt)
  296. End Sub
  297.  
  298. Public Sub NewMarketEntryAgenda()
  299.     SetAgenda(NewMarketEntryAgndTxt)
  300. End Sub
  301.  
  302. Public Sub OrientationAgenda()
  303.     SetAgenda(OrientationAgndTxt)
  304. End Sub
  305.  
  306. Public Sub PositioningAgenda()
  307.     SetAgenda(PositioningAgndTxt)
  308. End Sub
  309.  
  310. Public Sub ProductServiceBriefingAgenda()
  311.     SetAgenda(ProductServiceBriefingAgndTxt)
  312. End Sub
  313.  
  314. Public Sub ProductLaunchAgenda()
  315.     SetAgenda(ProductLaunchAgndTxt)
  316. End Sub
  317.  
  318. Public Sub ProjectStatusReportAgenda()
  319.     SetAgenda(ProjectStatusReportAgndTxt)
  320. End Sub
  321.  
  322. Public Sub ProposalAgenda()
  323.     SetAgenda(ProposalAgndTxt)
  324. End Sub
  325.  
  326. Public Sub StrategicAllianceAgenda()
  327.     SetAgenda(StrategicAllianceAgndTxt)
  328. End Sub
  329.  
  330. Public Sub SalesByKenWaxAgenda()
  331.     SetAgenda(SalesByKenWaxAgndTxt)
  332. End Sub
  333.  
  334. Public Sub SalesByZiglarAgenda()
  335.     SetAgenda(SalesByZiglarAgndTxt)
  336. End Sub
  337.  
  338. Public Sub TeamMeetingAgenda()
  339.     SetAgenda(TeamMeetingAgndTxt)
  340. End Sub
  341.  
  342. Public Sub TrainingAgenda()
  343.     SetAgenda(TrainingAgndTxt)
  344. End Sub
  345.  
  346.  
  347. '//----------------------------------------------------------------------------------------
  348. '// Script to print current page
  349. '//----------------------------------------------------------------------------------------
  350. Public Sub PrintCurrentPage()
  351.     Dim PrintRetVal As Integer
  352.     
  353.     PrintRetVal = Messagebox(PrintMessage, MB_OKCANCEL, PrintMsgTitle)
  354.     If(PrintRetVal = IDOK) Then
  355.         CurrentDocument.Print CurrentPage.Number, CurrentPage.Number, 1
  356.     End If
  357.     Selection.ClearSelection
  358. End Sub
  359.  
  360.  
  361. '//-------------------------------------------------------------------------------------
  362. '// Create Agenda item pages from agenda table contents 
  363. '//-------------------------------------------------------------------------------------
  364. Public Sub CreatePagesFromAgenda()
  365.     Dim    AgendaTableObj                        As Table,                _
  366.     Cell                                    As TextBlock,            _
  367.     TitleTextBlk                        As TextBlock,            _
  368.     ClockTextBlk                        As TextBlock,            _
  369.     TitlePB                                As PlacementBlock,    _
  370.     AgendaText(2 To 16, 1 To 8)    As String,                _
  371.     PageTitle                            As String,                _
  372.     ColumnMessage                        As String,                _
  373.     Row                                    As Integer,                _
  374.     Col                                    As Integer,                _
  375.     NumRows                                As Integer,                _
  376.     NumCols                                As Integer,                _
  377.     NumChars                                As Integer,                _
  378.     RetVal                                As Integer,                _
  379.     MaxRows                                As Integer
  380.     
  381.     RetVal = Messagebox(CreateAgendaPagesMessage, MB_OKCANCEL, CreateAgendaPagesTitle)
  382.     Selection.ClearSelection
  383.     If(RetVal = IDOK) Then
  384.         Set AgendaTableObj = CurrentPage.FindObject(AgendaTableName)
  385.         
  386.         NumCols = AgendaTableObj.ColCount
  387.         If(NumCols <> 3) Then                        '// user added/deleted columns, so to keep from unpredictable results
  388.             ColumnMessage = ColumnError1 + Chr$(10) + Chr$(10) + ColumnError2
  389.             Messagebox ColumnMessage, MB_OK, ErrorMsg
  390.         Else
  391.             Print "rows=",Numrows,"cols=",numcols
  392.             NumRows = 1
  393.             MaxRows = AgendaTableObj.RowCount
  394.             Print AgendaTableObj.name,maxrows, AgendaTableObj.RowCount
  395.             Set Cell = AgendaTableObj.GetCell(NumRows, 1)                            '// find number of filled in rows
  396.             While((Not Strcompare(Cell.Text, " ")) And (NumRows < MaxRows))
  397.                 NumRows = NumRows + 1
  398.                 Set Cell = AgendaTableObj.GetCell(NumRows, 1)
  399.                 Print NumRows,cell.text
  400.             Wend
  401.  
  402.             For Row = 2 To NumRows
  403.                 Set Cell = AgendaTableObj.GetCell(Row, 1)
  404.                 If(Not Strcompare(Cell.Text, " ")) Then
  405.                     Set Cell = AgendaTableObj.GetCell(Row, 1)
  406.                     For Col = 1 To AgendaTableObj.ColCount
  407.                         Set Cell = AgendaTableObj.GetCell(Row, Col)
  408.                         AgendaText(Row, Col) = Cell.Text
  409.                         Print row,col,agendatext(row,col)
  410.                     Next Col
  411.                 End If
  412.             Next Row
  413.             
  414.             For Row = 2 To NumRows
  415.                 PageTitle = ""
  416.                 For Col = 2 To NumCols
  417.                     If(Col = NumCols) Then
  418.                         PageTitle = PageTitle + AgendaText(Row, Col)
  419.                     Else
  420.                         PageTitle = PageTitle + AgendaText(Row, Col) + ", "
  421.                     End If
  422.                 Next Col
  423.                 Print Row,PageTitle
  424.                 CurrentDocument.CreatePageFromTemplate PageTitle, TemplateIndex
  425.                 Set TitleTextBlk = CurrentPage.CreateText(1000, 1000, 1000, 1000)
  426.                 TitleTextBlk.Text = PageTitle
  427.                 Set TitlePB = CurrentPage.FindObject(AgendaItemTitlePBName)
  428.                 TitlePB.Insert TitleTextBlk
  429.                 Set ClockTextBlk = CurrentPage.FindObject(AgendaItemClockTxtName)
  430.                 ClockTextBlk.Text = AgendaText(Row, 1)
  431.                 Print row, ClockTextblk.text
  432.             Next Row
  433.         End If
  434.     End If
  435. End Sub
  436.  
  437.  
  438. '//-------------------------------------------------------------------------------------
  439. '// Column fill scripts
  440. '//-------------------------------------------------------------------------------------
  441. Private Sub ColumnFill(ColumnName As String, FillText As String)
  442.     Dim     ColObj    As DrawObject 
  443.     
  444.     Print FillText
  445.     Set ColObj = CurrentPage.FindObject(ColumnName)
  446.     ColObj.TextBlock.Text = FillText
  447.     Sendkeys "^{END}"
  448. End Sub
  449.  
  450. Public Sub FillStrengthsColumn()
  451.     ColumnFill StrengthsColumnPBName, StrengthsColumnText
  452. End Sub
  453.  
  454. Public Sub FillWeaknessesColumn()
  455.     ColumnFill WeaknessesColumnPBName, WeaknessesColumnText
  456. End Sub
  457.  
  458. Public Sub FillThreatsColumn()
  459.     ColumnFill ThreatsColumnPBName, ThreatsColumnText
  460. End Sub
  461.  
  462. Public Sub FillOpportunitiesColumn()
  463.     ColumnFill OpportunitiesColumnPBName, OpportunitiesColumnText
  464. End Sub
  465.  
  466. Public Sub FillGoodNewsColumn()
  467.     ColumnFill GoodNewsColumnPBName, GoodNewsColumnText
  468. End Sub
  469.  
  470. Public Sub FillBadNewsColumn()
  471.     ColumnFill BadNewsColumnPBName, BadNewsColumnText
  472. End Sub
  473.  
  474. Public Sub FillPaidColumn()
  475.     ColumnFill PaidPBName, PaidColumnText
  476. End Sub
  477.  
  478. Public Sub FillUnpaidColumn()
  479.     ColumnFill UnpaidPBName, UnpaidColumnText
  480. End Sub
  481.  
  482. Public Sub FillEntryColumn()
  483.     ColumnFill EntryPBName, EntryColumnText
  484. End Sub
  485.  
  486. Public Sub FillExitColumn()
  487.     ColumnFill ExitPBName, ExitColumnText
  488. End Sub
  489.  
  490.  
  491. '//----------------------------------------------------------------------------------------
  492. '// Routines to launch symbol or diagram browser with specified sym or dgm file
  493. '//----------------------------------------------------------------------------------------
  494. Private Sub LaunchSymBrowser(SymbolFile As String)
  495.     Dim SymPB As DrawObject
  496.     
  497.     Set SymPB = CurrentPage.FindObject(SymPBName)
  498.     SymPB.PlacementBlock.BrowseSymbols([Freelance].Preferences.TemplateDir + SymbolFile)
  499. End Sub
  500. Private Sub LaunchDgmBrowser(DiagramFile As String)
  501.     Dim DgmPB As DrawObject
  502.     
  503.     Set DgmPB = CurrentPage.FindObject(SymPBName)
  504.     DgmPB.PlacementBlock.BrowseDiagrams([Freelance].Preferences.TemplateDir + DiagramFile)
  505. End Sub
  506. Public Sub AgendaSymbol()
  507.     LaunchSymBrowser("agenda.sym")
  508. End Sub
  509. Public Sub CartoonSymbol()
  510.     LaunchSymBrowser("cartoons.sym")
  511. End Sub
  512. Public Sub ClosureSymbol()
  513.     LaunchSymBrowser("closure.sym")
  514. End Sub
  515. Public Sub CommunicationSymbol()
  516.     LaunchSymBrowser("communic.sym")
  517. End Sub
  518. Public Sub FinanceSymbol()
  519.     LaunchSymBrowser("finance.sym")
  520. End Sub
  521. Public Sub MedicalSymbol()
  522.     LaunchSymBrowser("medical.sym")
  523. End Sub
  524. Public Sub NextStepSymbol()
  525.     LaunchSymBrowser("nextstep.sym")
  526. End Sub
  527. Public Sub PeopleSymbol()
  528.     LaunchSymBrowser("people.sym")
  529. End Sub
  530. Public Sub ProjectSymbol()
  531.     LaunchSymBrowser("project.sym")
  532. End Sub
  533. Public Sub SalesSymbol()
  534.     LaunchSymBrowser("sales.sym")
  535. End Sub
  536. Public Sub ScienceSymbol()
  537.     LaunchSymBrowser("science.sym")
  538. End Sub
  539. Public Sub TextBoxSymbol()
  540.     LaunchSymBrowser("textbox.sym")
  541. End Sub
  542. Public Sub TimeSymbol()
  543.     LaunchSymBrowser("time.sym")
  544. End Sub
  545. Public Sub GraphDiagram()
  546.     LaunchDgmBrowser("graph.dgm")
  547.     Sendkeys"{DOWN}{DOWN}"
  548. End Sub
  549. Public Sub FlowDiagram()
  550.     LaunchDgmBrowser("flow.dgm")
  551. End Sub
  552. Public Sub GanttDiagram()
  553.     LaunchDgmBrowser("gantt.dgm")
  554. End Sub
  555.  
  556. Public Sub EndScript()
  557.     End
  558. End Sub
  559.  
  560. '// Finds specified timeline event stored in TimeLineInfo
  561. '//--------------------------------------------------------------------------------
  562. PRIVATE FUNCTION SelectEvent(index As Integer, TimeLineInfo() As GoalsStruct) As DrawObject
  563.    ForAll Object in Selection.SelectedObjects
  564.       If(Object.isText AND Object.left = TimeLineInfo(index).position) Then
  565.          set SelectEvent = Object
  566.          Exit ForAll
  567.       End If
  568.    End ForAll
  569. END FUNCTION
  570.  
  571.  
  572. '//--------------------------------------------------------------------------------
  573. '//   Add/Delete Timeline Event Script
  574. '//--------------------------------------------------------------------------------
  575.  
  576. '// sets new coordinates for events - does not store text
  577. '//--------------------------------------------------------------------------------
  578. PRIVATE SUB FindTimelineTextShapes(TimeLineInfo() As GoalsStruct)
  579.    Dim    Index            As Integer,        _
  580.            Count            As Integer,        _
  581.            i                As Integer,        _
  582.             j                As Integer
  583.  
  584.     For i = 1 To (MaxTimeLineEvents+2)                                    '// zero out all position information 
  585.         TimeLineInfo(i).Position = 0                                        '// in case it has info about old diagrams
  586.     Next i
  587.  
  588.    Count = 1
  589.    ForAll Object in Selection.SelectedObjects
  590.         If(Object.IsText) Then                                                '// sorts by left coordinate of each text shape found
  591.             Index = Count - 1
  592.             If(Count <> 1) Then
  593.                 While((TimeLineInfo(Index).Position > Object.Left) AND (Index > 0))
  594.                     TimeLineInfo(Index+1).Position = TimeLineInfo(Index).Position
  595.                     Index = Index - 1
  596.                 Wend
  597.             End If
  598.             TimeLineInfo(Index+1).Position = Object.Left
  599.             Count = Count + 1
  600.         End If
  601.    End ForAll
  602. END SUB
  603.  
  604. '// Main TimeLine routine
  605. '//--------------------------------------------------------------------------------
  606. PUBLIC SUB Timeline()
  607.    Dim    PackedVal        As Long,            _
  608.            DgmPath            As String,        _
  609.            NumEvents        As Integer,        _
  610.             Count                As Integer,        _
  611.             DefaultButton     As Integer,        _
  612.             x                    As Integer,        _
  613.             NumToAdd            As Integer,        _
  614.            NumToDel            As Integer,        _
  615.            i                    As Integer,        _
  616.            Index                As Integer,     _
  617.             MaxTextBlocks    As Integer,        _
  618.             MinTextBlocks    As Integer,        _
  619.             MaxSpinnerVal    As Integer,        _
  620.             TimeLine            As DrawObject,    _
  621.             Temp                As DrawObject, _
  622.            TimeLineInfo(MaxTimeLineEvents+2)    As GoalsStruct    '// Add 2 for text blocks on timeline
  623.  
  624.  
  625.     MaxTextBlocks = MaxTimeLineEvents + 2                            '// Add 2 for text blocks on timeline
  626.     MinTextBlocks = MinTimeLineEvents + 2    
  627.    
  628.    For x = 1 to MaxTextBlocks                                         '// Init array of GoalsStruct's
  629.       TimeLineInfo(x).Position = 0
  630.       TimeLineInfo(x).Text = NULLSTR
  631.    Next x
  632.     
  633.     Selection.ClearSelection
  634.    Set Temp = CurrentPage.FindObject(TimeLineDgmName)            '// find timeline diagram
  635.    Set TimeLine = Temp.Replicate()                                    '// take dgm out of pb to ungroup
  636.    Temp.Cut                                                    '// delete dgm in pb
  637.     Selection.ClearSelection
  638.    TimeLine.Ungroup                                           '// ungroup dgm copied - not in pb
  639.  
  640. print Selection.selectioncount
  641.    If(Selection.SelectionCount < (MinTimeLineEvents + OtherTimeLineObjCount) OR _
  642.            Selection.SelectionCount > (MaxTimeLineEvents + OtherTimeLineObjCount)) Then
  643.       MessageBox InvalidDiagram, 0, ErrorMsg
  644.       EndScript
  645.    End If                                                             '// Checking for invalid diagram
  646.  
  647.    SELECT Case(Selection.SelectionCount)                          '// Find number of timeline events
  648.       Case 6: NumEvents = 3
  649.       Case 7: NumEvents = 4
  650.       Case 8: NumEvents = 5
  651.       Case 9: NumEvents = 6
  652.       Case 10: NumEvents = 7
  653.       Case 11: NumEvents = 8
  654.    END SELECT
  655.  
  656.    If(NumEvents = MaxTimeLineEvents) Then                            '// if max number of events, then default to delete an event
  657.       DefaultButton = 1
  658.    Else                                                                '// otherwise default to add
  659.       DefaultButton = 0
  660.    End If
  661.  
  662.    Count = 1
  663.    ForAll Obj In Selection.SelectedObjects                       '// finds text shapes and stores text
  664.         If(Obj.IsText) Then                                                '// sorts by left coordinate of each text shape found
  665.             Index = Count - 1
  666.             If(Count <> 1) Then
  667.                 While((TimeLineInfo(Index).Position > Obj.Left) AND (Index > 0))
  668.                     TimeLineInfo(Index+1) = TimeLineInfo(Index)
  669.                     Index = Index - 1
  670.                 Wend
  671.             End If
  672.             TimeLineInfo(Index+1).Position = Obj.Left
  673.             TimeLineInfo(Index+1).Text = Obj.Text
  674.     For  x = 1 to Count
  675.     print timelineinfo(x).text, timelineinfo(x).position
  676.     next x
  677.     print "------------"
  678.             Count = Count + 1
  679.     
  680.         End If
  681.    End ForAll
  682.  
  683.    Set TimeLine = Selection.Group()
  684. print "two"
  685.    DgmPath = [Freelance].Preferences.TemplateDir + TimelineDgmFileName
  686.     
  687.     If(NumEvents = MaxTimeLineEvents) Then
  688.         MaxSpinnerVal = MaxTimeLineEvents
  689.     Else
  690.         MaxSpinnerVal = NumEvents + 1
  691.     End If
  692.    PackedVal = CurrentDocument.RunDialog(1, TLDlgTitle, DiagramNote, TLAddQuestion, TLDelQuestion, _
  693.                                                             DefaultButton, NULLSTR, NULLSTR, "1", STR$(MaxSpinnerVal), 1, NumEvents)
  694.  
  695.    If((PackedVal And BitField9) = BitField9) Then                '// User ok'd dlg
  696.        If((PackedVal And BitField8) <> BitField8) Then           '// ADD Goal
  697.           NumToAdd = PackedVal AND 255
  698.             If(NumEvents = MaxTimeLineEvents) Then                    '// too many events, can't add
  699.                MESSAGEBOX AddError, 0, ErrorMsg
  700.                TimeLine.PutIntoPlacementBlock(DgmPBID)           '// assume pb has id of DgmID
  701.                TimeLine.Name = TimelineDgmName                   '// so we can find it later
  702.             Else                                                        '// add new event 
  703.                TimeLine.Cut                                      '// delete current event
  704.                Set TimeLine = CurrentPage.CreateSymbol(DgmPath, NumEvents-1)
  705.                Selection.ClearSelection
  706.                TimeLine.Ungroup
  707.             FindTimelineTextShapes TimeLineInfo()              '// Find coordinates for each event and sort by position
  708.  
  709. for x = 1 to NumEvents+3
  710. print Timelineinfo(x).text, Timelineinfo(x).position
  711. next x
  712. print "--------------------"
  713.             x = NumEvents + 3                                             '// add new event in array
  714.                While(x > NumToAdd+1)
  715.                    TimeLineInfo(x).Text = TimeLineInfo(x-1).Text
  716.                x = x - 1
  717.             Wend
  718.             TimeLineInfo(NumToAdd+1).Text = ""                    '// not necessary since not used, but just to be safe
  719.  
  720.             For x = 1 TO (NumToAdd)                             '// re-insert old events
  721.                  Set Temp = SelectEvent(x, TimeLineInfo())
  722.                     If(StrCompare(TimeLineInfo(x).Text, NULLSTR)) Then    '// Don't replace with Null String, removes prompt text
  723.                       Temp.Text = TimeLineInfo(x).Text
  724.                     End If
  725.             Next x
  726. for x = 1 to NumEvents+3
  727. print Timelineinfo(x).text, Timelineinfo(x).position
  728. next x
  729. print "--------------------insert old events"
  730.  
  731.             For x = (NumToAdd+2) TO (NumEvents+3)
  732.                  Set Temp = SelectEvent(x, TimeLineInfo())
  733.                     If(StrCompare(TimeLineInfo(x).Text, NULLSTR)) Then
  734.                       Temp.Text = TimeLineInfo(x).Text
  735.                     End If
  736.             Next x
  737.             Set TimeLine = Selection.Group()               '// put pieces back together
  738.             TimeLine.PutIntoPlacementBlock(DgmPBID)      
  739.             TimeLine.Name = TimelineDgmName                  '// so we can find it later
  740.          End If
  741.       Else                                                    '// delete event
  742.             NumToDel = PackedVal AND BitFields0To7
  743.             If(NumEvents = MinTimeLineEvents) Then
  744.                MESSAGEBOX DeleteError, 0, ErrorMsg
  745.                TimeLine.PutIntoPlacementBlock(DgmPBID)          '// restore event in pb
  746.                 TimeLine.Name = TimelineDgmName
  747.             ElseIf ((NumToDel <= NumEvents) AND (NumToDel > 0)) Then
  748.                TimeLine.Cut
  749.                Set TimeLine = CurrentPage.CreateSymbol(DgmPath, NumEvents-3)
  750.                 Selection.ClearSelection
  751.                TimeLine.Ungroup
  752.             FindTimelineTextShapes TimeLineInfo()                '// Find coordinates for each event and sort
  753.             For x = (NumToDel+1) To (NumEvents+1)                  '// delete event in array of GoalStruct's
  754.                    TimeLineInfo(x).Text = TimeLineInfo(x+1).Text
  755.             Next x
  756.  
  757.             TimeLineInfo(NumEvents+2).Text = ""                '// clear last item in array
  758.             For x = 1 TO (NumEvents+1)                        '// re-insert old TimeLine
  759.                 Set Temp = SelectEvent(x, TimeLineInfo())
  760.                     If(StrCompare(TimeLineInfo(x).Text, NULLSTR)) Then
  761.                    Temp.Text = TimeLineInfo(x).Text
  762.                     End If
  763.             Next x
  764.             Set TimeLine = Selection.Group()               '// put pieces back together
  765.             TimeLine.PutIntoPlacementBlock(DgmPBID)
  766.             TimeLine.Name = TimelineDgmName                     '// so we can find later
  767.          End If
  768.       End If
  769.     Else
  770.         TimeLine.PutIntoPlacementBlock(DgmPBID)                '// user canceled out of dlg
  771.         TimeLine.Name = TimelineDgmName                        '// restore event in pb
  772.    End If                         
  773.    Selection.ClearSelection
  774. END SUB
  775.