軟體開發(軟件開發)

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

室內設計、裝潢、窗簾報價估算軟體

網智數位主要提供套裝及客製化的軟體系統解決方案,針對室內設計師、木工、裝潢業產業,量身訂做客製化的軟體,達成客製化、智慧化及網路化的商用軟體。

商用軟體-客製化設計

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

IOT 物聯網-系統開發

根據客戶實際狀況,結合雲端與載具進行客製化物聯網IOT導入與軟體開發

雲端VPS虛擬主機租用

我們的雲端VPS虛擬主機是採用雲端(虛擬化)技術所開發之全新雲端伺服器服務,可以選擇多種作業系統(Windows、Linux等),客戶可載入自訂的應用環境,執行自己所要提供的網路服務,我們的雲端服務可為您的網站提供最完美的解決方案。

ERP軟體客製化導入

ERP軟體客製化導入,室內設計、營造業、裝潢、木作工程、系統櫃工程、會計系統,全面提升公司管理營運效率。

搜尋引擎最佳化SEO

搜尋引擎最佳化(SEO)不僅能提高網站在搜尋結果的排名,更能帶來大量對我們產品或服務真正有需求的訪客。SEO 最棒的特質之一就是不像廣告一樣亂槍打鳥而導致用戶的反感,反而更能提升點閱率跟成交率喔。

服務宗旨

網智數位主要提供套裝及客製化的軟體系統解決方案,專為客戶量身訂做客製化的軟體,達成客製化、智慧化及網路化的管理功能。

我們的成立宗旨就是要以最猛的IT技術讓這個世界更Smart,在我們貫徹我們裡想的同時,我們希望可以把我們所開發的系統帶給台灣的中小企業,除了要推薦好的東西之外,我們也希望做點改變,所以我們的第一目標就是要使用最好用的系統再加上您寶貴的創意,不僅僅可以節省你大量的荷包,還可以有一個像樣的網站。我們可以幫你做的有

企業管理
  • 策略管理
  • 目標管理
  • 行銷管理
  • 財會管理
  • ERP導入
  • 企業流程自訂
資訊管理
  • 網站架設
  • 虛擬化/雲端架設
  • 主機代管
  • 私有雲建制與導入
軟體開發
  • UML設計
  • 版本控管
  • 企業軟體開發
  • APP開發
  • 網頁設計
資訊安全
  • 網頁弱點掃描
  • 主機弱點掃描
  • 木馬檢測
  • 資安鑑識
  • 設計網路架構
  • 資安監控
行銷
  • 關鍵字SEO
  • 社群網路行銷
  • 部落格行銷
  • FaceBook 粉絲團
其他
  • 協助企業申請Google Email
好玩工具開發

講出你的創意吧!沒有甚麼是資訊辦不到的

顯示具有 .NET 標籤的文章。 顯示所有文章
顯示具有 .NET 標籤的文章。 顯示所有文章

2022年12月20日 星期二

紅外線異常監測 & 放電檢測報告 & 機電線材報價系統

    感謝新竹科技大廠 聯合機電股份有限公司 以及 啟洋科技工程股份有限公司  因為多次洽談合作,因為專業的信任 給網智數位軟體開發團隊 陸續進行開發 紅外線異常監測、紅外線異常統計表、紅外線異常趨勢圖、以及許多自動化統計報表,異常與檢測報告管理系統機電線材報價系統 ,也讓我們開發團隊更深入了 機電公司 的營運作業流程與產業知識。






          








    

    而服務了該知名產業公司後,更深深發覺客戶主管的經驗與機電專業知識、線材、環境感測專業水準,讓 Allen 我更有使命傳遞公司的企業價值,就是專業服務、與客戶共同努力透過 IT 資訊科技的技術、軟體研發能力,盡可能協助各產業客戶完成系統化管理、數字化管理、智慧化管理。
        【客戶介紹】 啟洋科技工程股份有限公司除了擁有優異的專業技術,能勝任各種高難度工程外,其豐富的經驗、用心的服務與完善的公司制度及人員組織,為客戶提供以最佳的事前規劃與售後服務,更以24小時待命狀態,立即支援客戶施予緊急搶修,以維護生產線之有效運轉,堅持專業技術並提供客戶具有競爭力的服務,是啟洋公司達成企業雙贏的基本理念,也正是您諮商洽詢、安心託付的最佳系統工程專業團隊,更是您信賴的最佳伙伴。



網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫行動號碼:0920-883-870
黃先生 Allen

2022年7月16日 星期六

感謝-隄陽休閒露營車,委外開發POS系統(軟體客製化、軟體設計)

     網智數位-軟體開發團隊,今天承接在泰山經營露營車改裝行的委託,開發客製化POS系統,讓客戶可以到店,可以自由在營幕上進行選擇改裝車型,系統根據選擇的車型,線上可以自由選購改裝的項目與金額,並可以快速了解預覽改裝的項目與預算,並進行列印訂單與付款。





網智數位-開發團隊一直突破開發技術、累積各種產業知識,而且在出版業、室內設計裝潢業、製造業、機電顧問、貿易、地板、窗簾、窗材、拉門、布料業的商業管理軟體投入有特別的領域知識、也在圖控軟體(圖控軟件)、機械手臂、Android APP 、iPhone APP、3D列印 開發一直突破再創新,我們也堅持相信好的軟體可以協助企業,不管在管理營運角度、商品創新、決策分析等都絕對是不可缺少的關鍵因素,如果客戶您有任何軟體開發、程式開發委外需求,請聯繫我們讓我們協助您一起討論如何開發一個好的軟體來協助您。


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen
my_qrcode_1519621481105


2020年2月26日 星期三

承接知名外商-花旗銀行資訊系統-(程式開發、軟體設計、系統開發)


      網智數位-軟體開發團隊,經過多次討論承接了知名外商花旗銀行資訊系統,也預計投入多位資深Java工程式,全面協助銀行提升資訊系統的安全性、穩定性、擴充性,也讓我們的企業Know-How ,從製造業、連鎖零售業、貿易業,更有機會深入了解銀行資訊系統的知識與安全稽核處理方式,我們也更全面提升敏捷開發能力。

Bank

網智數位-開發團隊一直突破開發技術、累積各種產業知識,而且在窗簾、窗材、拉門、布料業的商業管理軟體投入有特別的領域知識、也在圖控軟體(圖控軟件)、機械手臂、Android APP 、iPhone APP、3D列印 開發一直突破再創新,我們也堅持相信好的軟體可以協助企業,不管在管理營運角度、商品創新、決策分析等都絕對是不可缺少的關鍵因素,如果客戶您有任何軟體開發、程式開發委外需求,請聯繫我們讓我們協助您一起討論如何開發一個好的軟體來協助您。


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen
my_qrcode_1519621481105

2018年10月8日 星期一

Flir、Fluke 報告輸出軟體-案例分享 - 客製化軟體、軟體開發、軟件開發

        我們累積了多年的軟體開發設計經驗,針對許多產業領域,幾乎都從無到有地,跟客戶需求討論與了解,到開發出客戶需要的軟體,這邊我要分享我們針對機電顧問產業,常需要派出很多工程師前往客戶那邊進行拍照(紅外線熱像儀 Flir / Fluke),拍完照回到公司,要花很多人工作業時間進行貼圖製作、報告內容異常原因判斷、溫度等資訊填寫,花了許多時間才能製作好一個給客戶的報告內容,因此萌生了設計出一套有效率的管理輸出檢驗輸出報告軟體,只要透過軟體系統,指定拍照的資料夾位置,系統可以批次匯入所有照片,並進而歸類整理出客戶、區域、設備位置、盤名名稱、檢測人員、氣溫、濕度、以及根據指定的程式,進行判斷檢測結果,如下圖系統自動產生的報告樣式之一 
螢幕快照 2018-10-08 下午8.28.42 

我們也聆聽客戶使用軟體需求的反饋,因常常要定期送出臺電的制式報告,如高低壓電力設備定期檢測紀錄總表、高壓保護電驛檢測紀錄表、低壓設備檢測紀錄 、高低壓設備熱顯影檢測紀錄 規範報表格式等。


系統軟體都可以直接支援自動匯出符合提供給臺電的報告格式。 
系統-檢測報告輸出選項
螢幕快照 2018-10-08 下午8.35.23 

高低壓設備熱顯影檢測紀錄(八張格式)
螢幕快照 2018-10-08 下午8.37.22 



針對歷年的報告,都可以下條件,搜尋列出
螢幕快照 2018-10-08 下午8.39.25


軟體客製化案例分享-




網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen
my_qrcode_1519621481105

2018年9月6日 星期四

K書中心自動控制系統與兌幣機整合系統(軟體開發、Arduino整合)

我們網智數位-軟體開發顧問團隊,今年在南部受委託承接K書中心的自動控制系統,完整的功能規劃包含,可以控制每個座位的無線電力控管、出入口閘門控制、入口觸控劃位系統、櫃台中控系統、以及收銀系統、連客戶的兌換機系統,都是我們完全從無到有開模、嵌入Arduino板子、以及研發軟體來控制,讓客戶可以從硬體到軟體的整合全部交給我們去規劃。

量身定做的兌幣機系統
          可以整合國內國外的設備、或針對客戶量身定做開模自行設計投幣式設備 

閘門半成品
41344613_235574300419715_6151643690549903360_n 


我們軟體開發團隊,擅長利用 Arduino、3D列印、模型輸出、以及軟體客製化,來協助客戶一條龍服務,









網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen
my_qrcode_1519621481105




2018年7月25日 星期三

Xamarin 跨平台程式開發-訊息傳遞 - 軟體開發 教學

   在 Xamarin 開發 IOS、Android、UWP APP時,常常會遇到訊息接受與訊息傳遞,那麼這邊我想簡單示範如何在 Xamarin 實作一個訂閱訊息程式開發技巧。

Android 執行結果畫面
螢幕快照 2018-07-25 下午10.27.43螢幕快照 2018-07-25 下午10.28.49螢幕快照 2018-07-25 下午10.29.10


   Xamarin 透過 MessagingCenter 這個靜態類別來支援訂閱/通知訊息,這個類別主要需要知道三個 Methods ,分別為 Subscribe<TSender, TArgs> 與 Send<TSender, TArgs>、Unsubscribe<TSender, TArgs>。
Subscribe<TSender, TArgs> 方法用來訂閱訊息,當有訊息接受到時,可以通知使用者,例如出現對話訊息、畫面顯示訊息。
Send<TSender, TArgs> 方法用來通知訊息,已告知那些訂閱訊息者。
Unsubscribe<TSender, TArgs> 原先進行訂閱訊息接受,現在進行取消訂閱,後續如果有訊息通知,都不進行接受訊息。


程式範例示範
image

public class MainPageViewModel
    {
        public ObservableCollection<string> Greetings { get; set; }


        public MainPageViewModel ()
         {
            Greetings = new ObservableCollection<string> ();


           MessagingCenter.Subscribe<MainPage> (this, "哈嘍", (sender) => {
                Greetings.Add("哈嘍");
             });


            MessagingCenter.Subscribe<MainPage, string> (this, "哈嘍", (sender, arg) => {
                Greetings.Add("哈嘍 " + arg);
            });

        }
    }

在上面程式範例 宣告 一個 MainPageViewModel Class,這個作為 ViewModel 用途,在建構式裡實作訂閱服務,這個機制可以減少程式物件耦合度。


下面這行程式碼,主要是用於實作一個名叫 “哈嘍”的訂閱服務  MessagingCenter.Subscribe<MainPage> (this, "哈嘍", (sender) => {  Greetings.Add("哈嘍"); });





在底下的主程式 MainPage ,實作訂閱通知服務,主要程式邏輯,我透過註解程式說明

public partial class MainPage : ContentPage
    {
        public MainPage()
        {
            InitializeComponent();


            //這邊我綁定一個ViewModel
            BindingContext = new MainPageViewModel();


            //宣告一個按鈕物件,當點選按鈕時,觸發一個發送訊息
            var button1 = new Button { Text = "Say 哈嘍" };
            button1.Clicked += (sender, e) =>
            {
                MessagingCenter.Send<MainPage>(this, "哈嘍");
            };


            //宣告一個按鈕物件,當點選按鈕時,觸發一個發送訊息,並傳遞內容參數,傳遞的內容是 Allen 

            var button2 = new Button { Text = "Say Hi to Allen" };
            button2.Clicked += (sender, e) =>
            {
                MessagingCenter.Send<MainPage, string>(this, "哈嘍", "Allen");
            };


            //宣告一個按鈕物件,當點選按鈕時,觸發一個取消訂閱服務,並取消對話視窗訊息!
            var button3 = new Button { Text = "取消訂閱服務,並取消對話視窗訊息!" };
            button3.Clicked += (sender, e) =>
            {
                MessagingCenter.Unsubscribe<MainPage, string>(this, "哈嘍");
                 DisplayAlert("取消訂閱服務",
                    "This page has stopped listening, so no more alerts; however the ViewModel is still receiving messages.",
                    "OK");
             };


            //訂閱服務(背後的ViewModel還是仍然保持本身實作的訂閱服務),並出現對話視窗訊息
            MessagingCenter.Subscribe<MainPage, string>(this, "哈嘍", (sender, arg) =>
            {
                DisplayAlert("訊息已接受", "參數訊息 為 " + arg, "OK");
            });

            //綁定接受到的訂閱訊息
            var listView = new ListView();
             listView.SetBinding(ListView.ItemsSourceProperty, "Greetings");

            //放置物件內容
            Content = new StackLayout
             {
                Padding = new Thickness(0, 20, 0, 0),
                Children = { button1, button2, button3, listView }
            };
        }




在 iPhone X 執行畫面如下
螢幕快照 2018-07-25 下午10.20.29螢幕快照 2018-07-25 下午10.20.46






網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen
my_qrcode_1519621481105

2018年2月25日 星期日

大數據(BigData)與商業智慧(BI)差異性

     目前不管我們是在新聞媒體上、雜誌報導、甚至各產業宣傳上幾乎都會提到大數據(BigDaga),那麼大數據與傳統企業的商業智慧(BI)是否相同、又或者有所差異性呢?




 


  大數據(BigData)與商業智慧(BI)概念區隔性:
傳統的商業智慧BI,主要是應用領域比較局限在企業的數字管理思維層級上,將商業智慧應用在企業內部的ERP系統、MRP系統、POS系統、CRM系統、MES系統所有管理系統的數據整合,提供給中高階主管快速提供,有效明確的數據報表,以利於企業做出明智的企業戰略決策,全面提升管理競爭力。
而近來一直一來的大數據(BigData)題材,是因為在物聯網、雲端化普及成熟下,可以有效的利用各種連網設備工具,進行採集、整理、過濾的資料、數據收集,而這樣的模式,當然更需要新的處理模式與技能,大數據著重於解決某一類問題的方法,例如:大量攝影圖像分析,在網路、傳感器等非結構化海量數據的分析、收集空氣品質數據分析等。

所以不管定義如何差異,大數據(BigData)與傳統商業智慧(BI)是社會發展到不同階段的產物,大數據對於傳統BI,既有繼承,也有發展,從"道"的角度講,BI與大數據區別在於前者更傾向於決策,對事實描述更多是基於群體共性,幫助決策者掌握宏觀統計趨勢,適合經營運營指標支撐類問題,大數據則內涵更廣,傾向於刻畫個體,更多的在於個性化的決策, 當然純粹從思想的角度講,兩者在概念上是可以實現統一的,都遵循數據-資訊-知識-智慧這個脈絡,甚至在更高的層次,兩者也是可以視為雷同的。
  大數據(BigData)與商業智慧(BI)技術差異性:
傳統商業智慧的技術領域:ETL、數據倉庫、OLAP、可視化報表。
大數據的技術領域:Hadoop、MPP、HDFS、MapReduce、資料流處理等。

  企業該關注大數據還是商業智慧?
在技​​術領域,雖然傳統BI的一些技術ETL、數據倉庫、OLAP、可視化報表似乎都將處於落後邊緣,因為它難以解決日后海量數據的處理問題,但是,也不能全盤否定或替代成大數據。一些企業採用SAP HANA,Power BId等工具的都是基於這個問題優化的方案。 BI的那套也將長期存在,畢竟企業對BI方案還是很青睞,大數據的普及和應用也是個漫長的過程。
大數據分析也不是空口說說,它的第一要務就是解決業務問題,大數據一定程度上就是用全新的數據技術手段來拓展和優化業務領域,傳統企業需要聚集一群人來研究這個問題,需要有人專門研究和探索。例如如果對外,想清楚新的商業模式,如果對內,想清楚在哪個場景,可以用大數據的手段提升效率。

當前大數據可以產生價值的地方,從行業的角度看,金融、銀行、互聯網、醫療、科研都有廣闊的前景。從領域的角度看,廣告、市場行銷、保險銀行風險控管、供應鏈都是大數據發揮價值的地方,對於特定企業,比如電信運營商、政府交通管制、空氣監控,大數據也可以在網絡優化、數據分析等方面提供新方法。

(其他參考文章)
MPS主生產計畫專文介紹(一)
MRPⅡ/ERP 能力需求計畫原理
庫存管理-概念與釐清
庫存管理探討-VMI
真正的庫存量形成探討
庫存管理的中樞控管法則(上)
庫存管理的中樞控管法則(下)
庫存目標6大範疇(程式開發、程式設計、軟體開發、系統開發)
BOM表管理與設定﹣輔料是否需輸入BOM
何謂 進銷存、ERP、WMS?三者差異性【軟體開發、軟件開發、程式設計】
ERP 產品成本管理與計算
庫存量正確性衡量法則
粗能力需求計畫(RCCP) - 專文介紹
如何利用軟體來協助企業銷售統計和分析
開發進銷存、ERP、PDM,物料欄位收集與建立重要性(ERP開發、軟體開發、進銷存)
ERP 各種計劃階段的差異
ERP 系統的淺談與優勢
ERP 系統在中小企業如何有效利用條碼與QRCode
[ ERP/MRP 系統 ] - 專案導入深入剖析
ERP 與 CRM 整合對企業的重要性(軟體開發、ERP客製化)
大數據(BigData)與商業智慧(BI)差異性




網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2018年1月31日 星期三

客戶案例-維修知識管理系統(軟體開發、軟件開發、程式設計)

       網智數位開發團隊去年協助台灣最大代理機械軸封及聯軸器的廠商,開發維修知識管理平台,結合了該產業的維修技能知識整理成數位資料,可以讓台灣、以及大陸、其他國家的經銷商,可以共同登入此平台,查閱維修技術知識、零件資料查閱、更重要的可以有智能地協助各地維修師傅,在上千個複雜零件,如遇到故障該如何進行維修排除建議的決策管理系統 ,導入這樣有效率的平台,也是委託企業的總經理非常有獨特的遠見,知道如何利用資訊軟體工具,把該公司多年來資深老員工多年來的隱形知識變成可以分享與傳遞的顯性知識,以利企業內部甚至是結合上下供應鏈、合作經銷商,充分地在AI與物聯網、雲端資訊化的浪潮下,更鞏固企業的競爭力。 

image 


image




網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2018年1月15日 星期一

ERP 與 CRM 整合對企業的重要性(軟體開發、ERP客製化)

       現在的企業競爭越來越激烈,更隨著資訊訊息化的普及,所有企業都處身於資訊與大數據分析的必要性,各行各業的企業不得不面對日益增長的海量資訊數據。可是卻又有許多企業無法充分交換、共享、利用各種數據來加以整合,使自身前後兩端成為各自獨立的資訊孤島,最終使企業在業務運營上出現盲點,以至於無法有效利用資訊數據來引導企業做策略分析。




 


       以往舊資訊管理思維,企業傳統的著眼點在後台,也就是在企業內部精益化管理和成本控制這部分,而對前台,也就是直接面對客戶的那一塊缺乏良好的科學管理思維,隨著資訊化、物聯網、雲端技術的普及發展,在以客戶為中心的市場經濟時代,企業關注的焦點逐漸由過去關注產品轉移到關注客戶上來,由於需要將更多的注意力集中到客戶身上,所以僅僅依靠的封閉式管理模式已難以適應激烈的競爭,企業必需同時運用內部流程數據與整合外部客戶的資訊,而為了彌補專注于企業內部ERP系統的不足,順應企業的需求,以方便與客戶的互動,所以企業必需具備在足夠的力量創造有用決策資訊,引進CRM系統,無疑是個捷徑來提升企業管理競爭力。

       所以企業導入 ERP系統 與CRM 系統非常具有天然的互補傾向,ERP系統得以將很多先進的管理思想變成現實中可實施應用的企業資源管理系統,但如果一味固守原有的管理思想,只停留在企業內部流程的管理上,將不能適應新時代資源優化及企業間協同發展的需要;CRM的價值在於突出了客戶服務與支持、和營運管理等方面的重要性,ERP和CRM的系統整合與導入並不是簡單地將二者進行加和,它們是按照業務模式和經營管理思想被合理地整合在一起,最終實現功能上的協同合作,兩者系統整合的基本思想主要是以模塊化趨勢為立足點,將CRM優勢部分有效融入ERP系統,兩者完全可以形成無縫的封閉系統,將企業內外部資源有效的整合起來,為企業發展提供新的機遇。

      把ERP與CRM整合已是大勢所趨。他們的無縫整理與資訊數據分享共用,勢必將帶來 一加一 大於二 的理想效果,企業的過程流線化、行政管理成本削減、更出色的庫存管理、在線定價與報價、交貨週期的自動化、更好的銷售成本控制,最大化地提高企業對市場的快速響應能力和滿足客戶個性化需求的能力,最終以實現為目標,使企業建立起適應網絡經濟的充分柔性的企業管理資訊系統。

 

網智數位-軟體開發,專門針對客戶進行量身設計的客製化軟體,已有多年經驗,也在不同產業領域都有實作成功案例。

(作者其他參考文章)
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:釋放企業潛能的新革命 



網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen


2017年12月4日 星期一

Java Script D3 資料過濾教學(軟體設計、軟體開發)

       我在網頁繪圖時,現在常使用 D3 來幫客戶做成統計視覺圖表,但一定會遇到客戶要求在使用者界面上可以進行某些條件的過濾篩選,例如根據勾選或者執行某個按鈕(Button)時,可以顯示或隱藏網頁部分元素圖表,而這樣需求條件,我們就可以利用 Java Script D3 支援的 Filter 函數來實作此需求案例。

案例執行畫面如下

2017-12-04_11-11-28

//完整程式碼如下:

<!DOCTYPE html>
< html>
< head>
    <meta charset="utf-8">
    <title>網智數位 Java Script D3 過濾資料技巧</title>
    <link rel="stylesheet" type="text/css" href="styles.css"/>
    <script type="text/javascript" src="d3.js"></script>
< /head>

<body>

<script type="text/javascript">
    var data = [ // <- 程式碼註解 A
        {price: 200, category: "捲簾"},
        {price: 300, category: "直立式軌道"},
        {price: 350, category: "木片百葉窗"},
        {price: 500, category: "木竹簾羅馬"},
        {price: 1000, category: "電動軌道"},
        {price: 800, category: "蜂巢簾"},
        {price: 900, category: "百葉窗"},
        {price: 500, category: "壁紙"},
        {price: 300, category: "耐磨地板"},
        {price: 700, category: "衛浴"},
        {price: 400, category: "馬桶"}
    ];

    function render(data, category) {
        d3.select("body").selectAll("div.h-bar") // <- 程式碼註解 B
                .data(data)
            .enter()
            .append("div")
                .attr("class", "h-bar")
             .append("span");

        d3.select("body").selectAll("div.h-bar") // <- 程式碼註解 C
                .data(data)
            .exit().remove();

        d3.select("body").selectAll("div.h-bar") // <- 程式碼註解 D
                .data(data)
            .attr("class", "h-bar")
            .style("width", function (d) {
                 return (d.price) * 0.6 + "px";}
            )
             .select("span")
                .text(function (d) {
                     return d.category;
                });

        d3.select("body").selectAll("div.h-bar")
                .filter(function (d, i) { // <- 程式碼註解 E
                    return d.category == category;
                })
                .classed("selected", true);
    }

    render(data);

    function select(category) {
        render(data, category);
    }
< /script>

<div class="control-group">
    <button onclick="select('耐磨地板')">
        耐磨地板
    </button>
    <button onclick="select('電動軌道')">
        電動軌道
    </button>
    <button onclick="select('壁紙')">
        壁紙
    </button>
    <button onclick="select()">
        取消選取
    </button>
< /div>

</body>

</html>

重點程式碼講解:

1. 程式碼註解 A ,我在這邊宣告了 一個 data 變數,它存放了一系列 json 格式的物件,該物件 有 2個屬性 分別為 price(記錄價格)、category(記錄類型)。

     var data = [ // <- 程式碼註解 A
        {price: 200, category: "捲簾"},
        {price: 300, category: "直立式軌道"},
        {price: 350, category: "木片百葉窗"},
        {price: 500, category: "木竹簾羅馬"},
        {price: 1000, category: "電動軌道"},
        {price: 800, category: "蜂巢簾"},
        {price: 900, category: "百葉窗"},
         {price: 500, category: "壁紙"},
        {price: 300, category: "耐磨地板"},
         {price: 700, category: "衛浴"},
         {price: 400, category: "馬桶"}
     ];

2.程式碼註解 B,透過 D3 的選取方式

d3.select("body").selectAll("div.h-bar").data(data).enter()

這行程式碼,透將會將 所有數據與 網頁的 <div id=’h-bar’> ,做交集的動作,使得每個數據可以對應各自的 <div id=’h-bar’> 元素。

3.程式碼註解 D,將選取的  <div id=’h-bar’> ,根據 data 的 price 價格 用公式來設定長度,以及透過 text() 來設定文字。

d3.select("body").selectAll("div.h-bar") // <- 程式碼註解 D
                 .data(data)
             .attr("class", "h-bar")
             .style("width", function (d) {
                 return (d.price) * 0.6 + "px";}
             )
            .select("span")
                 .text(function (d) {
                     return d.category;
                 });

4.程式碼註解 E,也是最重要的,我根據 d3 支援的 filter()函數,來過濾要選擇的資料。

d3.select("body").selectAll("div.h-bar")
                 .filter(function (d, i) { // <- 程式碼註解 E
                     return d.category == category;
                 })
                .classed("selected", true);

其他參考文章
HTML CSS 動畫教學–【軟體開發(軟件開發)】
繪圖程式-折線圖、區域圖 實作一
產品報告與能源曲線分析系統
利用 JavaScript D3 在網頁動態產生直條圖(軟體開發、軟件開發)
Java Script D3 資料過濾教學(軟體設計、軟體開發)
利用 JavaScript D3 在網頁動態產生直條圖(軟體開發、軟件開發)


網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:
allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-5599-1310
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2017年9月6日 星期三

【軟體開發、系統開發、程式開發】多執行緒多任務存取相同變數,隔離保留各自任務的值 ThreadLocal 技術講解

      在講解幾篇關於多工、多執行緒、平行作業的技術文章後,想來談談另外一個深入的關鍵多多執行緒的問題,那就是多執行緒(多工)作業模式下,如何存取相同變數值,而且又希望各自的執行緒對相同變數又有各自的“值”。 
      在 .Net 技術平台下,有個 ThreadLocal<T> 的泛型類別,這個類別可以專門用於有多個執行緒需要共同存取一個變數,但每個執行緒對這個變數的值,又個別記錄隔離儲存,互不影響。我舉個例子來說明,有執行緒A、執行緒B、執行緒C、執行緒D,這四個執行緒平行作業,將共同存取一個變數 X ,但在執行緒A存取變數X時,設定值為 10;執行緒B存取變數X時,設定值為 20;執行緒C存取變數X時,設定值為 30;執行緒D存取變數X時,設定值為 40; 在執行緒A設定 X變數值為 10時,並不會影響到 執行緒 B/C/D 各自設定的 X 變數值。 
     一樣在此,我透過一個程式範例來進行實例說明,這個專案類型就簡單用 Console 控制台類型來引導… 
完整程式碼如下: 
namespace NetQna.Demo
{
    /// <summary>
    /// ThreadLocal 示範教學(網智數位-軟體開發)
    /// </summary>
    public class Program
    {
        /// <summary>
        /// 所有執行緒共同存取的變數值
        /// </summary>
        static ThreadLocal<int> X = new ThreadLocal<int>();


        static void ExecThreadTask(object obj)
        {
            ThreadEntity currThread = (ThreadEntity)obj;
            //在各自的執行緒環境設定 X 變數值,觀察各自的執行緒下,X 變數值各自記錄
            X.Value = currThread.ThreadValue;


            //顯示出 目前所在的執行緒 的值
            Console.WriteLine($"現在的執行緒 ID:{Thread.CurrentThread.ManagedThreadId},{nameof(X)}變數值為:{X.Value}。");
            //顯示出 目前所在的執行緒 的值
            Console.WriteLine($"現在的執行緒 名稱:{currThread.ThreadName},{nameof(X)}變數值為:{X.Value}。");
            Console.WriteLine();
        }


        static void Main(string[] args)
        {


            Dictionary<string, int> threadABCD = new Dictionary<string, int> { { "A", 10 }, { "B", 20 }, { "C", 30 }, { "D", 40 } };

            //分別啟動 A、B、C、D 執行緒,並執行 存取 X 變數值
            foreach (var t in threadABCD)
            {
                ThreadEntity obj = new ThreadEntity { ThreadName = t.Key, ThreadValue = t.Value };


                //Action<string, int> action = ExecThreadTask(t.Key, t.Value);
                Thread currThread = new Thread(ExecThreadTask);
                currThread.Start(obj);


                //這邊我刻意停頓 1 秒,以利顯示各自執行緒
                Thread.Sleep(1000);
             }


            Console.Read();

            X.Dispose(); //X 變數 釋放
        }



        public class ThreadEntity
        {
            public string ThreadName { get; set; }
             public int ThreadValue { get; set; }


        }
    }
}


程式說明講解
1


一開始我宣告一個屬性變數為 X ,也就是今天講解主要的類別 ThreadLocal,
待會就是用 這個 X 變數,來讓所有執行緒進行存取設定 X 變數值。
 


2 

宣告一個帶有 object 參數的方法,待會就是要讓所有執行緒去各自執行這個方法,這個方法主要我將  object 型態 的 參數 obj 轉型為我自己宣告的類別 ThreadEntity 類別(PS:因為 Thread 建構子對應的方法的參數只能是 object 型態,所以我透過轉型來避開這限制)。

public class ThreadEntity
{
    public string ThreadName { get; set; }
     public int ThreadValue { get; set; }


}

最關鍵的地方,我在這個方法設定了各自執行緒要對應的 X 變數值 
//在各自的執行緒環境設定 X 變數值,觀察各自的執行緒下,X 變數值各自記錄
X.Value = currThread.ThreadValue;

3 

我這邊分別建立 A、B、C、D 四個執行緒,然後分別設定他們待會要指定 X 變數的值為(10、20、30、40)。 


程式執行結果如下圖
d
 

可以看出 A、B、C、D執行緒各自維護自己 X 變數的值。


參考文章 C#多工作業與平行處理技術講解
1.透過 Thread 類別撰寫多執行緒多工作業。
2.透過 Delegate 委託支援的方法,撰寫非同步任務。
3-1.透過 Parallel 類別操控多任務平行作業(一)。
3-2. 透過 Parallel 類別操控多任務平行作業(二)。
4.使用 Task 自行控制非同步任務作業。
5.在非同步作業時,如何取消非同步任務。
6.多執行緒多任務存取相同變數,但卻各自隔離保留各自任務的值。
7.非同步存取變數的問題。
8.非同步資源鎖定解決方式。




網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2017年7月25日 星期二

紡織業機器設備 Arduino 軟體開發、圖控軟體自動化控制


        今天我跟公司的研發顧問前往從事多年紡織業的老闆跟協力廠商老闆談如何利用 Arduino 搭配機械手臂的軟體開發,來協助紡織業的生產效率提高與人力成本降低。 

images

9a7a36fa2bfdbe8ba117e95ab64f2ccf

  在合作對談中硬體整合廠商的研發經理也已經在工研院有多年的硬體驅動開發經驗、而我們網智數位-開發團隊也在 Arduino 軟體開發(台灣第一本Arduino 開發書籍,也是由我們開發團隊出版多本書籍)與控制、機械手臂、圖控軟體(皆完全量身定做從無開到有發出的圖控軟體產品,目前許多領導廠商都委託我們進行開發)皆有多年的成功案例,開發團隊也跟工研院有多年的影像辨識、自動化控制、PLC控制都有合作。

   而網智數位-軟體開發團隊的優勢,就是有在商業軟體(ERP、進銷存、MRP、MES、CRM)也有長期涉獵、再結合工業硬體控制經驗,我們可以完全的在商業流程、工廠製程完全地跟客戶討論與建議,如何真正的發揮好的硬體與軟應用的價值。


我們開發團隊顧問研發的 Arduino 機械手臂在南港展覽的影片介紹



網智數位-軟體開發(軟件開發) 
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen

2017年7月17日 星期一

企業數位化轉型所依賴的物聯網平台(軟體開發、軟件開發、物聯網開發、智能設備)

     今天我們都知道物聯網在任何化規模企業的轉型中扮演著重要角色,但如果可以透過實行適當的整合現有的物聯網平台資源,那麼就可以在既有的設備資產和IT基礎設施之間充當一座重要的橋樑,例如一家企業可以充分地利用物聯網來改善供應鏈管理和物料資源規劃(MRP)的效率、甚至SCM(供應鏈管理)、上下游資訊系統、訊息傳遞的整合。


     導入與建置企業一個好的物聯網平台,我們必須好好的從頭規劃、重新深思,如何與現有的企業資源規劃(ERP)、MRP(物料需求計劃)、甚至是已有的商業智慧(BI)等系統統統整合起來,才能真正地有效為制定決策的高階主管來提供最有用的洞察力、戰略儀表板,再來用來實施物聯網戰略與部署一個全面的企業應用軟體整合(EAI)專案是一樣複雜與困難地。

      因為由於企業的物聯網現在都備受關注,眾多平台廠商與系統資訊整合廠商正在大力投資於端到端(P to P)解決方案,而這些平台可幫助企業組織連接設備、採集數據、分析趨勢和管理資產。
下面是你可以考慮為物聯網戰略採用的幾個主要平台。


微軟(Microsoft)
微軟是少數幾家提供一整套物聯網解決方案的公司之一。 Windows 10物聯網版本可以安裝到資源有限的設備上。運行Windows 10或其他任何操作系統的這些設備很容易連接到Azure物聯網平台。微軟構建了核心服務,可為物聯網提供必要的功能。連接到物聯網Hub的設備可以通過事件Hub攝取數據。 Stream Analytics和HD Insight為傳感器數據提供了大數據和分析功能。 Azure機器學習很容易整合起來,以便對數據流執行預測分析。 Power BI用於儀表板和可視化。微軟還構建了Azure物聯網套件這款客戶可以部署的交鑰匙解決方案。

在此我也要特別強調,近年來網智數位陸續透過微軟的技術與平台,幫台灣的許多行業的領域廠商如工業馬達製造業、工業風扇設備大廠透過微軟平台建置可以同時管理數萬台風扇、建立數位儀錶板、也踏入越南廠商的合作建置 Power BI 的可視化即時圖表軟體。


IBM
企業物聯網可謂是IBM Watson平台的基石。 IBM是這個市場的早期先行者之一,它將機器學習和認知計算的威力引入到物聯網。 Watson物聯網與Bluemix緊密整合,擁有一整套廣泛的功能。開發人員可以使用SDK和API,自動將設備導入到平台上。 IBM注重區塊鏈,還將幫助客戶將物聯網與基於HyperLedger的新興分佈式賬本技術集成起來。由於最近投入30億美元,IBM對物聯網、認知技術和機器學習寄予厚望。客戶可以訂購基於雲的物聯網服務,也可以在本地部署平台。


亞馬遜(Amazon)
在過去的十年間,亞馬遜網絡服務(AWS)已添加了基礎設施的關鍵構建模塊,包括計算、存儲和數據庫。由於IaaS達到了穩定狀態,AWS於是調整重心,致力於提供充分利用底層構建模塊服務的平台服務。 2014年,亞馬遜收購了2lemetry,這家物聯網初創公司的業務主攻M2M,後來成為了AWS物聯網服務。 AWS物聯網平台充分利用現有的雲服務來提供高級功能。從設備管理到虛擬化,AWS擁有企業需要的一切服務。其服務包括AWS Lambda、亞馬遜EMR、亞馬遜DynamoDB、亞馬遜Redshift、亞馬遜Kinesis以及最近發布的亞馬遜QuickSight,可以處理數據攝取、存儲、處理和可視化。 AWS的現有客戶很容易將物聯網與其云解決方案整合起來。


思科(Cisco)

思科將整個公司押寶於企業物聯網上。由於在數據中心領域有相當大的實力,思科旨在成為物聯網邊緣設備的首選廠商。思科在大力推行其霧計算(Fog Computing)項目,利用其在企業數據中心的傳統強項發力。該公司針對企業物聯網場景優化網絡設備。思科收購Jasper幫助這家公司向電信公司交付一款白標物聯網平台。該平台非常適合跟踪連接至蜂窩網絡的基於SIM的設備。該公司還與英特爾和微軟結為合作夥伴,大力推動邊緣分析方面的創新。


平台技術來源整理
reference:Building a Real-Time Device Management System  & Can Alhas


(其他參考文章)MPS主生產計畫專文介紹(一)MRPⅡ/ERP 能力需求計畫原理庫存管理-概念與釐清庫存管理探討-VMI真正的庫存量形成探討庫存管理的中樞控管法則(上)庫存管理的中樞控管法則(下)庫存目標6大範疇(程式開發、程式設計、軟體開發、系統開發)BOM表管理與設定﹣輔料是否需輸入BOM何謂 進銷存、ERP、WMS?三者差異性【軟體開發、軟件開發、程式設計】ERP 產品成本管理與計算庫存量正確性衡量法則粗能力需求計畫(RCCP) - 專文介紹如何利用軟體來協助企業銷售統計和分析開發進銷存、ERP、PDM,物料欄位收集與建立重要性(ERP開發、軟體開發、進銷存)ERP 各種計劃階段的差異ERP 系統的淺談與優勢[ ERP/MRP 系統 ] - 專案導入深入剖析









網智數位-軟體開發(軟件開發)
針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen


2017年7月12日 星期三

使用 Task 自行控制非同步任務作業【軟體開發、軟件設計、客製化軟體、軟體設計】

   在之前我寫過兩篇關於使用 Parallel 類別進行多任務的平行作業 ,1.透過 Parallel 類別操控多任務平行作業(一)。 2.透過 Parallel 類別操控多任務平行作業(二)。 , 但因為使用 Parallel 類別雖然方便,因為都被.Net 包裝著很好,各自的執行緒任務獨自運作,如果有時我們想要更進一步的控制每個平行任務任務時,就必須使用  Task<TResult> 與 Task 類,這兩個類別可以有效地自行控制建立非同步任務,可以由程式開發人員決定什麼時候要啟用任務、什麼時候要中斷任務。


(補充)Task<TResult> 類別是從 Task 類別衍生而來,兩者主要差異是,前者是帶一個 泛型參數,也表示任務執行完畢要返回的類型值。


     這邊為了簡單講解 Task 類別的用法,為了好示範講解,一樣透過新增一個 Windows Form 專案,在對應的控制箱事件,撰寫核心程式碼….不過在看實際範例程式碼教學時,我先介紹如何三種使用 Task 任務的技巧:
(1)直接使用 Task.Run()的靜態方法,該方法一旦被呼叫,就會馬上進行非同步化任務,而呼叫也會返回一個 Task 實體物件。

(2)新增一個 Task 物件時,傳遞一個委派方法至建構函數,當建立一個 Task 實體物件時,不會馬上執行非同步任務,而是要手動呼叫 Start() 方法,才會開始執行非同步任務。

(3)Task 與 Task<Result> 類別都有公開一個 Factory 靜態屬性,該屬性返回一個 TaskFactory 或 TaskFactory<Result>類別,我們必須再透過 TaskFactory 對應的方法來啟用非同步任務作業。

(實作過程)

步驟 1:
透過 Visual Studio  2017 來建立一個 Windows Form 專案。
2017-07-12_00-33-55

步驟 2:
在 Form1 表單,我設計版面與拖拉相關控制項至主畫面,有 一個 Label (用於顯示標題,Text =“輸入一個正整數值:” ; 兩個 TextBox (分別用於讓使用者輸入 一個正整數、與顯示非同步任務執行完畢時,要顯示的結果值);還有一個 Button 控制項(Text =“開始計算任務” , Name =”btnExecTask”) ; 最後還有一個 ProgressBar , 目的是要 Task 執行非同步作業時,可以及時更新進度,通知目前作業進度表給使用者。

主畫面截圖如下:
11

步驟 3 :
在 Button 按鈕的 click 事件撰寫主要的核心程式碼:
private void btnExecTask_Click(object sender, EventArgs e)
  {
     uint calcNum = 0;


     if (!uint.TryParse(this.txtNumValue.Text, out calcNum))
     {
         MessageBox.Show("請輸入一個正整數數字!!");
         return;
     }


     //進行更新進度表
     IProgress<int> progress = new Progress<int>((p) => progressBar1.Value = p);


     //宣告一個 Task 類型變數
     Task<long> task = new Task<long>(() =>
     {
         long result = 0L;
         for (int i = 1; i <= calcNum; i++)
         {
             //累加值
             result += i;


             //進度值
             double currProgress = Convert.ToDouble(i) / Convert.ToDouble(calcNum) * 100d;


             //向主執行緒 主畫面 進行更新進度條
             progress.Report(Convert.ToInt32(currProgress));
         }


         return result;
     });


     this.txtResult.Text = "目前正在執行計算過程中......";

     //任務 手動啟動
     task.Start();


     //等待任務執行完畢過程中,將按鈕先停用,以防止重複執行
     this.btnExecTask.Enabled = false;


     while (!task.Wait(100))
     {
         //在等待過程,允許程式繼續處理其他佇列訊息
         Application.DoEvents();
     }


     //任務執行完畢,重新啟用按鈕
     this.btnExecTask.Enabled = true;


     //顯示計算結果
     txtResult.Text = "任務執行完畢,計算結果值為:" + task.Result.ToString();


  }
c

PS.主要程式碼解釋,我都寫在程式碼註解,寫得還滿詳細的….

步驟 4:
執行 compile ,進行測試執行吧…
result




參考文章 
C#多工作業與平行處理技術講解 
1.透過 Thread 類別撰寫多執行緒多工作業。 
2.透過 Delegate 委託支援的方法,撰寫非同步任務。 
3-1.透過 Parallel 類別操控多任務平行作業(一)。 
3-2. 透過 Parallel 類別操控多任務平行作業(二)。
4.使用 Task 自行控制非同步任務作業。
5.在非同步作業時,如何取消非同步任務。
6.多執行緒多任務存取相同變數,但卻各自隔離保留各自任務的值。
7.非同步存取變數的問題。
8.非同步資源鎖定解決方式。





網智數位-軟體開發(軟件開發)

針對各特殊產業都可以量身定做符合貴公司的需求,別人無法克服的就是我們的挑戰
業務合作、軟體委外開發
業務窗口:allen@netqna.com
聯繫電話:0920-883-870
公司電話:02-55991310
公司地址(業務營運處):台北市中山區錦州街 25 號 5 樓
skype: netqna
line:netqna
微信:netqna
黃先生 Allen