Flying Logic Forum
May 21, 2018, 10:07:37 PM *
Welcome, Guest. Please login or register.
Did you miss your activation email?

Login with username, password and session length
News: • Flying Logic 3.0.9 has been released!
Click here to visit the Flying Logic home page.
 
   Home   Help Search Login Register  
Pages: [1]
  Print  
Author Topic: Import network?  (Read 12532 times)
rnwolf
Newbie
*
Posts: 14


View Profile
« on: October 24, 2007, 04:23:07 AM »

Hi

I would like to export plans from MS-Project and import them into Flying Logic. This will provide me with an interesting environment scrutinise the dependencies.

I was thinking of writing a VBA script or similar to do this. I've had a look at the .logic files at it seems to be a reasonably straight forward job to create one.  It seems like I can exclude the inEdgeOrder/outEdgeOrder values in the .logic file.

But before I start I was wondering if someone might already have such a script?

Regards
Rudi Wolf

Logged
Robert McNally
Administrator
Full Member
*****
Posts: 203



View Profile
« Reply #1 on: October 24, 2007, 12:13:40 PM »

We do plan on implementing an "Import from MS-Project" feature, but have not gotten to it yet. Yes, the format of a .logic file is pretty straightforward XML, and if you have programming experience you should not have much difficulty writing your own import script.
Logged
rnwolf
Newbie
*
Posts: 14


View Profile
« Reply #2 on: October 27, 2007, 12:07:59 PM »

Here is a MS-Project VBA macro that I wrote to export plan data for further analysis in Flying Logic.

Enjoy
Rudiger Wolf

Code:
Sub ExportPlanToFL()
' --------------------------------------------
' Created by Rudiger Wolf 27th Oct 2007
' http://www.ThroughputFocus.com
' This macro can be used to export data from an MS-Project plan to a Flyling Logic file for further analysis.
' Note! This macro uses the Number10 field for each task. Change this macro if field is already being used.
' --------------------------------------------

Dim theTask As Task
Dim Child As Task
Dim preds As Task
Dim eid As Long
Dim MyFile As String
Dim outputDir As String
Dim fnum As Integer
Dim strToday As String
Dim includeOulineTasks As Boolean

includeOulineTasks = True  ' Use this flag to include / exclude summary tasks

If ActiveProject.Tasks.Count < 1 Then
    MsgBox "No tasks in project file"
    End
End If

'set location and name of file to be written
outputDir = ActiveProject.Path
strToday = Year(Now) & Month(Now) & Day(Now)
MyFile = outputDir & "\" & ActiveProject.Name & "_" & strToday & ".logic"
fnum = FreeFile()
Open MyFile For Output As fnum

Print #fnum, "<?xml version=""1.0"" encoding=""UTF-8""?>"
Print #fnum, "<flyingLogic majorVersion=""2"" minorVersion=""0"">"
Print #fnum, "<displaySettings confidenceVisible=""false"" edgeWeightsVisible=""false"" noteNumbersVisible=""false"" orientation=""Orientation.leftToRight""/>"
Print #fnum, "<decisionGraph>"
Print #fnum, "<entityOperator class=""com.flyinglogic.logicgraph.operator.FuzzyOrVertexOperator"">"
Print #fnum, "<fuzzyOr/>"
Print #fnum, "</entityOperator>"
Print #fnum, "<defaultJunctorOperator class=""com.flyinglogic.logicgraph.operator.FuzzyAndVertexOperator"">"
Print #fnum, "<fuzzyAnd/>"
Print #fnum, "</defaultJunctorOperator>"
Print #fnum, "<logicGraph>"
Print #fnum, "<operatorFamily class=""com.flyinglogic.decisiongraph.DecisionGraphOperatorFamily""/>"
Print #fnum, "<graph majorVersion=""1"" minorVersion=""0"" supportsGroups=""true"">"


Print #fnum, "<vertices>"

' ---- make sure each task has eid ------
' we need to do tasks first followed by summary tasks as flying logic seem to require tasks before groupings
eid = 1
For Each theTask In ActiveProject.Tasks
    If Not theTask Is Nothing Then
        If Not theTask.ExternalTask Then
            If Not theTask.Summary Then
                theTask.Number10 = eid
                eid = eid + 1
            End If
        End If
    End If
Next theTask

' ---- now give each summary task/grouping a eid number
If includeOulineTasks Then

For Each theTask In ActiveProject.Tasks
    If Not theTask Is Nothing Then
        If Not theTask.ExternalTask Then
            If theTask.Summary Then
                ' Make sure summary tasks do not have successors or predecessor links
                If theTask.PredecessorTasks.Count > 0 Then
                    MsgBox "Error. Summary Task=" & theTask.Name & ", has Predecessor Tasks." & Chr(13) & Chr(10) & "Please remove and try again.", vbExclamation
                    End
                End If
                If theTask.SuccessorTasks.Count > 0 Then
                    MsgBox "Error. Summary Task=" & theTask.Name & ", has Successor Tasks." & Chr(13) & Chr(10) & "Please remove and try again.", vbExclamation
                    End
                End If
               
                theTask.Number10 = eid
                eid = eid + 1
            End If
        End If
    End If
Next theTask

End If


For Each theTask In ActiveProject.Tasks
    If Not theTask Is Nothing Then
        If Not theTask.ExternalTask Then
            If Not theTask.Summary Then

                Print #fnum, "<vertex eid=""" & theTask.Number10 & """>"
                Print #fnum, "<attributes>"
                Print #fnum, "<attribute class=""java.lang.String"" key=""type"">entity</attribute>"
                Print #fnum, "<attribute class=""com.flyinglogic.logicgraph.entityclass.EntityClass"" key=""entityClass"">"
                If theTask.Milestone Then
                    Print #fnum, "<entityClass name=""Milestone"" uuid=""89d3fa17-c73f-4e59-ad04-e8189a23b96d""/>"
                Else
                    Print #fnum, "<entityClass name=""Objective"" uuid=""e278cb2e-c25e-4b66-b1c8-3a8be1540cc9""/>"
                End If
                Print #fnum, "</attribute>"
                Print #fnum, "<attribute class=""java.lang.String"" key=""title"" >" & theTask.Name & "</attribute>" ' <<<<<
                Print #fnum, "<attribute class=""com.arciem.FuzzyBoolean"" key=""confidence"">"
                Print #fnum, "<fuzzyBoolean true=""0.5""/>"
                Print #fnum, "</attribute>"
                Print #fnum, "<attribute class=""com.flyinglogic.logicgraph.operator.FuzzyOrVertexOperator"" key=""forwardOperator"">"
                Print #fnum, "<fuzzyOr/>"
                Print #fnum, "</attribute>"
                Print #fnum, "</attributes>"
                Print #fnum, "</vertex>"
            End If
        End If
    End If
Next theTask

' Now loop through all the summary tasks and add groupings
' The flying logic system seems to want grouping information after all the basic entities
If includeOulineTasks Then

For Each theTask In ActiveProject.Tasks
    If Not theTask Is Nothing Then
        If Not theTask.ExternalTask Then
            If theTask.Summary Then
            'The task is a summary task item
                Temp = ""
                For Each Child In theTask.OutlineChildren
                    Temp = Child.Number10 & " " & Temp
                Next Child
                Temp = Left$(Temp, Len(Temp) - 1)
                Print #fnum, "<vertex eid=""" & theTask.Number10 & """ grouped=""" & Temp & """>"
                Print #fnum, "<attributes>"
                Print #fnum, "<attribute class=""java.lang.String"" key=""title"">" & theTask.Name & "</attribute>"
                Print #fnum, "</attributes>"
                Print #fnum, "</vertex>"
            End If
        End If
    End If
Next theTask

End If

Print #fnum, "</vertices>"
Print #fnum, "<edges>"

' Now look at the linkages between the tasks
For Each theTask In ActiveProject.Tasks
    If Not theTask Is Nothing Then
        If Not (theTask.ExternalTask Or theTask.Summary) Then
            For Each preds In theTask.PredecessorTasks
            'Debug.Print "eid=" & eid & "Source = " & preds.ID & "target = " & theTask.ID

            Print #fnum, "<edge eid=""" & eid & """ source=""" & preds.Number10 & """ target=""" & theTask.Number10 & """>"
            Print #fnum, "<attributes>"
            Print #fnum, "<attribute class=""java.lang.Double"" key=""weight"">1.0</attribute>"
            Print #fnum, "<attribute class=""com.flyinglogic.logicgraph.operator.MultiplyEdgeOperator"" key=""forwardOperator"">"
            Print #fnum, "<multiply/>"
            Print #fnum, "</attribute>"
            Print #fnum, "<attribute class=""com.arciem.FuzzyBoolean"" key=""confidence"">"
            Print #fnum, "<fuzzyBoolean true=""0.5""/>"
            Print #fnum, "</attribute>"
            Print #fnum, "</attributes>"
            Print #fnum, "</edge>"
            eid = eid + 1
    Next preds
End If
End If
Next theTask

Print #fnum, "</edges>"

Print #fnum, "</graph>"
Print #fnum, "</logicGraph>"
Print #fnum, "</decisionGraph>"
Print #fnum, "</flyingLogic>"


Close #fnum

MsgBox "FlyingLogic file created. " & Chr(13) & Chr(10) & MyFile, vbInformation

End Sub
Logged
Robert McNally
Administrator
Full Member
*****
Posts: 203



View Profile
« Reply #3 on: October 28, 2007, 02:01:41 AM »

Thanks for that! Smiley
Logged
Mikem
Newbie
*
Posts: 1


View Profile
« Reply #4 on: November 15, 2007, 05:00:47 PM »

Is the schema for a .logic file (like a .dtd or similar) available? That would make it easier for users to write translator programs to and from FL.

(I'm interested in it as a visualization tool for some non-project data).

 - Mike
Logged
Robert McNally
Administrator
Full Member
*****
Posts: 203



View Profile
« Reply #5 on: November 16, 2007, 06:32:25 PM »

Is the schema for a .logic file (like a .dtd or similar) available? That would make it easier for users to write translator programs to and from FL.

Not at this time, but if a number of people express an interest in it, then I'm sure we'll make one available. In the meantime I'm happy to answer any questions you may have about Flying Logic's document schema.
Logged
rnwolf
Newbie
*
Posts: 14


View Profile
« Reply #6 on: January 10, 2008, 01:09:03 PM »

I've updated the MS-Project Macro to make use of a custom domain with Activity, Started, Done and Milestone. It also uses the new class symbols in Flying Logic version 1.1.

Makes realy easy for me to quickly create some pretty diagrams from MS-Project plans.

To use this in MS-Project, add a VBA code module and then copy and paste the code in from below. Run the macro. Open the generated file in Flying Logic.

Code:
Const MSG_NO_TASKS = "There are no tasks in the current project. Try again after the project has one or more tasks."
Const MSG_NOFILEOPEN = "You do not have a project open. Open a project and then run the macro again."


Sub ExportActiveProjectToFlyingLogic()
' --------------------------------------------
' Created by Rudiger Wolf 27th Oct 2007
' http://www.ThroughputFocus.com
' This macro can be used to export data from an MS-Project plan to a Flyling Logic file for further analysis.
' Note! This macro uses the Number10 field for each task. Change this macro if field is already being used.
' Updated 10 Jan 2008 - to make use of symbol tags
' --------------------------------------------------

Dim theTask As Task
Dim Child As Task
Dim preds As Task
Dim eid As Long
Dim MyFile As String
Dim outputDir As String
Dim fnum As Integer
Dim strToday As String
Dim includeOulineTasks As Boolean

Check_if_Project_Open

'If project is empty, alert the user and end the macro
If ActiveProject.Tasks.Count = 0 Then
    MsgBox MSG_NO_TASKS, Buttons:=vbCritical + R_TO_L, Title:=Application.Name
    End
Else

    includeOulineTasks = True  ' Use this flag to include / exclude summary tasks

    If ActiveProject.Tasks.Count < 1 Then
        MsgBox "No tasks in project file"
        End
    End If

    'set location and name of file to be written
    outputDir = ActiveProject.Path
    strToday = Year(Now) & Month(Now) & Day(Now)
    MyFile = outputDir & "\" & ActiveProject.Name & "_" & strToday & ".logic"
    fnum = FreeFile()
    Open MyFile For Output As fnum

    Print #fnum, "<?xml version=""1.0"" encoding=""UTF-8""?>"
    Print #fnum, "<flyingLogic majorVersion=""2"" minorVersion=""0"">"
   
   Print #fnum, "<domains>"
   Print #fnum, "<domain>"
   Print #fnum, "<attributes>"
   Print #fnum, "<attribute class=""java.lang.String"" key=""name"">Planning</attribute>"
   Print #fnum, "<attribute class=""java.lang.Boolean"" key=""builtIn"">false</attribute>"
   Print #fnum, "</attributes>"
   Print #fnum, "<entityClass>"
   Print #fnum, "<attributes>"
   Print #fnum, "<attribute class=""java.util.UUID"" key=""uuid"">edf8c42b-e516-498d-ae9f-b2511f795208</attribute>"
   Print #fnum, "<attribute class=""java.lang.String"" key=""name"">Activity</attribute>"
   Print #fnum, "<attribute class=""com.arciem.graphics.ColorRGB"" key=""color"">"
   Print #fnum, "<colorRGB blue=""0.0"" green=""0.6000000238418579"" red=""1.0""/>"
   Print #fnum, "</attribute>"
   Print #fnum, "<attribute class=""java.lang.Boolean"" key=""builtIn"">false</attribute>"
   Print #fnum, "</attributes>"
   Print #fnum, "</entityClass>"
   Print #fnum, "<entityClass>"
   Print #fnum, "<attributes>"
   Print #fnum, "<attribute class=""java.util.UUID"" key=""uuid"">07df7898-8599-40c8-934c-ede3ee79e7d7</attribute>"
   Print #fnum, "<attribute class=""java.lang.String"" key=""name"">Started</attribute>"
   Print #fnum, "<attribute class=""com.arciem.graphics.ColorRGB"" key=""color"">"
   Print #fnum, "<colorRGB blue=""0.8999999761581421"" green=""0.8999999761581421"" red=""0.8999999761581421""/>"
   Print #fnum, "</attribute>"
   Print #fnum, "<attribute class=""java.lang.Boolean"" key=""builtIn"">false</attribute>"
   Print #fnum, "<attribute class=""com.arciem.symbol.Symbol"" key=""symbol"">"
   Print #fnum, "<symbol generator=""com.arciem.symbol.dingbat.DingbatSymbolGenerator"" idCode=""asterisk""/>"
   Print #fnum, "</attribute>"
   Print #fnum, "</attributes>"
   Print #fnum, "</entityClass>"
   Print #fnum, "<entityClass>"
   Print #fnum, "<attributes>"
   Print #fnum, "<attribute class=""java.util.UUID"" key=""uuid"">b2cf3f65-ba15-4e78-aa3d-723f0192078f</attribute>"
   Print #fnum, "<attribute class=""java.lang.String"" key=""name"">Milestone</attribute>"
   Print #fnum, "<attribute class=""com.arciem.graphics.ColorRGB"" key=""color"">"
   Print #fnum, "<colorRGB blue=""0.8999999761581421"" green=""0.8999999761581421"" red=""0.8999999761581421""/>"
   Print #fnum, "</attribute>"
   Print #fnum, "<attribute class=""java.lang.Boolean"" key=""builtIn"">false</attribute>"
   Print #fnum, "<attribute class=""com.arciem.symbol.Symbol"" key=""symbol"">"
   Print #fnum, "<symbol generator=""com.arciem.symbol.FlowchartSymbolGenerator"" idCode=""lozenge""/>"
   Print #fnum, "</attribute>"
   Print #fnum, "</attributes>"
   Print #fnum, "</entityClass>"
   Print #fnum, "<entityClass>"
   Print #fnum, "<attributes>"
   Print #fnum, "<attribute class=""java.util.UUID"" key=""uuid"">4b3b15be-36b5-421f-871d-67164942dfd1</attribute>"
   Print #fnum, "<attribute class=""java.lang.String"" key=""name"">Done</attribute>"
   Print #fnum, "<attribute class=""com.arciem.graphics.ColorRGB"" key=""color"">"
   Print #fnum, "<colorRGB blue=""0.0"" green=""1.0"" red=""0.0""/>"
   Print #fnum, "</attribute>"
   Print #fnum, "<attribute class=""java.lang.Boolean"" key=""builtIn"">false</attribute>"
   Print #fnum, "<attribute class=""com.arciem.symbol.Symbol"" key=""symbol"">"
   Print #fnum, "<symbol generator=""com.arciem.symbol.dingbat.DingbatSymbolGenerator"" idCode=""check.mark""/>"
   Print #fnum, "</attribute>"
   Print #fnum, "</attributes>"
   Print #fnum, "</entityClass>"
   Print #fnum, "</domain>"
   Print #fnum, "</domains>"
   Print #fnum, "<displaySettings addEntityAsSuccessor=""false"" bias=""Bias.end"" confidenceVisible=""false"" edgeNotesVisible=""false"" edgeWeightsVisible=""false"" noteNumbersVisible=""true"" orientation=""Orientation.leftToRight""/>"
   
   
   
    Print #fnum, "<decisionGraph>"
    Print #fnum, "<entityOperator class=""com.flyinglogic.logicgraph.operator.FuzzyOrVertexOperator"">"
    Print #fnum, "<fuzzyOr/>"
    Print #fnum, "</entityOperator>"
    Print #fnum, "<defaultJunctorOperator class=""com.flyinglogic.logicgraph.operator.FuzzyAndVertexOperator"">"
    Print #fnum, "<fuzzyAnd/>"
    Print #fnum, "</defaultJunctorOperator>"
    Print #fnum, "<logicGraph>"
    Print #fnum, "<operatorFamily class=""com.flyinglogic.decisiongraph.DecisionGraphOperatorFamily""/>"
    Print #fnum, "<graph majorVersion=""1"" minorVersion=""0"" supportsGroups=""true"">"


    Print #fnum, "<vertices>"

    ' ---- make sure each task has eid ------
    ' we need to do tasks first followed by summary tasks as flying logic seem to require tasks before groupings
    eid = 1
    For Each theTask In ActiveProject.Tasks
        If Not theTask Is Nothing Then
            If Not theTask.ExternalTask Then
                If Not theTask.Summary Then
                    theTask.Number10 = eid
                    eid = eid + 1
                End If
            End If
        End If
    Next theTask

    ' ---- now give each summary task/grouping a eid number
    If includeOulineTasks Then

    For Each theTask In ActiveProject.Tasks
        If Not theTask Is Nothing Then
            If Not theTask.ExternalTask Then
                If theTask.Summary Then
                    ' Make sure summary tasks do not have successors or predecessor links
                    If theTask.PredecessorTasks.Count > 0 Then
                        MsgBox "Error. Summary Task=" & theTask.Name & ", has Predecessor Tasks." & Chr(13) & Chr(10) & "Please remove and try again.", vbExclamation
                        End
                    End If
                    If theTask.SuccessorTasks.Count > 0 Then
                        MsgBox "Error. Summary Task=" & theTask.Name & ", has Successor Tasks." & Chr(13) & Chr(10) & "Please remove and try again.", vbExclamation
                        End
                    End If
               
                    theTask.Number10 = eid
                    eid = eid + 1
                End If
            End If
        End If
    Next theTask

    End If


    For Each theTask In ActiveProject.Tasks
        If Not theTask Is Nothing Then
            If Not theTask.ExternalTask Then
                If Not theTask.Summary Then

                    Print #fnum, "<vertex eid=""" & theTask.Number10 & """>"
                    Print #fnum, "<attributes>"
                    Print #fnum, "<attribute class=""java.lang.String"" key=""type"">entity</attribute>"
                    Print #fnum, "<attribute class=""com.flyinglogic.logicgraph.entityclass.EntityClass"" key=""entityClass"">"
                    If theTask.Milestone Then
                        Print #fnum, "<entityClass name=""Milestone"" uuid=""b2cf3f65-ba15-4e78-aa3d-723f0192078f""/>"
                    Else
                        'Debug.Print theTask.PercentComplete
                        Select Case theTask.PercentComplete
                            Case Is >= 100
                                Print #fnum, "<entityClass name=""Done"" uuid=""4b3b15be-36b5-421f-871d-67164942dfd1""/>"
                            Case 1 To 99
                                Print #fnum, "<entityClass name=""Started"" uuid=""07df7898-8599-40c8-934c-ede3ee79e7d7""/>"
                            Case Else
                                Print #fnum, "<entityClass name=""Activity"" uuid=""edf8c42b-e516-498d-ae9f-b2511f795208""/>"
                        End Select
                    End If
                    Print #fnum, "</attribute>"
                    Print #fnum, "<attribute class=""java.lang.String"" key=""title"" >" & theTask.Name & "</attribute>" ' <<<<<
                    Print #fnum, "<attribute class=""com.arciem.FuzzyBoolean"" key=""confidence"">"
                    Print #fnum, "<fuzzyBoolean true=""0.5""/>"
                    Print #fnum, "</attribute>"
                    Print #fnum, "<attribute class=""com.flyinglogic.logicgraph.operator.FuzzyOrVertexOperator"" key=""forwardOperator"">"
                    Print #fnum, "<fuzzyOr/>"
                    Print #fnum, "</attribute>"
                    Debug.Print theTask.Notes
                    If Len(theTask.Notes) > 0 Then
                        Print #fnum, "<attribute class=""java.lang.String"" key=""note"">"
                        Print #fnum, theTask.Notes
                        Print #fnum, "</attribute>"
                    End If
                    Print #fnum, "</attributes>"
                    Print #fnum, "</vertex>"
                End If
            End If
        End If
    Next theTask

    ' Now loop through all the summary tasks and add groupings
    ' The flying logic system seems to want grouping information after all the basic entities
    If includeOulineTasks Then

    For Each theTask In ActiveProject.Tasks
        If Not theTask Is Nothing Then
            If Not theTask.ExternalTask Then
                If theTask.Summary Then
                'The task is a summary task item
                    Temp = ""
                    For Each Child In theTask.OutlineChildren
                        Temp = Child.Number10 & " " & Temp
                    Next Child
                    Temp = Left$(Temp, Len(Temp) - 1)
                    Print #fnum, "<vertex eid=""" & theTask.Number10 & """ grouped=""" & Temp & """>"
                    Print #fnum, "<attributes>"
                    Print #fnum, "<attribute class=""java.lang.String"" key=""title"">" & theTask.Name & "</attribute>"
                    Print #fnum, "</attributes>"
                    Print #fnum, "</vertex>"
                End If
            End If
        End If
    Next theTask

    End If

    Print #fnum, "</vertices>"
    Print #fnum, "<edges>"

    ' Now look at the linkages between the tasks
    For Each theTask In ActiveProject.Tasks
        If Not theTask Is Nothing Then
            If Not (theTask.ExternalTask Or theTask.Summary) Then
                For Each preds In theTask.PredecessorTasks
                    'Debug.Print "eid=" & eid & "Source = " & preds.ID & "target = " & theTask.ID

                    Print #fnum, "<edge eid=""" & eid & """ source=""" & preds.Number10 & """ target=""" & theTask.Number10 & """>"
                    Print #fnum, "<attributes>"
                    Print #fnum, "<attribute class=""java.lang.Double"" key=""weight"">1.0</attribute>"
                    Print #fnum, "<attribute class=""com.flyinglogic.logicgraph.operator.MultiplyEdgeOperator"" key=""forwardOperator"">"
                    Print #fnum, "<multiply/>"
                    Print #fnum, "</attribute>"
                    Print #fnum, "<attribute class=""com.arciem.FuzzyBoolean"" key=""confidence"">"
                    Print #fnum, "<fuzzyBoolean true=""0.5""/>"
                    Print #fnum, "</attribute>"
                    Print #fnum, "</attributes>"
                    Print #fnum, "</edge>"
                    eid = eid + 1
                Next preds
            End If
        End If
    Next theTask

    Print #fnum, "</edges>"
    Print #fnum, "</graph>"
    Print #fnum, "</logicGraph>"
    Print #fnum, "</decisionGraph>"
    Print #fnum, "</flyingLogic>"


    Close #fnum

    MsgBox "FlyingLogic file created. " & Chr(13) & Chr(10) & MyFile, vbInformation
End If

End Sub


Private Sub Check_if_Project_Open()
'Procedure checks if a project file is open

    On Error GoTo NoFileOpen:

    Dim strName As String

    strName = ActiveProject.Name

    Exit Sub

NoFileOpen:
    MsgBox MSG_NO_PROJECT_OPEN, vbExclamation + R_TO_L, Title:=Application.Name
    End 'End the macro

End Sub


Logged
Robert McNally
Administrator
Full Member
*****
Posts: 203



View Profile
« Reply #7 on: January 16, 2008, 07:26:39 PM »

Rudiger,

Thanks for that! I'm sure others will find it quite useful.
Logged
rnwolf
Newbie
*
Posts: 14


View Profile
« Reply #8 on: July 28, 2010, 01:07:45 AM »

Here is an updated post that others might find useful.  VBA macro for MS-Project that exports project network as Flying Logic chart.

Each task in in MS-Project is allocated to a specified workstream via text in Text1 field. The class of the Flying Logic node is dependant on the Workstream.

Run the macro ExportActiveProjectToFlyingLogicWORKSTREAM to create the logic file for FlyingLogic.

I've also attached a Zip file with a sample MS-Project file, copy of VBA macros and resulting .logic file.

Enjoy.
Rudiger


* VBA-MSProject-FlyingLogic.zip (98.95 KB - downloaded 289 times.)
Logged
Pages: [1]
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2007, Simple Machines Valid XHTML 1.0! Valid CSS!