Example #1
0
		/// <summary>
		/// Gets a stat value for the specified server.
		/// </summary>
		/// <param name="server">The adress of the server. If <see cref="IPAddress.Any"/> is specified it will return the sum of all server stat values.</param>
		/// <param name="item">The stat to be returned</param>
		/// <returns>The value of the specified stat item</returns>
		public long GetValue(IPEndPoint server, StatItem item)
		{
			// asked for a specific server
			if (server.Address != IPAddress.Any)
			{
				// error check
				string tmp = GetRaw(server, item);
				if (String.IsNullOrEmpty(tmp))
					throw new ArgumentException("Item was not found: " + item);

				long value;
				// return the value
				if (Int64.TryParse(tmp, out value))
					return value;

				throw new ArgumentException("Invalid value string was returned: " + tmp);
			}

			// check if we can sum the value for all servers
			if ((Optable[(int)item] & OpAllowsSum) != OpAllowsSum)
				throw new ArgumentException("The " + item + " values cannot be summarized");

			long retval = 0;

			// sum & return
			foreach (IPEndPoint ep in this.results.Keys)
			{
				retval += this.GetValue(ep, item);
			}

			return retval;
		}
        /// <summary>
        /// Gets a stat value for the specified server.
        /// </summary>
        /// <param name="server">The adress of the server. If <see cref="IPAddress.Any"/> is specified it will return the sum of all server stat values.</param>
        /// <param name="item">The stat to be returned</param>
        /// <returns>The value of the specified stat item</returns>
        public long GetValue(IPEndPoint server, StatItem item)
        {
            // asked for a specific server
            if (server.Address != IPAddress.Any)
            {
                var tmp = this.GetRaw(server, item);
                return(string.IsNullOrEmpty(tmp)
                                        ?  throw new ArgumentException("Item was not found: " + item)
                                        : Int64.TryParse(tmp, out long value)
                                                ? value
                                                : throw new ArgumentException("Invalid value string was returned: " + tmp));
            }

            // check if we can sum the value for all servers
            if ((ServerStats.Optable[(int)item] & ServerStats.OpAllowsSum) != ServerStats.OpAllowsSum)
            {
                throw new ArgumentException("The " + item + " values cannot be summarized");
            }

            // sum & return
            long result = 0;

            foreach (IPEndPoint ep in this.results.Keys)
            {
                result += this.GetValue(ep, item);
            }
            return(result);
        }
Example #3
0
 public bool TryGetValue(string tth, out StatItem item)
 {
     lock (_synRoot)
     {
         return(_items.TryGetValue(tth, out item));
     }
 }
Example #4
0
        private StatItem GetByCurr(List <StatItem> list, CurrencyTypeEnum ct)
        {
            lock (list)
            {
                var item = new StatItem();
                item.CurrencyType = ct;
                item.Name         = ct.ToString();

                if (list.Any(x => x.CurrencyType == ct))
                {
                    var d = list.First(x => x.CurrencyType == ct);
                    item.DealCount   = d.DealCount;
                    item.PriceId     = d.PriceId;
                    item.Price       = d.Price;
                    item.MiddleValue = d.MiddleValue;
                    item.Name        = d.Name;
                }
                else
                {
                    item.DealCount   = 0;
                    item.PriceId     = 0;
                    item.Price       = (decimal)0.0;
                    item.MiddleValue = (decimal)0.0;
                }
                return(item);
            }
        }
        public void BuildBox(SearchResultModel model)
        {
            foreach (var item in model.Items)
            {
                ProcessItem(item);
            }
            var box = new StatBox()
            {
                Title = BoxTitle
            };

            model.StatBoxs.Add(box);
            foreach (var engine in Engines.OrderByDescending(o => o.Counter).Take(10))
            {
                var red = new StatItem()
                {
                    Title = engine.Name, Value = engine.Counter, Link = "#"
                };
                box.StatItems.Add(red);
                if (model.Items.Count > 0)
                {
                    red.ValueText    = ((decimal)engine.Counter / model.Items.Count * 100).ToString("f") + "%";
                    red.ValuePercent = ((decimal)engine.Counter / model.Items.Count * 100);
                }
                else
                {
                    red.ValueText    = "0%";
                    red.ValuePercent = 0;
                }
            }
        }
Example #6
0
 public void Add(StatItem item)
 {
     item.Date = item.Date.ToOffset(new TimeSpan(-6, 0, 0));
     item.Date = item.Date.AddMinutes(item.Date.Minute * -1);
     item.Date = item.Date.AddSeconds(item.Date.Second * -1);
     item.Date = item.Date.AddMilliseconds(item.Date.Millisecond * -1);
     Items.Add(item);
 }
Example #7
0
        /// <summary>
        /// Returns the stat value for a specific server. The value is not converted but returned as the server returned it.
        /// </summary>
        /// <param name="server">The adress of the server</param>
        /// <param name="item">The stat value to be returned</param>
        /// <returns>The value of the stat item</returns>
        public string GetRaw(IPEndPoint server, StatItem item)
        {
            if ((int)item < StatKeys.Length && (int)item >= 0)
            {
                return(GetRaw(server, StatKeys[(int)item]));
            }

            throw new ArgumentOutOfRangeException("item");
        }
Example #8
0
 public StatsDetailsVM(StatItem statItem)
 {
     StatItem       = statItem;
     ItemCollection = new ObservableRangeCollection <StatItem>();
     if (statItem.Items != null)
     {
         ItemCollection.AddRange(statItem.Items);
     }
 }
Example #9
0
        private ActionResult stats(Guid gid)
        {
            var cx        = SmartHomeDBContext.Create(AppSettings);
            var fromD     = DateTime.Now.AddDays(-1);
            var toD       = DateTime.Now;
            var firstlist = from s in cx.DeviceLogs
                            where s.DeviceId == gid && s.Created > fromD && s.Created <= toD
                            select s;
            var list = from s in firstlist.ToList()
                       let groupKey = new DateTime(s.Created.Year, s.Created.Month, s.Created.Day, s.Created.Hour, (s.Created.Minute / 10) * 10, 0)
                                      group s by groupKey into g
                                      select new
            {
                Timestamp    = g.Key,
                DogHouseHeat = g.Max(e => e.DogHouseHeatingOn),
                DogHouseTemp = g.Average(e => e.DogHouseTemperature),
                IsWet        = g.Max(e => e.IsWet),
                WaterOn      = g.Max(e => e.WaterOn),
                Temp         = g.Average(e => e.Temperature)
            };
            var finallist = list.OrderBy(e => e.Timestamp);

            var ret = new StatObject();

            foreach (var i in finallist)
            {
                var itm = new StatItem();
                itm.dogheating = i.DogHouseHeat;
                itm.dogtemp    = i.DogHouseTemp;
                itm.iswet      = i.IsWet;
                itm.temp       = i.Temp;
                itm.time       = MySmartHomeCore.Extensions.DateTimeUtil.GetZonedDate(i.Timestamp, "HH:mm");
                itm.wateron    = i.WaterOn;
                if (ret.min > itm.dogtemp)
                {
                    ret.min = itm.dogtemp;
                }
                if (ret.min > itm.temp)
                {
                    ret.min = itm.temp;
                }
                if (ret.max < itm.dogtemp)
                {
                    ret.max = itm.dogtemp;
                }
                if (ret.max < i.Temp)
                {
                    ret.max = itm.temp;
                }
                ret.items.Add(itm);
            }

            return(View(ret));
        }
Example #10
0
        private void SetupStatGrid()
        {
            dgStat.SelectEnabled = false;
            dgStat.CaptionHeight = 0;
            var blank = new StatItem();

            dgStat.Columns.Add(new FastColumn(blank.Property(p => p.Name), Localizer.GetString("TitleName")));
            dgStat.Columns.Add(new FastColumn(blank.Property(p => p.Result), Localizer.GetString("TitleValue"))
            {
                ColumnWidth = 140
            });
            dgStat.ColorAltCellBackground = Color.FromArgb(230, 230, 230);
            dgStat.MinimumTableWidth      = dgStat.Columns.Count * DefaultColumnWidth;
        }
Example #11
0
 public void SetItem(StatItem item)
 {
     lock (_synRoot)
     {
         if (_items.ContainsKey(item.Magnet.TTH))
         {
             _items[item.Magnet.TTH] = item;
         }
         else
         {
             _items.Add(item.Magnet.TTH, item);
         }
     }
 }
Example #12
0
 public void UpgradeStat(StatItem stat)
 {
     if (stat == _damageStat)
     {
         _manager.CmdUpgradeStat((int)StatType.Damage);
     }
     else if (stat == _armorStat)
     {
         _manager.CmdUpgradeStat((int)StatType.Armor);
     }
     else if (stat == _moveSpeedStat)
     {
         _manager.CmdUpgradeStat((int)StatType.MoveSpeed);
     }
 }
Example #13
0
        /// <summary>
        ///Return Brush color based on StatItem Description
        /// </summary>
        /// <param name="item"></param>
        /// <param name="index"></param>
        /// <returns></returns>
        public Brush SelectBrush(object item, int index)
        {
            StatItem st = (StatItem)item;

            resourceDictionary        = new ResourceDictionary();
            resourceDictionary.Source = new Uri("pack://application:,,,/Ginger;component/Dictionaries/Skins/GingerDefaultSkinDictionary.xaml");
            //TODO: find better pallets colors
            switch (st.Description)
            {
            case "Automated":
            case "Executed":
            case "Passed":
                return((Brush)resourceDictionary["$PassedStatusColor"]);

            case "Failed":
            case "Not Automated":
            case "Not Executed":
            case "Not Passed":
                return((Brush)resourceDictionary["$FailedStatusColor"]);

            case "Blocked":
                return((Brush)resourceDictionary["$BlockedStatusColor"]);

            case "Pending":
                return((Brush)resourceDictionary["$PendingStatusColor"]);

            case "Started":
            case "Running":
            case "Wait":
            case "Canceling":
                return((Brush)resourceDictionary["$RunningStatusColor"]);

            case "Stopped":
                return((Brush)resourceDictionary["$StoppedStatusColor"]);

            case "NA":
            case "FailIgnored":
            case "Skipped":
                return((Brush)resourceDictionary["$SkippedStatusColor"]);

            //TODO: add all cover all status, or go to Act, Activity, BF and get color from status
            default:
                return((Brush)resourceDictionary["$SkippedStatusColor"]);
            }
        }
Example #14
0
        /// <summary>
        /// Gets a stat value for the specified server.
        /// </summary>
        /// <param name="server">The adress of the server. If <see cref="IPAddress.Any"/> is specified it will return the sum of all server stat values.</param>
        /// <param name="item">The stat to be returned</param>
        /// <returns>The value of the specified stat item</returns>
        public long GetValue(IPEndPoint server, StatItem item)
        {
            // asked for a specific server
            if (server.Address != IPAddress.Any)
            {
                // error check
                string tmp = GetRaw(server, item);
                if (String.IsNullOrEmpty(tmp))
                {
                    throw new ArgumentException("Item was not found: " + item);
                }

                long value;
                // return the value
                if (Int64.TryParse(tmp, out value))
                {
                    return(value);
                }

                throw new ArgumentException("Invalid value string was returned: " + tmp);
            }

            // check if we can sum the value for all servers
            if ((Optable[(int)item] & OpAllowsSum) != OpAllowsSum)
            {
                throw new ArgumentException("The " + item + " values cannot be summarized");
            }

            long retval = 0;

            // sum & return
            foreach (IPEndPoint ep in this.results.Keys)
            {
                retval += this.GetValue(ep, item);
            }

            return(retval);
        }
Example #15
0
        private void HandleUploaded(UploadItem item)
        {
            lock (_synRoot)
            {
                var magnet = item.Content.Magnet;

                StatItem statItem;
                if (_items.TryGetValue(magnet.TTH, out statItem))
                {
                    statItem.TotalUploaded += item.UploadedBytes;
                    statItem.LastUsage      = DateTime.Now;
                    _items[magnet.TTH]      = statItem;
                }
                else
                {
                    statItem               = new StatItem();
                    statItem.Magnet        = magnet;
                    statItem.LastUsage     = DateTime.Now;
                    statItem.TotalUploaded = item.UploadedBytes;
                    _items.Add(magnet.TTH, statItem);
                }
            }
        }
 public void BuildBox(SearchResultModel model)
 {
     foreach (var item in model.Items)
     {
         ProcessItem(item);
     }
     var box = new StatBox() { Title = BoxTitle };
     model.StatBoxs.Add(box);
     foreach (var engine in Engines.OrderByDescending(o=>o.Counter).Take(10))
     {
         var red = new StatItem() { Title = engine.Name, Value = engine.Counter, Link = "#" };
         box.StatItems.Add(red);
         if (model.Items.Count > 0)
         {
             red.ValueText = ((decimal)engine.Counter / model.Items.Count * 100).ToString("f") + "%";
             red.ValuePercent = ((decimal)engine.Counter / model.Items.Count * 100);
         }
         else
         {
             red.ValueText = "0%";
             red.ValuePercent = 0;
         }
     }
 }
 /// <summary>
 /// Returns the stat value for a specific server. The value is not converted but returned as the server returned it.
 /// </summary>
 /// <param name="server">The adress of the server</param>
 /// <param name="item">The stat value to be returned</param>
 /// <returns>The value of the stat item</returns>
 public string GetRaw(IPEndPoint server, StatItem item)
 {
     return((int)item < ServerStats.StatKeys.Length && (int)item >= 0
                         ? this.GetRaw(server, ServerStats.StatKeys[(int)item])
                         : throw new ArgumentOutOfRangeException(nameof(item)));
 }
Example #18
0
    void GetData()
    {
        List <CStatItem> lstStatItem = GetStatItemList();


        List <string> lstTable = new List <string>();
        string        sFields  = "";
        string        sGroupBy = "";
        string        sOrderBy = "";

        foreach (CStatItem StatItem in lstStatItem)
        {
            string sOrderFiled = "";
            if (StatItem.ItemType == CStatItem.enumItemType.Field)
            {
                CTable table = (CTable)Global.GetCtx(Session["TopCompany"].ToString()).TableMgr.Find(StatItem.FW_Table_id);
                if (table == null)
                {
                    continue;
                }
                CColumn column = (CColumn)table.ColumnMgr.Find(StatItem.FW_Column_id);
                if (column == null)
                {
                    continue;
                }

                if (!lstTable.Contains(table.Code))
                {
                    lstTable.Add(table.Code);
                }
                if (StatItem.StatType == CStatItem.enumStatType.Val)
                {
                    sFields    += string.Format("[{0}].[{1}],", table.Code, column.Code);
                    sGroupBy   += string.Format("[{0}].[{1}],", table.Code, column.Code);
                    sOrderFiled = string.Format("[{0}].[{1}]", table.Code, column.Code);
                }
                else
                {
                    sFields += string.Format("{0}([{1}].[{2}]) as [{3}],",
                                             StatItem.GetStatTypeFunc(), table.Code, column.Code, StatItem.Name);
                    sOrderFiled = StatItem.Name;
                }
            }
            else
            {
                sFields    += string.Format("({0}) as [{1}],", StatItem.Formula, StatItem.Name);
                sOrderFiled = StatItem.Name;
            }

            if (StatItem.Order == CStatItem.enumOrder.Asc)
            {
                sOrderBy += sOrderFiled + ",";
            }
            else if (StatItem.Order == CStatItem.enumOrder.Desc)
            {
                sOrderBy += sOrderFiled + " desc,";
            }
        }
        sFields  = sFields.TrimEnd(",".ToCharArray());
        sGroupBy = sGroupBy.TrimEnd(",".ToCharArray());
        sOrderBy = sOrderBy.TrimEnd(",".ToCharArray());

        string sTable = "";

        foreach (string sTb in lstTable)
        {
            sTable += sTb + ",";
        }
        sTable = sTable.TrimEnd(",".ToCharArray());

        string sSql = string.Format("select {0} from {1} ", sFields, sTable);

        sSql += " where IsDeleted=0 ";
        if (m_Report.Filter.Trim() != "")
        {
            sSql += " and " + m_Report.Filter;
        }
        if (sGroupBy != "")
        {
            sSql += " group by " + sGroupBy;
        }
        if (sOrderBy != "")
        {
            sSql += " order by " + sOrderBy;
        }

        //因为采用构造sql语句的方法来运行报表,所以仅考虑单数据库的情况,
        //即取主数据库。如果考虑多数据库分布存储情况,则使用对象来计算报表。
        DataTable dt = Global.GetCtx(Session["TopCompany"].ToString()).MainDB.QueryT(sSql);

        if (dt == null)
        {
            //MessageBox.Show("运行报表失败,请修改报表定义!");
            return;
        }


        string sData = "";

        foreach (DataRow r in dt.Rows)
        {
            string sRow = "";
            int    iCol = 0;
            foreach (CStatItem StatItem in lstStatItem)
            {
                string sVal = r[iCol].ToString();
                sRow += string.Format("\"{0}\":\"{1}\",", StatItem.Name, sVal);
                iCol++;
            }

            sRow   = sRow.TrimEnd(",".ToCharArray());
            sRow   = "{" + sRow + "},";
            sData += sRow;
        }
        sData = sData.TrimEnd(",".ToCharArray());
        sData = "[" + sData + "]";
        string sJson = string.Format("{{\"Rows\":{0},\"Total\":\"{1}\"}}"
                                     , sData, dt.Rows.Count);

        Response.Write(sJson);
    }
        /// <summary>
        /// Returns the stat value for a specific server. The value is not converted but returned as the server returned it.
        /// </summary>
        /// <param name="server">The adress of the server</param>
        /// <param name="item">The stat value to be returned</param>
        /// <returns>The value of the stat item</returns>
        public string GetRaw(IPEndPoint server, StatItem item)
        {
            if ((int)item < StatKeys.Length && (int)item >= 0)
                return GetRaw(server, StatKeys[(int)item]);

            throw new ArgumentOutOfRangeException("item");
        }
Example #20
0
        public override async Task DispatchAsync(string path, HttpFilterContext context)
        {
            /*
             *  is restful api
             */
            if (_processorManager.ContainsProcessor(path))
            {
                /***begin stat*****/
                var stat  = new StatItem();
                var watch = Stopwatch.StartNew();
                watch.Start();

                if (RestfulApplicationGlobalConfig.DebugMode)
                {
                    RestfulApplicationBaseComponents.Tracer.BeginTrace(context);
                }

                var processor = (RestfulRequestProcessor)_processorManager.GetProcessor(path);

                /*
                 * is method  match
                 */
                if (processor.HttpMethod == context.HttpContext.Request.Method.ToLower())
                {
                    /*
                     * is api available
                     */
                    if (processor.Available)
                    {
                        try
                        {
                            await processor.ProcessAsysnc(context);

                            //handle processor output

                            if (RestfulApplicationGlobalConfig.EnableCrossDomain)
                            {
                                context.HttpContext.Response.Headers.Add("Access-Control-Allow-Origin", "*");
                            }

                            context.HttpContext.Response.Headers.Add("Content-Type", "text/html");

                            if (context.ReturnValue != null)
                            {
                                var buffer = JsonSerializer.Instance.SerializeToBytes(context.ReturnValue);

                                await context.HttpContext.Response.Body.WriteAsync(buffer, 0, buffer.Length);
                            }
                        }
                        catch (Exception ex)
                        {
                            _logger.Error(ex);

                            if (!context.HttpContext.Response.HasStarted)
                            {
                                context.HttpContext.Response.StatusCode = HttpStatusCodes.SERVER_ERROR;
                            }
                        }
                    }
                    else if (processor.HasAlternativeService)
                    {
                        await DispatchAsync(processor.AlternativeServicePath, context);

                        stat.Sucessed = false;
                        stat.Elapsed  = watch.ElapsedMilliseconds;
                        processor.Metric.Add(stat);

                        if (RestfulApplicationGlobalConfig.DebugMode)
                        {
                            RestfulApplicationBaseComponents.Tracer.EndTrace(context);
                        }

                        // should return  cause alternative service already flushed
                        return;
                    }
                    else
                    {
                        context.HttpContext.Response.StatusCode = HttpStatusCodes.SERVER_NOT_AVAILABLE;
                    }
                }
                else
                {
                    context.HttpContext.Response.StatusCode = HttpStatusCodes.INCORRECT_HTTP_METHOD;
                }

                if (context.HttpContext.Response.StatusCode != HttpStatusCodes.SUCESSED)
                {
                    stat.Sucessed = false;
                }

                stat.Elapsed = watch.ElapsedMilliseconds;

                processor.Metric.Add(stat);

                if (RestfulApplicationGlobalConfig.DebugMode)
                {
                    RestfulApplicationBaseComponents.Tracer.EndTrace(context);
                }
            }

            /*
             *  static file enabled
             */
            else if (RestfulApplicationGlobalConfig.StaticFileEnabled)
            {
                var stream = await RestfulApplicationBaseComponents.StaticFileProvider.GetStreamAsync(RestfulApplicationGlobalConfig.VirtueRootPath + path);

                /*
                 *  file not exists
                 */
                if (stream == null)
                {
                    context.HttpContext.Response.StatusCode = HttpStatusCodes.NOT_FOUND;
                }
                else
                {
                    var index = path.LastIndexOf(".");

                    var ext = index != -1 ? path.Substring(index, path.Length - index) :
                              ".html";

                    context.HttpContext.Response.StatusCode = HttpStatusCodes.SUCESSED;

                    context.HttpContext.Response.Headers.Add("Content-Type", MediaTypeHelper.GetMediaTypeByExtension(ext));

                    await stream.CopyToAsync(context.HttpContext.Response.Body);

                    stream.Close();
                }
            }
            else
            {
                context.HttpContext.Response.StatusCode = HttpStatusCodes.NOT_FOUND;
            }

            /*
             * flush
             */

            await context.HttpContext.Response.Body.FlushAsync();
        }
        private void SetupAccountGrid()
        {
            var blankStatItem = new StatItem();
            dgAccount.Columns.Add(new FastColumn(blankStatItem.Property(p => p.Name), Localizer.GetString("TitleName")) {RelativeWidth = 0.2});
            dgAccount.Columns.Add(new FastColumn(blankStatItem.Property(p => p.Result), Localizer.GetString("TitleValue")) {RelativeWidth = 0.8});
            dgAccount.ColorAltCellBackground = colorAltCell;
            dgAccount.MinimumTableWidth = dgAccount.Columns.Count * DefaultColumnWidth;
            dgAccount.CheckSize(true);

            gridPendingOrders.CheckSize(true);
        }
Example #22
0
 private void FilterModelStatItemSwap(StatItem param)
 {
     param.TriStateSwap();
 }
Example #23
0
        void Run()
        {
            if (m_Report == null)
            {
                return;
            }
            dataGridView.Columns.Clear();
            List <CStatItem>   lstStatItem = new List <CStatItem>();
            List <CBaseObject> lstObj      = m_Report.StatItemMgr.GetList();

            foreach (CBaseObject obj in lstObj)
            {
                lstStatItem.Add((CStatItem)obj);
            }
            lstStatItem.Sort();//按索引idx排序

            foreach (CStatItem StatItem in lstStatItem)
            {
                dataGridView.Columns.Add(StatItem.Name, StatItem.Name);
            }

            List <string> lstTable = new List <string>();
            string        sFields  = "";
            string        sGroupBy = "";
            string        sOrderBy = "";

            foreach (CStatItem StatItem in lstStatItem)
            {
                string sOrderFiled = "";
                if (StatItem.ItemType == CStatItem.enumItemType.Field)
                {
                    CTable table = (CTable)Program.Ctx.TableMgr.Find(StatItem.FW_Table_id);
                    if (table == null)
                    {
                        continue;
                    }
                    CColumn column = (CColumn)table.ColumnMgr.Find(StatItem.FW_Column_id);
                    if (column == null)
                    {
                        continue;
                    }

                    if (!lstTable.Contains(table.Code))
                    {
                        lstTable.Add(table.Code);
                    }
                    if (StatItem.StatType == CStatItem.enumStatType.Val)
                    {
                        sFields    += string.Format("[{0}].[{1}],", table.Code, column.Code);
                        sGroupBy   += string.Format("[{0}].[{1}],", table.Code, column.Code);
                        sOrderFiled = string.Format("[{0}].[{1}]", table.Code, column.Code);
                    }
                    else
                    {
                        sFields += string.Format("{0}([{1}].[{2}]) as [{3}],",
                                                 StatItem.GetStatTypeFunc(), table.Code, column.Code, StatItem.Name);
                        sOrderFiled = StatItem.Name;
                    }
                }
                else
                {
                    sFields    += string.Format("({0}) as [{1}],", StatItem.Formula, StatItem.Name);
                    sOrderFiled = StatItem.Name;
                }

                if (StatItem.Order == CStatItem.enumOrder.Asc)
                {
                    sOrderBy += sOrderFiled + ",";
                }
                else if (StatItem.Order == CStatItem.enumOrder.Desc)
                {
                    sOrderBy += sOrderFiled + " desc,";
                }
            }
            sFields  = sFields.TrimEnd(",".ToCharArray());
            sGroupBy = sGroupBy.TrimEnd(",".ToCharArray());
            sOrderBy = sOrderBy.TrimEnd(",".ToCharArray());

            string sTable = "";

            foreach (string sTb in lstTable)
            {
                sTable += sTb + ",";
            }
            sTable = sTable.TrimEnd(",".ToCharArray());

            string sSql = string.Format("select {0} from {1} ", sFields, sTable);

            sSql += " where IsDeleted=0 ";
            if (m_Report.Filter.Trim() != "")
            {
                sSql += " and " + m_Report.Filter;
            }
            if (sGroupBy != "")
            {
                sSql += " group by " + sGroupBy;
            }
            if (sOrderBy != "")
            {
                sSql += " order by " + sOrderBy;
            }

            //因为采用构造sql语句的方法来运行报表,所以仅考虑单数据库的情况,
            //即取主数据库。如果考虑多数据库分布存储情况,则使用对象来计算报表。
            DataTable dt = Program.Ctx.MainDB.QueryT(sSql);

            if (dt == null)
            {
                MessageBox.Show("运行报表失败,请修改报表定义!");
                return;
            }

            foreach (DataRow r in dt.Rows)
            {
                dataGridView.Rows.Add(1);
                DataGridViewRow row = dataGridView.Rows[dataGridView.Rows.Count - 1];
                for (int col = 0; col < dataGridView.Columns.Count; col++)
                {
                    row.Cells[col].Value = r[col];
                }
            }
        }
Example #24
0
 private void Start()
 {
     moveSpeedStat = MUtil.GetStat <STAT_MoveSpeed>(gameObject);
 }
Example #25
0
 public StatsDetailsPage(StatItem item)
 {
     BindingContext = VM = new StatsDetailsVM(item);
 }
 private void SetupStatGrid()
 {
     dgStat.SelectEnabled = false;
     dgStat.CaptionHeight = 0;
     var blank = new StatItem();
     dgStat.Columns.Add(new FastColumn(blank.Property(p => p.Name), Localizer.GetString("TitleName")));
     dgStat.Columns.Add(new FastColumn(blank.Property(p => p.Result), Localizer.GetString("TitleValue")) { ColumnWidth = 140 });
     dgStat.ColorAltCellBackground = Color.FromArgb(230, 230, 230);
     dgStat.MinimumTableWidth = dgStat.Columns.Count * DefaultColumnWidth;
 }