示例#1
0
        private void filterData()
        {
            dgvTrf.DataSource = null;

            string keyword = txtSearch.Text;

            if (keyword == null)
            {
                dt_TrfHist = dalTrfHist.Select();
            }
            else
            {
                dt_TrfHist = dalTrfHist.SearchIncludeID(keyword);
            }

            dt_TrfData = NewTrfHistTable();
            DataRow row_TrfData;

            DateTime startDate = Convert.ToDateTime(dtpStartDate.Value).Date;
            DateTime endDate   = Convert.ToDateTime(dtpEndDate.Value).Date;

            bool periodWanted = false, fromWanted = false, toWanted = false, catWanted = false;

            foreach (DataRow row in dt_TrfHist.Rows)
            {
                DateTime date;
                string   result = row[dalTrfHist.TrfResult].ToString();

                if (result == "Passed")
                {
                    if (cbTransferType.Checked)
                    {
                        date = Convert.ToDateTime(row[dalTrfHist.TrfDate]).Date;
                    }
                    else
                    {
                        date = Convert.ToDateTime(row[dalTrfHist.TrfAddedDate]).Date;
                    }

                    //Filter Date
                    if (date <= endDate && date >= startDate)
                    {
                        periodWanted = true;
                    }
                    else
                    {
                        periodWanted = false;
                    }

                    //Filter Location From
                    if (cmbTrfFromCategory.SelectedIndex == -1)
                    {
                        fromWanted = true;
                    }
                    else
                    {
                        string from = row[dalTrfHist.TrfFrom].ToString();

                        if (from.Equals(cmbTrfFromCategory.Text) || from.Equals(cmbTrfFrom.Text))
                        {
                            fromWanted = true;
                        }
                        else
                        {
                            fromWanted = false;
                        }
                    }

                    //Filter Location To
                    if (cmbTrfToCategory.SelectedIndex == -1)
                    {
                        toWanted = true;
                    }
                    else
                    {
                        string to = row[dalTrfHist.TrfTo].ToString();

                        if (to.Equals(cmbTrfToCategory.Text) || to.Equals(cmbTrfTo.Text))
                        {
                            toWanted = true;
                        }
                        else
                        {
                            toWanted = false;
                        }
                    }

                    //Filter Category
                    if (cmbTrfItemCat.SelectedIndex == -1 || cmbTrfItemCat.Text.Equals("All"))
                    {
                        catWanted = true;
                    }
                    else
                    {
                        string cat = row[dalTrfHist.TrfItemCat].ToString();

                        if (cat.Equals(cmbTrfItemCat.Text))
                        {
                            catWanted = true;
                        }
                        else
                        {
                            catWanted = false;
                        }
                    }

                    //Save data wanted
                    if (periodWanted && fromWanted && toWanted && catWanted)
                    {
                        row_TrfData = dt_TrfData.NewRow();

                        row_TrfData[headerID]        = row[dalTrfHist.TrfID];
                        row_TrfData[headerAddedDate] = row[dalTrfHist.TrfAddedDate];
                        row_TrfData[headerTrfDate]   = Convert.ToDateTime(row[dalTrfHist.TrfDate]).Date;
                        row_TrfData[headerCode]      = row[dalTrfHist.TrfItemCode];
                        row_TrfData[headerName]      = row[dalTrfHist.TrfItemName];
                        row_TrfData[headerFrom]      = row[dalTrfHist.TrfFrom];
                        row_TrfData[headerTo]        = row[dalTrfHist.TrfTo];
                        row_TrfData[headerQty]       = row[dalTrfHist.TrfQty];
                        row_TrfData[headerUnit]      = row[dalTrfHist.TrfUnit];
                        row_TrfData[headerNote]      = row[dalTrfHist.TrfNote];
                        row_TrfData[headerResult]    = row[dalTrfHist.TrfResult];

                        dt_TrfData.Rows.Add(row_TrfData);

                        periodWanted = false;
                        fromWanted   = false;
                        toWanted     = false;
                        catWanted    = false;
                    }
                }
            }

            if (dt_TrfData.Rows.Count > 0)
            {
                //dgvNewStock.AlternatingRowsDefaultCellStyle.BackColor = Color.White;

                if (cbTransferType.Checked)
                {
                    dt_TrfData.DefaultView.Sort = headerTrfDate + " DESC";
                }
                else
                {
                    dt_TrfData.DefaultView.Sort = headerAddedDate + " DESC";
                }

                dgvTrf.DataSource = dt_TrfData;
                dgvTrfUIEdit(dgvTrf);

                dgvTrf.ClearSelection();
            }
            else
            {
                MessageBox.Show("No data found!");
            }
        }