コード例 #1
0
        private void WriteModelDefine(string _oldNameSpace, MD_Namespace _ns, DataSet _ds)
        {
            using (MetaDataServiceClient _mdc = new MetaDataServiceClient())
            {
                DataRow[] _qvDefineRows = _ds.Tables["MD_VIEW"].Select(string.Format("NAMESPACE='{0}'", _oldNameSpace));
                foreach (DataRow _dr in _qvDefineRows)
                {
                    string _oldid = _dr["VIEWID"].ToString();
                    string _newid = GetNewID(_oldid, "MD_VIEW", "VIEWID", _mdc);

                    this.IDTable.Add(_oldid, _newid);

                    MD_QueryModel _qv = new MD_QueryModel(
                        _newid,
                        _ns.NameSpace,
                        _dr.IsNull("VIEWNAME") ? "" : _dr["VIEWNAME"].ToString(),
                        _dr.IsNull("DESCRIPTION") ? "" : _dr["DESCRIPTION"].ToString(),
                        _dr.IsNull("DISPLAYNAME") ? "" : _dr["DISPLAYNAME"].ToString(),
                        _ns.DWDM,
                        _dr.IsNull("IS_GDCX") ? false : ((decimal)_dr["IS_GDCX"] > 0),
                        _dr.IsNull("IS_GLCX") ? false : ((decimal)_dr["IS_GLCX"] > 0),
                        _dr.IsNull("IS_SJSH") ? false : ((decimal)_dr["IS_SJSH"] > 0),
                        _dr.IsNull("DISPLAYORDER") ? 0 : Convert.ToInt32(_dr["DISPLAYORDER"]),
                        "ORA_JSIS"
                        );

                    _qv.ChildTables = new List <MD_ViewTable>();

                    DataRow[] _childTableRows = _ds.Tables["MD_VIEWTABLE"].Select(string.Format("VIEWID='{0}'", _oldid));
                    foreach (DataRow _ctRow in _childTableRows)
                    {
                        string _oldVTid = _ctRow["VTID"].ToString();
                        string _newVTid = GetNewID(_oldVTid, "MD_VIEWTABLE", "VTID", _mdc);

                        string _newTid = IDTable[_ctRow["TID"].ToString()];
                        this.IDTable.Add(_oldVTid, _newVTid);

                        int _displayType = 0;
                        if (_ds.Tables["MD_VIEWTABLE"].Columns.Contains("DISPLAYTYPE"))
                        {
                            _displayType = _ctRow.IsNull("DISPLAYTYPE") ? 0 : Convert.ToInt32(_ctRow["DISPLAYTYPE"]);
                        }
                        string _intApp = "";
                        if (_ds.Tables["MD_VIEWTABLE"].Columns.Contains("INTEGRATEDAPP"))
                        {
                            _intApp = _ctRow.IsNull("INTEGRATEDAPP") ? "" : _ctRow["INTEGRATEDAPP"].ToString();
                        }
                        MD_ViewTable _vt = new MD_ViewTable(
                            _newVTid,
                            _newid,
                            _newTid,
                            _ctRow["TABLETYPE"].ToString(),
                            _ctRow.IsNull("TABLERELATION") ? "" : _ctRow["TABLERELATION"].ToString(),
                            _ctRow.IsNull("CANCONDITION") ? "" : _ctRow["CANCONDITION"].ToString(),
                            _ctRow.IsNull("DISPLAYNAME") ? "" : _ctRow["DISPLAYNAME"].ToString(),
                            _ctRow.IsNull("DISPLAYORDER") ? 0 : Convert.ToInt32(_ctRow["DISPLAYORDER"]),
                            _ns.DWDM,
                            _ctRow.IsNull("FATHERID") ? "" : _ctRow["FATHERID"].ToString(),
                            0,
                            _displayType,
                            _intApp
                            );
                        _qv.ChildTables.Add(_vt);

                        _vt.Columns = new List <MD_ViewTableColumn>();

                        DataRow[] _vtRows = _ds.Tables["MD_VIEWTABLECOLUMN"].Select(string.Format("VTID='{0}'", _oldVTid));
                        foreach (DataRow _vtRow in _vtRows)
                        {
                            string             _oldVTCid = _vtRow["VTCID"].ToString();
                            string             _newVTCid = GetNewID(_oldVTCid, "MD_VIEWTABLECOLUMN", "VTCID", _mdc);
                            string             _newTCid  = IDTable[_vtRow["TCID"].ToString()];
                            MD_ViewTableColumn _vtc      = new MD_ViewTableColumn(
                                _newVTCid,
                                _newVTid,
                                _newTCid,
                                _vtRow.IsNull("CANCONDITIONSHOW") ? false : ((decimal)_vtRow["CANCONDITIONSHOW"] > 0),
                                _vtRow.IsNull("CANRESULTSHOW") ? false : ((decimal)_vtRow["CANRESULTSHOW"] > 0),
                                _vtRow.IsNull("DEFAULTSHOW") ? false : ((decimal)_vtRow["DEFAULTSHOW"] > 0),
                                _vtRow.IsNull("FIXQUERYITEM") ? false : ((decimal)_vtRow["FIXQUERYITEM"] > 0),
                                _vtRow.IsNull("CANMODIFY") ? false : ((decimal)_vtRow["CANMODIFY"] > 0),
                                _ns.DWDM,
                                0,
                                0
                                );

                            _vt.Columns.Add(_vtc);
                        }
                    }
                    _mdc.ImportQueryModelDefine(_qv);
                }
            }
        }
コード例 #2
0
        private void WriteModelDefine_New(MD_Namespace _ns)
        {
            using (MetaDataServiceClient _mdc = new MetaDataServiceClient())
            {
                foreach (MD_QueryModel _qv in _ns.QueryModelList)
                {
                    this.label2.Text = string.Format("写入查询模型[{0}]的定义 ....", _qv.QueryModelName);
                    Application.DoEvents();
                    _qv.NamespaceName = _ns.NameSpace;
                    string _newid = GetNewID(_qv.QueryModelID, "MD_VIEW", "VIEWID", _mdc);
                    try
                    {
                        IDTable.Add(_qv.QueryModelID, _newid);
                    }
                    catch (Exception e)
                    {
                        throw e;
                    }
                    _qv.QueryModelID = _newid;
                    _qv.DWDM         = _ns.DWDM;
                    //处理主表

                    MD_ViewTable _mainTable = _qv.MainTable;
                    string       old_fid    = "";
                    if (_mainTable != null)
                    {
                        old_fid = _mainTable.ViewTableID;
                        try
                        {
                            ChangeTableID(_mainTable, _qv, _mdc);
                        }
                        catch (Exception e)
                        {
                            throw e;
                        }
                    }


                    List <MD_ViewTable> _newTables = new List <MD_ViewTable>();
                    //处理子表
                    foreach (MD_ViewTable _vTable in _qv.ChildTables)
                    {
                        try
                        {
                            _vTable.FatherTableID = old_fid;
                            ChangeTableID(_vTable, _qv, _mdc);
                            _newTables.Add(_vTable);
                        }
                        catch (Exception e)
                        {
                            throw e;
                        }
                    }
                    _newTables.Add(_qv.MainTable);
                    _qv.ChildTables = _newTables;

                    //处理关联表
                    if (_qv.View2ViewGroup != null)
                    {
                        foreach (MD_View2ViewGroup _group in _qv.View2ViewGroup)
                        {
                            ChangeView2ViewGroupID(_group, _qv, _mdc);
                        }
                    }

                    //处理关联指标
                    if (_qv.View2GuideLines != null)
                    {
                        foreach (MD_View_GuideLine _v2g in _qv.View2GuideLines)
                        {
                            ChangeView2GuideLineID(_v2g, _qv, _mdc);
                        }
                    }

                    //处理关联注册应用
                    if (_qv.View2Application != null)
                    {
                        foreach (MD_View2App _v2a in _qv.View2Application)
                        {
                            ChangeView2AppID(_v2a, _qv, _mdc);
                        }
                    }

                    bool _ret = _mdc.ImportQueryModelDefine(_qv);
                    if (!_ret)
                    {
                        MessageBox.Show("导入失败!", "系统提示");
                    }
                }
            }
        }