版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
EMSVI.5.0能源管理系統(tǒng)
軟件源代碼
文件編號(hào)生效日期受控編號(hào)
保密級(jí)別一級(jí)版本號(hào)VI.00修改次數(shù)
總頁(yè)數(shù)85正文81附錄無(wú)
編制項(xiàng)目組各成員審核批準(zhǔn)
南京天溯自動(dòng)化控制系統(tǒng)有限公司
(版權(quán)所有,翻版必究)
評(píng)審記錄
對(duì)《EMSVL5.0能源管理系統(tǒng)軟件源代碼VI.m的評(píng)審意見(jiàn)
上述問(wèn)題修改驗(yàn)證后,由驗(yàn)證后,本文件即可發(fā)布。
評(píng)審人員簽字:
問(wèn)題修改驗(yàn)證結(jié)果:
驗(yàn)證人簽字:時(shí)間:年月一日
變更日志
編號(hào)版本修改內(nèi)容修改人修改日期
項(xiàng)目組2017-10-3
1VI.00初稿
各成員0
目錄
1.EMS1.5.0代碼審核報(bào)告5
1.1集成管理工具5
1.2變壓器負(fù)載率報(bào)告63
1.3滑動(dòng)能耗分析68
1.4碳排放73
1.5App接口81
1.EMS1.5.0代碼審核報(bào)告
i.i集成管理工具
usingFramework.Common;
usingFramework.Configuration;
usingFramework.Data:
usingFramework.DataConfiguration;
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing:
usingSystem.10;
usingSystem.Linq;
usingSystem.ServiceProcess:
usingSystem.Text;
usingSystem.Threading.Tasks;
usingSystem.Windows.Forms;
usingSystem.Xml;
usingSystem.ServiceModel;
usingS/stcin.Configuration;
usinglOMSRegister:
namespaceIntegrateManageTool
(
publicpartialclassForml:Form
(
IntegrateManageTool.BLL.CommonBllbll=newBLL.CommonBll();
boolisFirstlnit=false;
pub!icForml()
(
InitializeComponent();
〃防止線程間訪問(wèn)出錯(cuò),臨時(shí)加此屬性。終極解決辦法是委托或使用Background1沁rker控件屈云明20170719
DataGridView.CheekFor111egaICrossThreadCaIls=false;
)
///<summary>
III主畫面加載
///9/summary〉
///<paramname="sender"X/param>
III<paramname=*e*X/parani>
privatevoidForml_Load(objectsender,EventArgsc)
{
Common.Wrilel.og.CrealeLog("開(kāi)始啟動(dòng)集成管理工具”);
try
(
this.btnRefreshAll.Image=Image.FromFile(System.Windows.Forms.Application.Startuppath+
z,\\Resources\\refresh.png");
this.btnAdd.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+
“\\Resources\\add.png");
this.btnStart.Image=Image.FromFile(Syst&m,Windows.Forms.Application.StartupPath+
^WResourcesWstart.png");
this.btnRestart.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+
^WRcsourccsWrcslart.png"):
this.btnDelete.Image=Image.FromFile(System.Windows.Forms..Application.StartupPath+
^WResourcesWdelete.png");
this.btnClose.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+
^WResourcesWc1ose.png*);
this.btnApply.Image=Image.FromEile(System.Windows.Forms.Application.StartupPath+
^WResourcesWsave.png");
this.btnQuit.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+
z,\\Resources\\power.png");
this.btnWcfOpcn.Image=Image.FromFi1c(System.Windows.Forms.Application.StartupPath+
*\\Resources\\startservice.png");
this.btnWcrClose.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+
w\\Resources\\stopservice.png*);
this,btnlnstall.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+
^WResourcesWinstal1.png");
this.btnModeSwitch.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+
^WRpsourccsWsotting.png"):
this.btnReadMe.Image=Image.FromFile(System.Windows.Forms.Application.StartupPath+
^WResourcesWhe1p.png*);
〃先加載Program.config里面的程序。若在數(shù)據(jù)庫(kù)中沒(méi)有就先保存入數(shù)據(jù)庫(kù)。后面一律以數(shù)據(jù)庫(kù)保存的為準(zhǔn)
LoadXmlProgramToDatabascO;
〃調(diào)用刷新按鈕事件初始化數(shù)據(jù)
this.btnRefreshAll_Click(null,null);
System.Threading.Thread.Sleep(1000):
〃先把集成管理工具的數(shù)據(jù)庫(kù)批量適用到所有工具
this.ModifyDataSrcO;
System.Threading.Thread.Sleep(1000);
〃調(diào)用刷新按鈕事件初始化數(shù)據(jù)
this.btnRefreshAl]_C1ick(nul1,null);
〃定期檢查進(jìn)程或服務(wù)是否正常
ScheduleWork();
〃高級(jí)功能根據(jù)配置顯示
if
(System.Configuration.ConfigurationManager.AppSe11ings[*IsShow.AdvancedFunction*].ToLower().Equals("false"))
(
this.groupBox3.Visible=false;
this.btnModcSwitch.Visible=false;
this,btnlnstail.Visible=false;
this,label1.Location=newPoint(this,label1.Location.X,480);
this.Iabel2.Location=newPoint(this.Iabel2.Location.X,500);
this.btnReadMe.location=newPoint(this.btnReadMe.Location.X,480):
this.btnQuit.Location=newPoint(this.btnQuit.Location.X,480);
)
)
catch(Exceptionex)
{
Common.WriteLog.CreateLog("啟動(dòng)異常:”+ex.Message);
MessageBox.Show("啟動(dòng)異常:“+ex.Message,"出錯(cuò)啦",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
Common.WriteLog.CreateLog("啟動(dòng)成功”);
〃開(kāi)始服務(wù)
this.Start();
)
III<summary>
///先把集成管理工具的數(shù)據(jù)庫(kù)批量適用到所有工具
///〈/summary〉
privatevoidModifyDataSrc()
(
if(isFirstlnit)
(
〃當(dāng)存在數(shù)據(jù)時(shí),認(rèn)為不是初始化,批量修改數(shù)據(jù)的操作
return;
}
〃初始化把數(shù)據(jù)庫(kù)全部修改?遍
〃修改數(shù)據(jù)庫(kù)連接
〃先判斷數(shù)據(jù)庫(kù)配置文件是否存在
stringconnectstringTmp=string.Empty;
if(System.10.File.Exists(Application.StartupPath+'\\"+
G1oba1ConfigurationSource.GlobaLAppSettings[wDatabaseListFile*!))
(
〃加載數(shù)據(jù)源
DatabaseListdatabasel.isi=XmlHelper.XmlDeserializeFromFile<DaiabaseLisl>(Application.StartupPaih+
+GlobalConfigurationSource.GlobalAppSettings[/,DatabaseListFileA],Encoding.UTE8);
if(!string.IsNu11OrEmpty(databascList.MDatabascinslances[0].ConncctionString))
(
conneclstringTmp=dalabaseList.MDatabaseInstances[0].ConnecIionString:
)
)
else
(
〃文件不存在的情況下記錄日志后繼續(xù)執(zhí)行
MessageBox.Show(*不存在數(shù)據(jù)庫(kù)文件!請(qǐng)檢杳。"+Application.StartupPath+*\\*+
GlobalConfigurationSource.GlobalAppSettingsf^Databasel.istFilew]);
}
for(inti=0;i<this.dgvExcList.Rows.Count;i++)
(
〃必須有數(shù)據(jù)源才需要修改屈云明20170720
if(dgvExeList.Rowsti].Cells[”是否有數(shù)據(jù)源Value.Equals(1))
(
〃必須名稱有值的數(shù)據(jù)才有意義
if(dgvExeList.Rows[i].Cells[”名稱”].Value!=null)
{
XmlDocumentxml2=newXmlDocument();
xml2.Load(this.dgvExeList.Rows[i].Ccllst*路徑Value.ToStringO+
*configs\\Database.config*);
XmlNodexnTmp=xml2.DocumentElement;
foreach(XmlNodenodeinxnTmp.ChiIdNodes)
(
if(node.Name=="database")
(
foreach(XmlNodenod<?2innode.ChiIdNodes)
(
node2.TnnerTexl=connectstringTrip;
}
)
}
xml2.Save(this.dgvExeList.Rows[i].Cells[*路徑Value.ToSiringO+
"configsWDatabasc.config");
}
}
)
//%%%%%%%%%%%%%%%%%%%%%%%?%
)
///<summary>
///把Program,config里面配置的程序加載入數(shù)據(jù)庫(kù)
III〈/summary)
privatevoidLoadXmlProgramToDatabase()
{
isFirstlnit=bll.IsHaveDatalnDBO;
if(isFirstlnit)
〃當(dāng)存在數(shù)據(jù)時(shí),認(rèn)為不是初始化,跳過(guò)讀取Program,config的邏輯
return;
)
//鮑的領(lǐng)的鮑覦的?鮑?豳鮑的鮑@
//tobecontinued把xml序列化為二進(jìn)制對(duì)象,使用時(shí)再?gòu)亩M(jìn)制對(duì)象反序列化為xml。目的是防止用戶來(lái)修改
〃夏工的意思是初始化文件裝機(jī)時(shí)肯定存在,且永遠(yuǎn)只用一次。不考慮其他異常情況
if(!System.10.File.Exists(System.Windows.Forms.Application.StartupPath+w\\configs\\Program.config*))
(
McssageBox.Show("執(zhí)行路徑根目錄下找不到Program,config文件,請(qǐng)仔細(xì)檢查\r\n路徑:“
Application.StartupPath+"\\configs”,”文件未找到“,MessageBoxButtons.OK,MessageBoxIcon.Error);
return;
)
List<Model.ManageConfig>IstMc=newList<Model.ManageConfig>();
XmlDocumentdoc=newXmlDocument();
doc.Load(System.Windows.Forms.Application.StartupPath+A\\configs\\Program.config");
XmlNodexn=doc.SclectSingleNodeC^configuration*);
Dircctorylnfoinfo=newDircctoryInfo(Application.StartupPath);
stringparentPath=info.Parent.FullName;
foreach(XmlNodexnlinxn)
(
if(xnl.OuterXml.Contains(*!—*))
I
continuo;
}
iI'(xnl.Name.Equals(*add*))
(
Model.ManageConfigme=newModel.ManageConfig();
me.Cnamc=xnl.SelectSingleNode(*@namc/,).InnerText;
me.ExePath=parentPath+xnl.SelectSingleNode(*@relativePath^).InnerText:
me.WorkTypc=int.Parse(xnl.SclcctSinglcNodcC^varkTypc^).InnerText);
me.ServiceName=xnl.SelectSingleNode(^OserviceName*).InnerText;
〃存在某些程序不需要數(shù)據(jù)庫(kù)配置屈云明20170720
me.IsUaveDataSrc=int.Parse(xnl.SelectSingleNockf^SisllaveDataSrc*).InnerText);
me.Comments="根據(jù)Program,config自動(dòng)添加的”;
IstMc.Add(me):
}
}
〃保存入數(shù)據(jù)庫(kù)
stringerrlnfo=string.Eiipty;
〃返回0表示插入失敗
if(this,bl1.BatchTnsertTntoIntegraleManageConrigdstMc,referrlnfo)==0)
{
Common.WriteLog.CreateLog("把Program,config的插入數(shù)據(jù)庫(kù)失敗。”+errlnfo);
MessageBox.Show("把Program,config的插入數(shù)據(jù)庫(kù)失敗。"+errlnfo,"出錯(cuò)了",MessageBoxButtons.OK,
MessageBoxIcon.Error):
}
〃鮑鮑覦的鮑覦鮑@鮑@鰥蹈奧勉頓
)
privatevoidScheduleWork()
{
try
(
〃設(shè)定固定時(shí)間檢查進(jìn)程是否存在,并記錄口志
vartimer=newSystemTimers.Timer
(
Interval=int.Parse(System.Configuration.ConfigurationManager.AppSettings[wche3kFrenquency*])*
1000,
Enabled=true,
AutoRcsct=true
);
timer.Elapsed+=(sender,e)=>
(
boolisIIaveUninstalIService=false;
boolisHaveStoppcdData=false;
if(this,bt-witch.Text.Equals(“手動(dòng)模式中“))
(
Common.WriteLog.CreateLog("當(dāng)前在"+this.btnModeSwitch.Text+”,跳過(guò)定期檢行并啟動(dòng)已停止的
程序功能”);
return;
}
elseif(this.btnModeSwitch.Text.Equals("自動(dòng)模式中”))
{
Common.WriteLog.CreateLog("當(dāng)前在"+this.btnModeSwitch.Text+”,即將檢查并啟動(dòng)已停止的程序
)
else
{
Common.WriteLog.CreateLog("當(dāng)前既不是手動(dòng)模式,也不是自動(dòng)模式。這是非常嚴(yán)重的問(wèn)題,請(qǐng)聯(lián)系程序
開(kāi)發(fā)人員!”);
return:
)
〃先刷新grid的狀態(tài)
for(inti=0;i<this.dgvExeList.RowCount;i+9
if(this.dgvExeList.Rows[i].Cells]”類型
*].Value.ToStringO.Equals(Model.EnumWorkType.WorkType.應(yīng)用程序.ToStringO))
〃狀態(tài)實(shí)時(shí)獲取
boolblnTaskMgr=Common.Function.isExistlnTaskMgr(this.dgvExeList.Rows[i].Cells[”名稱
*].Value.ToString().Trim());
stringsStatus=string.Empty;
if(blnTaskMgr)
(
sStatus="Running”;
this.dgvExeList.Rows[i].DefaultCelIStyle.BackColor=Color.White:
}
else
(
sStatus="Stopped”;
this.dgvExel.ist.Rows[i].DefaultCelISlyle.BackColor=Color.Red;
Common.NriteLog.CreateLog("自動(dòng)偵測(cè)到應(yīng)用程序"+this.dgvExeList.Rows[i].Cells[”名稱
"].Value.ToStringO+”進(jìn)程已經(jīng)不存在F任務(wù)管理器中”);
}
this.dgvExeList.Rows[i].Cells[”狀態(tài)”].Value=sStatus://狀態(tài)實(shí)時(shí)獲取
elseif(this.dgvExeList.Rows[i].Cells[*類型
*].Value.ToStringO.Equals(Model.EnumWorkType.WorkType.服務(wù)程序.ToStringO))
t
〃當(dāng)服務(wù)程序的服務(wù)名稱沒(méi)有時(shí),提示
if(string.IsNullOrEmpty(this.dgvExeList.Rows[i].Cellst*服務(wù)名稱
/x].Value.ToStringO.TrimO))
Common.WriteLog.GreateLog(*加載"+this.dgvExeList.Rows[i].CelIs[*服務(wù)名稱
*].Value.ToStringO.TrimO+”時(shí)出錯(cuò),服務(wù)名稱為空。請(qǐng)檢查”);
)
else
(
stringsStatus=string.Empty;
if(Common.Function.IsExistsScrvicc(this.dgvExeList.Rows[i].Cells服務(wù)名稱
/z].Value.ToStringO.TrimO))
(
sStatus=Common.Function.GetServiceState(this.dgvExeList.Rows[i].Cells[”服務(wù)名稱
*].Value.ToStringO.TrimO).ToStringO;
)
else
(
sStatus="未安裝";
Conmon.WriteLog.CrealcLog("自動(dòng)偵測(cè)到服務(wù)程序"+this.dgvExeList.Rows[i].Cclls[/,
服務(wù)名稱"].Value.ToStringO+"沒(méi)有安裝");
)
this.dgvExeList.Rows[i].Cells[”狀態(tài)Value=sStatus;〃狀態(tài)實(shí)時(shí)獲取
if(!sStatus.Equals(*Running*))
(
Common.WrileLog.CreaieLog("自動(dòng)偵測(cè)到服務(wù)程序"+this.dgvExeList.Rows[i].Cells[*
服務(wù)名稱”].Value.ToStringO+"的狀態(tài)為"+sStatus);
)
}
)
else
(
Common.WriteLog.CreateLog("程序”+this.dgvExeList.Rows[i].Ce]Is[”名稱”].Value.ToSiringO
+“類型不是應(yīng)用程序也不是服務(wù)程序!“);
this.dgvExeList.Rows[i].DefaultCellStyle.BackColor=Color.Red:
continue;
)
)
//##㈱用#########耶########
〃先判斷有無(wú)未安裝的服務(wù)
for(inti=0;i<this.dgvExeList.RowCount;i+-1)
{
if(this.dgvExeList.Rows[i].Cells[*類型
Value.ToStringO.Equals(Model.EnumWorkTypc.WorkTypc.服務(wù)程序.ToStringO))
(
if(this.dgvExel.ist.Rows[i].Cells[”狀態(tài)Value.ToStringO.Equals("未安裝"))
(
DataGridViewCheckBoxCel1checkCel1=
(DataGridViewCheckBoxCel1)dgvExeList.Rows[i].CelIs[”選擇”]:
checkCell.Value=true:
isHavellninstallSorvico=true:
)
)
)
〃存在未安裝的服務(wù)
if(isHaveUninstallService)
{
this.btnInstall_Click(null,null);
)
else
(
〃若無(wú)未安裝的服務(wù),則檢查有無(wú)stopped的程序
for(inti=0;i<this.dgvExeList.RowCount;i++)
(
if(this.dgvExeList.Rows[i].Cellsr狀態(tài)二.Value.ToStringO.Equals("Stopped"))
(
DataGridViewCheckBoxCel1checkCell=
(DaiaGridViewCheckBoxCel1)dgvExel.ist.Rows[i].Cel1s[”選擇”];
checkCell.Value=true;
isHaveStoppedData=true:
)
〃存在則把停止的程序啟動(dòng)
if(islIaveStoppedData)
(
timer.StopO;
this.btnStart_Click(null,null):
timer.Start():
}
}
);
}
catch(Exceptionex)
(
Common.WriteLog.CreateLog("ScheduleWork方法出現(xiàn)異常:“+ex.Message);
)
)
III<summary>
///全部刷新按鈕按下后,從數(shù)據(jù)庫(kù)和配置文件中重載所有參數(shù)
III</summary)
///<paramname="sender"X/param>
///<paramname="e"></param>
privatevoidbtnRefreshAl1_C1ick(objectsender,EventArgse)
(
〃先不用綁定數(shù)據(jù)源,直接賦值靈活點(diǎn)
//this.dgvExeList.DataSource=bll.GetAllExeO;
〃實(shí)現(xiàn)要清空表格,不然刷新時(shí)返回0條數(shù)據(jù)不會(huì)重繪表格
this.dgvExel.ist.Rows.ClearO;
List<Model.ManageConfig>list=bl1.GetAllExeO;
〃grid好像不能把列數(shù)變?yōu)?
this.dgvExcList.RowCounl=(list.Count=0)?1:list.Count;
iniindex=0;
foreach(Model.ManageConfigmeinlist)
(
try
(
DataGridViewCheckBoxCellcb=newDataGridViewCheckBoxCell(false);
cb.Value=false;
this.dgvExeList.Rows[index].CelIs["選擇”]=cb;
this.dgvExeList.Rows[index].Cells[”名稱Value=me.Cname;
this.dgvExeList.Rcws[index].Cells[“類型”].Value=(me.WorkType==1)?Model.EnumWorkType.WorkType.
應(yīng)用程序:Model.EnumWorkType.WorkType.服務(wù)程序;
this.dgvExeList.Rows[index].Cells[”路徑”].Value=me.ExcPath:
this.dgvExeList.Rows[index].Cells[”備注”].Value=me.Comments;
this.dgvExeList.Rows[index].CelIs[”主鍵”].Value=me.ObjectId;
this.dgvExeList.Rcws[index].Cells[”服務(wù)名稱"].Value=me.ServiceName:
this.dgvExeList.Rows[index].Cells[”是否有數(shù)據(jù)源.Value=me.IsliaveDataSrc;
〃朝翱胖布期的力踹加*
〃必須存在數(shù)據(jù)源的情況下才需要讀取配置文件屈云院20170720
if(this.dgvExeList.Rows[index].Cells[”是否有數(shù)據(jù)源Value.Equals(l))
(
〃先判斷數(shù)據(jù)庫(kù)配置文件是否存在
if(System.10.File.Exists(me.ExePath+
GlobalConfigurationSourcc.GlobalAppScttingst^DalabascListFilc"]))
(
〃加載數(shù)據(jù)源
DatabaseListdatabaseList=XmlHelper.XralDeserializeEroml'ile<DatabaseList>(mc.ExePath+
+GlobalConfigurationSource.GlobalAppSettingsfDalabaseListFile*],Encoding.UTF8);
if(!string.IsNullOrEmpty(databaseList.MDatabaseInstances[O].Connectionstring))
(
this.dgvExeList.Rows[index].Cells[*數(shù)據(jù)源*].Value=
databaseList.MDatabaseInstances[0].ConnectionString:
)
)
else
(
〃文件不存在的情況下記錄H志后繼續(xù)執(zhí)行
Common.WriteLog.CreateLog(*不存在文件!清檢查。"+me.ExePath+*\\*+
GlobalConfigurationSourco.Globa1AppSottings[^DatabasoListFilo^]):
this.dgvExeList.Rows1index].DefaultCellStyle.BackColor=Color.Red:
)
)
〃翱*加料**曲*即北埔#
〃鮑艇鮑@鮑@鮑@鮑勃西鮑@鮑
if(this.dgvExeList.Rows[index].Cclls[*類型
*].Value.ToStringO.Equals(Model.EnumWorkType.WorkType.應(yīng)用程序.ToStringO))
(
〃狀態(tài)實(shí)時(shí)獲取
boolblnTaskMgr=Common.Function.isExistInTaskMgr(mc.Cname.TrimO);
stringsStatus=string.Empty:
if(blnTaskMgr)
(
sStatus="Running”;
this.dgvExeList.Rows[index].DcfaultCclIStyle.BackColor=Color.White;
)
else
sStatus="Stopped”;
this.dgvExeList.Rows[index].DefaultedISlylc.BackColor=Color.Red;
)
ihis.dgvExeLisl.Rows[index].Cel1$[”狀態(tài)”].Value=sSlalus;〃狀態(tài)實(shí)時(shí)獲取
)
elseif(this.dgvExeList.Rows[index].Cells[*類型
z,].Value.ToStringO.Equals(Model.EnumWorkType.WorkType.服務(wù)程序.ToStringO))
{
〃當(dāng)服務(wù)程序的服務(wù)名稱沒(méi)有時(shí),提示
if(string.IsNullOrEmpty(me.ServiceName))
(
Common.WriteLog.CreateLog("加載"+me.Cname+”時(shí)出錯(cuò),服務(wù)名稱為空。請(qǐng)檢查”);
)
else
(
siringsStatus=string.Empty;
if(Common.Function.IsExistsService(mc.ServiceName.TrimO))
(
sStatus=Common.Function.GetServiceState(mc.ServiceName.TrimO).ToStringO:
if(sStatus.Equals("Running"))
(
this.dgvExeList.Rows[index].DefaultCellStyle.BackColor=Color.Vhite:
}
else
(
this.dgvExeList.Rows[index].DefaultCellStyle.BackColor=Color.Red;
)
)
else
(
sStatus="未安裝";
this.dgvExel.ist.Rows[index],DefaultCelIStyle.BackColor=Color.Red;
}
this.dgvExeList.Rows[index].Cells[”狀態(tài)”:.Value=sStatus;〃狀態(tài)實(shí)時(shí)獲取
}
)
else
{
Common.WritcLog.CreateLog("程序”<this.dgvExeList.Rows[index].Ce】Is[”名稱”].Value.ToStringO
+”類型不是應(yīng)用程序也不是服務(wù)程序!”);
this.dgvExeList.Rows[index].DefaultCelIStyle.BackColor=Color.Red;
continue:
)
〃?鮑@鮑@鮑@鮑@鮑照艇鮑?鮑
indcx++:
}
catch(Exceptionex)
Common.WriteLog.CreateLog("加載"+me.Cname+”時(shí)出錯(cuò),請(qǐng)檢查"+ex.Message);
continue;
)
III<summary>
///彈出新增畫面
III〈/summary)
///<paramname="sender"></param〉
///<paramname="e"X/param>
privatevoidbtnAdd_Click(objectsender,EventArgse)
(
frmAddOrModifyfrm=newfrmAddOrModify0;
frm.Strindicator="Add";
if(frm.ShowDialogO.Equals(DialogResult.OK))
(
〃刷新
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025福建福州市婦女兒童活動(dòng)中心招聘1名勞務(wù)派遣制工作人員模擬筆試試題及答案解析
- 2025湖南邵陽(yáng)市紀(jì)委監(jiān)委所屬事業(yè)單位選調(diào)(招聘)10人模擬筆試試題及答案解析
- 電子商務(wù)平臺(tái)運(yùn)營(yíng)技巧電商運(yùn)營(yíng)經(jīng)理面試題及答案
- 好用攻略面對(duì)困難題目如何從容作答針對(duì)考試管理員面試
- 廣告標(biāo)志制作合同范本
- 七臺(tái)河市2024黑龍江百春固廢資源化利用工程技術(shù)研究有限公司招聘4人筆試歷年參考題庫(kù)典型考點(diǎn)附帶答案詳解(3卷合一)
- 2025天津靜慧投資服務(wù)有限公司公開(kāi)招聘筆試備考重點(diǎn)題庫(kù)及答案解析
- 2025陜西榆林市城市投資經(jīng)營(yíng)集團(tuán)有限公司招聘2人備考考試題庫(kù)及答案解析
- 2026廣東揭陽(yáng)市兩級(jí)法院招聘勞動(dòng)合同制書記員13人備考考試試題及答案解析
- 博物館及展覽領(lǐng)域人才選拔的題目詳解與應(yīng)對(duì)策略參考書籍
- 石材行業(yè)合同范本
- 生產(chǎn)性采購(gòu)管理制度(3篇)
- GB/T 18487.1-2015電動(dòng)汽車傳導(dǎo)充電系統(tǒng)第1部分:通用要求
- 外觀不良改善報(bào)告
- 《涉江采芙蓉》課件33張
- 測(cè)井作業(yè)工程事故應(yīng)急預(yù)案
- “裝配式建筑”施工案例詳解圖文并茂
- 醫(yī)療耗材配送服務(wù)方案
- 基礎(chǔ)部分6se70變頻柜-整流單元
- GB∕T 37092-2018 信息安全技術(shù)密碼模塊安全要求
評(píng)論
0/150
提交評(píng)論