/// <summary> /// ��ȡָ����Ԫ���������б� /// </summary> /// <returns>����������Ŀ����</returns> private CommandItem[] GetCommandItemList() { if (null == this._xmlnode) return new CommandItem[0]; XmlNodeList itemlist = this._xmlnode.SelectNodes("CommandItem"); CommandItem[] cmdItemList = new CommandItem[itemlist.Count]; for (int i = 0; i < itemlist.Count; i++) { cmdItemList[i] = new CommandItem(); cmdItemList[i].ItemName = itemlist[i].Attributes["name"].Value; if (null != itemlist[i].Attributes["dataitem"]) cmdItemList[i].DataSrc = itemlist[i].Attributes["dataitem"].Value; if (null != itemlist[i].Attributes["topic"]) cmdItemList[i].Topic = itemlist[i].Attributes["topic"].Value; if (null == itemlist[i].Attributes["funtype"] || "" == itemlist[i].Attributes["funtype"].Value || "sqlcmd" == itemlist[i].Attributes["funtype"].Value.ToLower()) cmdItemList[i].FunType = AppendFunType.SqlCmd; else if ("xmltodb" == itemlist[i].Attributes["funtype"].Value.ToLower()) cmdItemList[i].FunType = AppendFunType.ImportFromExecel; else if ("sqlcmdlist" == itemlist[i].Attributes["funtype"].Value.ToLower()) cmdItemList[i].FunType = AppendFunType.SqlCmdList; else cmdItemList[i].FunType = AppendFunType.SqlCmd; } return cmdItemList; }
/// <summary> /// 执行从xml格式的Excel文件导入数据操作 /// 文件上报设计说明: /// 模板文件管理 /// 内容包括: /// 上报主题: 上报主题是指上报的文件存在数据库后,通过操作上报主题的名子 /// ,即子项名,打开上报后的数据浏览界面; /// 上报文件模板:上报的文件是基于模板进行解析的,模板固定存放于一个指定 /// 的文件夹中; /// 上报模板数据库名称:模板文件中有数据库的名称,不需要另外设置。 /// 上报主题的目的是为了给远程上报者一个直观的报表标题,不能使用抽象的数据库名称, /// 上报主题与上报模板一一对应; /// /// 上报文件:上报文件是指按上报即定的格式上报的文件,通过上报报表登记界面进行上报,上报后存于指定的服务器文件夹中; /// 有关的上报时间等参数用于存放在数据库中对应的字段。 /// 上报文件存放于"/DataSource/水利局/upload/"中, /// </summary> /// <param name="cmdCur">当前的命令项目</param> private void exeXmlToDB(CommandItem cmdCur) { //获取模板文件和当前上报文件 QueryDataRes query = this.PgSysQuery; NameObjectList paramList = new NameObjectList(); //step 1 得到报表主题: 读表[报表上传登记],得到报表主题和报表模板文件fileNameTp = 模板文件名,根据约定的文档存贮路径,得到数据文件。 paramList.Add("主题名称", cmdCur.Topic); DataTable tab = query.getTable("报表文件配置", paramList); if (null == tab || tab.Rows.Count < 1) return; string fileNameTp = tab.Rows[0]["上报模板"].ToString(); NameObjectList paramListUp = BuildParamList.BuildParams(this.PgParamXmlDoc); paramListUp.Add("主题名称", cmdCur.Topic); DataTable tabUpLoad = query.getTable("上报报表文件", paramListUp); if (null == tabUpLoad || tabUpLoad.Rows.Count < 1 || null == tabUpLoad.Rows[0]["文件"]) return; string fileNameUp = tabUpLoad.Rows[0]["文件"].ToString(); fileNameTp = this.Server.MapPath(DataAccRes.AppSettings("TpFilePath") + fileNameTp); fileNameUp = this.Server.MapPath(DataAccRes.AppSettings("DocFilePath") + fileNameUp); bool brtn = this.PgQuery.ExecuteInsert(cmdCur.DataSrc, csExcel2DB.CreateParamsList(fileNameTp, fileNameUp)); if (true == brtn) leofun.Alert("您已成功执行了 [" + cmdCur.ItemName + "] 操作! ", this); else leofun.Alert("操作失败! 请检查", this); return; }
/// <summary> /// 获取指定单元的命令项列表 /// </summary> /// <returns>返回命令项目数组</returns> private CommandItem[] GetCommandItemList() { if (null == this.dtComItem) return new CommandItem[0]; DataRow[] itemlist = this.dtComItem.Select(); CommandItem[] cmdItemList=new CommandItem[itemlist.Length]; for(int i=0;i<itemlist.Length;i++) { cmdItemList[i]=new CommandItem(); cmdItemList[i].ItemName=itemlist[i]["name"].ToString(); if(null!=itemlist[i]["dataitem"]) cmdItemList[i].DataSrc=itemlist[i]["dataitem"].ToString(); if(null!=itemlist[i]["topic"]) cmdItemList[i].Topic=itemlist[i]["topic"].ToString(); if(null==itemlist[i]["funtype"] || ""==itemlist[i]["funtype"].ToString() || "sqlcmd"==itemlist[i]["funtype"].ToString().ToLower()) cmdItemList[i].FunType=AppendFunType.SqlCmd; else if ("xmltodb"==itemlist[i]["funtype"].ToString().ToLower()) cmdItemList[i].FunType=AppendFunType.ImportFromExecel; else if ("sqlcmdlist" == itemlist[i]["funtype"].ToString().ToLower()) cmdItemList[i].FunType = AppendFunType.SqlCmdList; else cmdItemList[i].FunType=AppendFunType.SqlCmd; } return cmdItemList; }