Generate a Time Dimension Based On a Lunar Year Example

This example creates a new model, adds a data source, and generates a time dimension based on a lunar year.
Sub Example26()
    Dim objTransApp As Object
    Dim objModel As Object
    Dim objDataSource As Object
    Dim objColumn As Object
    Dim objDateWizard As Object
    Dim objDateDim As Object
    Dim objDrillDown As Object
    Dim objDateLevel As Object
    Dim strIBMCognos10Location As String
    Dim strDataSource As String
    Dim strDataPath As String
    'Change these paths to match your installation
    strIBMCognos10Location = "C:\Program Files\IBM\Cognos\c10\"
    strDataSource = "NATIONAL.ASC"
    strDataPath = strIBMCognos10Location & _
         "webcontent\samples\datasources\cubes\PowerCubes\EN\National\"
& _
         strDataSource
    objTransApp = CreateObject("IBMCognosTransformer.ApplicationCtrl.1")
    objModel = objTransApp.NewModel
    objDataSource = objModel.DataSources.Add()
    With objDataSource
        .LocalPath = strDataPath
        .Name = "National"
        .SourceType = xtrSourceType.trFlatFileColumnNames
        .Update()
    End With
    objColumn = objDataSource.Columns.Item("Date")
    objDateWizard = objModel.DateWizard
    With objDateWizard
        .DimensionName = "Dates"
        .DimensionAssociateWith(objColumn, xtrAssociationRole.trAssociationSource)
        .EarliestDate = 19900101
        .EnableTimePeriod(xtrTimeType.trTimeTypeMonth) = True
        .EnableTimePeriod(xtrTimeType.trTimeTypeQuarter) = True
        .EnableTimePeriod(xtrTimeType.trTimeTypeYear) = True
        .LatestDate = 20101231
        .WorkingDays = xtrWeekDay.trMonday + xtrWeekDay.trTuesday
+ _
                       xtrWeekDay.trWednesday + xtrWeekDay.trThursday
+ _
                       xtrWeekDay.trFriday
    End With
    objDateDim = objDateWizard.CreateDateDimension()
    objDateDim.Update()
    objDrillDown = objDateDim.DrillDowns(1)
    With objDrillDown
        .DrillCode = "By Order Date"
        .DrillInclusion = xtrInclusion.trInclusionSuppress
        .Lunar = True
        .WeekAdd = xtrWeekAdd.trWeekAddDays4
        .WeekStart = xtrWeekDay.trMonday
        .YearStartDay = 19900101
        .Update()
    End With
    objDateLevel = objDateDim.DimensionLevels(1)
    objDateLevel.DateFunction = xtrSpecialFunction.trSpecialFunctionLunarYear
    objDateLevel.Update()
    objDateLevel = objModel.Dimensions("Dates").DimensionLevels(2)
    objDateLevel.DateFunction = xtrSpecialFunction.trSpecialFunctionLunarQuarter
    objDateLevel.Update()
    objDateLevel = objModel.Dimensions("Dates").DimensionLevels(3)
    objDateLevel.DateFunction = xtrSpecialFunction.trSpecialFunctionLunarMonth445
    objDateLevel.Update()
    With objModel
        .GenerateCategories()
        .SaveAs("NationalX.mdl")
        .Close()
    End With
    objDateLevel = Nothing
    objDrillDown = Nothing
    objDateDim = Nothing
    objDateWizard = Nothing
    objColumn = Nothing
    objDataSource = Nothing
    objModel = Nothing
    objTransApp = Nothing
End Sub