首頁>技術>

在各種Erp管理系統中,經常統計某一時間段內的客戶銷售訂單分佈圖,效果如下:

開發步驟如下:

1、開啟“擴充套件功能定義”,

2、開啟新建的擴充套件功能“訂單客戶統計分析”,如圖所示:

填寫服務端程式碼,客戶端程式碼和UI程式碼,關鍵程式碼如下所示:

(1)服務端程式碼:

async Task Retrieve(RichErpDbContext dbContext, RichErpEntityForInfo inInfo, RichErpEntityForInfo returnInfo)

{

returnInfo.Q = new Comm_QueryCondition();

var chartInfo = new Comm_chartInfo();

chartInfo.Width = 800;

chartInfo.ChartOption = await GetOrderWeightFenbu(dbContext, inInfo);

returnInfo.Q.Items["result1"] = RichErpNewtonJson.SerializeObject(chartInfo);

}

服務端程式碼主要作用是獲取資料,生成Comm_chartInfo,然後傳送到客戶端,由客戶端生成報表。

(2)客戶端關鍵程式碼:

async void RichUc_NavBase_Run(object sender, RoutedEventArgs e)

{

try

{

var info = new RichErpEntityForInfo();

info.Action = "exeCode";

info.Q = ucNull.RichUc_NavBase.QueryCondition;

info.Q.Items["codeId"] = codeExt.comm_code.id;

info.Q.Items["action"] = "cx";

if (!ucNull.OpenCommHttpClient(true)) return;

try

{

var returnInfo = await ucNull.PostData(info);

if (returnInfo == null) return;

var ls_chartInfoJson1 = returnInfo.Q.Items["result1"];

await cefWebView1.ExecuteScriptAsync("comm_chartApplyInfo('" + ls_chartInfoJson1 + "');");

var ls_chartInfoJson2 = returnInfo.Q.Items["result2"];

await cefWebView2.ExecuteScriptAsync("comm_chartApplyInfo('" + ls_chartInfoJson2 + "');");

}

finally

{

ucNull.CloseBackWorker();

}

}

catch (Exception ex)

{

ucNull.ShowMessageBox(ex);

}

}

主要作用是根據使用者選擇的日期範圍或其他條件,從服務端獲取資料,然後把服務端返回的資料顯示在Chart控制元件中。

(3)UI關鍵程式碼:

<Grid>

<Grid.RowDefinitions>

<RowDefinition Height="300"/>

<RowDefinition/>

</Grid.RowDefinitions>

<nsUIComm:Comm_uc_CefWebView x:Name="cefWebView1" Margin="3,3,3,0" Grid.Row="0"/>

</Grid>

主要作用是在介面中開啟WebView,顯示出Chart圖表。

擴充套件功能及前後端程式碼做好以後,就可以掛接到RichErp系統中去了,步驟如下:

2、設定許可權

3、最後退出系統,重新登入,就可以看到您的傑作了。

9
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • OpenAppFilter功能簡介