using System; using System.Collections; using System.Configuration; using System.Data; using System.Linq; 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; namespace DSWeb.Shipping { public partial class SeaExportInfoHSGridSource : System.Web.UI.Page { private string strReadXmlType = "";//读取xml串方式 "init"-初始化获取所有账户信息;"add"-添加新的账户信息;"delete"-删除账户信息;"exist"查看是否有与委托相关账户 private int iShowCount;//每页显示数据量 private string strBSNO;//委托编号 //delete private string strOpSeaeHSGid;//账户信息GID private string strHandle;//账户操作说明 private const int iResult = -99;//参数错误 T_ALL_DA T_ALL_DA = new T_ALL_DA(); private string strRange = String.Empty;//权限可视范围 RangeDA RangeDA = new RangeDA(); public string strUserID;//用户GID protected void Page_Load(object sender, EventArgs e) { if (Session["USERID"] != null) { strUserID = Session["USERID"].ToString().Trim(); } else { Server.Transfer("~/Error/FriendError.aspx"); return; //strUserID = ""; } // #region 判断参数是否正确 if (Request.QueryString["read"] != null) { strReadXmlType = Request.QueryString["read"].ToString().Trim(); } if (Request.QueryString["showcount"] != null) { iShowCount = int.Parse(Request.QueryString["showcount"].ToString()); } if (Request.QueryString["BSNO"] != null) { strBSNO = Request.QueryString["BSNO"].ToString(); } #endregion //权限可视范围 strRange = RangeDA.GetVISIBLERANGE(strUserID.Trim(), "modOrderManagement"); if (strRange.Trim().Equals("0"))//全部 { strRange = ""; } else if (strRange.Trim().Equals("1"))//分公司 { strRange = " and BSNO in(" + RangeDA.GetOrderManagementCompany(strUserID.Trim()) + ")"; } else if (strRange.Trim().Equals("2"))//部门 { strRange = " and BSNO in(" + RangeDA.GetOrderManagementDEPT(strUserID.Trim()) + ")"; } else if (strRange.Trim().Equals("3"))//个人 { strRange = " and BSNO in(" + RangeDA.GetOrderManagementPerson(strUserID.Trim()) + ")"; } else if (strRange.Trim().Equals("4"))//无 { strRange = " and 1<0"; } else//空 { strRange = " and 1<0"; } // // if (!strReadXmlType.Equals("")) { if (strReadXmlType.Equals("delete") || strReadXmlType.Equals("recover")) { strOpSeaeHSGid = (String)Request.QueryString["gid"] as String; strHandle = (String)Request.QueryString["read"] as String; if (strOpSeaeHSGid == null || strHandle == null) { Response.Write(iResult); } else { string strQuery = DoExcute(strOpSeaeHSGid, strHandle); Response.Write(strQuery); } } else { string strOutputXml = ""; strOutputXml = GetCells(iShowCount, strReadXmlType); //输出XML字符串 Response.ContentType = "text/xml"; strOutputXml.Replace("&", "&"); Response.Write(strOutputXml); } } else { //访问参数不正确 Response.ContentType = "text/xml"; Response.Write("-2"); } } /// /// 根据用户提交的 /// /// 账户GID /// 操作类型 delete删除单条账户 /// 值1-删除成功;值-1 -删除操作异常 值-2 -回滚失败 值-3 -未获取相关账户信息 private string DoExcute(string tempGid, string tempHandle) { string strVal = ""; OpSeaeHSDA OpSeaeHSDA = new OpSeaeHSDA(); //操作类型为删除 if (tempHandle == "delete") { int iResult = 0; //先判断当前要删除的账户是否存在 if (!tempGid.Trim().Equals("")) { OpSeaeHSEntity OpSeaeHSEntity = new OpSeaeHSEntity(); OpSeaeHSEntity = OpSeaeHSDA.GetOpSeaeHSByID(tempGid); if (OpSeaeHSEntity.GID != null) { iResult = OpSeaeHSDA.DeleteOpSeaeHSByGid(OpSeaeHSEntity.GID); } else { iResult = -3; //未获取相关账户信息 } } strVal = iResult.ToString(); } if (tempHandle == "recover") { if (!tempGid.Trim().Equals("")) { OpSeaeHSEntity OpSeaeHSEntity = new OpSeaeHSEntity(); OpSeaeHSEntity = OpSeaeHSDA.GetOpSeaeHSByID(tempGid); if (OpSeaeHSEntity != null) { StringBuilder OpSeaeHSBuilder = new StringBuilder(); OpSeaeHSBuilder.Append(OpSeaeHSEntity.GID + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.CNTRNO + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.CARGOCODE + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.CARGOID + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.PKGS1 + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.KINDPKGS1 + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.NOPKGS1 + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.CARGOGROSSWT1 + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.CARGOMEASUREMENT1 + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.PKGS2 + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.KINDPKGS2 + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.NOPKGS2 + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.CARGOGROSSWT2 + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.CARGOMEASUREMENT2 + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.KGS + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.CBM + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.CONSIGNMENTNO + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.COUNTRYCODE + ","); OpSeaeHSBuilder.Append(OpSeaeHSEntity.REMARK); strVal = OpSeaeHSBuilder.ToString(); } else { strVal = "-3"; } } else { strVal = "-3"; } } return strVal; } /// /// 获取账户信息 /// /// private string GetCells(int iShowCount, string readXmlType) { OpSeaeHSEntity OpSeaeHSEntity = new OpSeaeHSEntity(); OpSeaeHSDA OpSeaeHSDA = new OpSeaeHSDA(); OpSeaeHSEntity existOpSeaeHSEntity = new OpSeaeHSEntity(); existOpSeaeHSEntity = OpSeaeHSDA.GetOpSeaeHSByBSNOAndType(strBSNO); if (existOpSeaeHSEntity != null && !strReadXmlType.Equals("exist")) { //获取所有账户信息,用做Grid显示 DataTable OpSeaeHSTable = new DataTable(); //初始化 string strInitSql = " SELECT GID,CNTRNO,CARGOCODE,CARGOID,(case PKGS1 when 0 then null else PKGS1 end) as PKGS1,KINDPKGS1,NOPKGS1,(case CARGOGROSSWT1 when 0.000 then null else CARGOGROSSWT1 end) as CARGOGROSSWT1,(case CARGOMEASUREMENT1 when 0.000 then null else CARGOMEASUREMENT1 end) as CARGOMEASUREMENT1,(case PKGS2 when 0 then null else PKGS2 end) as PKGS2,KINDPKGS2,NOPKGS2,(case CARGOGROSSWT2 when 0.000 then null else CARGOGROSSWT2 end) as CARGOGROSSWT2,(case CARGOMEASUREMENT2 when 0.000 then null else CARGOMEASUREMENT2 end) as CARGOMEASUREMENT2,(case KGS when 0.000 then null else KGS end) as KGS,(case CBM when 0.000 then null else CBM end) as CBM,CONSIGNMENTNO,COUNTRYCODE,REMARK FROM op_seae_hs WHERE BSNO = '" + strBSNO + "' " + strRange + " ORDER BY BSNO ASC"; OpSeaeHSTable = getStatusNameTable(OpSeaeHSDA.GetExcuteSql(strInitSql).Tables[0]); //编排字符串 xml串 StringBuilder dataBuilder = new StringBuilder(); dataBuilder.Append(""); dataBuilder.Append(""); int iCount = OpSeaeHSTable.Rows.Count; for (int i = 0; i < iCount; i++) { string xl = ""; int jCount = OpSeaeHSTable.Columns.Count; dataBuilder.Append(""); for (int j = 1; j < jCount; j++) { switch (j) { case 1: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 2: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 3: xl = GetCARGOID(OpSeaeHSTable.Rows[i][j].ToString().Trim()); if (xl != "") { dataBuilder.Append(xl); } else { dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); } break; case 4: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 5: xl = GetKINDPKGS(OpSeaeHSTable.Rows[i][j].ToString().Trim()); if (xl != "") { dataBuilder.Append(xl); } else { dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); } break; case 6: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 7: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 8: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 9: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 10: xl = GetKINDPKGS(OpSeaeHSTable.Rows[i][j].ToString().Trim()); if (xl != "") { dataBuilder.Append(xl); } else { dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); } break; case 11: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 12: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 13: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 14: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 15: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 16: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; case 17: dataBuilder.Append("" + OpSeaeHSTable.Rows[i][j].ToString() + ""); break; } } dataBuilder.Append(""); } dataBuilder.Append(""); return dataBuilder.ToString(); } else if (existOpSeaeHSEntity != null && strReadXmlType.Equals("exist")) { return "1";//存在账户 } else if (existOpSeaeHSEntity == null && strReadXmlType.Equals("add")) { StringBuilder dataBuilder = new StringBuilder(); dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); string strcb = GetCARGOID("");//2 if (strcb.Trim() == "") { dataBuilder.Append(""); } else { dataBuilder.Append(strcb); } dataBuilder.Append(""); strcb = GetKINDPKGS("");//4 if (strcb.Trim() == "") { dataBuilder.Append(""); } else { dataBuilder.Append(strcb); } dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); if (strcb.Trim() == "")//9 { dataBuilder.Append(""); } else { dataBuilder.Append(strcb); } dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); dataBuilder.Append(""); return dataBuilder.ToString(); } else { return "-3";//没有相关的账户 } } /// /// 获取货物标识下拉列表 /// /// 当前货物标识值 /// public string GetCARGOID(string strCARGOID) { StringBuilder clientBuilder = new StringBuilder(); clientBuilder.Append("" + strCARGOID); clientBuilder.Append(""); clientBuilder.Append(""); clientBuilder.Append(""); clientBuilder.Append(""); clientBuilder.Append(""); return clientBuilder.ToString(); } /// /// 获取CRM系统客户信息下拉列表 /// /// 当前列表客户信息值 /// public string GetKINDPKGS(string strKINDPKGS) { DataSet ds = T_ALL_DA.GetTCodePackage(); if (ds != null) { StringBuilder clientBuilder = new StringBuilder(); clientBuilder.Append("" + strKINDPKGS); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { if (!ds.Tables[0].Rows[i]["PKGS"].ToString().Trim().Equals("")) { clientBuilder.Append(""); } } clientBuilder.Append(""); return clientBuilder.ToString(); } else { return ""; } } /// /// 将数据集表中账户状态OpSeaeHSStatus和应收应付类型OpSeaeHSType的数字状态位转换成文字 /// /// 原数据源DataTable /// 返回新数据源DataTable private DataTable getStatusNameTable(DataTable tempTable) { DataTable sourceTable = tempTable; DataTable cloneTable = new DataTable(); int iSwitch = 0; for (int i = 0; i < sourceTable.Rows.Count; i++) { if (iSwitch == 0) { for (int j = 0; j < sourceTable.Columns.Count; j++) { DataColumn newColumn = new DataColumn(); newColumn.ColumnName = sourceTable.Columns[j].ColumnName; newColumn.DataType = sourceTable.Columns[j].DataType; cloneTable.Columns.Add(newColumn); } iSwitch = 1; } DataRow cloneRow = cloneTable.NewRow(); for (int k = 0; k < sourceTable.Columns.Count; k++) { cloneRow[sourceTable.Columns[k].ColumnName] = sourceTable.Rows[i][k]; } cloneTable.Rows.Add(cloneRow); } return cloneTable; } } }