Пример #1
0
        private XSDJ GetXSDJ()
        {
            strBiao biao = this.JieXiShuXing();
            XSDJ    xsdj = new XSDJ();

            if (biao.str.Count > 0)
            {
                xsdj.Bdbs = biao.str[0];
                if (biao.str.Count > 2)
                {
                    xsdj.Bdmc = biao.str[1];
                    xsdj.Bdfz = biao.str[2];
                }
            }
            for (int i = 0; i < biao.danju.Count; i++)
            {
                TempXSDJ item = new TempXSDJ();
                item = this.GetTempXSDJ(biao.danju[i]);
                if (item != null)
                {
                    xsdj.Dj.Add(item);
                }
            }
            return(xsdj);
        }
Пример #2
0
        public strBiao JieXiShuXing()
        {
            strBiao biao = new strBiao();

            string[]      strArray = File.ReadAllLines(this.path, ToolUtil.GetEncoding());
            List <string> list     = new List <string>();

            for (int i = 0; i < strArray.Length; i++)
            {
                if (!((strArray[i].Trim().Trim(new char[1]).Length == 0) || strArray[i].Trim().StartsWith("//")))
                {
                    list.Add(strArray[i]);
                }
            }
            int num2 = 0;

            if (list.Count < 2)
            {
                throw new CustomException("001");
            }
            string row = list[num2];

            if (row.Contains("~~"))
            {
                if (!row.Substring(0, row.IndexOf(this.SplitStr)).Equals(this.BeginStr))
                {
                    throw new CustomException("001");
                }
            }
            else if (row.Contains(" ") | row.Contains(","))
            {
                this.SplitStr = " ";
            }
            if (this.SplitStr.Equals("~~"))
            {
                biao.str = this.StringSplit(row);
            }
            else
            {
                num2 = -1;
            }
            while (true)
            {
                bool flag = true;
                num2++;
                if (num2 >= list.Count)
                {
                    return(biao);
                }
                row = list[num2];
                strDanju item = new strDanju {
                    str = this.StringSplit(row)
                };
                int result = 0;
                if (item.str.Count > 1)
                {
                    if (!int.TryParse(item.str[1], out result))
                    {
                        base.errorResolver.AddError("单据商品行数有错误", item.str[0], 1, false);
                    }
                    else
                    {
                        base.errorResolver.ImportTotal++;
                        while (0 < result--)
                        {
                            num2++;
                            int lineNum = int.Parse(item.str[1]) - result;
                            if (num2 < list.Count)
                            {
                                strMingxi mingxi = new strMingxi {
                                    str = this.StringSplit(list[num2])
                                };
                                item.mingxi.Add(mingxi);
                            }
                            else
                            {
                                base.errorResolver.AddError("缺少商品行", item.str[0], lineNum, false);
                                flag = false;
                            }
                        }
                        if (flag)
                        {
                            biao.danju.Add(item);
                        }
                        else
                        {
                            base.errorResolver.AbandonCount++;
                        }
                    }
                }
                else
                {
                    base.errorResolver.AddError("单据仅有单据号", item.str[0], 1, false);
                }
            }
        }