2017-10-08 77 views
-2

我无法做的一件事是查询数据以供统计使用。2sxc - 用于统计的查询数据

在民族解放力量,例如,你可以使用完整的SQL服务器功能,位我还是想不通如何2sxc来达到同样的目的访问数据...

有什么办法,我可以将列表中的数据放入一个SQL视图(临时表)然后查询它?或者使用任何其他方法访问数据并进行查询?

最好的问候, 若昂

回答

1

你能做到这一点的剃刀。

根据您在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教程

+0

从来没有想过将LINQ作为查询语言,但这正是它的原因......在2sxc页面上没有“GroupBy”信息。我可以搜索Web上的任何LINQ文档吗?所有的LINQ操作符都可以在2sxc视图上使用吗? –

+1

我会对这两个问题都回答。 Linq在那里,因为SIC默认集成了它,所以所有的Linq语法都可用。查看IEnumerable文档:https://msdn.microsoft.com/en-us/library/system.linq.enumerable_methods(v = vs.110).aspx –

+0

只是最后一个插件。用这个:foreach(项目中的变量z){@ z.field}我得到以下输出:A,A,B,C,D,D。如何在一行代码中对它们进行分组和计数?我需要输出这个:A - 2; B - 1; C-1; D - 2等 –