Ejemplo n.º 1
0
        /// <summary>
        /// 根据单据类别和部门生成编号
        /// </summary>
        /// <param name="billType">单据类型</param>
        /// <param name="deptCode">部门</param>
        /// <returns></returns>
        static public string    GetBillSn(string billType, string deptCode)
        {
            if ("" == billType || "" == deptCode)
            {
                return("");
            }
            NameObjectList paramList = new NameObjectList();
            QueryDataRes   query     = QueryDataRes.CreateQuerySys();

            paramList.Add("单据类型", billType);
            paramList.Add("部门", deptCode);
            //没有就创建一个
            DataTable tab = query.getTable("单据流水号", paramList);

            if (tab.Rows.Count < 1 || null == tab.Rows[0]["流水号"])
            {
                return("");
            }
            return(tab.Rows[0]["流水号"].ToString());
        }
Ejemplo n.º 2
0
 /// <summary>
 /// ����ͣ������Ʊ��
 /// </summary>
 private void searchPark()
 {
     QueryDataRes query = new QueryDataRes("cardone");
     NameObjectList ps = new NameObjectList();
     DataTable tab = query.getTable("devlist", ps);
     if (null == tab || tab.Rows.Count < 1)
         return;
     for (int i = 0; i < tab.Rows.Count; i++)
     {
         DataRow dr = tab.Rows[i];
         string commitype = Convert.ToString(dr["���ʷ�ʽ"]);
         if ("1" == commitype) commitype = "Ser";
         if ("2" == commitype) commitype = "TCP";
         if ("Ser" != commitype && "TCP" != commitype)
             commitype = "UDP";
         string port = Convert.ToString(dr["�˿�"]);
         if ("Ser" == commitype)
             port = "COM" + port;
         //����ֶ�˳�����, �豸����, �豸����, IP��ַ, �˿�, ͨѶ���, ͨѶվַ, ��������, Ĭ������, �����ַ
         string[] ipAddrs = new string[10];
         ipAddrs[0] = i.ToString();
         ipAddrs[1] = "ͣ������Ʊ��";
         ipAddrs[2] = Convert.ToString(dr["����"]);
         ipAddrs[3] = Convert.ToString(dr["��ַ"]);
         ipAddrs[4] = port;
         ipAddrs[5] = commitype;
         ipAddrs[6] = Convert.ToString(dr["�豸��ַ"]);
         ipAddrs[7] = "";
         ipAddrs[8] = "";
         ipAddrs[9] = "";
         DataGridViewRow drPark = this.getRow(ipAddrs[3], port, ipAddrs[6]);
         if (null != drPark)
             drPark.SetValues(ipAddrs);
         else
             this.gdGrid.Rows.Add(ipAddrs);
     }
 }
Ejemplo n.º 3
0
 public static DataSet PrnDataSet(UnitItem unititem, Hashtable itemhash, XmlDocument xmlsys)
 {
     DataSet dataset = new DataSet();
     QueryDataRes query = new QueryDataRes(unititem.DataSrcFile);
     NameObjectList paramlist = BuildParamList.BuildParams(xmlsys);
     DataTable tab = new DataTable();
     for (int i = 0; i < unititem.WorkItemList.Length; i++)
     {
         string dataname = unititem.WorkItemList[i].DataSrc;
         if (itemhash["[table]" + dataname] != null)
         {
             tab = query.getTable(dataname, paramlist, getStrParams(xmlsys, unititem.WorkItemList[i]));
             dataset.Tables.Add(tab);
         }
         if (itemhash["[dtable]" + dataname] != null)
         {
             tab = query.getTable(dataname, paramlist, getStrParams(xmlsys, unititem.WorkItemList[i]));
             dataset.Tables.Add(tab);
         }
         if (itemhash["[mtable]" + dataname] != null)
         {
             tab = query.getTable(dataname, paramlist, getStrParams(xmlsys, unititem.WorkItemList[i]));
             dataset.Tables.Add(tab);
         }
         
     }
     return dataset;
 }
Ejemplo n.º 4
0
        private static NameObjectList SetMasterData(UnitItem unititem,XmlDocument xmlsys,QueryDataRes query,XmlNodeList xmlNodes, string userid, NameObjectList paramlist)
        {
            for (int m = 0; m < unititem.WorkItemList.Length; m++)
            {
                if (unititem.WorkItemList[m].ItemType != WorkItemType.MasterData) continue;
                string dataname = unititem.WorkItemList[m].DataSrc;
                DataTable MData = query.getTable(dataname, paramlist, getStrParams(xmlsys, unititem.WorkItemList[m]));

                for (int n = 0; n < MData.Columns.Count; n++)
                {
                    string strM = MData.Columns[n].ColumnName;
                    paramlist.Add(strM, MData.Rows[0][strM].ToString());
                }

                for (int i = 0; i < xmlNodes.Count; i++)
                {
                    for (int j = 0; j < MData.Columns.Count; j++)
                    {
                        string strM = MData.Columns[j].ColumnName;
                        if (xmlNodes[i].InnerText==dataname + "." + strM)
                        {
                            if (MData.Rows[0][strM] == null) continue;
                            xmlNodes[i].ChildNodes[0].InnerText = MData.Rows[0][strM].ToString(); ;
                        }
                    }
                }

            }

            return paramlist;

        }
Ejemplo n.º 5
0
        public static XmlDocument makeprint(UnitItem UnitItem,XmlDocument xmlsys,string UserId)
        {
            //写入Excel的方法:
            //定义需要参数。<明细>5,2,10,15;
            string TemplatePath = HttpContext.Current.Server.MapPath(DataAccRes.AppSettings("TpFilePath"));    //存放源文件的文件夹路径。
            //初始化XML命名空间
            string nsp = "urn:schemas-microsoft-com:office:spreadsheet";
            XmlDocument xmldoc = new XmlDocument();
            try
            {
                xmldoc.Load(TemplatePath + "\\" + UnitItem.FilePrnTp);
            }
            catch
            {
                string strMSG = "请关闭正在打开的模板文件" + UnitItem.FilePrnTp + "!";
                System.Web.HttpContext.Current.Response.Write("	<script language=\"javascript\">	");
                System.Web.HttpContext.Current.Response.Write("alert('" + strMSG + "')");
                System.Web.HttpContext.Current.Response.Write("	</script>							");
                return null;
            }
            XmlNamespaceManager xmlNsmgl = new XmlNamespaceManager(xmldoc.NameTable);
            xmlNsmgl.AddNamespace("docpro", nsp);

            //读出"Cell"节点中的定义值,得到循环数据区位置值
            XmlNodeList xmlNodes = xmldoc.DocumentElement.SelectNodes("//docpro:Cell", xmlNsmgl);

            //修改:<明细>改为#dataitem name,ItemHash存贮dataitem name, 起始(行,列),列数,每页行数
            Hashtable ItemHash = PrnDataItems(xmlNodes);
            //得到模板用到的所有参数
            
            QueryDataRes query = new QueryDataRes(UnitItem.DataSrcFile);
            NameObjectList paramlist = BuildParamList.BuildParams(xmlsys);
            XmlNodeList xmlNodesRow = xmldoc.DocumentElement.SelectNodes("//docpro:Row", xmlNsmgl);
            XmlNodeList xnode = null;
            User userRight = new User(UserId);
            SetParamData(xmlNodes,userRight,paramlist);
            //先处理主表,并将主表记录做为参数记录在paramlist
            paramlist = SetMasterData(UnitItem,xmlsys,query,xmlNodes, UserId, paramlist);
            setpageSetup(xmldoc, userRight, paramlist);
            for (int i = 0; i < UnitItem.WorkItemList.Length; i++)
            {
                if (UnitItem.WorkItemList[i].ItemType == WorkItemType.MasterData) continue;
                string dataname = UnitItem.WorkItemList[i].DataSrc;
                if (ItemHash["[table]" + dataname] != null || ItemHash["[dtable]" + dataname] != null || ItemHash["[mtable]" + dataname] != null)
                {
                    DataTable oData = query.getTable(dataname, paramlist, getStrParams(xmlsys, UnitItem.WorkItemList[i]));
                    string[] arrDetail = null;
                    if(ItemHash["[table]" + dataname] != null)
                        arrDetail = leofun.getArrayFromString(ItemHash["[table]" + dataname].ToString(), ",");
                    if (ItemHash["[dtable]" + dataname] != null)
                        arrDetail = leofun.getArrayFromString(ItemHash["[dtable]" + dataname].ToString(), ",");
                    if (ItemHash["[mtable]" + dataname] != null)
                        arrDetail = leofun.getArrayFromString(ItemHash["[mtable]" + dataname].ToString(), ",");

                    int startrow = toInt(arrDetail[0]) - 1;
                    int startcol = toInt(arrDetail[1]);
                    int fldcount = toInt(arrDetail[2]);
                    int prnPageSize = toInt(arrDetail[3]);
                    
                    XmlNode rowboot = xmlNodesRow[startrow].ParentNode;

                    string[] arrfld = null;
                    arrfld = getExcelFields(xmlNodesRow[startrow]); //当为散步分布时,不能取出字段名
                    for (int m = 0; m < oData.Rows.Count; m++)
                    {if (prnPageSize == 1) continue;
                        XmlNode baknode = xmlNodesRow[startrow].CloneNode(true);
                        xnode = xmlNodesRow[startrow + m].ChildNodes;
                        for (int n = 0; n < fldcount; n++)
                            if (xnode[n].ChildNodes[0] == null) xnode[n].AppendChild(baknode.ChildNodes[n].ChildNodes[0]);
                    }
                    if ((ItemHash["[dtable]" + dataname] != null || ItemHash["[mtable]" + dataname] != null) && oData.Rows.Count>0)
                        SetMTableData(dataname, oData, xmlNodes);
                    else
                    {
                        for (int m = 0; m < oData.Rows.Count; m++)
                        {
                            xnode = xmlNodesRow[startrow + m].ChildNodes;
                            for (int n = 0; n < fldcount; n++)
                            {
                                string fldname = arrfld[n].Replace(dataname+".","");
                                //处理单表格数据
                                string valfld="";
                                if (m>oData.Rows.Count)
                                    valfld = (null == oData.Rows[m][fldname]) ? "" : oData.Rows[m][fldname].ToString();
                                switch (oData.Columns[fldname].DataType.Name)
                                {
                                    case "Double":
                                        if (valfld != "")
                                            valfld = Convert.ToDouble(valfld).ToString("#0.00");
                                        break;
                                    case "DateTime":
                                        if (valfld == "") break;
                                        valfld = Convert.ToDateTime(valfld).ToString("hh:mm");
                                        break;
                                }
                                if (xnode[n] != null && xnode[n].ChildNodes[0] != null)
                                    xnode[n].ChildNodes[0].InnerText = valfld;
                            }
                        }

                    }

                }
            }

            return xmldoc;
        }
Ejemplo n.º 6
0
 /// <summary>
 /// 定时执行业务
 /// </summary>
 /// <param name="obj"></param>
 void executeTimer(object obj)
 {
     DateTime dt = DateTime.Today.AddDays(-1);
     NameObjectList ps = new NameObjectList();
     ps.Add("开始日期", dt);
     ps.Add("结束日期", dt);
     QueryDataRes query = new QueryDataRes("基础类");
     DataTable tab = query.getTable("考勤人员列表", null);
     if (null == tab || tab.Rows.Count < 1)
     {
         isTmRunning = false;
         return;
     }
     NameValueCollection data = new NameValueCollection();
     data["服务"] = "考勤作业";
     DataColumnCollection cols = tab.Columns;
     foreach (DataRow dr in tab.Rows)
     {
         foreach (DataColumn c in cols)
             ps[c.ColumnName] = Convert.ToString(dr[c]);
         try
         {
             bool b = query.ExecuteNonQuery("考勤人员列表", ps, ps, ps);
             if (b) continue;
         }
         catch (Exception ex)
         {
             foreach (string key in ps.AllKeys)
                 data.Add(key, Convert.ToString(ps[key]));
             LogMessage(ex, data, EventLogEntryType.Error);
             continue;
         }
         foreach (string key in ps.AllKeys)
             data.Add(key, Convert.ToString(ps[key]));
         LogMessage("考勤作业失败!", data, EventLogEntryType.Warning);
     }
     isTmRunning = false;
 }
Ejemplo n.º 7
0
		protected void Page_Load(object sender, System.EventArgs e)
		{
			// 在此处放置用户代码以初始化页面
			XmlDocument		xmldoc=new XmlDocument();
			//读取用户参数
			StreamReader streamreader=new StreamReader(this.Request.InputStream,Encoding.UTF8);
			xmldoc.LoadXml(streamreader.ReadToEnd());
			NameObjectList[]	paramlist=BuildParamList.BuildParamsList(xmldoc);
			try
			{
				string	unitName=paramlist[0]["UnitName"].ToString();
                unitItem = new UnitItem(this.MapPath(DataAccRes.AppSettings("WorkConfig")), unitName);
			}
			catch ( Exception ex )
			{
				ExceptionManager.Publish( ex );
				return;
			}

			QueryDataRes	query=new QueryDataRes(unitItem.DataSrcFile);
			DataSet			ds=new DataSet(unitItem.UnitName);
			ds.EnforceConstraints=false;
			string			itemdata=paramlist[0]["DataItem"].ToString();
			string[]		dataItemList=itemdata.Split(",".ToCharArray());

			for(int i=0;i<dataItemList.Length;i++)
			{
				if(""==dataItemList[i])		continue;
                for(int j=0;j<paramlist.Length;j++)
                {
                    DataTable tab = query.getTable(dataItemList[i], paramlist[j]);
                    ds.Merge(tab);
                }
			}
            //增加行光标列
            for (int i = 0; i < ds.Tables.Count; i++)
            {
                DataTable tab = ds.Tables[i];
                if (null != tab && !tab.Columns.Contains("RowNum"))
                    tab.Columns.Add("RowNum", Type.GetType("System.Int32"));
                for (int j = 0; null != tab && j < tab.Rows.Count; j++)
                    tab.Rows[j]["RowNum"] = j + 1;
            }
            //数字是0的,改为空值显示
            for (int s = 0; s < ds.Tables.Count; s++)
            {
                DataTable tab = ds.Tables[s];
                if (null == tab) continue;
                for (int i = 0; i < tab.Columns.Count; i++)
                {
                    DataColumn col = tab.Columns[i];
                    if ("RowNum" == col.ColumnName) continue;
                    if ("Decimal" != col.DataType.Name && "Double" != col.DataType.Name && "Int16" != col.DataType.Name
                            && "Int32" != col.DataType.Name && "Int64" != col.DataType.Name && "Single" != col.DataType.Name
                             && "UInt16" != col.DataType.Name && "UInt32" != col.DataType.Name && "UInt64" != col.DataType.Name)
                        continue;
                    for (int j = 0; j < tab.Rows.Count; j++)
                    {
                        if (null == tab.Rows[j][i] || DBNull.Value == tab.Rows[j][i])
                            continue;
                        decimal num = Convert.ToDecimal(tab.Rows[j][i]);
                        if (0 == num)
                            tab.Rows[j][i] = DBNull.Value;
                    }
                }
            }

            this.xmldocSchema.LoadXml(ds.GetXmlSchema());
			XmlNamespaceManager		xmlNsMgl=new XmlNamespaceManager(this.xmldocSchema.NameTable);
			XmlNode	xmlRootEle=this.xmldocSchema.DocumentElement;
			for(int i=0;i<xmlRootEle.Attributes.Count;i++)
			{
				string	strPrefix=xmlRootEle.Attributes[i].Prefix;
				string	strLocalName=xmlRootEle.Attributes[i].LocalName;
				string	strURI=xmlRootEle.Attributes[i].Value;
				if("xmlns"==strLocalName)	
					xmlNsMgl.AddNamespace(string.Empty,strURI);
				if("xmlns"!=strPrefix)	continue;
				xmlNsMgl.AddNamespace(strLocalName,strURI);
			}
			this._xmlNsMglSchema=xmlNsMgl;
			this.setSchema(ds);

			QueryDataRes	dictQuery=new QueryDataRes(unitItem.DictColSrcFile);
			WorkItem	workitem=null;
			for(int i=0;i<unitItem.WorkItemList.Length;i++)
				if(unitItem.WorkItemList[i].ItemName==paramlist[0]["WorkItem"].ToString())
				{
					workitem=unitItem.WorkItemList[i];
					break;
				}
			for(int i=0;i<workitem.DictCol.Length;i++)
			{
				DictColumn	dictcol=workitem.DictCol[i];
                if (dictcol.DataSrc.Trim().Length > 0)
                {
                    bool isContinue = false;
                    for (int k = 0; k < i; k++)
                        if (dictcol.DataSrc == workitem.DictCol[k].DataSrc)
                        {
                            isContinue = true; break;
                        }
                    if (isContinue) continue;
                    dictQuery.FillDataSet(dictcol.DataSrc, paramlist, this._dictds);
                }
			}

			XmlDataDocument	xmldocData=new XmlDataDocument(ds);
			this.setFormatXmlLand(xmldocData,ds);
            this.Response.ContentType = "text/xml; charset=gb2312";
			xmldocData.Save(this.Response.Output);
		}
Ejemplo n.º 8
0
 /// <summary>
 /// 初始化创建单元数据集
 /// </summary>
 /// <param name="unitItem">单元实例</param>
 /// <param name="ps">传递的环境参数</param>
 /// <returns>单元的数据集</returns>
 public DataSet BuildDataset(UnitItem unitItem, NameObjectList ps)
 {
     DataSet ds = new DataSet(unitItem.UnitName);
     QueryDataRes query = new QueryDataRes(unitItem.DataSrcFile);
     QueryDataRes queryD = query;
     if (!string.IsNullOrEmpty(unitItem.DictColSrcFile) && unitItem.DictColSrcFile != unitItem.DataSrcFile)
         queryD = new QueryDataRes(unitItem.DictColSrcFile);
     foreach (WorkItem item in unitItem.WorkItemList)
     {
         if (string.IsNullOrEmpty(item.DataSrc))
             continue;
         //填充数据项
         DataTable tab = null;
         string[] psmacro = ParamManager.setMacroParam(MacroPmType.FW, item.InitFilter);
         if (string.IsNullOrEmpty(item.CountDataSrc))
         {
             if (!BindManager.regexSQL.IsMatch(item.DataSrc))
                 tab = query.getTable(item.DataSrc, ps, psmacro);
             else
                 tab = query.GetDataTableBySql(item.DataSrc);
         }
         else
         {
             string[] psString = ParamManager.setMacroParam(MacroPmType.FW, item.InitFilter);
             tab = query.getTable(item.CountDataSrc, ps, psmacro);
             if (null != tab && tab.Rows.Count > 0 && tab.Columns.Contains("记录数量"))
                 psString = ParamManager.setMacroParam(psString, MacroPmType.topnum, Convert.ToString(tab.Rows[0]["记录数量"]));
             tab = query.getTable(item.DataSrc, ps, psmacro);
         }
         if (null == tab) continue;
         //填充字典数据集
         foreach (DictColumn c in item.DictCol)
         {
             if (string.IsNullOrEmpty(c.DataSrc) || string.IsNullOrEmpty(c.ValueCol))
                 continue;
             if (!tab.Columns.Contains(c.ColumnName) || ds.Tables.Contains(c.DataSrc))
                 continue;
             if (!BindManager.regexSQL.IsMatch(c.DataSrc))
                 queryD.FillDataSet(c.DataSrc, ps, ds);
             else
             {
                 DataTable tabtemp = queryD.GetDataTableBySql(c.DataSrc);
                 tabtemp.TableName = c.ColumnName;
                 ds.Tables.Add(tabtemp);
             }
         }
         ds.Tables.Add(tab);
         BindManager.setTablepro(tab, item);
     }
     return ds;
 }
Ejemplo n.º 9
0
 /// <summary>
 /// 定时执行考勤机业务
 /// </summary>
 /// <param name="obj"></param>
 void tmWorkGather(object obj)
 {
     QueryDataRes query = new QueryDataRes("门禁管理");
     NameObjectList ps = new NameObjectList();
     DataTable tab = query.getTable("门禁管理", ps);
     if (null == tab || tab.Rows.Count < 1)
         return;
     myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 启动定时执行");
     CommiManager commimgr = CommiManager.GlobalManager;
     for (int i = 0; i < tab.Rows.Count; i++)
     {
         DataRow dr = tab.Rows[i];
         if (null == dr || DBNull.Value == dr["ID"] || DBNull.Value == dr["站址"])
             continue;
         if ("考勤机" != Convert.ToString(dr["控制器类型"]))
             continue;
         string devid = Convert.ToString(dr["ID"]);
         int station = Convert.ToInt32(dr["站址"]);
         string devname = devname = Convert.ToString(dr["名称"]);
         myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 考勤设备:" + Convert.ToString(dr["站址"]) + " " + devname);
         CommiTarget target = this.getTarget(dr);
         if (null == target) continue;
         DeviceDoor device = new DeviceDoor();
         target.setProtocol(Protocol.PTLDoor);
         device.IsPatrol = false;
         device.dtBeat = DateTime.Now;
         device.SetDevice(commimgr, target, devid, station);
         string msg = device.GatherData(true);
         string cardnum = basefun.valtag(msg, "{卡号}");
         myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 采集信息   0:" + msg);
         if ("0" == cardnum || "16777215" == cardnum)
         {
             if (device.IsEndReadDevice(-1))
                 continue;
         }
         int index = 1;
         while (!string.IsNullOrEmpty(cardnum))
         {
             msg = device.GatherData(false);
             myLog.WriteLine(DateTime.Now.ToString("HH:mm:ss.fff") + " 采集信息" + Convert.ToString(index++).PadLeft(4, ' ') + ":" + msg);
             cardnum = basefun.valtag(msg, "{卡号}");
             if ("0" == cardnum || "16777215" == cardnum)
             {
                 if (device.IsEndReadDevice(-1))
                     break;
             }
         }
     }
 }
Ejemplo n.º 10
0
 /// <summary>
 /// 加载数据
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btLoadData_Click(object sender, EventArgs e)
 {
     QueryDataRes query = new QueryDataRes("resources");
     DataTable tab = query.getTable("orggroup", new NameObjectList());
     //字段:ID、PID、名称、代码
 }
Ejemplo n.º 11
0
 /// <summary>
 /// 搜索停车场验票机
 /// </summary>
 private void searchPark()
 {
     QueryDataRes query = new QueryDataRes("cardone");
     NameObjectList ps = new NameObjectList();
     DataTable tab = query.getTable("devlist", ps);
     if (null == tab || tab.Rows.Count < 1)
         return;
     for (int i = 0; i < tab.Rows.Count; i++)
     {
         DataRow dr = tab.Rows[i];
         string commitype = Convert.ToString(dr["访问方式"]);
         if ("1" == commitype) commitype = "Ser";
         if ("2" == commitype) commitype = "TCP";
         if ("Ser" != commitype && "TCP" != commitype)
             commitype = "UDP";
         string port = Convert.ToString(dr["端口"]);
         if ("Ser" == commitype)
             port = "COM" + port;
         //表格字段顺序:设备类型, 设备名称, IP地址, 端口, 通讯类别, 通讯站址, 物理地址
         string[] ipAddrs = new string[7];
         ipAddrs[0] = "停车场验票机";
         ipAddrs[1] = Convert.ToString(dr["名称"]);
         ipAddrs[2] = Convert.ToString(dr["地址"]);
         ipAddrs[3] = port;
         ipAddrs[4] = commitype;
         ipAddrs[5] = Convert.ToString(dr["设备地址"]);
         ipAddrs[6] = "";
         DataGridViewRow drPark = this.getRow(ipAddrs[2], port, ipAddrs[5]);
         if (null != drPark)
             drPark.SetValues(ipAddrs);
         else
             this.gdGrid.Rows.Add(ipAddrs);
     }
 }