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