2 Replies Latest reply: Mar 22, 2012 7:06 AM by adamqlik RSS

    Moving expression into group via macro

      Hi everyone,

       

      I want to create an expression and move it into a group via vb script. The only way of creating an expression is in my opinion:

       

      set chart = ActiveDocument.GetSheetObject("TestChart")
      chart.AddExpression "definition"
      

       

      And I can get this expression by

       

      set expressions = chart.GetProperties.Expressions
      set newExpression =expressions.Item(expressions.count-1).Item(0)
      

       

      Now I need to put this expression somehow into my group

       

      set group expressions.Item(0)

       

      But how? I would appreciate any help! Thanks

       

      Adam

        • Moving expression into group via macro

          Hey,

          I found the Property "CycleGroup" in the Class "IExpressionData". Unfortunately the documentation is pretty poor, but after a while I discovered that all expressions in the first group have this parameter set to 0, second group has 1, ..., and all non-grouped expressions are set to -1.

           

          So my next idea was to set this parameter for my additional expression to 0 (in order to put the expression in the first group). But invoking

          ActiveDocument.GetSheetObject("TestChart").GetProperties.Expressions.Item(1).Item(0).Data.ExpressionData.CycleGroup = 0

          does nothing, although the API guide says that I am allowed to write this parameter.

           

          Any help??

           

          Thanks,

          Adam

            • Moving expression into group via macro

              Turns out that QV Version 11 has an example in the API guide:

               

              set chart = ActiveDocument.Sheets("Main").CreateBarChart
              chart.AddDimension "ProductType"
              chart.AddExpression "sum(Amount)"
              chart.AddExpression "avg(Amount)"
              set p = chart.GetProperties
              p.Expressions.Item(0).Item(0).Data.ExpressionData.CycleGroup = 1
              p.Expressions.Item(1).Item(0).Data.ExpressionData.CycleGroup = 1
              p.ChartProperties.CycleExpressionDockedPos = 4   'undocked
              p.ChartProperties.CycleExpressionRects.Add
              p.ChartProperties.CycleExpressionRects(0).Left = 150
              p.ChartProperties.CycleExpressionRects(0).Top = 150
              p.ChartProperties.CycleExpressionRects(0).Width = 60
              p.ChartProperties.CycleExpressionRects(0).Height = 60
              chart.SetProperties p

               

              FYI: Does not work with QV 10 or QV 11.