網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
skype: netqna
line:netqna
微信:netqna
黃先生 Allen
網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。
網智數位主要提供套裝及客製化的軟體系統解決方案,針對室內設計師、木工、裝潢業產業,量身訂做客製化的軟體,達成客製化、智慧化及網路化的商用軟體。
網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。
根據客戶實際狀況,結合雲端與載具進行客製化物聯網IOT導入與軟體開發
我們的雲端VPS虛擬主機是採用雲端(虛擬化)技術所開發之全新雲端伺服器服務,可以選擇多種作業系統(Windows、Linux等),客戶可載入自訂的應用環境,執行自己所要提供的網路服務,我們的雲端服務可為您的網站提供最完美的解決方案。
ERP軟體客製化導入,室內設計、營造業、裝潢、木作工程、系統櫃工程、會計系統,全面提升公司管理營運效率。
搜尋引擎最佳化(SEO)不僅能提高網站在搜尋結果的排名,更能帶來大量對我們產品或服務真正有需求的訪客。SEO 最棒的特質之一就是不像廣告一樣亂槍打鳥而導致用戶的反感,反而更能提升點閱率跟成交率喔。
網智數位-軟體開發團隊,累積了超過10年開發中小企業的管理軟體(軟件)委外案,有超過 8 成比例都是完全從無到有,量身訂做去了解客戶的營運流程、現行文件(例如 Excel、Word、PDF)、紙上紙本,大量收集後,跟業主不斷的溝通了解,並給出適當的系統開發建議,目的就是協助客戶從繁雜的作業流程、人工作賬、紙上作業、傳真文件等,開發客戶合適的管理軟體。
上圖就是新竹與台南某廠商客戶,因為長期以來被大量客戶的文件測試報告、檢驗報告,各種客戶所該維護的專案、委託案、以及該專案需派工的檢驗人員、檢驗統計數字、是否需要複查等各種作業模式所困擾,以往光單單人工作業、紙本查詢可能就需要花上人力成本超過5~10天,而現在經過 網智數位-軟體開發團隊,進入分析與建議並開發該作業模式的管理系統軟體(軟件),該軟體可以協助客戶,進行企業的客戶管理(CRM)、以及迅速通知那些專案目前有發生需要追蹤、系統跑出各種統計圖表、歷年的專案報告匯出和匯入,案子的各式圖片管理等,迅速達到委託我們開發軟體的客戶管理績效,所以好的軟體管理系統是可以迅速提升企業的效率與效益。
那麼究竟我們該如何定義這些聰明、有智慧的程式開發者呢?可以歸納有這樣 5 個主要關鍵因素:
此篇文是 Entity Framework 實戰 - 多對多自我關聯 Many to Many , Self Referencing 模型實作 (一)的續篇 , 當我們把基本模型 Product Class 建立好後,我們開始實作一個繼承 DbContext 的子類別,在這邊你可以把 DbContext 當做是資料庫的層次意義角度來看待
新增一個Class 名為 ProductContext.cs
然後按【新增】按鈕,並在 ProductContext 宣示繼承 DbContext 類別,如以下程式碼
1: using System;2: using System.Collections.Generic;3: using System.Data.Entity;4: using System.Linq;5: using System.Text;6: using System.Threading.Tasks;7:8: namespace EF6_ManyToManyAndSelf9: {10: public class ProductContext : DbContext11: {12:13: }14: }
接著加入 DbSet<Product> 的宣告,用於表示 存放著 Product Table(Class)的集合清單
public DbSet<Product> Products;
然後為了完成透過 Product 本身的 Class 來完成 多對多自身關聯,需要 override OnModelCreating Method , 程式碼如下
1: protected override void OnModelCreating(DbModelBuilder modelBuilder)2: {
3: base.OnModelCreating(modelBuilder);4:
5: modelBuilder.Entity<Product>()
6: .HasMany(p => p.RelatedProducts)
7: .WithMany(p => p.AboveProducts)
8: .Map(m =>
9: {
10: m.MapLeftKey("ProductID");11: m.MapRightKey("RelatedProductID");12: m.ToTable("RelatedProduct");13: }
14: );
15: }
到這邊基本上已經完成 EntityFramework 的宣告….
然後讓我們在前端界面使用我們實作好的 ProductContext ,來看看如何使用….程式碼如下
1: using System;2: using System.Collections.Generic;3: using System.Linq;4: using System.Text;5: using System.Threading.Tasks;6:
7: namespace EF6_ManyToManyAndSelf8: {
9: class Program10: {
11: static void Main(string[] args)12: {
13: using (var context = new ProductContext())14: {
15: var product1 = new Product { ProductName = "美容業零售管理系統", Price = 59888M };16: var product2 = new Product { ProductName = "窗簾業ERP系統", Price = 3500000M };17: var product3 = new Product { ProductName = "玩具製造業ERP系統", Price = 6700000M };18: product2.RelatedProducts.Add(product3);
19: product1.RelatedProducts.Add(product2);
20: context.Products.Add(product1);
21: context.SaveChanges();
22: }
23: using (var context = new ProductContext())24: {
25: var product2 = context.Products.First(p => p.ProductName == "窗簾業ERP系統");26: Console.WriteLine("Product: {0} ... {1}", product2.ProductName, product2.Price.ToString("C"));27: Console.WriteLine("Related Products");28: foreach (var prod in product2.RelatedProducts)29: {
30: Console.WriteLine("\t{0} ... {1}", prod.ProductName, prod.Price.ToString("C"));31: }
32: foreach (var prod in product2.AboveProducts)33: {
34: Console.WriteLine("\t{0} ... {1}", prod.ProductName, prod.Price.ToString("C"));35: }
36: }
37:
38: Console.ReadKey();
39: }
40: }
41: }
執行結果為
網智數位-軟體開發(軟件開發)
在我們軟體開發過程中,我們會遇到一種特殊模型實體關係,例如一個線上商品系統,會有產品資料表(Product Table),以及記錄產品的【相關產品】和該產品本身可以被關聯的上層【相關產品】,感覺很繞口,下圖我截取一個 ER-D 示例圖:
上圖ERD 關聯存在所謂的多對多關係 (Many to Many)而且又是自我關聯(自身關聯,Self Referencing),本身的主要邏輯是 RelatedProduct 這個Table,擔任一個用來記錄多對多關聯記錄的中繼Table,RelatedProduct Table包含了2個欄位(ProductID、RelatedProductID),2個欄位都是參考(Referencing)到 Product Table的 ProductID 主鍵值 ( Primary Key ),透過這樣的技巧可以表達一個產品可以關聯多個相關產品,反之也可以表達一個產品可以被多少產品有所關聯….
但現在我要教大家實作一個只需要在 Entity Framework 建立一個 Product Model (POCO),然後透過一些程式寫法技巧,來達成 這種商業資料模型 - 》 多對多自我關聯 Many to Many , Self Referencing 。
首先讓我們用 Visual Studio 開發工具來先新增一個程式專案,在此我程式專案命名為 EF6_ManyToManyAndSelf,然後按確定。
接下來,我們需要透過 NuGet來安裝 EntityFramework ,
在上圖執行安裝按鈕後,後續 NuGet 就會開始安裝 EntityFramewok , 目前 Allen 裝的版本為 6.1.3 穩定版,安裝過程可能會等候一點點時間,裝完後,你會發現專案的參考對了2個參考項目
確定沒問題後,接下來我們來新增一個 Product Class ,用來代表 Product table 的對應,完整程式碼如下:
1: using System;2: using System.Collections.Generic;3: using System.ComponentModel.DataAnnotations;4: using System.ComponentModel.DataAnnotations.Schema;5: using System.Linq;6: using System.Text;7: using System.Threading.Tasks;8:
9: namespace EF6_ManyToManyAndSelf10: {
11: [Table("Product", Schema = "dbo")]12: public class Product13: {
14: public Product()15: {
16: RelatedProducts = new HashSet<Product>();17: AboveProducts = new HashSet<Product>();18: }
19:
20: [Key]
21: [DatabaseGenerated(DatabaseGeneratedOption.Identity)]
22: public int ProductID { get; set; }23:
24: public string ProductName { get; set; }25:
26: public decimal Price { get; set; }27:
28: /// <summary>29: /// 記錄此產品的多個相關的產品30: /// </summary>31: public virtual ICollection<Product> RelatedProducts { get; set; }32:
33: /// <summary>34: /// 記錄此產品被那些上層產品標示為相關的產品35: /// </summary>36: public virtual ICollection<Product> AboveProducts { get; set; }37:
38: }
39: }
實作到這邊已經把基本的 EntityFramework 安裝進來,也把產品模型寫成一個POCO Class ,後續是更進階的 程式技巧已經背後運作解釋,請繼續參閱我撰寫 Entity Framework 實戰 - 多對多自我關聯 Many to Many , Self Referencing 模型實作 (二) 的介紹。
網智數位-軟體開發 (軟件開發)
在開發公司套裝軟體產品時,在 Windows平台 下公司團隊幾乎都採用 Windows Form 或 WPF兩個技術,今年的專案因為某些原因幾乎全部開始全部採用 WPF技術,當然研發過程也面臨了不同的技術適應期,但隨著專案的開發過程,團隊漸漸越來越喜愛WPF技術,因為不論在繪圖界面呈現,開發速度的產能,效益比逐漸明顯出來,尤其是在 XAML 語法的特性,明顯界面與程式邏輯分離的架構,程式相對乾淨了許多,今年下半年公司也因為某些因素,投入繪圖技術的研究,在WPF的支援下,許多客戶的要求都可以快速的開發因應…
而今天我也想要分享WPF一個繪圖呈現的一個利器- VisualBrush 畫刷 功能,VisualBrush主要特性是可以複製現有視窗特定的控制箱、元素、容器等區塊的外觀,也就是可以快取下來,好像一面鏡子,然後可以在其他地方顯示,實作方式事實上非常簡單,這邊我就帶大家來看一個範例…
1: <Window x:Class="VisualBrush.MainWindow"
2: xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
3: xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
4: xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
5: xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
6: xmlns:local="clr-namespace:VisualBrush"
7: mc:Ignorable="d"
8: Title="MainWindow" Height="600" Width="800">
9: <Grid>
10: <Grid.ColumnDefinitions>
11: <ColumnDefinition>
12: </ColumnDefinition>
13: <ColumnDefinition >
14: </ColumnDefinition>
15: </Grid.ColumnDefinitions>
16: <Grid.RowDefinitions>
17: <RowDefinition></RowDefinition>
18: <RowDefinition></RowDefinition>
19: </Grid.RowDefinitions>
20: <Button x:Name="btn1" Grid.Column="0" >網智數位-軟體開發 , WPF - VisualBrush </Button>
21: <Rectangle Grid.Column="1" >
22: <Rectangle.Fill>
23: <VisualBrush Visual="{Binding ElementName=btn1}"></VisualBrush>
24: </Rectangle.Fill>
25: </Rectangle>
26:
27: <!--<Button x:Name="btn2" Grid.Row="1" Grid.Column="0" Background="Red">網智數位-軟體開發 , WPF - VisualBrush</Button>-->
28: <Image Source="gril.png" x:Name="img1" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Stretch="Fill"></Image>
29: <Rectangle Grid.Column="1" Grid.Row="1" >
30: <Rectangle.Fill>
31: <VisualBrush Visual="{Binding ElementName=img1}"></VisualBrush>
32: </Rectangle.Fill>
33: </Rectangle>
34: </Grid>
35: </Window>
重點在我用黃色標示起來的程式碼,很簡單透過 Binding 機制,我分別將2個矩形 Rectangle 的內容區域,放入 VisualBrush ,而各分別繫結至為 Button的外觀 和 Image 圖片的外觀,之後這2個 Rectangle矩形就好像2面鏡子分別對應Button跟Image…
執行結果如下
網智數位-軟體開發
網智數位-軟體開發,專門針對客戶進行量身設計的客製化軟體,已有多年經驗,也在不同產業領域都有實作成功案例。
(作者其他參考文章)
MPS主生產計畫專文介紹(一)
MRPⅡ/ERP 能力需求計畫原理
庫存管理-概念與釐清
庫存管理探討-VMI
真正的庫存量形成探討
庫存管理的中樞控管法則(上)
庫存管理的中樞控管法則(下)
庫存目標6大範疇(程式開發、程式設計、軟體開發、系統開發)
BOM表管理與設定﹣輔料是否需輸入BOM
何謂 進銷存、ERP、WMS?三者差異性【軟體開發、軟件開發、程式設計】
ERP 產品成本管理與計算
庫存量正確性衡量法則
粗能力需求計畫(RCCP) - 專文介紹
如何利用軟體來協助企業銷售統計和分析
開發進銷存、ERP、PDM,物料欄位收集與建立重要性(ERP開發、軟體開發、進銷存)
ERP 各種計劃階段的差異
ERP 系統的淺談與優勢
ERP 系統在中小企業如何有效利用條碼與QRCode
[ ERP/MRP 系統 ] - 專案導入深入剖析
ERP 導入的投資報酬評估(ERP客製化、進銷存軟體)
ERP 與 CRM 整合對企業的重要性(軟體開發、ERP客製化)
ERP思維突破:啟動企業智能革命,引領未來行銷新浪潮
AI時代的ERP:釋放企業潛能的新革命
貿易公司需要導入BOM表嗎?
一直突破開發技術、累積各種產業知識,而且在出版業、室內設計裝潢業、製造業、機電顧問、貿易、地板、窗簾、窗材、拉門、布料業的商業管理軟體投入有特別的領域知識、也在圖控軟體(圖控軟件)、機械手臂、 Android APP 、iPhone APP、3D列印 開發一直突破再創新,我們也堅持相信好的軟體可以協助企業,不管在管理營運角度、商品創新、決策分析等都絕對是不可缺少的關鍵因素,如果客戶您有任何軟體開發、程式開發委外需求,請聯繫我們讓我們協助您一起討論如何開發一個好的軟體來協助您。
網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen
窗簾/窗材軟體 & 專案開發 |
我們自豪地宣布,日本知名設計公司 – 日台設計 ,已選擇與網智數位合作,導入最新科技,升級他們的企業管理系統。 在競爭激烈的設計產業中,如何提高效率、降低成本並實現創新一直是各大設計公司所關注的重要議題。網智數位很榮幸能成為知名日商設計公司-日台設計有限公司的...