1. 程式人生 > >abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理八(二十六)

abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理八(二十六)

abp(net core)+easyui+efcore實現倉儲管理系統目錄

abp(net core)+easyui+efcore實現倉儲管理系統——ABP總體介紹(一)

abp(net core)+easyui+efcore實現倉儲管理系統——解決方案介紹(二)

abp(net core)+easyui+efcore實現倉儲管理系統——領域層建立實體(三)

 abp(net core)+easyui+efcore實現倉儲管理系統——定義倉儲並實現 (四)

abp(net core)+easyui+efcore實現倉儲管理系統——建立應用服務(五)

abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之控制器(六)

abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之列表檢視(七)

abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之增刪改檢視(八)

abp(net core)+easyui+efcore實現倉儲管理系統——展現層實現增刪改查之選單與測試(九)

abp(net core)+easyui+efcore實現倉儲管理系統——多語言(十)

abp(net core)+easyui+efcore實現倉儲管理系統——使用 WEBAPI實現CURD (十一)

abp(net core)+easyui+efcore實現倉儲管理系統——選單-上 (十六)

abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI前端頁面框架 (十八)

abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理一 (十九)

 abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理二 (二十)

abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理三 (二十一) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理四 (二十二)  abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理五 (二十三) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理六(二十四) abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理七(二十五)  

       從篇 abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI前端頁面框架 (十八) 至abp(net core)+easyui+efcore實現倉儲管理系統——EasyUI之貨物管理七(二十五) 為止,我們已經通過EasyUI完成了貨物資訊管理的增刪改功能基本實現。現在我們來完成查詢功能。

十七、查詢貨物資訊

      1. 在Visual Studio 2017的“解決方案資源管理器”中,右鍵單擊在領域層“ABP.TPLMS.Web.Mvc”專案中的Views\Cargo目錄。 找到Index.cshmtl檔案,新增一個查詢條件相關程式碼。如下圖。

 

具體程式碼如下:

<div id="dg-button">
      <form name="searchform" method="post" action="" id="searchform">
             <label for="Name">貨物名稱:</label>
             <input  name="Name" id="Name" class="easyui-validatebox" data-options="width:200" />
              <label for="Code">貨物程式碼:</label>
              <input name="Code" id="Code" class="easyui-validatebox" data-options="width:150" />
               <label for="HsCode">商品編碼:</label>
               <input name="HsCode" id="HsCode" class="easyui-validatebox" data-options="width:100" />
              <a href="#" id="search" class="easyui-linkbutton" data-options="iconCls:'icon-search'" onclick="Search()">查詢</a>
          </form>
        </div>

 

       2.在Visual Studio 2017的“解決方案資源管理器”中,右鍵單擊“ABP.TPLMS.Application”專案的 “Cargos”資料夾中,找到Paged CargoResultRequestDto.cs檔案,新增查詢條件屬性。程式碼如下。

public class PagedCargoResultRequestDto : PagedResultRequestDto
    {
        public string Keyword { get; set; }
        public string CargoName { get; set; }
        public string CargoCode { get; set; }
        public string HsCode { get; set; }
    }
}

 

      3. 在Visual Studio 2017的“解決方案資源管理器”中,右鍵單擊在領域層“ABP.TPLMS.Web.Mvc”專案中的Controller目錄。找到“CargoController.cs”檔案。如下圖。

 

具體程式碼如下:

[DontWrapResult]
        [HttpPost]
        public string List()
        {
            var page = Request.Form["page"].ToString();
            var size = Request.Form["rows"].ToString();
            int pageIndex = page == null ? 1 : int.Parse(page);
            int pageSize = size == null ? 20 : int.Parse(size);

            PagedCargoResultRequestDto paged = new PagedCargoResultRequestDto();
            paged.MaxResultCount = pageSize;
            paged.SkipCount = ((pageIndex-1)<0?0: pageIndex - 1) * pageSize;
            paged.CargoName = Request.Form["Name"].ToString();
            paged.CargoCode = Request.Form["Code"].ToString();
            paged.HsCode = Request.Form["HsCode"].ToString(); 

            var userList = _cargoAppService.GetAll(paged).GetAwaiter().GetResult().Items;
            int total = _cargoAppService.GetAll(paged).GetAwaiter().GetResult().TotalCount; //1000;
            var json = JsonEasyUI(userList,total);
            return json;
        }
      4. 在Visual Studio 2017的“解決方案資源管理器”中,找到領域層“ABP.TPLMS.Web.Mvc”專案中的wwwroot目錄下的view-resources\Cargo資料夾下,找到cargomgr.js檔案,在工具欄(toolbar)中新增查詢條件。如下圖畫框處。

 

     5.在cargomgr.js檔案新增一個查詢方法Search,程式碼如下。

function Search() {
    var _$form = $('form[name=searchform]');
    var params = _$form.serializeFormToObject();
    $('#dgCargo').datagrid({ queryParams:params});
}
     6.在Visual Studio 2017中按F5執行應用程式。

     7.在瀏覽器中的位址列中輸入“http://localhost:5000/”,然後輸入管理員使用者名稱進行登入。

     8.在主介面的選單中,選擇“Business->貨物管理”選單項,瀏覽器中呈現一個帶查詢條件的貨物資訊列表與四個按鈕。如下圖。

      9.在“貨物程式碼”查詢條件中輸入“A”,然後點選“查詢”按鈕,然而查詢結果沒有變化。如下圖。

     10. 在“商品編碼”查詢條件中輸入“8548900010”,然後點選“查詢”按鈕,然而查詢結果沒有變化。如下圖。

      11.通過上面的兩次測試,發現查詢沒有起到作用。輸入查詢條件,還是查詢出了所有記錄。接下來我們來把查詢條件新增到查詢方法中。在Visual Studio 2017的“解決方案資源管理器”中,右鍵單擊“ABP.TPLMS.Application”專案的 “Cargos”資料夾中,找到CargoAppService.cs檔案。重寫CreateFilteredQuery方法。程式碼如下。

protected override IQueryable<Cargo> CreateFilteredQuery(PagedCargoResultRequestDto input)
        {

            return base.CreateFilteredQuery(input)
                 .Where(t => t.CargoName.Contains(input.CargoName))
                 .Where(t => t.CargoCode.Contains(input.CargoCode))
                 .Where(t => t.HSCode.Contains(input.HsCode))
                 ;
        }
     12. 重複上面的第6、7、8步。然後在“貨物程式碼”查詢條件中輸入“a”,然後點選“查詢”按鈕,然而查詢出所有貨物程式碼中有“a”的貨物資訊。如下圖。

     13.在“商品編碼”查詢條件中輸入“1100120000”,然後點選“查詢”按鈕,然而查詢出所有“商品編碼”中有“1100120000”的貨物資訊。如下圖。

      14.在“商品名稱”查詢條件中輸入“觸控式螢幕”,然後點選“查詢”按鈕,然而查詢出所有“商品名稱”中有“觸控式螢幕”的貨物資訊。如下圖。

       15.在“商品名稱”查詢條件中輸入“觸控式螢幕”,然後點選“查詢”按鈕,然而查詢出所有“商品名稱”中有“觸控式螢幕”的貨物資訊,然後點選翻頁。如下圖。

 

       至此,通過EasyUI進行增刪改查的功能已經全部實現。