Пример #1
0
        private fk_code FkCodeRecord(fk_doc fkDoc, dynamic objTb, ImportParam importParam)
        {
            if (fkDoc == null)
            {
                return(null);
            }
            //if (string.IsNullOrWhiteSpace(objTb.NumOrder)) // филтр
            //    return null;

            fk_code fkCode = new fk_code()
            {
                DocId    = fkDoc.Sysid,
                Marker   = objTb.Marker,
                NumPos   = objTb.NumPos,
                NumOrder = objTb.NumOrder,
                Code     = objTb.Code,
                FldType  = objTb.FldType,
                FldLen   = objTb.FldLen,
                IsFilled = ((string)objTb.IsFilled) == "Да",
                Descript = objTb.Descript,
                Comments = objTb.Comments
            };

            //
            fkCode.FkDoc = fkDoc;

            return(fkCode);
        }
Пример #2
0
        public static dynamic ToFkTypeVal(this string strval, fk_code fkcode)
        {
            dynamic val = null;

            switch (fkcode.FldType)
            {
            case "STRING":
            case "GUID":
                val = strval.Trim();
                break;

            case "DATE":
                if (!string.IsNullOrWhiteSpace(strval))
                {
                    DateTime dt;
                    if (DateTime.TryParse(strval, out dt))
                    {
                        val = dt;
                    }
                }
                break;

            case "OADATE":     //  (OLE Automation Date)
                if (!string.IsNullOrWhiteSpace(strval))
                {
                    double oaDate;
                    if (double.TryParse(strval, out oaDate))
                    {
                        val = DateTime.FromOADate(oaDate);
                    }
                }
                break;

            case "NUMBER":
                int valint;
                if (int.TryParse(strval, out valint))
                {
                    val = (int)valint;
                }
                break;

            case "NUMBER2":
                decimal valdec;
                if (decimal.TryParse(strval.Trim(), NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint, Constant.CU, out valdec))
                {
                    val = valdec;
                }
                else if (decimal.TryParse(strval.Trim().Replace(',', '.'), NumberStyles.AllowLeadingSign | NumberStyles.AllowDecimalPoint, Constant.CU, out valdec))
                {
                    val = valdec;
                }
                //else   - пусть лучше Null - по ошибке можнл будет отловить
                //    val = 0.0M;
                break;

            default:
                val = strval;
                break;
            }
            return(val);
        }