判斷要轉檔列印那些製令內容
目前不做 Threading.ThreadPool 多執行緒轉檔
'轉檔分頁數去印,應該也是放在一個檔案
把基本格式透過判斷去寫
判斷需不需要再多寫一個A4列印區塊
'轉檔用For,格式分開Cell寫就慢
@XLS格式盡量整個區塊一次設定好,
'平衡度是應該與厚度拆開看還是怎樣
'轉檔列印
1.依照製令分類
2.選取製令號
3.目前傾向先不要列印 key in 或是變化歷程資訊
4.要想一下寬度要塞幾筆資料,一頁要分幾段
5.時間切割 日期,時間
改欄位放橫,資料每筆放成直的
'******************
'1.先知道資料筆數 + 1 為建立的column數 (要考慮A4寬度向下分段印)
'2.邊建立rowsHeader,邊寫入內容
'3.製令製令 XXX (製令只抓一次,只寫入內容一次)
' 工號 A034 (以下看資料筆數)
' 機台 1-1
' 量測時間 MMM
' 一次測量 1.1
' 平均厚度 1.1
'最大厚度差距 1.1
'******************
有點難串
不然就直接table寫入Excel
先按照T2表列印
8:00~22:00
每15分量測
目前 13 * 2 一張上下分段
最多會到14 * 4
@目前12*5 A4紙張可以塞入 5個段落
1個段落3個小時的量測資料
'可能需要
1.作業溫度欄位
2.上下比重
3.故障:原因,時間
4.閱覽簽章欄位
==================================
'需要加入查詢厚度量測資料介面
'**************************
'透過製令,機台,日期搜尋所有量測
'可能需要額外查詢相關欄位的歷史資料 (ValChange)
'顯示欄位,Key In 與 Scand 的 Style 不同
'凸顯 異常資料 (超過標準厚度)
'透過功號顯示員工資料
'透過製令顯示量測料號
'目前先以Server資料查詢,Client要再想想需不需要
'**************************
'目前查詢不走DSN,走SQL Client
'分三個view
1. 大範圍的製令號 view
2. 某筆製令的所有量測內容
3. 某欄位的相關歷史資料內容
'要想一下怎麼凸顯異常資料 (選取製令繪製製令細項時)
key in 與 scand 差別,
感覺如果要改 特定cell 的Border樣式
一定要自訂控制項,去改寫 DataGridViewAdvancedBorderStyle 自訂外框
不然好像只能透過 CellBorderStyle 去做通用外框設定
DataGridViewAdvancedBorderStyle 類別
DataGridView自訂繪圖之CellPainting事件
其實我要只是換Cell的背景顏色,繪圖的工作與layout工作全部不變一樣交與DataGridView做就好了。
在試了多次後,其實只要觸發DataGridView.CellPainting事件就能滿足本人的須求。
'在選取狀態應該維持凸顯風格
動態設定 DataGridView 儲存格背景顏色的問題
==========================================================
'應該加入工號防呆,加入製令防呆
檢查是否存在該工號,製令
(先不做)
'應該修正加入資料的時候,去除多餘的空白
'****************
'目前測試厚度為百位到小數點下兩位
'不足部分補0
'擋掉 + 號
'滑鼠點擊,得到焦點,將全選Box內容
'失去焦點後,判斷是否4個厚度皆有資料,然後計算
'應該以小數點下四位計算(兩種厚度機,2位,4位)
'加入製令下砂輪標準厚度,判斷每次量測的是否在標準內,並醒目提示
'****************
@ '±' ASCII : 241
==========================================================
'可能製令判斷key in 的部分有點問題
有時候一開始輸入scand 會判讀為 key in
'可能需要透過主程式來開啟Scand程式
先這樣
=========================================================
'加入 Scand介面鎖定功能 (一定要先啟動Scand,再啟動主程式)
'需要寫入上傳Server功能
1.寫入Client
2.判斷server是否可連接
true: 1.複製 Client Table所有資料到 Server
2.清空Client Table
(一筆一筆上傳,commit後才清空)
false: 不做上傳,清空動作
'目前測試在WriteFromTable之下
如果加入 Transaction 會出錯
先拿掉, Transaction 配上 DataAdapter.Update(DataTable)
'目前專案改以 Frame Work 2.0
所以相關載入組件,也要在 2.0環境下執行編譯
改了以後一堆東西不能用
先看到時候執行環境怎樣在修改好了
'厚度
'********************************
'1.Scand - > 自動跳行 (時間差)
'修改時:
' a.>50, <=50且不含"+" -> key in
' b.其他 -> Scand
'2.Key in - > 手動跳行 (時間差)
'修改時:
' a.<=50且含"+" ->Scand
' b.其他 -> key in
'********************************
'製令
'********************************
'1.Scand - > 自動跳行 (時間差)
'修改時:
' a.>400, =0 -> key in
' b.其他 -> Scand
'2.Key in - > 手動跳行 (時間差)
'修改時:
' a.<=400, <>0 -> Scand
' b.其他 -> key in
'********************************
=======================================================
'需要紀錄每次變動
目前設長度100
尚未做長度限定防呆
'每次存檔送出,將 TextBox 自訂屬性初始化
單純清空將不做初始
單純清空將不做初始
'檢查所有欄位非空值,存檔
'鎖住複製貼上動作
'紀錄最後是否Key In
'將 TextBox 加入三個屬性
一個紀錄原始資料
一個紀錄顯示資料
一個紀錄是否KeyIn
每次離開焦點,判斷顯示資料是否改變
If Not Decimal.TryParse(sender.Text, Nothing) Then
sender.focus()
Exit Sub
End If
'暫存數值與新輸入不同
If sender.valuetmp <> sender.text Then
'記憶數值有變化
sender.valuechange = True
'抓住暫存資料數值
'sender.valuetmp = sender.text
sender.valuetmp = If(sender.text = "", "", String.Format("{0:#,0.00}", Decimal.Parse(sender.text)))
'± ASCI 241
''抓儲存前原始數值
''判斷是否有 "+"
''true = 掃描,false = key in
'判斷輸入完成後時間
'stopWatch.Stop()
'標準時間設置 50ms, 判斷以內為掃描
sender.tick.stop()
'********************************
'1.Scand - > 自動跳行 (時間差)
'修改時:
' a.有更改,不含"+" -> key in
' b.其他 -> Scand
'2.Key in - > 手動跳行 (時間差)
'修改時:
' a.有更改,含"+" ->Scand
' b.其他 -> key in
'********************************
If sender.iskeyin Then
'key in 手動跳行
'資料數值有更改
If sender.tick.ElapsedMilliseconds <= 50 _
And sender.Text.Contains("+") Then
'以 scand 修改
sender.iskeyin = False
End If
Else
'Scand 自動跳行
'資料數值有更改
If sender.tick.ElapsedMilliseconds > 50 Then _
'And Not sender.Text.Contains("+") Then
'以 key in 修改
sender.iskeyin = True
ElseIf sender.tick.ElapsedMilliseconds <= 50 _
And Not sender.Text.Contains("+") Then
'以 key in 修改 (輸入快,但是不包含"+")
sender.iskeyin = True
End If
End If
sender.tick.Reset()
'可能需要一些輸入防呆
最好是能做到判斷輸入裝置
C# >> HID裝置抓值判斷問題
http://webcache.googleusercontent.com/search?q=cache:3pXAGZOL8mMJ:www.blueshop.com.tw/board/FUM20050124192253INM/BRD201012062050227KX.html+VB+%E5%88%A4%E6%96%B7+HID&cd=4&hl=zh-TW&ct=clnk&gl=tw
How to detect USB devices, mouse, keyboard (HID) using C#
GUID_DEVCLASS_FDC軟盤控制器
GUID_DEVCLASS_DISPLAY顯示卡
GUID_DEVCLASS_CDROM光驅
GUID_DEVCLASS_KEYBOARD鍵盤
GUID_DEVCLASS_COMPUTER計算機
GUID_DEVCLASS_SYSTEM系統
GUID_DEVCLASS_DISKDRIVE磁盤驅動器
GUID_DEVCLASS_MEDIA聲音、視頻和遊戲控制器
GUID_DEVCLASS_MODEMMODEM
GUID_DEVCLASS_MOUSE鼠标和其他指針設備
GUID_DEVCLASS_NET網絡設備器
GUID_DEVCLASS_USB通用串行總線控制器
GUID_DEVCLASS_FLOPPYDISK軟盤驅動器
GUID_DEVCLASS_UNKNOWN未知設備
GUID_DEVCLASS_SCSIADAPTERSCSI 和 RAID 控制器
GUID_DEVCLASS_HDCIDE ATA/ATAPI 控制器
GUID_DEVCLASS_PORTS端口(COM 和 LPT)
GUID_DEVCLASS_MONITOR監視器
========================================================
'需要納入每個產品的標準厚度,
tblStock XF, isnotvalid <> 1
PartSpecD 標準重量
PartSpecE 標準厚度
'製令輸入後
撈出製令生產料號 text4
text15 製成
text4 生產料號
text7 製令
'合理範圍,維持原本style
超出範圍,改變背景以及文字色調
'生產機台不一定按照製令排的機台走
沒有留言:
張貼留言