![]() ![]() ![]() ![]() |
|||||
|
|||||
樓主 James Cheng ![]()
![]() |
1樓
不錯的參考
春天 ![]() |
建議你用設計模式 工廠
在button1.Click中由工廠決定要產生哪一個Bank,再調用該Bank的父類別方法CreateIn()及CreateOut()即可 看起來會像
本篇文章回覆於2017-10-16 17:04
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
2樓
作者回應
James Cheng ![]() |
此為刷卡檔 小弟現在有兩的問題求教 1. 在form1中的判斷式需要改寫入Base class當中 判斷後來確定呼叫那一個Bank的檔案 我自己先設定了有Bank1 Bank2 Bank3 以下的BankCode 都是自訂的 並非接外來值 public int BankCode = 01; public int BankCode = 02; public int BankCode = 03; (Bank2 Bank3的程式碼與Bank1幾乎相同,就不補上了) 想請教這判斷的程式到底該怎麼寫?? 2. 在Bank中有一段註解掉的code 為Process的用法 小弟已爬過文了 直接呼叫就如上註解掉的部份 請問該如何將其分開寫成CreateFile.cs中的"方法"與Bank.cs中的實作 而且這兩個問題也是有關聯的 我必須要先做判斷後呼叫對應的exe檔 例如判斷是Bank1 就要呼叫Bank1.exe 小弟不會上傳圖片(試了好幾次都上傳不了= =) 所以只好用簡單的筆述流程(請見諒) Pos機----------->Base class(DLL)----------(執行被呼叫對應的exe)----------->刷卡機 request呼叫個別對應之exe檔 如上 還請各位前輩幫忙解惑 12萬分感謝!!!!!
本篇文章回覆於2017-10-16 17:37
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
3樓
作者回應
James Cheng ![]() |
回春天大
可是小弟現在主要是要把判斷寫入CreateFile.cs中 因為CreateFile.cs是要當成一個DLL 資訊進來都要先透過CreateFile.cs判斷才須動作 在上述我原本form1的寫法雖然不如你寫的漂亮 但同樣也能成功產生檔案 另外Process這個也是重覆的動作 所以也需要分成方法與實作來寫
本篇文章回覆於2017-10-16 18:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
4樓 |
1.BankCode肯定是外來資訊,我看你的流程是未刷卡就先知道銀行別,不知道怎麼辦到的,除非你的POS機有給銀行資訊
2.看不太懂你的問題
本篇文章回覆於2017-10-16 18:48
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
5樓
作者回應
James Cheng ![]() |
1.
其實就只是先給假的BankCode 在createfile.cs中寫判斷 然後在form1中測試 2. 我想把 Process start = new Process(); // FileName 是要執行的檔案 start.StartInfo.FileName = (@"D:\CSharp刷卡檔實作\CardTest\CTBC_win7_8.exe"); start.Start(); 像是CreateIn和CreateOut一樣 在createfile.cs先寫成方法 另外在每個Bank檔中實作 我遇到的問題是 在createfile.cs中我寫 public class myProcess { Process start = new Process(); start.StartInfo.FileName = (string FileName); } 而在Bank1中 寫 FileName = @"路徑+檔名"; 可是卻出錯了Orz.......
本篇文章回覆於2017-10-16 19:06
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
6樓
作者回應
James Cheng ![]() |
補充一下第一點
雖然只是寫假的 不過之後完成要套用時就會修改了 所以判斷式還是要能正確判斷 重點是判斷要寫在createfile.cs中......
本篇文章回覆於2017-10-16 19:22
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
7樓 |
樓主,借我問一個問題。
你的 Bank 相關類別,是不是每個類別內的 BankCode 都是固定的 ? 比方 Bank01 Class,由這個類別所產生的執行個體,他們的 BankCode 一定是 "01" ? 同理,若是 Bank02 Class 類別所產生的執行個體,BankCode 一定是"02"? 以此類推.... 是這樣的嗎 ?
本篇文章回覆於2017-10-16 22:50
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
8樓
作者回應
James Cheng ![]() |
回誰是誰大大
沒錯, 我自己是這樣設定的 只是先給它個假的code code就算是字串比對也可以 沒有一定 喜歡怎麼訂就怎麼訂 後面會怎麼處理主管沒說 只交代"給每個Bank一個代碼" 然後在DLL裡做判斷 就是這部份的重點 Boss : Form 呼叫 DLL DLL 控制刷卡CLASS 所有刷卡CLASS獨立 就這樣~~~
本篇文章回覆於2017-10-17 09:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
9樓 |
誰是誰前輩提出的問題應該是想問這裡
假設你的Bank1.BankCode固定是00,那麼這邊的判斷式就永遠是true 然後 public class myProcess { Process start = new Process(); start.StartInfo.FileName = (string FileName); } 這是什麼寫法...
本篇文章回覆於2017-10-17 09:51
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
10樓
作者回應
James Cheng ![]() |
回春天大與誰是誰大大
我之前就有這個疑問 因為無論怎麼run 一定B1.BankCode永遠都成立 所以我之後就只能在測試時 故意把B1.BankCode改掉例如"11" 讓程式去跑B2.BankCode 類推........ 我問 : 每個刷卡檔我都寫死了一個BankCode給它 可是這樣我沒辦法做判斷 例如第一個檔案我給它BankCode = 01 if (BankCode==01) { ....... } else if (BankCode==02) { ....... } 這樣判斷式01永遠都是成立的那如何執行其他的檔案?? 可是我得到的答覆是.... BOSS: 判斷應該是寫在核心的DLL上吧…..為什麼是在各檔案裡?? (這句我真的看不懂........Orz) 請依照以下重點撰寫 : Form 呼叫 DLL DLL 控制刷卡CLASS 所有刷卡CLASS獨立
本篇文章回覆於2017-10-17 11:11
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
11樓 |
輸入=>處理=>輸出
請你先說明一下輸入會有哪些資料
本篇文章回覆於2017-10-17 11:13
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
12樓
作者回應
James Cheng ![]() |
基本上............
除了 時間 與 Bank.cs中預設的參數 之外 就只有接收外來的資訊了 public string TransType { get; set; } public string TradeType { get; set; } public string Bank { get; set; } public string CreditCard { get; set; } public string Price { get; set; }//Price public string TRDate = DateTime.Now.ToString();//直接取現在時間 public string TRTime = DateTime.Now.ToString(); public string Authentication { get; set; } public string ReturnCode { get; set; } public string TerminalID { get; set; } public string ReferenceNo { get; set; } public string TradeID { get; set; } public string MenberID { get; set; } public string card_type { get; set; } public string a1 { get; set; }//保留位置 public string a2 { get; set; }//保留位置 public string a3 { get; set; } public string a4 { get; set; } public string a5 { get; set; } request : POS或收銀機輸入 TransType 與Price 即為可建立in.txt 待透過CreateFile.cs(DLL)後解析後 呼叫對應的exe檔(例如 : 如果是Bank1就呼叫執行Bank1.exe) 最後從刷卡機responce回一堆欄位值 即建立out.txt
本篇文章回覆於2017-10-17 12:01
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
13樓 |
那麼外來參數是否可判斷出應使用哪一個Bank實做來操作CreateFile
比如Bank?TransType?TradeType?CreditCard?
本篇文章回覆於2017-10-17 12:08
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
14樓
作者回應
James Cheng ![]() |
很早之前就有想過
我問 : 試了一些方式都不是很適合 想問一下如果我要判斷需要執行指定的銀行的class 應該要用哪個欄位判斷?? 或是用combo box讓用戶自己選要用的?? BOSS : 每個銀行給他一組代碼 用收到的代碼去決定走哪一個 就這樣= = 我還以為會簡單多了........ 不過也就是因為這樣的一些回覆 讓我比較確定的就是單純要測試用 對了!!! 因為這檔案原本是PHP檔修改過來的 我們在安裝客戶的機台時(POS 筆電...) 都會另外幫他們先設定好 不過不是這個檔案 但是同是與刷卡相關的檔案
本篇文章回覆於2017-10-17 12:20
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
15樓 |
BOSS的意思應該是BankCode由你決定,並且決定之後就會從POS機傳過來這個資訊(也許你要去加功能,或者有人會加)來讓你判斷要用哪個Bank來處理
請看一下站內信箱
本篇文章回覆於2017-10-17 14:49
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔-- |
回覆 |
如要回應,請先登入. |