Ejemplo n.º 1
0
    private static string _GetGoDataTypeString(DataType dataType, JsonDetail JsonDetailType)
    {
        switch (dataType)
        {
        case DataType.Int:
            return("int32");

        case DataType.Long:
            return("int64");

        case DataType.Float:
            return("float32");

        case DataType.Bool:
            return("bool");

        case DataType.String:
            return("string");

        case DataType.Json:
        {
            string tyStr = _getGoJsonTypeString(JsonDetailType);
            if (tyStr != null)
            {
                return(tyStr);
            }
            break;
        }

        default:
            break;
        }

        return("string");
    }
Ejemplo n.º 2
0
        /// <summary>
        /// 构造Json
        /// </summary>
        /// <returns></returns>
        private JsonDetail CreateStockinfo(DataTable dt)
        {
            JsonDetail            JsInfo = new JsonDetail();
            List <JsonDetailRows> body   = new List <JsonDetailRows>();

            for (int i = 0; i < dt.Rows.Count; i++)
            {
                JsonDetailRows StockBodyRow = new JsonDetailRows();
                StockBodyRow.GOODSID        = dt.Rows[i]["GOODSID"].ToString();
                StockBodyRow.NAME           = dt.Rows[i]["NAME"].ToString();
                StockBodyRow.MODEL          = dt.Rows[i]["MODEL"].ToString();
                StockBodyRow.TRADEMARK      = dt.Rows[i]["TRADEMARK"].ToString();
                StockBodyRow.MID1           = dt.Rows[i]["MID1"].ToString();
                StockBodyRow.Goodsbatch     = dt.Rows[i]["Goodsbatch"].ToString();
                StockBodyRow.QUALITYFLG     = dt.Rows[i]["QUALITYFLG"].ToString();
                StockBodyRow.SHIPPEDNUM     = dt.Rows[i]["SHIPPEDNUM"].ToString();
                StockBodyRow.ARRIVENUM      = dt.Rows[i]["ARRIVENUM"].ToString();
                StockBodyRow.BACKNUM        = dt.Rows[i]["BACKNUM"].ToString();
                StockBodyRow.BACKREASON     = dt.Rows[i]["BACKREASON"].ToString();
                StockBodyRow.LOADINGDOCID   = dt.Rows[i]["LOADINGDOCID"].ToString();
                StockBodyRow.LOADINGDOCDTID = dt.Rows[i]["LOADINGDOCDTID"].ToString();
                StockBodyRow.INNERCODE1     = dt.Rows[i]["INNERCODE1"].ToString();
                StockBodyRow.INNERCODE2     = dt.Rows[i]["INNERCODE2"].ToString();
                StockBodyRow.SNAME          = dt.Rows[i]["SNAME"].ToString();
                body.Add(StockBodyRow);
            }
            JsInfo.body = body;

            return(JsInfo);
        }
Ejemplo n.º 3
0
        public SaveB(string Par)
        {
            // 解析
            JsonDetail tmp = JsonHelper.DeserializeJsonToObject <JsonDetail>(Par);

            SearchPar  = tmp;
            LoadDTlist = "";
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 构造Json
        /// </summary>
        /// <returns></returns>
        private JsonDetail CreateStockinfo(DataTable dt)
        {
            int Perpage;

            if (SearchPar.numPerPage == "")
            {
                Perpage = 5;
            }
            else
            {
                Perpage = int.Parse(SearchPar.numPerPage);
            }

            int pageno;

            if (SearchPar.pageNum == "")
            {
                pageno = 1;
            }
            else
            {
                pageno = int.Parse(SearchPar.pageNum) <= 0 ? 1 : int.Parse(SearchPar.pageNum);
            }

            JsonDetail            JsInfo = new JsonDetail();
            List <JsonDetailRows> body   = new List <JsonDetailRows>();

            int endno = pageno * Perpage < dt.Rows.Count?pageno * Perpage:dt.Rows.Count;

            for (int i = (pageno * Perpage - Perpage); i < endno; i++)
            {
                JsonDetailRows StockBodyRow = new JsonDetailRows();
                StockBodyRow.GOODSID        = dt.Rows[i]["GOODSID"].ToString();
                StockBodyRow.NAME           = dt.Rows[i]["NAME"].ToString();
                StockBodyRow.MODEL          = dt.Rows[i]["MODEL"].ToString();
                StockBodyRow.TRADEMARK      = dt.Rows[i]["TRADEMARK"].ToString();
                StockBodyRow.MID1           = dt.Rows[i]["MID1"].ToString();
                StockBodyRow.Goodsbatch     = dt.Rows[i]["Goodsbatch"].ToString();
                StockBodyRow.QUALITYFLG     = dt.Rows[i]["QUALITYFLG"].ToString();
                StockBodyRow.SHIPPEDNUM     = dt.Rows[i]["SHIPPEDNUM"].ToString();
                StockBodyRow.ARRIVENUM      = dt.Rows[i]["ARRIVENUM"].ToString();
                StockBodyRow.BACKNUM        = dt.Rows[i]["BACKNUM"].ToString();
                StockBodyRow.BACKREASON     = dt.Rows[i]["BACKREASON"].ToString();
                StockBodyRow.LOADINGDOCID   = dt.Rows[i]["LOADINGDOCID"].ToString();
                StockBodyRow.LOADINGDOCDTID = dt.Rows[i]["LOADINGDOCDTID"].ToString();
                StockBodyRow.INNERCODE1     = dt.Rows[i]["INNERCODE1"].ToString();
                StockBodyRow.INNERCODE2     = dt.Rows[i]["INNERCODE2"].ToString();
                StockBodyRow.SNAME          = dt.Rows[i]["SNAME"].ToString();
                body.Add(StockBodyRow);
            }
            JsInfo.body = body;

            return(JsInfo);
        }
Ejemplo n.º 5
0
        /// <summary>
        /// 查询头列表
        /// </summary>
        /// <returns></returns>
        public string GetList()
        {
            try
            {
                //根据条件查询
                DataTable dt = GetListD();

                //构造返回的Json
                JsonDetail ResultJson = CreateStockinfo(dt);
                string     strRet     = JsonHelper.SerializeObject(ResultJson);
                return(strRet);
            }
            catch (Exception)
            {
                return("{\"Err\":\"查询失败\"}");
            }
        }
Ejemplo n.º 6
0
    private static bool _IsLocalCache(DataType dataType, JsonDetail JsonDetailType)
    {
        switch (dataType)
        {
        case DataType.Int:
        case DataType.Long:
        case DataType.Float:
        case DataType.Bool:
        case DataType.String:
            return(true);

        case DataType.Json:
            return(JsonDetailType != null);

        default:
            return(false);
        }
    }
Ejemplo n.º 7
0
    private static string _getGoJsonTypeString(JsonDetail jsonDetail)
    {
        if (null == jsonDetail)
        {
            return(null);
        }

        switch (jsonDetail.ContentType)
        {
        case DataType.Array:
            return(string.Concat("[]", _GetGoDataTypeString(jsonDetail.ValueType, null)));

        case DataType.Dict:
            return(string.Concat("map[", _GetGoDataTypeString(jsonDetail.KeyType, null), "]", _GetGoDataTypeString(jsonDetail.ValueType, null)));

        default:
            break;
        }

        return(null);
    }
Ejemplo n.º 8
0
    private static void _AnalyzeJsonData(StringBuilder content, JsonData jsonData, JsonDetail jsonDetail, int level)
    {
        if (jsonData == null)
        {
            // 处理键值对中的值为null的情况
            content.Append("nil");
        }
        else if (jsonData.IsObject == true)
        {
            content.AppendLine("{");
            ++level;

            List <string> childKeyNames = new List <string>(jsonData.Keys);
            int           childCount    = jsonData.Count;
            for (int i = 0; i < childCount; ++i)
            {
                content.Append(_GetLuaTableIndentation(level));
                // 如果键名为数字,需要加方括号和引号
                string keyName = childKeyNames[i];
                double temp;
                if (double.TryParse(keyName, out temp) == true)
                {
                    if (jsonDetail != null && jsonDetail.KeyType == DataType.Int)
                    {
                        content.AppendFormat("[{0}]", keyName);
                    }
                    else
                    {
                        content.AppendFormat("[\"{0}\"]", keyName);
                    }
                }
                else
                {
                    content.Append(childKeyNames[i]);
                }

                content.Append(" = ");
                _AnalyzeJsonData(content, jsonData[i], jsonDetail, level);
                content.AppendLine(",");
            }

            --level;
            content.Append(_GetLuaTableIndentation(level));
            content.Append("}");
        }
        else if (jsonData.IsArray == true)
        {
            content.AppendLine("{");
            ++level;

            int childCount = jsonData.Count;
            for (int i = 0; i < childCount; ++i)
            {
                content.Append(_GetLuaTableIndentation(level));
                content.AppendFormat("[{0}] = ", i + 1);
                _AnalyzeJsonData(content, jsonData[i], jsonDetail, level);
                content.AppendLine(",");
            }

            --level;
            content.Append(_GetLuaTableIndentation(level));
            content.Append("}");
        }
        else if (jsonData.IsString == true)
        {
            // 将单元格中填写的英文引号进行转义,使得单元格中填写123"456时,最终生成的lua文件中为xx = "123\"456"
            // 将单元格中手工按下的回车变成"\n"输出到lua文件中,单元格中输入的"\n"等原样导出到lua文件中使其能被lua转义处理
            content.AppendFormat("\"{0}\"", jsonData.ToString().Replace("\n", "\\n").Replace("\"", "\\\""));
        }
        else if (jsonData.IsBoolean == true)
        {
            content.AppendFormat(jsonData.ToString().ToLower());
        }
        else if (jsonData.IsInt == true || jsonData.IsLong == true || jsonData.IsDouble == true)
        {
            content.AppendFormat(jsonData.ToString());
        }
        else
        {
            Utils.LogErrorAndExit("用_AnalyzeJsonData解析了未知的JsonData类型");
        }
    }