2010年3月16日 星期二

"使用者自選長形列表顯示欄位"功能之影響

目前的右側長形列表中的欄位是固定的(約2~3個欄位)
將資料拖拉過去時,會截取部份欄位的資訊放在目的地的DataGridView
在挑欄位的部份是寫死的
若之後要作成讓右側長形列表可以由使用者自行選取欲顯示的欄位時
勢必要將挑選欄位顯示的部份全部改掉

為搭配往後提供的功能 (即"使用者自選長形列表顯示欄位")
初步想到的做法為 :
將全部欄位填入長形列表的DataGridView
僅將使用者選擇的欄位之Visible設為true
在拖曳時,亦會將所有資料拖拉過去
再從中挑選要顯示的欄位

以上做法應可滿足需求
但在現階段為因應時程要求
暫不提供"使用者自選長形列表顯示欄位"之功能
故亦不先做此修改

特此提醒

2010年3月15日 星期一

精靈A在新增或複製OS時,若size超過Storage

在新增或複製OS的頁面,使用者按下一步時檢查Stoarge的大小 *註
若超出範圍,則不給過(有錯誤標示)

註:在DB的Storage table有一個 Current_Usage欄位,可得知Storage現在使用的大小,經與Willy確認這用的是Storage的實際使用值

2010年3月8日 星期一

精靈A Step 3的Pnl3_DgViewOs,新增OS後,會有無法拉右側的 Bar 到最下面

如題
在新增數個OS後偶會發生,未解決

此問題乃是因為防呆工作沒有做好,填入了名字重複的資料,導致 DgView的動作失常

持續觀察中。

上述也是原因之一,但有時也會在不知何原因下產生如此狀況

2010年3月4日 星期四

User, PC(HBA), OS 所需要顯示的詳盡資料,應該包含哪些?

User資訊


是否停用
是否Online
User Name
User Group
Privilege身份權限是否可安裝OS
PC Name用哪一台電腦登入
Login Time登入時間
Logoug Time登出時間
Email
UD Size
UD 存於哪個Storage
PSD存於哪個Storage
專屬OS個數


PC(HBA)


是否停用
是否Online
是否加入Domain
PC Name
屬於PC Group
Image Version
BIOS Version
IP
MAC
UD Size
UD 存於哪個Storage
PSD存於哪個Storage
誰在用這台電腦 User Name

Remember Account 記住前次使用帳號



OS

是否停用


OS Name
容量
分享模式
快取大小
描述
OS存於哪個Storage
回溯數(時光還原點、發佈)
專屬使用者
配給群組數
線上使用者數

2010年3月2日 星期二

Default Pc(User) Groupt For DB

在DB中

HBA_GRP裡會有一筆HG_NAME為"Default Pc Group"的資料
未配置的HBA,皆屬於此群組

USR_GRP裡會有一筆UG_NAME為"Default User Group"的資料
未配置的USR,皆屬於此群組

對GUI在對PG變動PC及OS時處理相關PSD的演算法

針對GUI在對PG變動PCOS時處理相關PSD的演算法,感謝各位的撥空參與討論並提供寶貴意見。最後將原有的兩個function合併成為一個不會有重覆步驟的Function

ProcessPSD_OsPcChangeGroup( 原有OsList[ ], 現有OsList[ ], 原有PcList[ ], 現有PcList[])

{

先利用傳進來的參數得出

要刪除的 Os

新增的 Os

要刪除的 Pc

新增的 Pc

新舊 List 的交集 Os

運算法如下

要刪除的Os x原有PcList Psd

新增的Os xPcList Psd

交集的Os x新增的Pc Psd

交集的Os x要刪除的Pc Psd

}

2010年3月1日 星期一

如何判斷輸入的是否是中文或全型字-由Steve研發出來的

        private bool checkPwdInfo(string pwd)
        {
            //System.Console.WriteLine(pwd);
            if (pwd.Length > 0)
            {
                char[] str = pwd.ToCharArray();
                for (int i = 0; i < str.Length; i++)
                {
                    int asciiNum = Convert.ToInt32(str[i]);
                    System.Console.WriteLine((asciiNum.ToString()));
                    if (asciiNum == 32) return false; //空白
                    if (asciiNum > 128) return false;
                }
            }
            return true;
        }


在GUI上關於PSD的建立邏輯討論


1. DBSanpshot table中,將LIDVerID兩者合設為一個Key,成為一個防護措施。
2. 精靈中,若再新增PG時加入的PC已經擁有HD,則在畫面出現提示Lable告知使用者若繼續,則該PCHD將被刪除並套用現在新的設定。
3. 定義:刪、建PSD: Group底下所有的Pc(User),為他們建立(刪除)與此OS相關的PSD
4. 精靈中,OS的變化
A. 新建OS則會
建立新的 LUNSSVMDK
Call ProcessPsd_OsChangeGroup()
B. 選現有OS
Call ProcessPsd_OsChangeGroup()
C. 勾掉OS
Call ProcessPsd_OsChangeGroup()
5. 精靈中,PC的變化
A. 新建PG
HBA_GRP (new)
不加PC à不做事
PC
HBA(update)
檢查有無指派UD(HD)
有則
LUN(new)
SS(new)
VMDK(new)
à不做事
Call ProcessPsd_PcChangeGroup()
原有PC勾掉
HBA(update)
Call ProcessPsd_PcChangeGroup()
B. 現有PG
不加PC à不做事
PC
HBA(update)
Call ProcessPsd_PcChangeGroup()
原有PC勾掉
HBA(update)
Call ProcessPsd_PcChangeGroup()
6. 建立兩個Function

A. ProcessPsd_PcChangeGroup(原有PC List [ ], PC List [ ], 原有OS List[ ])
{
PC List中,原有的PC在新的List中沒有,
若原OS已發布則Call水晶的functionPSD
若無則不做事
PC List中,原沒有的PC在新的List中有,
若原OS已發布則Call水晶的functionPSD
若無則不做事
}
B. ProcessPsd_OsChangeGroup(原有OS List [ ], OS List [ ], PC List[ ])
{
OS List中,原有OS在新的List中沒有,則:
GRP_LUN
檢查是否已發布
已發布,則砍PSDPC Admin PSD
未發布,則不做事
OS List中,原沒有OS,在新的List中有,則:
GRP_LUN
檢查是否已發布
已發布,則建PSDPC Admin PSD
未發布,則做事
Call水晶的function來建()PSD
}

7. Pure by mac情況下(如精靈A),新建的PG必須與PBMGRP (User group)有關連,在Grp_relation tablePCSIDEOS要設為 true( 1 )