/*
 *       private DataTable ConvertForExport(DataTable dt)
 *       {
 *           ArrayList columnToExport = _db.GetColumnToExport();
 *           if (columnToExport != null)
 *           {
 *               DataTable dtToexport = dt.Copy();
 *               DataColumnCollection dcc = dt.Columns;
 *               for (int loop = 0; loop < dcc.Count; loop++)
 *               {
 *                   if (!columnToExport.Contains(dcc[loop].ColumnName))
 *                       dtToexport.Columns.Remove(dcc[loop].ColumnName);
 *               }
 *               return dtToexport;
 *           }
 *           else
 *               return dt;
 *       }
 */

/*
 *       private void tabControlInventory_DrawItem(object sender, DrawItemEventArgs e)
 *       {
 *           TabPage CurrentTab = tabControlInventory.TabPages[e.Index];
 *           Rectangle ItemRect = tabControlInventory.GetTabRect(e.Index);
 *           StringFormat sf = new StringFormat();
 *           sf.Alignment = StringAlignment.Center;
 *           sf.LineAlignment = StringAlignment.Center;
 *
 *           SolidBrush FillBrush;
 *           SolidBrush TextBrush;
 *
 *           FillBrush = new SolidBrush(Color.White);
 *           TextBrush = new SolidBrush(Color.Black);
 *
 *
 *
 *           switch (e.Index)
 *           {
 *               case 0:
 *                   FillBrush = new SolidBrush(Color.White);
 *                   TextBrush = new SolidBrush(Color.Black);
 *
 *                   //If we are currently painting the Selected TabItem we'll
 *                   //change the brush colors and inflate the rectangle.
 *                   if (System.Convert.ToBoolean(e.State & DrawItemState.Selected))
 *                   {
 *                       FillBrush.Color = Color.Black;
 *                       TextBrush.Color = Color.White;
 *                       ItemRect.Inflate(2, 2);
 *                   }
 *                   break;
 *               case 1:
 *                   FillBrush = new SolidBrush(Color.White);
 *                   TextBrush = new SolidBrush(Color.Blue);
 *
 *                   //If we are currently painting the Selected TabItem we'll
 *                   //change the brush colors and inflate the rectangle.
 *                   if (System.Convert.ToBoolean(e.State & DrawItemState.Selected))
 *                   {
 *                       FillBrush.Color = Color.Blue;
 *                       TextBrush.Color = Color.White;
 *                       ItemRect.Inflate(2, 2);
 *                   }
 *
 *                   break;
 *
 *               case 2:
 *                   FillBrush = new SolidBrush(Color.White);
 *                   TextBrush = new SolidBrush(Color.Green);
 *
 *                   //If we are currently painting the Selected TabItem we'll
 *                   //change the brush colors and inflate the rectangle.
 *                   if (System.Convert.ToBoolean(e.State & DrawItemState.Selected))
 *                   {
 *                       FillBrush.Color = Color.Green;
 *                       TextBrush.Color = Color.White;
 *                       ItemRect.Inflate(2, 2);
 *                   }
 *
 *                   break;
 *               case 3:
 *                   FillBrush = new SolidBrush(Color.White);
 *                   TextBrush = new SolidBrush(Color.Red);
 *
 *                   //If we are currently painting the Selected TabItem we'll
 *                   //change the brush colors and inflate the rectangle.
 *                   if (System.Convert.ToBoolean(e.State & DrawItemState.Selected))
 *                   {
 *                       FillBrush.Color = Color.Red;
 *                       TextBrush.Color = Color.White;
 *                       ItemRect.Inflate(2, 2);
 *                   }
 *
 *                   break;
 *           }
 *
 *
 *
 *           //Set up rotation for left and right aligned tabs
 *           if (tabControlInventory.Alignment == TabAlignment.Left || tabControlInventory.Alignment == TabAlignment.Right)
 *           {
 *               float RotateAngle = 90;
 *               if (tabControlInventory.Alignment == TabAlignment.Left)
 *                   RotateAngle = 270;
 *               PointF cp = new PointF(ItemRect.Left + (ItemRect.Width / 2), ItemRect.Top + (ItemRect.Height / 2));
 *               e.Graphics.TranslateTransform(cp.X, cp.Y);
 *               e.Graphics.RotateTransform(RotateAngle);
 *               ItemRect = new Rectangle(-(ItemRect.Height / 2), -(ItemRect.Width / 2), ItemRect.Height, ItemRect.Width);
 *           }
 *
 *           //Next we'll paint the TabItem with our Fill Brush
 *           e.Graphics.FillRectangle(FillBrush, ItemRect);
 *
 *           //Now draw the text.
 *
 *           Font fo = new Font(e.Font.Name, 12, FontStyle.Bold, e.Font.Unit, e.Font.GdiCharSet, e.Font.GdiVerticalFont);
 *
 *           e.Graphics.DrawString(CurrentTab.Text, fo, TextBrush, (RectangleF)ItemRect, sf);
 *
 *           //Reset any Graphics rotation
 *           e.Graphics.ResetTransform();
 *
 *           //Finally, we should Dispose of our brushes.
 *           FillBrush.Dispose();
 *           TextBrush.Dispose();
 *       }
 */

        private void AddTagToDt(object obj)
        {
            DtAndTagClass clToProcess  = (DtAndTagClass)obj;
            string        selectString = "[" + ResStrings.BoxModeConfig_UpdateGroup_TagUID + "] = '" + clToProcess.TagUid + "'";

            DataRow[] productInfo = _dtProductRef.Select(selectString);
            if (productInfo.Length > 0)
            {
                object[] param = new object[_columnInfo.Count];
                for (int i = 0; i < _columnInfo.Count; i++)
                {
                    param[i] = productInfo[0].ItemArray[i];
                }


                clToProcess.Dt.Rows.Add(param);
            }
            else
            {
                object[] param = new object[_columnInfo.Count];
                param[0] = clToProcess.TagUid;
                param[1] = ResStrings.str_Unreferenced;
                for (int i = 2; i < _columnInfo.Count; i++)
                {
                    param[i] = " ";
                }

                clToProcess.Dt.Rows.Add(param);
            }
        }
Beispiel #2
0
        private void AddTagToDt(object obj)
        {
            try
            {
                DtAndTagClass clToProcess = (DtAndTagClass)obj;
                //string selectString = "[" + ColumnInfo[0].ToString() + "]= " + clToProcess.tagUID;
                string    selectString = "[" + ResStrings.str_TagUID + "]= '" + clToProcess.TagUid + "'";
                DataRow[] productInfo  = DtProductRef.Select(selectString);
                if (productInfo.Length > 0)
                {
                    object[] param = new object[_columnInfo.Count];
                    for (int i = 0; i < _columnInfo.Count; i++)
                    {
                        param[i] = productInfo[0].ItemArray[i];
                    }

                    clToProcess.Dt.Rows.Add(param);
                }
                else
                {
                    object[] param = new object[_columnInfo.Count];
                    param[0] = clToProcess.TagUid;
                    param[1] = ResStrings.str_Unreferenced;
                    for (int i = 2; i < _columnInfo.Count; i++)
                    {
                        param[i] = " ";
                    }

                    clToProcess.Dt.Rows.Add(param);
                }
            }
            catch (Exception exp)
            {
                ExceptionMessageBox.Show(exp);
            }
        }
        private void ProcessData()
        {
            try
            {
                DeviceInfo di = null;
                _inventoryFrom = null;
                _inventoryTo   = null;

                if (toolStripComboBoxReader.SelectedIndex > -1)
                {
                    di = _deviceArray[toolStripComboBoxReader.SelectedIndex];
                }

                DateTime dFrom = new DateTime(dateFrom.Value.Year, dateFrom.Value.Month, dateFrom.Value.Day, timeFrom.Value.Hour, timeFrom.Value.Minute, 0);
                DateTime dTo   = new DateTime(dateTo.Value.Year, dateTo.Value.Month, dateTo.Value.Day, timeTo.Value.Hour, timeTo.Value.Minute, 0);

                if (dTo < dFrom)
                {
                    MessageBox.Show(ResStrings.CompareInventoryReportForm_ProcessData_Error_in_date_selection_, ResStrings.CompareInventoryReportForm_ProcessData_Compare_Inventory_Info, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                //string[] invFrom = db.GetInventory(di.SerialRFID, dFrom.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ssZ"));
                string[] invFrom = _db.GetInventoryBefore(di.SerialRFID, dFrom.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ssZ"));
                if (invFrom != null)
                {
                    StoredInventoryData sid = new StoredInventoryData();
                    BinaryFormatter     bf  = new BinaryFormatter();
                    MemoryStream        mem = new MemoryStream(Convert.FromBase64String(invFrom[0]));
                    sid            = (StoredInventoryData)bf.Deserialize(mem);
                    _inventoryFrom = ConvertInventory.ConvertForUse(sid, _columnInfo);
                }

                //string[] invTo = db.GetInventory(di.SerialRFID, dTo.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ssZ"));
                string[] invTo = _db.GetInventoryAfter(di.SerialRFID, dTo.ToUniversalTime().ToString("yyyy-MM-dd HH:mm:ssZ"));
                if (invTo != null)
                {
                    StoredInventoryData sid = new StoredInventoryData();
                    BinaryFormatter     bf  = new BinaryFormatter();
                    MemoryStream        mem = new MemoryStream(Convert.FromBase64String(invTo[0]));
                    sid          = (StoredInventoryData)bf.Deserialize(mem);
                    _inventoryTo = ConvertInventory.ConvertForUse(sid, _columnInfo);
                }

                if (_inventoryTo == null)
                {
                    MessageBox.Show(ResStrings.CompareInventoryReportForm_ProcessData_No_inventory_found_after_Date_to_, ResStrings.CompareInventoryReportForm_ProcessData_Compare_Inventory_Info, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                if (_inventoryFrom == null)
                {
                    MessageBox.Show(ResStrings.CompareInventoryReportForm_ProcessData_No_inventory_found_after_Date_from_, ResStrings.CompareInventoryReportForm_ProcessData_Compare_Inventory_Info, MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    return;
                }

                _comparedInventory = new InventoryData(_columnInfo);

                ArrayList listPrevious = _inventoryFrom.listTagAll;
                ArrayList listCurrent  = _inventoryTo.listTagAll;

                foreach (string uid in listCurrent)
                {
                    if (!_comparedInventory.listTagAll.Contains(uid))
                    {
                        _comparedInventory.listTagAll.Add(uid);
                        DtAndTagClass dtAndTagAll = new DtAndTagClass(this, _comparedInventory.dtTagAll, uid, _db);
                        AddTagToDt((object)dtAndTagAll);
                    }

                    if (listPrevious.Contains(uid))
                    {
                        _comparedInventory.listTagPresent.Add(uid);
                        DtAndTagClass dtAndTagPresent = new DtAndTagClass(this, _comparedInventory.dtTagPresent, uid, _db);
                        AddTagToDt((object)dtAndTagPresent);
                    }
                    else
                    {
                        _comparedInventory.listTagAdded.Add(uid);
                        DtAndTagClass dtAndTagAdded = new DtAndTagClass(this, _comparedInventory.dtTagAdded, uid, _db);
                        AddTagToDt((object)dtAndTagAdded);
                    }
                }

                foreach (string uid in listPrevious)
                {
                    if (!listCurrent.Contains(uid))
                    {
                        _comparedInventory.listTagRemoved.Add(uid);
                        DtAndTagClass dtAndTagRemove = new DtAndTagClass(this, _comparedInventory.dtTagRemove, uid, _db);
                        AddTagToDt((object)dtAndTagRemove);
                    }
                }

                /* foreach (string tagUID in inventoryTo.listTagAll)
                 * {
                 *   if (!comparedInventory.listTagAll.Contains(tagUID))
                 *   {
                 *       comparedInventory.listTagAll.Add(tagUID);
                 *       DtAndTagClass DtAndTagAll = new DtAndTagClass(this, comparedInventory.dtTagAll, tagUID, db);
                 *       AddTagToDt((object)DtAndTagAll);
                 *   }
                 *
                 *   if (!inventoryFrom.listTagAll.Contains(tagUID))
                 *   {
                 *       // Tag Added
                 *       if (!comparedInventory.listTagAdded.Contains(tagUID))
                 *       {
                 *           comparedInventory.listTagAdded.Add(tagUID);
                 *           DtAndTagClass DtAndTagAdded = new DtAndTagClass(this, comparedInventory.dtTagAdded, tagUID, db);
                 *           AddTagToDt((object)DtAndTagAdded);
                 *       }
                 *   }
                 *   else
                 *   {
                 *       //tag Present
                 *       if (!comparedInventory.listTagPresent.Contains(tagUID))
                 *       {
                 *           comparedInventory.listTagPresent.Add(tagUID);
                 *           DtAndTagClass DtAndTagPresent = new DtAndTagClass(this, comparedInventory.dtTagPresent, tagUID, db);
                 *           AddTagToDt((object)DtAndTagPresent);
                 *       }
                 *
                 *   }
                 * }
                 *
                 * foreach (string uid in inventoryFrom.listTagAll)
                 * {
                 *   if (!comparedInventory.listTagAll.Contains(uid))
                 *   {
                 *       if (!comparedInventory.listTagRemoved.Contains(uid))
                 *       {
                 *           comparedInventory.listTagRemoved.Add(uid);
                 *           DtAndTagClass DtAndTagRemove = new DtAndTagClass(this, comparedInventory.dtTagRemove, uid, db);
                 *           AddTagToDt((object)DtAndTagRemove);
                 *       }
                 *   }
                 * }*/

                _comparedInventory.nbTagAll     = _comparedInventory.listTagAll.Count;
                _comparedInventory.nbTagPresent = _comparedInventory.listTagPresent.Count;
                _comparedInventory.nbTagAdded   = _comparedInventory.listTagAdded.Count;
                _comparedInventory.nbTagRemoved = _comparedInventory.listTagRemoved.Count;

                UpdateTabControl();
            }
            catch (Exception exp)
            {
                // On affiche l'erreur.
                ErrorMessage.ExceptionMessageBox.Show(exp);
            }
        }
Beispiel #4
0
        private void UpdateTabControlCompare(int selectedCurrent, int selectedPrevious)
        {
            InventoryData invData      = new InventoryData(_columnInfo);
            ArrayList     listPrevious = _inventoryArray[selectedPrevious].listTagAll;
            ArrayList     listCurrent  = _inventoryArray[selectedCurrent].listTagAll;

            foreach (string uid in listCurrent)
            {
                if (!invData.listTagAll.Contains(uid))
                {
                    invData.listTagAll.Add(uid);
                    DtAndTagClass dtAndTagAll = new DtAndTagClass(this, invData.dtTagAll, uid, _db);
                    AddTagToDt(dtAndTagAll);
                }

                if (listPrevious.Contains(uid))
                {
                    invData.listTagPresent.Add(uid);
                    DtAndTagClass dtAndTagPresent = new DtAndTagClass(this, invData.dtTagPresent, uid, _db);
                    AddTagToDt(dtAndTagPresent);
                }
                else
                {
                    invData.listTagAdded.Add(uid);
                    DtAndTagClass dtAndTagAdded = new DtAndTagClass(this, invData.dtTagAdded, uid, _db);
                    AddTagToDt(dtAndTagAdded);
                }
            }

            foreach (string uid in listPrevious)
            {
                if (!listCurrent.Contains(uid))
                {
                    invData.listTagRemoved.Add(uid);
                    DtAndTagClass dtAndTagRemove = new DtAndTagClass(this, invData.dtTagRemove, uid, _db);
                    AddTagToDt(dtAndTagRemove);
                }
            }



            dataGridViewAll.DataSource = null;
            dataGridViewAll.DataSource = invData.dtTagAll.DefaultView;

            dataGridViewPresent.DataSource = null;
            dataGridViewPresent.DataSource = invData.dtTagPresent.DefaultView;

            dataGridViewAdded.DataSource = null;
            dataGridViewAdded.DataSource = invData.dtTagAdded.DefaultView;

            dataGridViewRemoved.DataSource = null;
            dataGridViewRemoved.DataSource = invData.dtTagRemove.DefaultView;

            int nbTagGridAll     = dataGridViewAll.Rows.Count;
            int nbTagGridPresent = dataGridViewPresent.Rows.Count;
            int nbTagGridAdded   = dataGridViewAdded.Rows.Count;
            int nbTagGridRemove  = dataGridViewRemoved.Rows.Count;

            if (nbTagGridAll < 0)
            {
                nbTagGridAll = 0;
            }
            if (nbTagGridPresent < 0)
            {
                nbTagGridPresent = 0;
            }
            if (nbTagGridAdded < 0)
            {
                nbTagGridAdded = 0;
            }
            if (nbTagGridRemove < 0)
            {
                nbTagGridRemove = 0;
            }

            tabControlInventory.TabPages[0].Text = string.Format(ResStrings.ReaderHistoryForm_UpdateTabControlCompare_All, nbTagGridAll);
            tabControlInventory.TabPages[1].Text = string.Format(ResStrings.ReaderHistoryForm_UpdateTabControlCompare_Previous, nbTagGridPresent);
            tabControlInventory.TabPages[2].Text = string.Format(ResStrings.ReaderHistoryForm_UpdateTabControlCompare_Added, nbTagGridAdded);
            tabControlInventory.TabPages[3].Text = string.Format(ResStrings.ReaderHistoryForm_UpdateTabControlCompare_Removed, nbTagGridRemove);

            DataGridViewColumn dvgc1 = dataGridViewAll.Columns["ImageAll"];

            if (dvgc1 != null)
            {
                dvgc1.DisplayIndex = dataGridViewAll.Columns.Count - 1;
            }
            DataGridViewColumn dvgc2 = dataGridViewPresent.Columns["ImagePresent"];

            if (dvgc2 != null)
            {
                dvgc2.DisplayIndex = dataGridViewPresent.Columns.Count - 1;
            }
            DataGridViewColumn dvgc3 = dataGridViewRemoved.Columns["ImageRemove"];

            if (dvgc3 != null)
            {
                dvgc3.DisplayIndex = dataGridViewRemoved.Columns.Count - 1;
            }

            dataGridViewAdded.Columns["ImageAdd"].DisplayIndex = dataGridViewAdded.Columns.Count - 1;
        }