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); }
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); } } }