zoukankan      html  css  js  c++  java
  • How to fix utcDatetime data type in excel import or export interface

    // Changed on 02 April 2012 at 11:32:59 by Jimmy Xie
    /*

    Creates a record containing the data from _data, and either for all field in _data or the fields
    which are specified in SysExpImpField table.
    AOT/class/SysDataIntegration/prepareFields*/
    protected Common prepareFields(
        SysExpImpTable  _expImpTable,
        DictTable       _dictTable,
        container       _line,
        Common          _notUsed = null,
        ListIterator    _listIteratorSysExpImpField = null
        )
    {
        SysExpImpField      expImpField;        // Table containing information about field setup
        Common              common;
        str                 s;
        SysDictField        sysDictField;
        fieldId             fieldIdBase;        // Base fieldid without array idx
        int                 enumInt;
        XppCompiler         compiler;
        ExecutePermission   executePermission = new ExecutePermission();
        ;
        common = _dictTable.makeRecord();
        executePermission.assert(); // ExpImpField has been protected by AOS Table security

        if (!_listIteratorSysExpImpField)
        {
            _listIteratorSysExpImpField = new ListIterator(this.witListSysExpImpFields(_expImpTable));
        }

        _listIteratorSysExpImpField.begin();

        while (_listIteratorSysExpImpField.more())
        {
            expImpField = _listIteratorSysExpImpField.value();
            s = this.getFieldStr(_expImpTable,expImpField);

            if (s)
            {
                if (expImpField.Expression)
                {
                    // This should do it since the data is already converted.

                    
    //BP deviation documented
                    compiler = new XppCompiler();

                    if (!compiler.compile(expImpField.expressionAll()))
                    {
                        throw error("@SYS96991");
                    }
                    else
                    {
                        //BP deviation documented
                        s = runBuf(expImpField.expressionAll(), s);
                    }
                }

                fieldIdBase = fieldExt2Id(expImpField.ConvFieldId);
                sysDictField = new SysDictField(
                    expImpField.ConvTableId,
                    fieldIdBase,
                    fieldExt2Idx(expImpField.ConvFieldId));

                if (! sysDictField)
                    continue;

                switch (sysDictField.baseType())
                {
                    // Changed on 02 April 2012 at 11:32:59 by Jimmy Xie Begin
                    case Types::UtcDateTime:
                        common.(expImpField.ConvFieldId) = str2datetime(s,-1);
                        break;
                    // Changed on 02 April 2012 at 11:32:59 by Jimmy Xie End
                    case Types::Date:
                        common.(expImpField.ConvFieldId) = str2date(s,-1);
                        break;
                    case Types::Enum:
                        enumInt = str2enum(common.(sysDictField.id()), s);
                        if (enumInt==255// str not regonized
                        {
                            common.(sysDictField.id()) = str2int(s);
                        }
                        else
                        {
                            common.(sysDictField.id()) = enumInt;
                        }
                        break;
                    case Types::String:
                    case Types::RString:
                    case Types::VarString:
                            common.(expImpField.ConvFieldId) += s;
                            break;
                    case Types::UserType:
                        if (isTypeTime(sysDictField.extendedTypeId()))
                        {
                            common.(expImpField.ConvFieldId) = str2time(s);
                        }
                        else
                            common.(expImpField.ConvFieldId) = s;
                        break;

                    case Types::Guid:
                            common.(expImpField.ConvFieldId) = str2guid(s);
                            break;

                    default:
                        common.(expImpField.ConvFieldId) = s;
                }
            }

            _listIteratorSysExpImpField.next();
        }

        CodeAccessPermission::revertAssert();

        return common;
    }
  • 相关阅读:
    用List绑定GridView的简单辅助类
    宋忠玲(帮读者名字作诗)
    [转帖]每天看一遍,释怀所有难过
    30岁,我们怎么赢?
    柴门远望
    创业,不要被那些成功人士所忽悠
    一只海燕飞过来
    成功者都在用的“成功咒语”
    诗歌复兴
    游熊猫基地有感
  • 原文地址:https://www.cnblogs.com/Fandyx/p/2429804.html
Copyright © 2011-2022 走看看