using System; using System.Collections; using System.Configuration; using System.Data; using System.Web; using System.Web.Security; using System.Web.UI; using System.Web.UI.HtmlControls; using System.Web.UI.WebControls; using System.Web.UI.WebControls.WebParts; using DSWeb.Models; using DSWeb.EntityDA; using System.Text; using System.Text.RegularExpressions; using DSWeb.ConfigManager; using System.Collections.Generic; namespace DSWeb.Invoice { public partial class InvoiceBookGridSource : System.Web.UI.Page { private string strHandle; private string strUserID; private int iCurrentPage;//当前页数 private int iShowPage;//显示最大页数 private string strSearch;//查询搜索条件 private string strInvoiceNumStart;//发票号码起始值 private string strInvoiceNumEnd;//发票号码结束值 private int InvoiceTotal;//发票总数 private string strPostInfo; private string strBookID;//发票册编号 protected void Page_Load(object sender, EventArgs e) { if (Session["USERID"] != null) { strUserID = Session["USERID"].ToString(); } if (Request.QueryString["handle"] != null) { strHandle = Request.QueryString["handle"].ToString(); } if (Request.QueryString["cur_page"] != null) { iCurrentPage = int.Parse(Request.QueryString["cur_page"].ToString().Trim()); } else { iCurrentPage = 0; } if (Request.QueryString["show_page"] != null) { iShowPage = int.Parse(Request.QueryString["show_page"].ToString().Trim()); } else { iShowPage = 0; } if (Request.QueryString["search"] != null) { UnicodeEncoding unicode = new UnicodeEncoding(); strSearch = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["search"].ToString()))); } if (Request.QueryString["startnum"] != null) { strInvoiceNumStart = Request.QueryString["startnum"].ToString(); } if (Request.QueryString["endnum"] != null) { strInvoiceNumEnd = Request.QueryString["endnum"].ToString(); } if (Request.QueryString["totalnum"] != null) { InvoiceTotal = int.Parse(Request.QueryString["totalnum"].ToString()); } else { InvoiceTotal = 0; } if (Request.QueryString["post"] != null) { UnicodeEncoding unicode = new UnicodeEncoding(); strPostInfo = unicode.GetString(unicode.GetBytes(Regex.Unescape(Request.QueryString["post"].ToString()))); } if(Request.QueryString["bookid"] != null) { strBookID = Request.QueryString["bookid"].ToString(); } if (strHandle != null) { if (strHandle.Equals("booklist")) { Response.Write(GetInvoiceBookList()); } if (strHandle.Equals("booklistpage")) { Response.Write(GetBookListPageCount().ToString()); } if (strHandle.Equals("itemlist") && strBookID != null) { Response.Write(GetInvoiceBookItemList()); } if (strHandle.Equals("itemlistpage")) { Response.Write(GetBookItemListPageCount().ToString()); } if (strHandle.Equals("validinvoice") && strInvoiceNumStart != null && strInvoiceNumEnd != null) { Response.Write(ValidateInvoiceNum(strInvoiceNumStart, strInvoiceNumEnd).ToString()); } if (strHandle.Equals("createinvoice") && strPostInfo != null) { Response.Write(CreateInvoice()); } if (strHandle.Equals("deletebook") && strBookID != null) { Response.Write(DeleteInvoiceBooks(strBookID)); } } } #region 删除发票册主表信息 /// /// 删除发票册主表信息 /// /// /// private int DeleteInvoiceBooks(string tempInvoiceBookID) { int iResult = 0; InvoiceBookDA invoiceBookDA = new InvoiceBookDA(); iResult = invoiceBookDA.DeleteInvoiceBook(tempInvoiceBookID, strUserID); return iResult; } #endregion #region 生成发票 /// /// 生成发票 /// /// private string CreateInvoice() { //strBookID//支票册gid int iResult = 0; InvoiceBookDA invoiceBookDA = new InvoiceBookDA(); InvoiceBookEntity invoiceBookEntity = new InvoiceBookEntity(); StringBuilder resultBuilder = new StringBuilder(); invoiceBookEntity.GID = Guid.NewGuid().ToString(); if (strPostInfo != null) { if (!strPostInfo.Trim().Equals("")) { string tempSearch = strPostInfo; tempSearch = tempSearch.Replace("{", ""); tempSearch = tempSearch.Replace("}", ""); tempSearch = tempSearch.Replace("[", ""); tempSearch = tempSearch.Replace("]", ""); string[] searchArg = tempSearch.Split(new char[] { ',' }); for (int i = 0; i < searchArg.Length; i++) { string[] strArg = searchArg[i].Split(new char[] { ':' }); if (!strArg[1].Replace("\"", "").Trim().Equals("")) { switch (strArg[0].Replace("\"", "")) {//GID,NAME,DESCRIPTION,CREATEUSER,CREATETIME,INVOICECODE,INVOICENUMSTART,INVOICENUMEND,INVOICETOTAL,ISLOCK,ISDELETE,COMPANYID,TYPE case "gid": if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.GID = strArg[1].Replace("\"", "").Trim();//Guid.NewGuid().ToString() } break; case "name"://Customer if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.Name = strArg[1].Replace("\"", "").Trim(); } break; case "desp"://BillNO if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.Description = strArg[1].Replace("\"", "").Trim(); } break; case "creator"://ETD EndDate if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.CreateUser = strArg[1].Replace("\"", "").Trim(); } break; case "code"://ETD EndDate if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.InvoiceCode = strArg[1].Replace("\"", "").Trim(); } break; case "start"://ETD EndDate if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.InvoiceNumStart = strArg[1].Replace("\"", "").Trim(); } break; case "end"://ETD EndDate if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.InvoiceNumEnd = strArg[1].Replace("\"", "").Trim(); } break; case "total"://ETD EndDate if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.InvoiceTotal = int.Parse(strArg[1].Replace("\"", "").Trim()); } break; case "islock": if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.IsLock =bool.Parse(strArg[1].Replace("\"", "")); } break; case "isdelete": if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.IsDelete = bool.Parse(strArg[1].Replace("\"", "")); } break; case "comp"://ETD EndDate if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.CompanyID = strArg[1].Replace("\"", "").Trim(); } break; case "type"://ETD BeginDate if (!strArg[1].Replace("\"", "").Trim().Equals("")) { invoiceBookEntity.Type = int.Parse(strArg[1].Replace("\"", "").Trim()); } break; default: break; } } } } } string strHead = ""; int iStartCount = 0; int iEndCount = 0; int iStartNum = 0; int iEndNum = 0; int iTotalCount = 0; for (int i = 0; i < invoiceBookEntity.InvoiceNumStart.Length; i++) { //将发票起始值进行过滤,将开头为0的字符过滤掉 if (invoiceBookEntity.InvoiceNumStart[i].ToString().Equals("0")) { iStartCount++; } else { break; } } //if (iStartCount > 0) //{ // iStartNum = int.Parse(invoiceBookEntity.InvoiceNumStart.Substring((iStartCount > 1 ? iStartCount - 1 : iStartCount), (iStartCount > 1 ? invoiceBookEntity.InvoiceNumStart.Length - iStartCount : invoiceBookEntity.InvoiceNumStart.Length-1))); //} //else //{ // iStartNum = int.Parse(invoiceBookEntity.InvoiceNumStart.Substring((iStartCount > 1 ? iStartCount - 1 : iStartCount), (iStartCount > 1 ? invoiceBookEntity.InvoiceNumStart.Length - iStartCount : invoiceBookEntity.InvoiceNumStart.Length))); //} //2013-10-29 修改 iStartNum = int.Parse(invoiceBookEntity.InvoiceNumStart.Substring(iStartCount, invoiceBookEntity.InvoiceNumStart.Length - iStartCount)); // if (!invoiceBookEntity.InvoiceNumEnd.Equals("")) { for (int j = 0; j < invoiceBookEntity.InvoiceNumEnd.Length; j++) { //将发票起始值进行过滤,将开头为0的字符过滤掉 if (invoiceBookEntity.InvoiceNumEnd[j].ToString().Equals("0")) { iEndCount++; } else { break; } } //if (iEndCount > 0) //{ // iEndNum = int.Parse(invoiceBookEntity.InvoiceNumEnd.Substring((iEndCount > 1 ? iEndCount - 1 : iEndCount), (iEndCount > 1 ? invoiceBookEntity.InvoiceNumEnd.Length - iEndCount : invoiceBookEntity.InvoiceNumEnd.Length - 1))); //} //else //{ // iEndNum = int.Parse(invoiceBookEntity.InvoiceNumEnd.Substring((iEndCount > 1 ? iEndCount - 1 : iEndCount), (iEndCount > 1 ? invoiceBookEntity.InvoiceNumEnd.Length - iEndCount : invoiceBookEntity.InvoiceNumEnd.Length))); //} //2013-10-29 修改 iEndNum = int.Parse(invoiceBookEntity.InvoiceNumEnd.Substring(iEndCount, invoiceBookEntity.InvoiceNumEnd.Length - iEndCount)); iTotalCount = iEndNum - iStartNum+1; } else { iTotalCount = invoiceBookEntity.InvoiceTotal; } IList invoiceBookItemEntities = new List(); if(iStartCount > 0) { strHead = invoiceBookEntity.InvoiceNumStart.Substring(0,iStartCount); } //验证code值是否有重复 int iValidateState = invoiceBookDA.ValidateInvoiceCode(invoiceBookEntity.InvoiceCode); if (iValidateState == 0) { for (int i = 0; i < iTotalCount; i++) { InvoiceBookItemEntity invoiceBookItemEntity = new InvoiceBookItemEntity(); invoiceBookItemEntity.GID = Guid.NewGuid().ToString(); invoiceBookItemEntity.BookID = invoiceBookEntity.GID; invoiceBookItemEntity.InvoiceNum = strHead + (iStartNum + i).ToString(); invoiceBookItemEntity.IsLock = false; invoiceBookItemEntity.IsDelete = false; invoiceBookItemEntity.IsMakeOut = false; invoiceBookItemEntity.CreateUser = invoiceBookEntity.CreateUser; invoiceBookItemEntities.Add(invoiceBookItemEntity); //if (i == iTotalCount - 1) //{ // InvoiceBookItemEntity invoiceBookItemLastEntity = new InvoiceBookItemEntity(); // invoiceBookItemLastEntity.GID = Guid.NewGuid().ToString(); // invoiceBookItemLastEntity.BookID = invoiceBookEntity.GID; // invoiceBookItemLastEntity.InvoiceNum = strHead + (iStartNum + iTotalCount).ToString(); // invoiceBookItemLastEntity.IsLock = false; // invoiceBookItemLastEntity.IsDelete = false; // invoiceBookItemLastEntity.IsMakeOut = false; // invoiceBookItemLastEntity.CreateUser = invoiceBookEntity.CreateUser; // invoiceBookItemEntities.Add(invoiceBookItemLastEntity); //} } if (invoiceBookItemEntities.Count > 0) { if (invoiceBookEntity.InvoiceNumEnd == "") { invoiceBookEntity.InvoiceNumEnd = invoiceBookItemEntities[invoiceBookItemEntities.Count - 1].InvoiceNum; } invoiceBookEntity.InvoiceTotal = iTotalCount; invoiceBookEntity.IsDelete = false; invoiceBookEntity.IsLock = false; invoiceBookEntity.InvoiceBookItemEntities = invoiceBookItemEntities; //开始生成发票 if (strBookID == "") { iResult = invoiceBookDA.InsertInvoiceBook(invoiceBookEntity); } else { //iResult = invoiceBookDA.updateInvoiceBook(invoiceBookEntity); } } // resultBuilder.Append("{"); resultBuilder.Append("result:["); resultBuilder.Append("{result:" + iResult.ToString() + ","); resultBuilder.Append("bookid:\"" + invoiceBookEntity.GID + "\"}"); resultBuilder.Append("]"); resultBuilder.Append("}"); } else { resultBuilder.Append("{"); resultBuilder.Append("result:["); resultBuilder.Append("{result:-3,");//发票代码重复错误 resultBuilder.Append("bookid:\"\"}"); resultBuilder.Append("]"); resultBuilder.Append("}"); } return resultBuilder.ToString(); } #endregion #region 验证生成发票输入值 /// /// 验证生成发票输入值 /// /// 发票起始号码 /// 发票结束号码 /// 值1表示验证通过 值不等于1表示验证失败 private int ValidateInvoiceNum(string tempStartValue,string tempEndValue) { int iResult = 0; int iStartCount = 0; int iEndCount = 0; int iStartNum = 0; int iEndNum = 0; for (int i = 0; i < tempStartValue.Length; i++) { //将发票起始值进行过滤,将开头为0的字符过滤掉 if (tempStartValue[i].ToString().Equals("0")) { iStartCount++; } else { break; } } //iStartNum = int.Parse(tempStartValue.Substring((iStartCount > 1 ? iStartCount - 1 : iStartCount), (iStartCount > 1 ? tempStartValue.Length - iStartCount : tempStartValue.Length - 1))); //2013-10-29 修改 iStartNum = int.Parse(tempStartValue.Substring(iStartCount, tempStartValue.Length - iStartCount)); for (int j = 0; j < tempEndValue.Length; j++) { //将发票起始值进行过滤,将开头为0的字符过滤掉 if (tempEndValue[j].ToString().Equals("0")) { iEndCount++; } else { break; } } //iEndNum = int.Parse(tempEndValue.Substring((iEndCount > 1 ? iEndCount - 1 : iEndCount), (iEndCount > 1 ? tempEndValue.Length - iEndCount : tempEndValue.Length - 1))); //2013-10-29 修改 iEndNum = int.Parse(tempEndValue.Substring(iEndCount, tempEndValue.Length - iEndCount)); if (iStartCount != iEndCount) { iResult = -1;//验证错误,发票号码长度错误 } else if (iStartNum >= iEndNum) { iResult = -2;//发票结束值不能大于等于发票起始值,输入错误 } else if (InvoiceTotal > 0) { if ((iEndNum - iStartNum) > InvoiceTotal) { iResult = -3;//发票总数与起始结束值不相符 } else { iResult = 1; } } else { int iInvoiceBookTotal = 0; //查看是否超过发票最大行数 object configObj = ConfigManager.ConfigManager.Instance().GetConfigInfo(ConfigType.INVOICECONFIG); IList invoiceConfigEntities = new List(); invoiceConfigEntities = (IList)configObj; if (invoiceConfigEntities.Count > 0) { foreach (InvoiceConfigEntity invoicConfigEntity in invoiceConfigEntities) { if (invoicConfigEntity.ItemName.ToLower().Equals("booktotal")) { iInvoiceBookTotal = int.Parse(invoicConfigEntity.ItemValue); break; } } } if ((iEndNum - iStartNum) > iInvoiceBookTotal) { iResult = -4;//录入的发票起始和结束间值超过发票册最大发票数值 } else { iResult = 1; } } return iResult; } #endregion #region 获取发票册总页数 /// /// 获取发票册总页数 /// /// 返回总页数 private int GetBookListPageCount() { InvoiceBookDA invoiceBookDA = new InvoiceBookDA(); string strSql = "SELECT COUNT(*) FROM ch_fee_invoicebooks WHERE 1 > 0 AND ISDELETE <> 1 "; string strCondition = ""; if (strSearch != null) { if (!strSearch.Trim().Equals("")) { string tempSearch = strSearch; tempSearch = tempSearch.Replace("{", ""); tempSearch = tempSearch.Replace("}", ""); tempSearch = tempSearch.Replace("[", ""); tempSearch = tempSearch.Replace("]", ""); string[] searchArg = tempSearch.Split(new char[] { ',' }); for (int i = 0; i < searchArg.Length; i++) { string[] strArg = searchArg[i].Split(new char[] { ':' }); if (!strArg[1].Replace("\"", "").Trim().Equals("")) { switch (strArg[0].Replace("\"", "")) { case "btime"://Customer strCondition += String.Format(" AND convert(char(10),APPLYTIME,120) >= '{0}' ", strArg[1].Replace("\"", "")); break; case "etime"://BillNO strCondition += String.Format(" AND convert(char(10),APPLYTIME,120) <= '{0}' ", strArg[1].Replace("\"", "")); break; case "cus"://ETD BeginDate strCondition += String.Format(" AND CUSTOMERNAME LIKE '%{0}%' ", strArg[1].Replace("\"", "")); break; case "no"://ETD EndDate strCondition += String.Format(" AND BILLNO LIKE '%{0}%'", strArg[1].Replace("\"", "")); break; default: break; } } } strSql += strCondition; } } int iTotal = int.Parse(invoiceBookDA.GetExcuteSql(strSql).Tables[0].Rows[0][0].ToString()); return iTotal; } #endregion #region 获取发票总页数 /// /// 获取发票总页数 /// /// 返回总页数 private int GetBookItemListPageCount() { InvoiceBookDA invoiceBookDA = new InvoiceBookDA(); string strSql = "SELECT COUNT(*) FROM ch_fee_invoiceitems WHERE BOOKID = '" + strBookID + "'"; string strCondition = ""; if (strSearch != null) { if (!strSearch.Trim().Equals("")) { string tempSearch = strSearch; tempSearch = tempSearch.Replace("{", ""); tempSearch = tempSearch.Replace("}", ""); tempSearch = tempSearch.Replace("[", ""); tempSearch = tempSearch.Replace("]", ""); string[] searchArg = tempSearch.Split(new char[] { ',' }); for (int i = 0; i < searchArg.Length; i++) { string[] strArg = searchArg[i].Split(new char[] { ':' }); if (!strArg[1].Replace("\"", "").Trim().Equals("")) { switch (strArg[0].Replace("\"", "")) { case "btime"://Customer strCondition += String.Format(" AND convert(char(10),APPLYTIME,120) >= '{0}' ", strArg[1].Replace("\"", "")); break; case "etime"://BillNO strCondition += String.Format(" AND convert(char(10),APPLYTIME,120) <= '{0}' ", strArg[1].Replace("\"", "")); break; case "cus"://ETD BeginDate strCondition += String.Format(" AND CUSTOMERNAME LIKE '%{0}%' ", strArg[1].Replace("\"", "")); break; case "no"://ETD EndDate strCondition += String.Format(" AND BILLNO LIKE '%{0}%'", strArg[1].Replace("\"", "")); break; default: break; } } } strSql += strCondition; } } int iTotal = int.Parse(invoiceBookDA.GetExcuteSql(strSql).Tables[0].Rows[0][0].ToString()); return iTotal; } #endregion #region 获取发票册列表信息 /// /// 获取发票册列表信息 /// /// 返回JSON数据 private string GetInvoiceBookList() { InvoiceBookDA invoiceBookDA = new InvoiceBookDA(); DataTable sourceTable; string strCondition = ""; string strTopInclude = ""; string strTopNotInclude = ""; if (strSearch != null) { if (!strSearch.Trim().Equals("")) { string tempSearch = strSearch; tempSearch = tempSearch.Replace("{", ""); tempSearch = tempSearch.Replace("}", ""); tempSearch = tempSearch.Replace("[", ""); tempSearch = tempSearch.Replace("]", ""); string[] searchArg = tempSearch.Split(new char[] { ',' }); for (int i = 0; i < searchArg.Length; i++) { string[] strArg = searchArg[i].Split(new char[] { ':' }); if (!strArg[1].Replace("\"", "").Trim().Equals("")) { switch (strArg[0].Replace("\"", "")) { case "btime"://Customer strCondition += String.Format(" AND convert(char(10),A.APPLYTIME,120) >= '{0}' ", strArg[1].Replace("\"", "")); break; case "etime"://BillNO strCondition += String.Format(" AND convert(char(10),A.APPLYTIME,120) <= '{0}' ", strArg[1].Replace("\"", "")); break; case "cus"://ETD BeginDate strCondition += String.Format(" AND A.CUSTOMERNAME LIKE '%{0}%' ", strArg[1].Replace("\"", "")); break; case "no"://ETD EndDate strCondition += String.Format(" AND A.BILLNO LIKE '%{0}%'", strArg[1].Replace("\"", "")); break; default: break; } } } } } string strSql = ""; if (iCurrentPage > 0 && iShowPage > 0) { if (iCurrentPage == 1) { strSql = String.Format(" SELECT {0} A.GID,A.NAME,A.DESCRIPTION,A.INVOICECODE,A.INVOICENUMSTART,A.INVOICENUMEND,A.INVOICETOTAL,CASE WHEN A.ISLOCK = 1 THEN 1 ELSE 0 END as ISLOCK, CASE WHEN A.ISDELETE = 1 THEN 1 ELSE 0 END as ISDELETE,B.SHOWNAME,A.CREATETIME " + " FROM ch_fee_invoicebooks as A INNER JOIN [user] as B ON A.CREATEUSER = B.GID WHERE 1>0 AND A.ISDELETE <> 1 " + strCondition + " ORDER BY A.CREATETIME DESC ", "top " + iShowPage.ToString()); } else { strTopNotInclude = "top " + (iShowPage * (iCurrentPage - 1)).ToString();//RowCount*PageNum strTopInclude = "top " + iShowPage.ToString(); strSql = String.Format(" SELECT {0} A.GID,A.NAME,A.DESCRIPTION,A.INVOICECODE,A.INVOICENUMSTART,A.INVOICENUMEND,A.INVOICETOTAL,CASE WHEN A.ISLOCK = 1 THEN 1 ELSE 0 END as ISLOCK, CASE WHEN A.ISDELETE = 1 THEN 1 ELSE 0 END as ISDELETE,B.SHOWNAME,A.CREATETIME " + " FROM ch_fee_invoicebooks as A INNER JOIN [user] as B ON A.CREATEUSER = B.GID WHERE A.ISDELETE <> 1 AND A.GID NOT IN " + " (SELECT {1} GID FROM ch_fee_invoicebooks WHERE 1>0 AND A.ISDELETE <> 1 " + strCondition + " ORDER BY CREATETIME DESC ) " + strCondition + " ORDER BY A.CREATETIME DESC ", strTopInclude, strTopNotInclude); } } else { strSql = " SELECT A.GID,A.NAME,A.DESCRIPTION,A.INVOICECODE,A.INVOICENUMSTART,A.INVOICENUMEND,A.INVOICETOTAL,CASE WHEN A.ISLOCK = 1 THEN 1 ELSE 0 END as ISLOCK, CASE WHEN A.ISDELETE = 1 THEN 1 ELSE 0 END as ISDELETE,B.SHOWNAME,A.CREATETIME " + " FROM ch_fee_invoicebooks as A INNER JOIN [user] as B ON A.CREATEUSER = B.GID WHERE 1>0 AND A.ISDELETE <> 1 " + strCondition + " ORDER BY A.CREATETIME DESC "; } sourceTable = invoiceBookDA.GetExcuteSql(strSql).Tables[0]; StringBuilder sourceBuilder = new StringBuilder(); sourceBuilder.Append("{"); sourceBuilder.Append("rows:["); for (int i = 0; i < sourceTable.Rows.Count; i++) { sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\","); sourceBuilder.Append("data:["); sourceBuilder.Append("\"0\","); for (int j = 1; j < sourceTable.Columns.Count; j++) { if (j == sourceTable.Columns.Count - 1) { sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\""); } else { sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\","); } } if (i == sourceTable.Rows.Count - 1) { sourceBuilder.Append("]}"); } else { sourceBuilder.Append("]},"); } } sourceBuilder.Append("]"); sourceBuilder.Append("}"); return sourceBuilder.ToString(); } #endregion #region 获取发票列表信息 /// /// 获取发票列表信息 /// /// 返回JSON数据 private string GetInvoiceBookItemList() { InvoiceBookDA invoiceBookDA = new InvoiceBookDA(); DataTable sourceTable; string strCondition = ""; string strTopInclude = ""; string strTopNotInclude = ""; if (strSearch != null) { if (!strSearch.Trim().Equals("")) { string tempSearch = strSearch; tempSearch = tempSearch.Replace("{", ""); tempSearch = tempSearch.Replace("}", ""); tempSearch = tempSearch.Replace("[", ""); tempSearch = tempSearch.Replace("]", ""); string[] searchArg = tempSearch.Split(new char[] { ',' }); for (int i = 0; i < searchArg.Length; i++) { string[] strArg = searchArg[i].Split(new char[] { ':' }); if (!strArg[1].Replace("\"", "").Trim().Equals("")) { switch (strArg[0].Replace("\"", "")) { case "btime"://Customer strCondition += String.Format(" AND convert(char(10),A.APPLYTIME,120) >= '{0}' ", strArg[1].Replace("\"", "")); break; case "etime"://BillNO strCondition += String.Format(" AND convert(char(10),A.APPLYTIME,120) <= '{0}' ", strArg[1].Replace("\"", "")); break; case "cus"://ETD BeginDate strCondition += String.Format(" AND A.CUSTOMERNAME LIKE '%{0}%' ", strArg[1].Replace("\"", "")); break; case "no"://ETD EndDate strCondition += String.Format(" AND A.BILLNO LIKE '%{0}%'", strArg[1].Replace("\"", "")); break; default: break; } } } } } string strSql = ""; if (iCurrentPage > 0 && iShowPage > 0) { if (iCurrentPage == 1) { strSql = String.Format(" SELECT {0} A.GID, A.INVOICENUM,CASE WHEN A.ISLOCK = 1 THEN 1 ELSE 0 END as ISLOCK, CASE WHEN A.ISDELETE = 1 THEN 1 ELSE 0 END as ISDELETE,CASE WHEN A.ISMAKEOUT = 1 THEN 1 ELSE 0 END as ISMAKEOUT,B.SHOWNAME,A.CREATETIME " + " FROM ch_fee_invoiceitems as A INNER JOIN [user] as B ON A.CREATEUSER = B.GID WHERE BOOKID = '" + strBookID +"' "+ strCondition + " ORDER BY A.INVOICENUM ASC ", "top " + iShowPage.ToString()); } else { strTopNotInclude = "top " + (iShowPage * (iCurrentPage - 1)).ToString();//RowCount*PageNum strTopInclude = "top " + iShowPage.ToString(); strSql = String.Format(" SELECT {0} A.GID, A.INVOICENUM,CASE WHEN A.ISLOCK = 1 THEN 1 ELSE 0 END as ISLOCK, CASE WHEN A.ISDELETE = 1 THEN 1 ELSE 0 END as ISDELETE,CASE WHEN A.ISMAKEOUT = 1 THEN 1 ELSE 0 END as ISMAKEOUT,B.SHOWNAME,A.CREATETIME " + " FROM ch_fee_invoiceitems as A INNER JOIN [user] as B ON A.CREATEUSER = B.GID WHERE A.GID NOT IN " + " (SELECT {1} GID FROM ch_fee_invoiceitems WHERE BOOKID = '" + strBookID + "' " + strCondition + " ORDER BY INVOICENUM ASC ) AND BOOKID = '" + strBookID + "' " + strCondition + " ORDER BY A.INVOICENUM ASC ", strTopInclude, strTopNotInclude); } } else { strSql = " SELECT A.GID, A.INVOICENUM,CASE WHEN A.ISLOCK = 1 THEN 1 ELSE 0 END as ISLOCK, CASE WHEN A.ISDELETE = 1 THEN 1 ELSE 0 END as ISDELETE,CASE WHEN A.ISMAKEOUT = 1 THEN 1 ELSE 0 END as ISMAKEOUT,B.SHOWNAME,A.CREATETIME " + " FROM ch_fee_invoiceitems as A INNER JOIN [user] as B ON A.CREATEUSER = B.GID WHERE BOOKID = '" + strBookID +"' " + strCondition + " ORDER BY A.INVOICENUM ASC "; } sourceTable = invoiceBookDA.GetExcuteSql(strSql).Tables[0]; StringBuilder sourceBuilder = new StringBuilder(); sourceBuilder.Append("{"); sourceBuilder.Append("rows:["); for (int i = 0; i < sourceTable.Rows.Count; i++) { sourceBuilder.Append("{id:\"" + sourceTable.Rows[i][0].ToString() + "\","); sourceBuilder.Append("data:["); sourceBuilder.Append("\"0\","); for (int j = 1; j < sourceTable.Columns.Count; j++) { if (j == sourceTable.Columns.Count - 1) { sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\""); } else { sourceBuilder.Append("\"" + sourceTable.Rows[i][j].ToString() + "\","); } } if (i == sourceTable.Rows.Count - 1) { sourceBuilder.Append("]}"); } else { sourceBuilder.Append("]},"); } } sourceBuilder.Append("]"); sourceBuilder.Append("}"); return sourceBuilder.ToString(); } #endregion } }