2017-10-08 125 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等 –