2019年11月22日 星期五

SQL ORDER BY 指定排序

想要在結果傳回指定的排序














SELECT         Autoid,  ITEMName,  TypeCode
FROM            TypeData
WHERE        1=1
ORDER BY
 (  CASE
    WHEN  TypeCode= 'CRN'  THEN '01'
    WHEN  TypeCode= 'OTH' THEN '02'
    WHEN  TypeCode= 'PON' THEN '03'
    WHEN  TypeCode= 'CIN'  THEN '04'
    WHEN  TypeCode= 'CLT'  THEN '05'
    WHEN  TypeCode= 'INC'  THEN '06'
    ELSE  TypeCode
  END)



















2019年11月6日 星期三

[CMD應用] robocopy 三個資料夾同步備份

Robocopy 一用就愛上它,以下是同步備份的應用

我需要做到三個資料夾同步備份
下圖A 為原始資料夾,假設今日為11/3,這份檔案是會一直附加上去的
B為中繼資料夾,目的在於收到檔案後可以上傳至C
C為終點資料夾,希望只收到有新增的檔案,過去已經收過11/1 之前的則就不要再重複收到了




語法
robocopy <Source> <Destination> [<File>[ ...]] [<Options>]

參數
<Source >           指定來原始目錄的路徑。
<Destination >   指定目的地目錄的路徑。
<File >                 指定要複製的檔案。 如有需要,您可以 * 使用萬用字元(或 ? )。 如果未指定File參數, *. \ * 當做預設值使用。
<Options >         指定要與robocopy命令搭配使用的選項。
此次所應用到的相關參數
/maxage: <N > 指定檔案最長存留期(排除N天或日期之前的檔案)。
/minage: <N > 指定檔案最短存留期(排除比N天或日期更新的檔案)。
/mov 移動檔案,並在複製後從來源刪除檔案。


搭配排程,執行兩次robocopy

第一次 - 先做資料夾同步
"A:\TXT" "B:\TXT"
第二次  將一天以前的都搬移至備份資料夾
"A:\TXT" "A:\TXTBackup" /MOV /MINAGE:1



參考資料

2019年5月24日 星期五

2019年5月23日 星期四

[SFTP] Windows Server SFTP 架站經驗談

你可以直接參考下面這篇更有用

[SFTP 架站 ]SERVER FREE SFTP SITE 免費快速架站免安裝 適用多站台


之前就已經有架站SFTP SERVER的實作經驗
當時是使用Rebex,不過近期開始有需要一台Server 架多組帳號,且又不能隨意開一個Port來使用,所以分享一下試用心得

  首先我的架站環境是Windows Server 2016

小而美SFTP SERVER 架站工具

Rebex Tiny SFTP Server
Free SFTP server from the authors of this site.
-使用心得-
優點:免費、快速架站、簡單、可多組帳號(需另外指定Port)
缺點:無法使用同一支程式來執行多組服務、沒有中文介面(其實簡單到不行,覺得沒有必要有中文介面)


完整功能SFTP SERVER 架站工具

Lightweight SFTP, SCP, SSH server for Windows from authors of this site.
-使用心得-
它的官網上是這麼列的...實際測試程式無法啟動在我的環境中
Buru Server runs on
Windows 7 SP1
Windows 8.1
Windows 10
Windows Server 2008 R2 SP1 or later
結論: 畫面跑不出來~可以刪了

OpenSSH
The most widely used SFTP/SSH server on the planet. Perfect for Linux or *BSD, not so great on Windows. Open source.
-使用心得-
說是free 的,但看到不建議在WINDOWS上使用就沒興趣了
結論: 非必要不用考慮了,不想測試


Bitvise SSH Server
SFTP/SSH server for Windows.-使用心得-
介面上有些陽春,設定解釋也有些不容易理解,不過實際測試後覺得也還OK,功能算是完整
缺點:沒有中文介面喔,設定上可能會有些搞不懂是做什麼用的,然後官網說名字有些小
結論: 還能用,但要購買

Tectia SSH Server
Enterprise SFTP/SSH server from the creators of the SSH protocol.
-使用心得-
網站做得漂亮,不過無法直接看到系統畫面,想要下載試用還要留下基本資料,就連輸入Gmail帳號還會說你的email是不是公司,覺得有點囉嗦,到底是要不要讓人試用?
結論: 不想測試

CrushFTP
File transfer server with support for SFTP, SCP, FTPS and HTTPS.
-使用心得-
缺點: 安裝檔案好大 要125MB,網頁設計讓人覺得像詐騙網站,令人卻步
結論: 非必要不用考慮了,不想測試


VanDyke VShell Server
SSH2/SFTP/FTPS file transfer server for Windows, Linux & Mac with fine-grain access control and configuration.
-使用心得-
缺點: 一樣,想要下載試用還要留下基本資料
結論: 非必要不用考慮了,不想測試



GlobalScape EFT Server
-使用心得-
我以為跑錯網站.....
結論:  非必要不用考慮了,不想測試



Titan FTP Server
SFTP, FTP/SSL and FTP server for Windows
-使用心得-
看影片介紹似乎還蠻符合需要的,但無法下載試用檔
結論:無法測試

CORE FTP



參考STP.NET
https://sftp.net/servers

2019年4月18日 星期四

[VB.NET] FormatCurrency 格式化金額的顯示方法

在TEXTBOX 上顯示金額

'將金額格式化

Dim Amount as integer = 88971
TextBox1.Text = FormatCurrency(Amount, 0, TriState.True, TriState.False, TriState.True)

結果顯示   NT$88,971


'將金額格式化且不顯示貨幣符號

Dim Amount as integer = 88971
TextBox1.Text = FormatCurrency(Amount, 0, TriState.True, TriState.False, TriState.True).Replace("NT$", "")

結果顯示   88,971


參考連結:
Strings.FormatCurrency(Object, Int32, TriState, TriState, TriState) Method

2019年4月15日 星期一

[VB.NET] [SQL] 判斷字元是英文或是數字

[VB.NET]

If TextBox1.Text <> "" Then
Dim str As String = ""
str = TextBox1.Text
Dim str1 As String = str.Substring(0, 1)
Dim str2 As String = str.Substring(4, 1)

 

If IsNumeric(str1) = True And Char.IsLetter(str2) = True Then
MsgBox("第一個字是數字:" & str1 & " 第五字是英文:" & str2)
Else
MsgBox("OK 第一個字是數字:" & str1 & " 第五字是英文:" & str2)
End If

End If



[SQL]

' [0-9]% 找出開頭為數字的資料
' %[A-Z] 找出結尾為英文字母的資料

SELECT *
FROM TESTTABLE
WHERE (Column1 LIKE '[0-9]%') AND (Column1 LIKE '%[A-Z]')



參考:判斷身分證字號及統一編號是否正確

2019年4月10日 星期三

[GrapeCity][Spread Windows Forms] combine sheet to one PDF 實作合併sheet 匯出一個PDF檔案




'單一FPSpread

    Public Sub CombinePDFFiles()
        Dim printset As FarPoint.Win.Spread.PrintInfo = New FarPoint.Win.Spread.PrintInfo()
        printset.PrintToPdf = True
        printset.PdfWriteMode = PdfWriteMode.Append
        printset.PdfFileName = "D:\TEST\testPDF_" & Format(Now, "yyyyMMddHHmmss") & ".pdf"

        FpSpread1.Sheets(0).PrintInfo = printset
        FpSpread1.Sheets(1).PrintInfo = printset
        FpSpread1.Sheets(2).PrintInfo = printset

        FpSpread1.PrintSheet(-1)
    End Sub


原本希望將多個FPSpread 直接合併匯出一個PDF檔案,實測後是不支援的
所以比較好的做法是直接將兩個檔案合併到同一個FPSpread中




'多個FPSpread

    Public Sub CombinePDFFiles()
        Dim Spread As FarPoint.Win.Spread.FpSpread = New FarPoint.Win.Spread.FpSpread()
        Spread.BringToFront()

        Spread.Size = New System.Drawing.Size(600, 300)
        Spread.Anchor = CType((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
        Dim coll As FarPoint.Win.Spread.SheetViewCollection
        coll = Spread.Sheets
        coll.Add(FpSpread1.Sheets(0))
        coll.Add(FpSpread2.Sheets(0))

        Dim printset As FarPoint.Win.Spread.PrintInfo = New FarPoint.Win.Spread.PrintInfo()
        printset.PrintToPdf = True
        printset.PdfWriteMode = PdfWriteMode.Append

        printset.PdfFileName = "D:\TEST\testPDF_" & Format(Now, "yyyyMMddHHmmss") & ".pdf"

        Me.Controls.Add(Spread)
        Spread.Sheets(0).PrintInfo = printset
        Spread.Sheets(1).PrintInfo = printset
        Spread.PrintSheet(-1)


    End Sub


這方法也是可行,但我覺得如果設計成自動產生會造成元件的負擔
應該蠻容易crash的


程式碼

2019年3月22日 星期五

[VB.NET] [Windows Form] 抽獎抽籤程式不重複 尾牙春酒 都好用




第一次自己寫抽獎程式,能在大型活動上使用就覺得感動😎 因為沒有出現BUG啊!!!😆
其實要用電腦抽獎當然是不難,而且活動中使用感覺也很刺激,但是終究結果還是會讓人難以信服,真要解決這問題,遊戲規則還是要訂好啊!

抽獎程式需求不外乎就需要幾個重要訴求

1.使用亂數抽,亂數種子使用時、分、秒、毫秒、微秒

Dim randomstring As String = Format(Now, "HHmmssffff")
Dim rnd As Random = New Random(randomstring)
RwinnerName = candidates.OrderBy(Function(o) rnd.Next()).First()

2.抽獎結果不重複,我是求簡單只使用比對法

For j = 0 To i - 1
If winnerName(i) = winnerName(j) Then
    i = i - 1
Exit For
End If
Next  j


3.把抽中的名單移除後就可以再重新抽出下一輪了


4.搭配抽獎按鈕,原本想要來一個無限按鈕,可以設定控制ENTER鍵或者是其他可自訂的按鈕,後來現在這種拍拍燈又漂亮效果又好,拿來當抽獎燈真的是蠻有氣氛的,還可以讓抽獎的人覺得太過癮了,為了玩下去一直加碼也是很開心的呀 !




最後分享一下我的程式碼 下載程式碼
也許還會被你測試出BUG,再記得分享回饋給我喔 啾咪~~

程式參考:漫談尾牙抽獎程式的公正性

2019年1月21日 星期一

統一發票 電子發票懶人包 第二包 領獎設定 很重要

第一步 到財政部網站設定

登入[財政部電子發票整合服務平台] https://www.einvoice.nat.gov.tw/index

網頁右邊有快速連結 [領獎設定]





輸入手機電話號碼驗證碼



輸入身分證字號




拿出你的領錢的提款卡!!!

把下面資料填一填,中獎的話money money就會自動匯入你的銀行帳戶囉!




既然都登入成功了

我也會建議你繼續完成懶人包的第二包之其他設定


★中獎通知設定★

進入到[通知設定],照你自己的喜好來設定!
 我自己是設定不管有沒有中獎都要通知一下啦!




★歸戶設定★

簡單來說就是你買了東西,店家開給你的發票都會自動存入你設定好的手機條碼,這樣中獎了錢直接就匯給你

接著拿出你手上最常用的幾張卡片

可以是會員卡、MOS卡、信用卡、悠遊卡




新增載具




拿出你的信用卡事先設定好




哪些銀行可使用信用卡存雲端發票(參考自財政部網頁)



三信商業銀行



上海商業儲蓄銀行




中國信託銀行



台中銀行




台北富邦銀行



台新銀行




永豐銀行



玉山銀行




兆豐國際商業銀行



合作金庫銀行




高雄銀行



國泰世華銀行




第一銀行



華南銀行




華泰銀行



陽信銀行




新光銀行



彰化銀行




臺灣土地銀行



臺灣企銀




臺灣銀行



遠東商業銀行




聯邦銀行



日盛銀行




有哪些商店可使用信用卡存雲端發票



新光三越



台北 101

大樓觀景台




大潤發



大買家




遠東 SOGO 百貨

(超市及美食街除外)



遠東百貨

(超市及美食街除外)




大樂購物中心



大立百貨




統一超商



萊爾富超商




錢櫃



好樂迪




義大皇家酒店



夢時代購物中心




中友百貨



宮廷餐廳

(中友百貨美食街)




勝霖藥品

(佑全健康人生)



大立精品




全家超商



大江國際

購物中心




台糖量販店



義大天悅飯店




愛買



遠雄流通




爭鮮



中國石油

(全國直營店)




好市多



頂好




全國加油站



台亞石油




福懋加油站



廣三SOGO




台糖尖山埤江南渡假村



宜兒樂




富兒樂



台南大億麗緻酒店




台糖台北會館



鞋全家福




曾記麻糬



台茂購物中心




統一精工



台灣糖業(股)公司

-油品事業部