發表文章

MAUI 發行 Android 產生 APK/AAB 檔案

圖片
在 Visual Studio 2022 Preview 新增任一 MAUI 專案,包括: .NET MAUI App .NET MAUI Blazor 以下說明三個步驟產生 APK/AAB 檔案。 A. 建立 Key Store 檔案 選單 > VIEW > Terminal > Developer PowerShell keytool -genkey -v -keystore myapp.keystore -alias key -keyalg RSA -keysize 2048 -validity 10000 檔案總管可看到 myapp.keystore 檔案 B. 專案設定 Keystore (1) 專案檔 > 右鍵 > Property > Android > Package Signing (2) 勾選 Sign the .APK file using the following keystore details. (3) 瀏覽選取上述 keystore 檔案 (4) 輸入密碼 (5) 輸入別名 (6) 輸入密碼 C. 發行 App (1) 設定方案組態 Release (2) 模擬器選擇 Android (3) 專案 > 右鍵 > Publish 完成後,可以在 專案目錄\bin\Release\net6.0-android 目錄下可以看到 AAB 與 APK 檔案。 ***--Signed.aab --> 上架 Google Play 需要上傳這個檔案。 ***--Signed.apk --> 可以提供讓 Android 手機下載,手動安裝 APP。 參考連結 文章 : Publish a .NET MAUI app for Android - .NET MAUI | Microsoft Docs 影片 : Create a Signed and Publishable .NET MAUI Android App in VS2022

MAUI 更換應用程式圖示與轉場圖片

圖片
MAUI 預設的應用程式圖示 (App Icon) 與轉場圖片 (Splash) ,如下兩圖: Visual Studio MAUI 專案檔可以找到對應程式圖示與轉場圖片的 SVG 檔案名稱,最簡易更換圖片的方式,將欲更換的 SVG 檔案 XML 內容直接貼上。 應程式圖示主圖示檔案 \Resources\AppIcon\appiconfg.svg 應程式圖示背景檔案  \Resources\AppIcon\appicon.svg 轉場圖片檔案 Splash\splash.svg 不建議更換檔案名稱。 若將原檔案刪除,再新增同檔名的檔案,需要調整各檔案的 Build Action 與 Copy to Output Directory 應程式圖示主圖示檔案 應程式圖示背景檔案 轉場圖片檔案 修改後成果 實作參考原始碼 MyBasicLab/MauiChangeIcon at main · robinli/MyBasicLab (github.com) SVG 線上檢視工具程式 SVG Viewer - View, save, and optimize SVGs

Blazor 發行後用戶端自動更新

圖片
  前言 目前 Blazor 改版發行後,用戶端可能會繼續操作上一版的程式,直到網頁重新整理才能取得新版本程式,由於無法逐一通知使用者改版,最好能自動偵測改版並自動更新。這功能或許未來 Blazor 核心即可解決,在那之前自己先動手改善。 [ Blazor Auto Refresh Update ] 範例提供以下三種 Blazor 型態發行新版程式時,瀏覽器(用戶端)可以自動重新整理網址取得新版程式。 Blazor Server App Blazor WebAssembly App Blazor WebAssembly App + PWA 主要是參考 Blazor Train 教學影片 [ Handling App Updates: Carl Franklin's Blazor Train Ep 60 ], 將 .NET 5.0 改版為 .NET 6.0,另外 PWA 專案中增加一個訊息畫面。 開發環境 Visual Studio 2022 .NET 6.0 預設的 Blazor 範本 追蹤程式碼 取得原始碼 [ Blazor Auto Refresh Update ] 👈GitHub 程式碼修改細節,可以透過 Find in Files 輸入:  Auto Refresh Update Tip 檢視所有程式碼片段。 發行程序 Blazor Server App  不用修改任何檔案。 Blazor WebAssembly App  發行新版本需要修改 appsettings.json 版本編號。 appsettings.json Index.razor (非必要) Blazor WebAssembly App + PWA  發行新版本需要修改以下檔案內的版本編號。 appsettings.json Toolbar.razor service-worker.published.js Index.razor (非必要) 參考資源 Blazor Train 教學影片 [ Handling App Updates: Carl Franklin's Blazor Train Ep 60 ] 👈YouTube

使用 T-SQL 計算帳齡分析 Aging Analysis Report

圖片
需求說明 常見帳齡分析的報表例如:客戶帳齡分析、產品庫存呆滯天數分析...等。  舉例一組簡化的客戶發票資料,包括單號、日期、金額,  欲將發票資料依天數組距加總統計,得到客戶帳齡分析,  如下圖。    原始資料  交易資料中必要欄位有:  一個日期欄位 : 用來計算與指定日期相差幾天  一個數值欄位 : 用來各組距彙總時的數值  DECLARE @SourceData AS TABLE (DOCNO varchar (16), TRANS_DATE date , AMOUNT int ) insert into @SourceData(DOCNO, TRANS_DATE, AMOUNT) select DOCNO= '2021011501' , TRANS_DATE= convert ( date , '2021-01-15' ),AMOUNT=300 union select DOCNO= '2021052601' , TRANS_DATE= convert ( date , '2021-05-26' ),AMOUNT=400 union select DOCNO= '2021060701' , TRANS_DATE= convert ( date , '2021-06-07' ),AMOUNT=300 union select DOCNO= '2021060801' , TRANS_DATE= convert ( date , '2021-06-08' ),AMOUNT=400 union select DOCNO= '2021060901' , TRANS_DATE= convert ( date , '2021-06-09' ),AMOUNT=700 union select DOCNO= '2021071001' , TRANS_DATE= convert ( date , '2021-07-10' ),AMOUNT=800 union select DOCNO= '2021071101' ,

使用 Excel 計算帳齡分析 Aging Analysis Report

圖片
需求說明  常見帳齡分析的報表例如:客戶帳齡分析、產品庫存呆滯天數分析...等。  舉例一組簡化的客戶發票資料,包括單號、日期、金額,  欲將發票資料依天數組距加總統計,得到客戶帳齡分析,  如下圖。  原始資料  交易資料中必要欄位有:  一個日期欄位 : 用來計算與指定日期相差幾天  一個數值欄位 : 用來各組距彙總時的數值    定義天數組距  0 ~ 30 : 表示 0 天至 30 天  31 ~ 60 : 表示 31 天至 60 天  以此類推     計算步驟  1. 延伸原始資料  (1) Age / 天數 :  計算交易資料 [日期] 與指定日期相差幾天  (2) 天數組距 :  由 [Age / 天數] 對應組距名稱    公式如下 D38 = DATEVALUE($B$ 35 )-DATEVALUE(B38) E38 = VLOOKUP(D38,$A$27:$C$31,3,TRUE)  2. 依照組距加總數值  利用 Excel 函式 SUMIF 產生各組距的加總。  公式如下 A62 = SUMIF($E$38:$E$56,A61,$C$38:$C$56)  B62 = SUMIF($E$38:$E$56,B61,$C$38:$C$56)  相關連結 下載範例 Excel 檔案 使用 T-SQL 計算帳齡分析 Aging Analysis Report    

T-SQL Two Dimension Pivot Table

圖片
將原始資料  select BRAND='ASUS', QTY=1, AMT=200 union all select BRAND='BENQ', QTY=1, AMT=200 union all select BRAND='ASUS', QTY=1, AMT=200 union all select BRAND='BENQ', QTY=1, AMT=200 union all select BRAND='MSI', QTY=1, AMT=200 依各品牌匯總數量、金額,做出以下的統計表 解決方法 1 - Group By 加條件式  select ASUS_QTY = SUM(IIF(Src.BRAND='ASUS', Src.QTY, 0)) , ASUS_AMT = SUM(IIF(Src.BRAND='ASUS', Src.AMT, 0)) , BENQ_QTY = SUM(IIF(Src.BRAND='BENQ', Src.QTY, 0)) , BENQ_AMT = SUM(IIF(Src.BRAND='BENQ', Src.AMT, 0)) , MSI_QTY = SUM(IIF(Src.BRAND='MSI', Src.QTY, 0)) , MSI_AMT = SUM(IIF(Src.BRAND='MSI', Src.AMT, 0)) from( select BRAND='ASUS', QTY=1, AMT=200 union all select BRAND='BENQ', QTY=1, AMT=200 union all select BRAND='ASUS', QTY=1, AMT=200 union all select BRAND='BENQ', QTY=1, AMT=200 union all select BRAND='MSI', QTY=1, AMT=200 ) Src 解決方法 2 - Pivot Table  做多維度 Pivot Table

Azure DevOps 看板中顯示前後期工作

圖片
Azure DevOps 工作看板可以將本期、前一期、下一期的工作,以不同的顏色區分顯示,一目了然。    設定方式  進入 Azure DevOps  > Boards > Boards    在主畫面右上角點擊設定的 Icon    設定當期顯示的顏色  (1)在開窗畫面中進入 Settings > Styles   (2)點擊新增一個 [Style rule]  (3) Field 輸入 Iteration Path  (4) Value  輸入 @currentIteration       設定前一期顯示的顏色  同上述步驟點擊新增一個 [Style rule]  Field 輸入 Iteration Path  Value 輸入 @currentIteration - 1