C# Employee對象
命令的名字是PRINTOUTEMPLOYEE。ListEmployee()函數接收一個ObjectId參數,它通過一個ref類型的字符串數組返回值(包含相應的雇員數據)。調用它的PrintoutEmployee()函數只是用來在命令行中輸出這些數據。
我們需要一個遍歷并顯示所有雇員數據的命令。
publicstaticvoidListEmployee(ObjectIdemployeeId,refstring[]saEmployeeList)
{
intnEmployeeDataCount=0;
Databasedb=HostApplicationServices.WorkingDatabase;
Transactiontrans=db.TransactionManager.StartTransaction();//開始事務處理。
try
{
Entityent=(Entity)trans.GetObject(employeeId,OpenMode.ForRead,false);
//打開當前對象!
if(ent.GetType()==typeof(BlockReference))
{
//不是所有的塊索引都有雇員數據,所以我們要處理錯誤
boolbHasOurDict=true;
XrecordEmployeeXRec=null;
try{
BlockReferencebr=(BlockReference)ent;
DBDictionaryextDict=(DBDictionary)trans.GetObject
(br.ExtensionDictionary,OpenMode.ForRead,false);EmployeeXRec=(Xrecord)trans.GetObject(extDict.GetAt("EmployeeData"),
OpenMode.ForRead,false);}
catch
{
bHasOurDict=false;//出現了錯誤……字典或擴展記錄不能訪問
}
if(bHasOurDict)//如果獲得擴展字典,而又有擴展記錄……
{
//為雇員列表分配內存
saEmployeeList=newString[4];
//加入雇員的名字
TypedValueresBuf=EmployeeXRec.Data.AsArray()[0];
saEmployeeList.SetValue(string.Format("{0}\n",resBuf.Value),
nEmployeeDataCount);nEmployeeDataCount+=1;
//加入雇員的薪水
resBuf=EmployeeXRec.Data.AsArray()[1];
saEmployeeList.SetValue(string.Format("{0}\n",resBuf.Value),
nEmployeeDataCount);nEmployeeDataCount+=1;
//加入雇員所在的部門
resBuf=EmployeeXRec.Data.AsArray()[2];
stringstr=(string)resBuf.Value;
saEmployeeList.SetValue(string.Format("{0}\n",resBuf.Value),
nEmployeeDataCount);nEmployeeDataCount+=1;
//現在,讓我們從公司字典中獲取老板的名字
//在NOD中找到.
DBDictionaryNOD=(DBDictionary)trans.GetObject(db.NamedObjectsDictionaryId,
OpenMode.ForRead,false);DBDictionaryacmeDict=(DBDictionary)trans.GetObject(NOD.GetAt("ACME_DIVISION"),
OpenMode.ForRead);//注意我們直接使用擴展數據...
DBDictionarysalesDict=(DBDictionary)trans.GetObject(acmeDict.GetAt
((string)EmployeeXRec.Data.AsArray()[2].Value),OpenMode.ForRead);XrecordsalesXRec=(Xrecord)trans.GetObject(salesDict.GetAt("DepartmentManager"),
OpenMode.ForRead);//***,把雇員的數據輸出到命令行
resBuf=salesXRec.Data.AsArray()[0];
saEmployeeList.SetValue(string.Format("{0}\n",resBuf.Value),nEmployeeDataCount);
nEmployeeDataCount+=1;
}
}
trans.Commit();
}
finally
{
trans.Dispose();
}
}
[CommandMethod("PRINTOUTEMPLOYEE")]
publicstaticvoidPrintoutEmployee()
{
Editored=Application.DocumentManager.MdiActiveDocument.Editor;
//聲明我們將在下面使用的工具...
Databasedb=HostApplicationServices.WorkingDatabase;
Transactiontrans=db.TransactionManager.StartTransaction();
try
{
//首先,獲取塊表和模型空間塊表記錄
BlockTablebt=(BlockTable)trans.GetObject(HostApplicationServices.
WorkingDatabase.BlockTableId,OpenMode.ForRead);BlockTableRecordbtr=(BlockTableRecord)trans.GetObject(bt[BlockTableRecord.ModelSpace],
OpenMode.ForRead);//現在,我們需要把內容輸出到命令行。這里可以有一個對象幫助我們:
//下面的部分,我們將遍歷模型空間:
foreach(ObjectIdidinbtr)
{
Entityent=(Entity)trans.GetObject(id,OpenMode.ForRead,false);//打開當前對象!
if(entisBlockReference)
{
string[]saEmployeeList=null;//這是正確的...定義新的列表。
ListEmployee(id,refsaEmployeeList);
if((saEmployeeList.Length==4))
{
ed.WriteMessage("EmployeeName:{0}",saEmployeeList[0]);
ed.WriteMessage("EmployeeSalary:{0}",saEmployeeList[1]);
ed.WriteMessage("EmployeeDivision:{0}",saEmployeeList[2]);
ed.WriteMessage("DivisionManager:{0}",saEmployeeList[3]);
}
}
}
}
finally
{
}
}
關于C# 中Employee對象的作用是什么就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
本文由 貴州做網站公司 整理發布,部分圖文來源于互聯網,如有侵權,請聯系我們刪除,謝謝!
c語言中正確的字符常量是用一對單引號將一個字符括起表示合法的字符常量。例如‘a’。數值包括整型、浮點型。整型可用十進制,八進制,十六進制。八進制前面要加0,后面...
2022年天津專場考試原定于3月19日舉行,受疫情影響確定延期,但目前延期后的考試時間推遲。 符合報名條件的考生,須在規定時間登錄招考資訊網(www.zha...
:喜歡聽,樂意看。指很受歡迎?!巴卣官Y料”喜聞樂見:[ xǐ wén lè jiàn ]詳細解釋1. 【解釋】:喜歡聽,樂意看。指很受歡迎。2. 【示例】:這是...
(資料圖片)關于世界癲癇日是什么節日的知識大家了解嗎?以下就是小編整理的關于世界癲癇日是什么節日的介紹,希望可以給到大家一些參考,一起來了解下吧!世界癲癇日是一個通過全球性活動聯合各地組織加強抗擊癲癇運動,為各地抗癲癇組織提供募捐機會的節日。設立“世界癲癇日”是國際、國內癲癇學界和癲癇病患者及其照護者長期以來的愿望。目標是促進國際和政府層面以及公眾對癲癇病的關注。...
利率是指一定時期內利息額與借貸資金額(本金)的比率。利率是決定企業資金成本高低的主要因素,同時也是企業籌資、投資的決定性因素,對金融環境的研究必須注意利率現狀及其變動趨勢。那么有效年利率怎么理解?實際利率和有效利率一樣嗎?有效年利率(Effective Annual Percentage Rate)指在按照給定的計息期利率和每年復利次數計算利息時,能夠產生相同結果的每年復利一次的年利率。在按照給定...
2018年股市為什么大跌?2018年12月28日是2018年a股的最后一個交易日。這一年,a股相當跌宕起伏。對于投資者來說,他們度過了悲傷的2018年,但對于一些企業來說,他們度過了悲慘的2018年。2018的股市已經讓人走的很艱難了。a股三大指數今年以來跌幅均超過20%,而個股情況更為慘烈。根據相關統計可以知道,2018年中,除了股價遭遇腰斬,還有3200多只股票收跌,共有503只股票跌幅超過5...