Exemplo n.º 1
0
        /// <summary>
        /// Elimina la parte di filtro costituita da esercizio='yyyy' poiché
        /// la vista classmovimentioperativo non contiene il campo esercizio
        /// </summary>
        /// <param name="filter">filtro da purificare</param>
        /// <returns>filtro purificato</returns>
        //private string PurificaFiltro(string filter) {
        //    string tofind="(ayear='"+GetSys("esercizio").ToString()+"')";
        //    int lentofind=tofind.Length;
        //    //se non contiene la stringa non faccio nulla
        //    if (!(filter.IndexOf(tofind)>0)) return filter;
        //    //cerco il punto di inizio
        //    int begin=filter.IndexOf(tofind);
        //    int end=begin+lentofind;
        //    //elimino la stringa
        //    string newfilter=filter.Substring(0,begin)+filter.Substring(end);
        //    //si trova in prima posizione?
        //    if (newfilter.Trim().StartsWith("AND"))
        //        return newfilter.Trim().Substring(3);
        //    //si trova in ultima posizione?
        //    if (newfilter.Trim().EndsWith("AND"))
        //        return newfilter.Trim().Substring(0, newfilter.Length - newfilter.LastIndexOf("AND"));
        //    //si trova al centro
        //    return newfilter.Replace("ANDAND","AND");
        //}

        public override DataRow SelectByCondition(string filter, string searchtable)
        {
            //filter=PurificaFiltro(filter);
            DataRow R = base.SelectByCondition(filter, "sortingusableyear");

            if (R == null)
            {
                return(null);
            }
            string newfilter = QHS.AppAnd(QHS.CmpEq("ayear", GetSys("esercizio")),
                                          QHS.MCmp(R, "idsorkind", "idsor"),
                                          QHS.NullOrLt("start", GetSys("esercizio")),
                                          QHS.NullOrGe("stop", GetSys("esercizio")));

            int count = Conn.RUN_SELECT_COUNT("sortingview", newfilter, true);

            if (count == 1)
            {
                return(R);
            }
            return(null);
        }