📄 formmain.cs
字号:
}
private void FieldnameSetting()
{
XmlElement root=SettingXmlDoc["YQExpert_SETTING"];
root=root["综合推理结果存放"];
XmlElement ele;
ele=root["模板解释结论"];
if(ele!=null)
myExamDataSet.NAME_TEMPLATERESUTL_FIELDNAME=ele.InnerText;
ele=root["匹配模板号"];
if(ele!=null)
myExamDataSet.NAME_TEMPLATERNUM_FIELDNAME=ele.InnerText;
ele=root["匹配度"];
if(ele!=null)
myExamDataSet.NAME_TEMPLATER_MATCHDEGREE_FIELDNAME=ele.InnerText;
ele=root["统计置信度1"];
if(ele!=null)
myExamDataSet.NAME_STATIS_RESULTCREDITSCORE1_FIELDNAME=ele.InnerText;
ele=root["统计解释结论1"];
if(ele!=null)
myExamDataSet.NAME_STATIS_RESULTTYPE1_FIELDNAME=ele.InnerText;
ele=root["统计置信度2"];
if(ele!=null)
myExamDataSet.NAME_STATIS_RESULTCREDITSCORE2_FIELDNAME=ele.InnerText;
ele=root["统计解释结论2"];
if(ele!=null)
myExamDataSet.NAME_STATIS_RESULTTYPE2_FIELDNAME=ele.InnerText;
ele=root["统计置信度3"];
if(ele!=null)
myExamDataSet.NAME_STATIS_RESULTCREDITSCORE3_FIELDNAME=ele.InnerText;
ele=root["统计解释结论3"];
if(ele!=null)
myExamDataSet.NAME_STATIS_RESULTTYPE3_FIELDNAME=ele.InnerText;
root=SettingXmlDoc["YQExpert_SETTING"];
root=root["新定义的字段名称"];
ele=root["结论"];
if(ele!=null)
myResultDataSet.NAME_RESULT_FIELDNAME=ele.InnerText;
ele=root["可信等级"];
if(ele!=null)
myResultDataSet.NAME_CREDITLEVEL_FIELDNAME=ele.InnerText;
ele=root["总计"];
if(ele!=null)
myResultDataSet.NAME_CREDITSCORE_FIELDNAME=ele.InnerText;
}
private void DatabaseAutoOpen()
{
XmlElement root=SettingXmlDoc["YQExpert_SETTING"];
root=root["自动打开文件"];
XmlElement ele;
ele=root["标准样品数据库"];
if(ele!=null)
{
if(Convert.ToBoolean(ele.Attributes["auto"].Value))
{
cridg.Open(ele.InnerText);
}
}
ele=root["待测样品数据库"];
if(ele!=null)
{
if(Convert.ToBoolean(ele.Attributes["auto"].Value))
{
examdg.Open(ele.InnerText);
}
}
ele=root["模板数据库"];
if(ele!=null)
{
if(Convert.ToBoolean(ele.Attributes["auto"].Value))
{
templatedg.Open(ele.InnerText);
}
}
return;
}
private DataTable FieldDomainSetting()
{
XmlElement root=SettingXmlDoc["YQExpert_SETTING"];
root=root["参数取值范围"];
DataTable fieldsetting=new DataTable("参数设置");
fieldsetting.Columns.Add("NAME",typeof(string));
fieldsetting.Columns.Add("MIN",typeof(float));
fieldsetting.Columns.Add("MAX",typeof(float));
fieldsetting.Columns.Add("USEIT",typeof(bool));
fieldsetting.Columns.Add("WEIGHT",typeof(float));
fieldsetting.Columns.Add("abrev",typeof(string));
foreach(XmlNode node in root.ChildNodes)
{
try
{
DataRow row=fieldsetting.NewRow();
//row["NAME"]=node.Attributes["NAME"]
foreach(XmlAttribute attri in node.Attributes)
{
if(fieldsetting.Columns[attri.Name]!=null)
row[attri.Name]=attri.Value;
}
foreach(XmlNode profile in node.ChildNodes)
{
if(fieldsetting.Columns[profile.Name]!=null)
row[profile.Name]=profile.InnerText;
}
fieldsetting.Rows.Add(row);
}
catch(Exception ex)
{
ShowMessage(ex.Message);
}
}
return fieldsetting;
}//end function
public string GetReportXsl(string type)
{
XmlElement root=SettingXmlDoc["YQExpert_SETTING"];
root=root["报告样式文件"];
if(root==null)
return "";
root=root[type];
if(root==null)
return "";
return root.InnerText;
}//end function
private string FuzzyKbfSuperSetting()
{
XmlElement root=SettingXmlDoc["YQExpert_SETTING"];
root=root["模糊推理设置"];
root=root["特殊知识库"];
return root.InnerText;
}//end function
private DataTable FuzzyKbfResultTypeSetting()
{
XmlElement root=SettingXmlDoc["YQExpert_SETTING"];
root=root["模糊推理设置"];
root=root["分类结果知识库"];
DataTable temptalbe=new DataTable("模糊分类结果知识库");
temptalbe.Columns.Add("类别",typeof(string));
temptalbe.Columns.Add("知识库路径",typeof(string));
foreach(XmlNode node in root.ChildNodes)
{
//row["NAME"]=node.Attributes["NAME"]
DataRow row=temptalbe.NewRow();
row["类别"]=node.Name;
row["知识库路径"]=node.InnerText;
temptalbe.Rows.Add(row);
}
return temptalbe;
}//end function
//编辑用户配置文件
private void menuSettingEdit_Click(object sender, System.EventArgs e1)
{
Process myProcess = new Process();
try
{
// Get the path that stores user documents.
string myDocumentsPath =
Environment.GetFolderPath(Environment.SpecialFolder.Personal);
myProcess.StartInfo.FileName =this.SettingFile;
myProcess.StartInfo.Verb = "Edit";
myProcess.StartInfo.CreateNoWindow = false;
myProcess.Start();
}
catch (Win32Exception ex)
{
ShowMessage(ex.Message);
}
}
private void reportprint(object sender, System.EventArgs e)
{
myDataSet aDS=CurrentDataSet;
if(aDS==null)
return;
Access.ApplicationClass access=new Access.ApplicationClass();
access.Application.Visible=true;
//access.OpenAccessProject(CriSet.cnnexpert.DataSource,false);
access.OpenCurrentDatabase(aDS.cnnexpert.DataSource,false);
//Access.AccessObject report =access.CurrentProject.AllReports["数据报表"];
//access.DoCmd.OpenReport(report.Name,Access.AcView.acViewPreview,null,null);
// access.Application.Quit(Access.AcQuitOption.acQuitSaveNone);
}
private void simpleprint_Click(object sender, System.EventArgs ev)
{
myDataSet aDS=CurrentDataSet;
if(aDS==null)
return;
Access.ApplicationClass access=new Access.ApplicationClass();
if(access==null)
return;
try
{
access.Application.Visible=false;
access.OpenCurrentDatabase(aDS.cnnexpert.DataSource,false);
Access.AccessObject aQuery=access.CurrentData.AllQueries[myDataSet.NAME_ALL_DIRECTPRINT_TABLENAME];
//Access.AccessObject report =access.CurrentProject.AllReports["直接输出的报表"];
if(aQuery!=null)
access.DoCmd.OpenQuery(aQuery.Name,Access.AcView.acViewPreview,Access.AcOpenDataMode.acReadOnly);
access.Application.Visible=true;
//access.Application.Quit(Access.AcQuitOption.acQuitSaveNone);
}
catch(Exception ex)
{
ShowMessage(ex.ToString());
access.Application.Quit(Access.AcQuitOption.acQuitSaveNone);
}
}
private void SaveAutoOpenDatabase()
{
XmlElement root=SettingXmlDoc["YQExpert_SETTING"];
root=root["自动打开文件"];
XmlElement ele;
if(CriSet!=null && CriSet.cnnexpert!=null)
{
ele=root["标准样品数据库"];
if(ele!=null)
{
ele.InnerText=CriSet.cnnexpert.DataSource;
}
}
if(ExamSet!=null && CriSet.cnnexpert!=null)
{
ele=root["待测样品数据库"];
if(ele!=null)
{
ele.InnerText=ExamSet.cnnexpert.DataSource;
}
}
if(TemplateSet!=null && CriSet.cnnexpert!=null)
{
ele=root["模板数据库"];
if(ele!=null)
{
ele.InnerText=TemplateSet.cnnexpert.DataSource;
}
}
SettingXmlDoc.Save(SettingFile);
return;
}
private void SaveSetting_Click(object sender, System.EventArgs ev)
{
SaveAutoOpenDatabase();
}
/// <summary>
/// 当前显示的数据集
/// </summary>
public myDataSet CurrentDataSet
{
get
{
TabPage curPage=this.tabControl1.SelectedTab;
foreach(Control ctl in curPage.Controls)
{
bool b=ctl is myGridCtrl;
if(b)
return ((myGridCtrl)ctl).CurDataSet;
};
return null;
}
}
public bool FuzzyReasonSingleSample(DataRow rowSample,DataRow rowResult )
{
#region 准备数据结构
/*countTable 为一个数据表,为每一个油气类型的知识库生成一个记录,内容为五类结果数据的参数数目;
* creditTable 为一个数据表,为每一个油气类型的知识库生成一个记录,内容为五个置信度;
* */
System.Data.DataTable creditTable=new DataTable("creditTable");
System.Data.DataTable countTable=new DataTable("countTable");
foreach(string paratype in new string[]{"dizi","qice","dihua","cejing","zhonghe"})
{
creditTable.Columns.Add(paratype,typeof(Double));
countTable.Columns.Add(paratype,typeof(int));
}
countTable.Columns.Add("resultname",typeof(string));
creditTable.Columns.Add("resultname",typeof(string));
#endregion
int countKBF=0;;
//每次循环对应一个知识库,生成一个creditTable的纪录和一个countTable的纪录
do
{
string s=FuzzyOpenKBF(countKBF);
if(s==null)
break;
if(s.Length<=0)
break;
MSScriptControl.ScriptControl script=new MSScriptControl.ScriptControl();
DataRow creditRow=creditTable.NewRow();
creditRow["resultname"]=FuzzyKBFResultName(countKBF);
DataRow countRow=countTable.NewRow();
countRow["resultname"]=FuzzyKBFResultName(countKBF);
#region 准备script 代码
script.Language="VbScript";
//将待测样本数据的各项数据 放入 script中
FuzzySetParams(script,rowSample);
try
{
script.AddCode(s);
}
catch(System.Runtime.InteropServices.COMException e)
{
ShowMessage("失败原因:"+e.Message,"知识库装载异常----->"+FuzzyKBFResultName(countKBF));
return false;
}
try
{
script.AddCode("dim Credit\n"+
"dim Count\n"
);
}
catch(System.Runtime.InteropServices.COMException e)
{
ShowMessage(e.Message+"\n"+"使用知识库中已存在的函数或变量!","缺省标识符----->"+FuzzyKBFResultName(countKBF));
}
try
{
script.AddCode( "public sub Add(a)\n"+
"Credit=Credit+a\n" +
"Count=Count+1\n"+
"end sub\n"
);
}
catch(System.Runtime.InteropServices.COMException e)
{
ShowMessage(e.Message+"\n"+"使用知识库中已存在的函数或变量!","缺省标识符----->"+FuzzyKBFResultName(countKBF));
}
try
{
script.AddCode("public sub ClearCredit2Count()\n"+
"Count=0\n"+
"Credit=0\n"+
"end sub\n"
);
}
catch(System.Runtime.InteropServices.COMException e)
{
ShowMessage(e.Message+"\n"+"使用知识库中已存在的函数或变量!","缺省标识符----->"+FuzzyKBFResultName(countKBF));
}
try
{
script.AddCode("public function Valid(b)\n"+
"Valid=not (VarType(b)=0)\n"+
"end function\n"
);
}
catch(System.Runtime.InteropServices.COMException e)
{
ShowMessage(e.Message+"\n"+"使用知识库中已存在的函数或变量!","缺省标识符----->"+FuzzyKBFResultName(countKBF));
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -