Ejemplo n.º 1
0
        private void StartSearch(int Curpage)
        {
            //splashScreenManager.ShowWaitForm();
            try
            {
                // Add by Wirachai T. 2007 09 26
                DateTime dtProcessTime = DateTime.Now;
                // =============================

                DataRequest           request  = new DataRequest(string.Empty);
                FindKeywordCollection keywords = CreateFindKeyWord();
                m_selectedKeywords = keywords;
                if (this.CreateDataRequest != null)
                {
                    CreateDataRequest(ref request, keywords);   // Create request command from outside
                }
                else
                {
                    request = CreateReqeustCommand(keywords);   // Create request command by FindDialog
                }
                // kim change 20070815
                //DataSet ds = m_findDialogDAO.GetDataSet(request);
                if (!IsPropertyEqual(request, m_request))
                {
                    m_ds      = m_findDialogDAO.GetDataSet(request);
                    m_request = request;
                }
                //End -------------------------------------------------------

                // Modify by Wirachai T. 2007 09 26 : move from DisplaySearchResult for show real query time
                statusBar1.Panels[1].Text = "Query times " + Convert.ToString(DateTime.Now.Subtract(dtProcessTime));
                // ===========================================================================================

                Curpage = (IsChangeParam(request) ? 1 : Curpage);
                pageNavigator.CurrentPage = Curpage;

                DisplaySearchResult(m_ds, Curpage);

                if (FinishedFillResult != null)
                {
                    FinishedFillResult(grdResult, new EventArgs());
                }
            }
            catch (Exception ex)
            {
                MessageDialog.ShowSystemErrorMsg(this, ex);
            }
            finally
            {
            }
        }
Ejemplo n.º 2
0
        private DataRequest CreateReqeustCommand(FindKeywordCollection keys)
        {
            DataRequest req = null;

            switch (this.SelectedCommandType)
            {
            case CommandType.StoredProcedure:
                req = m_findDialogDAO.CreateRequestStoreCommand(this.MainSQL, keys);
                break;

            case CommandType.Text:
                req = m_findDialogDAO.CreateRequestTextCommand(this.MainSQL, this.AlreadyHaveWhereStatement, this.OptionalSQL, keys);
                break;
            }
            return(req);
        }
Ejemplo n.º 3
0
        private FindKeywordCollection CreateFindKeyWord()
        {
            FindKeywordCollection keys = new FindKeywordCollection();

            foreach (Control c in panelFindOptions.Controls)
            {
                if (c is PanelOption)
                {
                    PanelOption po = (PanelOption)c;
                    //Fix and Add by Raktai 2007/05/21----------------------------------------------
                    //if (po.ValueType2 is AFDDateTimeValueType)
                    //{
                    //    //po.ValueType2.SetValue(((DateTime)po.ValueType2.GetValue()[0]).AddDays(1).AddSeconds(-1));
                    //    keys.Add(new FindKeyword(po.KeyName, po.Checked, po.FieldMap, po.SelectedOperator, po.SelectedValue1, new object[] { (((DateTime)po.ValueType2.GetValue()[0]).AddDays(1).AddSeconds(-1)) }));
                    //}
                    //else
                    {
                        keys.Add(new FindKeyword(po.KeyName, po.Checked, po.FieldMap, po.SelectedOperator, po.SelectedValue1, po.SelectedValue2));
                    }
                    //End fix and add---------------------------------------------------------------
                }
            }
            return(keys);
        }
Ejemplo n.º 4
0
        public DataRequest CreateRequestStoreCommand(string strMainSql, FindKeywordCollection keywords)
        {
            DataRequest req = new DataRequest(strMainSql, CommandType.StoredProcedure);

            if (keywords != null)
            {
                foreach (FindKeyword key in keywords)
                {
                    object value1;
                    object value2;
                    if (key.SelectedOperator == FindOperator.Between)
                    {
// if between operator is selected so multi value can't be used.
                        value1 = DBNull.Value;
                        value2 = DBNull.Value;
                        if (key.Checked)
                        {
                            if (key.SelectedValue1.Length > 0)
                            {
                                value1 = key.SelectedValue1[0];
                            }
                            if (key.SelectedValue2.Length > 0)
                            {
                                value2 = key.SelectedValue2[0];
                            }
                        }

                        req.Parameters.Add(string.Format("{0}{1}", key.FieldMapDbVariable, 1), value1);
                        req.Parameters.Add(string.Format("{0}{1}", key.FieldMapDbVariable, 2), value2);
                    }
                    else
                    {
                        // If user not selected between operator
                        // if type is storeprocedue, i will not care for FineOperator user selected. Because this operation will be operate by stoprocedure in side.
                        // check for multi value
                        if (key.SelectedValue1.Length == 1)
                        {
                            if (key.Checked)
                            {
                                value1 = key.SelectedValue1[0] == null ? DBNull.Value : key.SelectedValue1[0];
                                req.Parameters.Add(key.FieldMapDbVariable, value1);
                            }
                            else
                            {
                                req.Parameters.Add(key.FieldMapDbVariable, DBNull.Value);
                            }
                        }
                        else
                        {
                            if (key.Checked)
                            {
                                req.Parameters.Add(key.FieldMapDbVariable, GetValueStringFromArray(key.SelectedValue1));
                            }
                            else
                            {
                                req.Parameters.Add(key.FieldMapDbVariable, DBNull.Value);
                            }
                        }
                    }
                }
            }
            return(req);
        }
Ejemplo n.º 5
0
        public DataRequest CreateRequestTextCommand(string strMainSql, bool bAlreadyHaveWhereStatement, string strOptionalSql, FindKeywordCollection keywords)
        {
            DataRequest req    = new DataRequest(strMainSql, CommandType.Text);
            string      result = string.Empty;
            string      con;       // = " where ";

            if (bAlreadyHaveWhereStatement)
            {
                con = " and ";
            }
            else
            {
                con = " where ";
            }

            if (keywords != null)
            {
                foreach (FindKeyword key in keywords)
                {
                    string k1, k2;
                    if (key.Checked == false)
                    {
                        continue;
                    }
                    if (key.SelectedOperator == FindOperator.Between)
                    {
                        k1      = PARM_PREFIX + key.FieldMapDbVariable + "1";
                        k2      = PARM_PREFIX + key.FieldMapDbVariable + "2";
                        result += con + key.FieldMap + key.SelectedOperator.Symbol + k1 + " and " + k2;



                        req.Parameters.Add(k1, key.SelectedValue1[0]);
                        req.Parameters.Add(k2, key.SelectedValue2[0]);
                        con = " and ";
                    }
                    else
                    {
                        // end if (key.SelectedOperator == FindOperator.Between){
                        if (key.SelectedValue1.Length == 1)
                        {
                            object oValue = key.SelectedValue1[0];
                            // Calculate for Like Operator
                            if (oValue != null)
                            {
                                if (oValue is string && key.SelectedOperator == FindOperator.Like)
                                {
                                    string tmp = Convert.ToString(oValue).Trim();
                                    if (tmp.StartsWith("%") == false && tmp.EndsWith("%") == false)
                                    {
                                        tmp    = "%" + tmp + "%";
                                        oValue = tmp;
                                    }
                                }
                            }
                            if (oValue == null)
                            {
                                result += con + key.FieldMap + " is null ";
                                con     = " and ";
                            }
                            else
                            {
                                result += con + key.FieldMap + key.SelectedOperator.Symbol + PARM_PREFIX + key.FieldMapDbVariable;
                                req.Parameters.Add(PARM_PREFIX + key.FieldMapDbVariable, oValue);
                                con = " and ";
                            }
                        }
                        else
                        {
                            //if (key.SelectedValue1.Length == 1), In this case user select muliple value, So must use "in" operator.
                            string strFields = string.Empty;
                            for (int i = 0; i < key.SelectedValue1.Length; ++i)
                            {
                                if (key.SelectedValue1[i] != null)
                                {
                                    string field = PARM_PREFIX + key.FieldMapDbVariable + i.ToString();
                                    strFields += field;
                                    req.Parameters.Add(field, key.SelectedValue1[i]);
                                    if (i < key.SelectedValue1.Length - 1)
                                    {
                                        strFields += ", ";
                                    }
                                }
                            }
                            if (key.SelectedOperator == FindOperator.NotEqualTo)
                            {
                                result += con + key.FieldMap + " not in (" + strFields + ")";
                            }
                            else
                            {
                                result += con + key.FieldMap + " in (" + strFields + ")";
                            }

                            con = " and ";
                        }
                    }
                } // end foreach
            }

            req.CommandText += result + " " + strOptionalSql + " ";
            return(req);
        }