Пример #1
0
        void bWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bWorker = sender as BackgroundWorker;

            object[]  param = e.Argument as object[];
            _COBJECTS obj   = param[1] as _COBJECTS;
            string    path  = param[0].ToString();

            ToolKit.GetDirectoryInfo(path.Substring(0, path.LastIndexOf("\\")));
            using (FileStream stream = new FileStream(path, FileMode.Create, FileAccess.Write, FileShare.None))
            {
                using (MemoryStream ms = new MemoryStream())
                {
                    GZipStream      zip      = new GZipStream(stream, CompressionMode.Compress);
                    BinaryFormatter formater = new BinaryFormatter();
                    obj.StructSource.AcceptChanges();
                    _FileHeader header = new _FileHeader();
                    header.Set("总造价", obj.StatusInfo.当前工程总造价.ToString());
                    formater.Serialize(ms, header);
                    formater.Serialize(ms, obj.StructSource);
                    byte[] buffer = ms.ToArray();
                    zip.Write(buffer, 0, buffer.Length);
                    zip.Close();
                    e.Result = path;
                }
            }
        }
Пример #2
0
        /// <summary>
        /// 批量开始工作
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        void PLWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            BackgroundWorker bWorker = sender as BackgroundWorker;

            object[]        param = e.Argument as object[];
            ArrayList       obj   = param[1] as ArrayList;
            string          path  = param[0].ToString();
            FileInfo        fi;
            GZipStream      zip;
            string          ph;
            BinaryFormatter formater;
            DataSet         ds;
            _FileHeader     header;

            byte[] buffer;
            foreach (_COBJECTS info in obj)
            {
                ph = string.Format("{0}\\{1}.JGCX", path, info.Name);
                fi = new FileInfo(ph);
                if (fi.Exists)
                {
                    ph = string.Format("{0}\\复件 {1}.JGCX", path, info.Name);
                }

                using (FileStream stream = new FileStream(ph, FileMode.Create, FileAccess.Write, FileShare.None))
                {
                    using (MemoryStream ms = new MemoryStream())
                    {
                        zip      = new GZipStream(stream, CompressionMode.Compress);
                        formater = new BinaryFormatter();
                        //info.StructSource.AcceptChanges();
                        ds = info.StructSource.Copy();
                        ds.AcceptChanges();

                        header = new _FileHeader();
                        header.Set("总造价", info.StatusInfo.当前工程总造价.ToString());
                        formater.Serialize(ms, header);

                        formater.Serialize(ms, ds);
                        buffer = ms.ToArray();
                        zip.Write(buffer, 0, buffer.Length);
                        zip.Close();
                    }
                }
            }
            e.Result = path;
        }
Пример #3
0
        /// <summary>
        /// 获取头数据
        /// </summary>
        /// <returns></returns>
        public _FileHeader Get_FileHeader()
        {
            string sql = "select [value] from 变量表 where [key] = 'ZZJ' and [Type] = '-3'";

            object obj = this.ExecuteScalar(sql);

            if (obj != null)
            {
                _FileHeader info = new _FileHeader();
                info.Set("总造价", obj);
                return(info);
            }
            else
            {
                return(new _FileHeader());
            }
        }