2sxc - 用于统计的查询数据
问题描述:
我无法做的一件事是查询数据以供统计使用。2sxc - 用于统计的查询数据
在民族解放力量,例如,你可以使用完整的SQL服务器功能,位我还是想不通如何2sxc来达到同样的目的访问数据...
有什么办法,我可以将列表中的数据放入一个SQL视图(临时表)然后查询它?或者使用任何其他方法访问数据并进行查询?
最好的问候, 若昂
答
你能做到这一点的剃刀。
根据您在2sxc视觉查询/管道中筛选,排序和提取的内容,在模板中接收对象App.Data [“your_pipeline_data”],例如App.Data [“Default”]。你可以在这个对象上使用Linq来操作数据,如果你把这些数据放在一个可枚举的类型对象中,你可以得到你想要的信息。
一个例子:
@{
var termGroups = ((IEnumerable<dynamic>)AsDynamic(App.Data["Default"]))
.OrderBy(t => t.Nom) // sort terms
.GroupBy(l => l.Nom.Substring(0, 1).ToUpper()) // group by first letter
.OrderBy(s => s.Key); // ensure sorting at group-level
int groups= Enumerable.Count(termGroups);
}
是一个的GroupBy的SQL中的等同物。
要处理所有的数据,不要把任何的LINQ指令
@{
var terms = ((IEnumerable<dynamic>)AsDynamic(App.Data["Default"]));
int count = Enumerable.Count(terms);
}
之后,只需使用该变量在你的模板那样:
There are @terms items in the list.
或
There are @groups groups in the list.
学分:Linq代码来自2sxc AZ教程
从来没有想过将LINQ作为查询语言,但这正是它的原因......在2sxc页面上没有“GroupBy”信息。我可以搜索Web上的任何LINQ文档吗?所有的LINQ操作符都可以在2sxc视图上使用吗? –
我会对这两个问题都回答。 Linq在那里,因为SIC默认集成了它,所以所有的Linq语法都可用。查看IEnumerable文档:https://msdn.microsoft.com/en-us/library/system.linq.enumerable_methods(v = vs.110).aspx –
只是最后一个插件。用这个:foreach(项目中的变量z){@ z.field}我得到以下输出:A,A,B,C,D,D。如何在一行代码中对它们进行分组和计数?我需要输出这个:A - 2; B - 1; C-1; D - 2等 –