예제 #1
0
        private void frmProgress_Load(object sender, EventArgs e)
        {
            try
            {
                hdlCloseButton = btnClose.Handle; // for processing update messages to change the close button's text from the async callback of the naturalization function
                waitImage      = BIDSHelper.Resources.Common.ProcessProgress as Bitmap;
                ImageAnimator.Animate(waitImage, new EventHandler(OnFrameChanged));
                pictureBox1.BackColor = this.BackColor;
                txtStatus.Text        = "Starting...";
                int MinLevels;

                PCDimNaturalizer nat = null;
                if (Program.ASFlattener != null)
                {
                    nat       = new ASPCDimNaturalizer(Program.ASFlattener.srv, Program.ASFlattener.db, Program.ASFlattener.dim, Program.ASFlattener.ActionLevel);
                    MinLevels = Program.ASFlattener.MinLevels;
                    if (Program.ASFlattener.AddAllNonPCHierarchies)
                    {
                        foreach (Hierarchy hier in Program.ASFlattener.dim.Hierarchies)
                        {
                            ((ASPCDimNaturalizer)nat).NonPCHierarchiesToInclude.Add(hier.Name);
                        }
                        foreach (DimensionAttribute attr in Program.ASFlattener.dim.Attributes)
                        {
                            ((ASPCDimNaturalizer)nat).NonPCHierarchiesToInclude.Add(attr.Name);
                        }
                    }
                    else
                    {
                        ((ASPCDimNaturalizer)nat).NonPCHierarchiesToInclude = Program.ASFlattener.NonPCHierarchiesToInclude;
                    }
                    if (Program.ASFlattener.AddAllPCAttributes)
                    {
                        foreach (DimensionAttribute attr in Program.ASFlattener.dim.Attributes)
                        {
                            if (attr.Usage == AttributeUsage.Regular)
                            {
                                ((ASPCDimNaturalizer)nat).PCAttributesToInclude.Add(attr.Name);
                            }
                        }
                    }
                    else
                    {
                        ((ASPCDimNaturalizer)nat).PCAttributesToInclude = Program.ASFlattener.PCAttributesToInclude;
                    }
                }
                else // if it is frmSQLFlattener, since there are only two types of calling forms for this
                {
                    nat       = new SQLPCDimNaturalizer(Program.SQLFlattener.Conn, Program.SQLFlattener.cmbTable.Text, Program.SQLFlattener.cmbID.Text, Program.SQLFlattener.cmbPID.Text, Program.SQLFlattener.MinLevels);
                    MinLevels = Program.SQLFlattener.MinLevels;
                    if (Program.SQLFlattener.AddAllAttributesPC)
                    {
                        foreach (DataRow dr in Program.SQLFlattener.Columns)
                        {
                            if (Program.SQLFlattener.cmbID.Text.Trim() != dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString().Trim() &&
                                Program.SQLFlattener.cmbPID.Text.Trim() != dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString().Trim())
                            {
                                ((SQLPCDimNaturalizer)nat).SQLColsASPCAttributes.Add(dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString());
                            }
                        }
                    }
                    else
                    {
                        ((SQLPCDimNaturalizer)nat).SQLColsASPCAttributes = Program.SQLFlattener.AttributesPC;
                    }
                    if (Program.SQLFlattener.AddAllAttributesNatural)
                    {
                        foreach (DataRow dr in Program.SQLFlattener.Columns)
                        {
                            if (Program.SQLFlattener.cmbID.Text.Trim() != dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString().Trim() &&
                                Program.SQLFlattener.cmbPID.Text.Trim() != dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString().Trim())
                            {
                                ((SQLPCDimNaturalizer)nat).SQLColsAsNonPCAttributes.Add(dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString());
                            }
                        }
                    }
                    else
                    {
                        ((SQLPCDimNaturalizer)nat).SQLColsAsNonPCAttributes = Program.SQLFlattener.AttributesNatural;
                    }
                }
                nat.SourceWindowHandle = this.Handle;
                NaturalizeThreadFunc natThreadFunc = new NaturalizeThreadFunc(nat.Naturalize);
                AsyncCallback        cbNat         = new AsyncCallback(NaturalizeCompletion);
                IAsyncResult         ar            = natThreadFunc.BeginInvoke(MinLevels, cbNat, null);
            }
            catch (Exception exc)
            {
                pictureBox1.Paint -= pictureBox1_Paint;
                ImageAnimator.StopAnimate(waitImage, OnFrameChanged);
                pictureBox1.Image = BIDSHelper.Resources.Common.ProcessError;
                pictureBox1.Refresh();
                pictureBox1.Invalidate();
                txtStatus.Text = "Error initializing naturalizer:  " + exc.ToString();
            }
        }
예제 #2
0
        private void frmProgress_Load(object sender, EventArgs e)
        {
            try
            {
                hdlCloseButton = btnClose.Handle; // for processing update messages to change the close button's text from the async callback of the naturalization function
                waitImage = BIDSHelper.Resources.Common.ProcessProgress as Bitmap;
                ImageAnimator.Animate(waitImage, new EventHandler(OnFrameChanged));
                pictureBox1.BackColor = this.BackColor;
                txtStatus.Text = "Starting...";
                int MinLevels;

                PCDimNaturalizer nat = null;
                if (Program.ASFlattener != null)
                {
                    nat = new ASPCDimNaturalizer(Program.ASFlattener.srv, Program.ASFlattener.db, Program.ASFlattener.dim, Program.ASFlattener.ActionLevel);
                    MinLevels = Program.ASFlattener.MinLevels;
                    if (Program.ASFlattener.AddAllNonPCHierarchies)
                    {
                        foreach (Hierarchy hier in Program.ASFlattener.dim.Hierarchies)
                            ((ASPCDimNaturalizer)nat).NonPCHierarchiesToInclude.Add(hier.Name);
                        foreach (DimensionAttribute attr in Program.ASFlattener.dim.Attributes)
                            ((ASPCDimNaturalizer)nat).NonPCHierarchiesToInclude.Add(attr.Name);
                    }
                    else
                        ((ASPCDimNaturalizer)nat).NonPCHierarchiesToInclude = Program.ASFlattener.NonPCHierarchiesToInclude;
                    if (Program.ASFlattener.AddAllPCAttributes)
                    {
                        foreach (DimensionAttribute attr in Program.ASFlattener.dim.Attributes)
                            if (attr.Usage == AttributeUsage.Regular) ((ASPCDimNaturalizer)nat).PCAttributesToInclude.Add(attr.Name);
                    }
                    else
                        ((ASPCDimNaturalizer)nat).PCAttributesToInclude = Program.ASFlattener.PCAttributesToInclude;
                }
                else // if it is frmSQLFlattener, since there are only two types of calling forms for this
                {
                    nat = new SQLPCDimNaturalizer(Program.SQLFlattener.Conn, Program.SQLFlattener.cmbTable.Text, Program.SQLFlattener.cmbID.Text, Program.SQLFlattener.cmbPID.Text, Program.SQLFlattener.MinLevels);
                    MinLevels = Program.SQLFlattener.MinLevels;
                    if (Program.SQLFlattener.AddAllAttributesPC)
                    {
                        foreach (DataRow dr in Program.SQLFlattener.Columns)
                            if (Program.SQLFlattener.cmbID.Text.Trim() != dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString().Trim() &&
                                Program.SQLFlattener.cmbPID.Text.Trim() != dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString().Trim())    
                                ((SQLPCDimNaturalizer)nat).SQLColsASPCAttributes.Add(dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString());
                    }
                    else
                        ((SQLPCDimNaturalizer)nat).SQLColsASPCAttributes = Program.SQLFlattener.AttributesPC;
                    if (Program.SQLFlattener.AddAllAttributesNatural)
                    {
                        foreach (DataRow dr in Program.SQLFlattener.Columns)
                            if (Program.SQLFlattener.cmbID.Text.Trim() != dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString().Trim() &&
                                Program.SQLFlattener.cmbPID.Text.Trim() != dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString().Trim())
                                ((SQLPCDimNaturalizer)nat).SQLColsAsNonPCAttributes.Add(dr.ItemArray[dr.Table.Columns.IndexOf("COLUMN_NAME")].ToString());
                    }
                    else
                        ((SQLPCDimNaturalizer)nat).SQLColsAsNonPCAttributes = Program.SQLFlattener.AttributesNatural;
                }
                nat.SourceWindowHandle = this.Handle;
                NaturalizeThreadFunc natThreadFunc = new NaturalizeThreadFunc(nat.Naturalize);
                AsyncCallback cbNat = new AsyncCallback(NaturalizeCompletion);
                IAsyncResult ar = natThreadFunc.BeginInvoke(MinLevels, cbNat, null);
            }
            catch (Exception exc)
            {
                pictureBox1.Paint -= pictureBox1_Paint;
                ImageAnimator.StopAnimate(waitImage, OnFrameChanged);
                pictureBox1.Image = BIDSHelper.Resources.Common.ProcessError;
                pictureBox1.Refresh();
                pictureBox1.Invalidate();
                txtStatus.Text = "Error initializing naturalizer:  " + exc.ToString();
            }
        }