Пример #1
0
        /// <summary>
        /// 从缓存中删除字段列表。
        /// </summary>
        /// <param name="tableName"></param>
        /// <returns></returns>
        private bool RemoveFieldsAndOptionFromMemory(string tableName)
        {
            if (string.IsNullOrEmpty(tableName))
            {
                return(false);
            }
            //_tableName = tableName;
            //TableInfo info1 = _tablelist.Find(X => X.Name == _tableName);
            //if (info1 != null)
            //{
            //    _tablelist.Remove(info1);
            //}

            SAPTableInfo info = _rfcTableList.Find(x => x.name == tableName);

            if (info != null)
            {
                _rfcTableList.Remove(info);
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #2
0
        /// <summary>
        /// 从缓存中删除字段列表。
        /// </summary>
        /// <param name="tableName"></param>
        /// <returns></returns>
        private bool RemoveFieldsFromCache(string tableName = null)
        {
            if (string.IsNullOrEmpty(tableName))
            {
                tableName = this.m_TableName;
            }
            if (string.IsNullOrEmpty(tableName))
            {
                return(false);
            }

            SAPTableInfo info = m_RfcTableList.Find(x => x.name == tableName);

            if (info != null)
            {
                m_RfcTableList.Remove(info);
                this.toolStripStatusLabel1.Text = tableName + "删除成功";
                return(true);
            }
            else
            {
                this.toolStripStatusLabel1.Text = tableName + "删除失败";
                return(false);
            }
        }
Пример #3
0
        //保存当前的字段与条件到内存中。
        private bool SaveFieldsToCache(string pTableName = null, DataTable pDt = null)
        {
            if (string.IsNullOrEmpty(pTableName))
            {
                this.m_TableName = this.txtTableName.Text.Trim();
                pTableName       = this.m_TableName;
            }
            if (string.IsNullOrEmpty(pTableName))
            {
                MessageBox.Show("表名不能为空");
                return(false);
            }

            if (pDt == null)
            {
                pDt = this.dataGridView1.DataSource as DataTable;
            }
            if (pDt == null)
            {
                toolStripStatusLabel1.Text = "DataTable 为空值";
                return(false);
            }

            SAPTableInfo info2 = m_RfcTableList.Find(x => x.name == pTableName);

            if (info2 != null)
            {
                m_RfcTableList.Remove(info2);
            }

            var _rfctable = new SAPTableInfo();

            _rfctable.Fields = pDt.ToList <TableField>() as List <TableField>;
            //_rfctable.TransformDataType();
            _rfctable.name = pTableName;
            m_RfcTableList.Add(_rfctable);

            int pos = 1;

            foreach (var item in m_RfcTableList)
            {
                foreach (var field in item.Fields)
                {
                    field.POSITION2 = string.Empty;
                    if (field.Selected)
                    {
                        field.POSITION2 = pos.ToString().PadLeft(4, '0');
                        pos++;
                    }
                }
            }
            if (!this.listBox1.Items.Contains(pTableName))
            {
                this.listBox1.Items.Add(pTableName);
            }

            this.toolStripStatusLabel1.Text = pTableName + "保存成功";
            return(true);
        }
Пример #4
0
 private void GetTableInfo(String pTableName)
 {
     m_FieldsDt = SAPTableInfo.GetTableDefinitionDt(m_SystemName, pTableName, pTableName);
     foreach (DataRow item in m_FieldsDt.Rows)
     {
         item[0] = true;
     }
     SaveFieldsToCache(pTableName, m_FieldsDt);
 }
Пример #5
0
        //保存当前的字段与条件到内存中。
        bool SaveFieldsAndOptiontoMemory(string TableName)
        {
            // dt.Fields.Cast<ReadTableField>().ToList().ForEach(I=> info.Fields.Add(I));
            //在当前激活的工作表上存放数据
            if (string.IsNullOrEmpty(TableName))
            {
                return(false);
            }

            //TableInfo info = new TableInfo();
            //info.Name = _tableName;
            //foreach (DataGridViewRow item in this.dataGridView1.Rows)
            //{
            //    if (item.Cells["FieldName"].Value != null)
            //    {
            //        info.Fields.Add(new ReadTableField
            //        {
            //            FieldName = item.Cells["FieldName"].Value == null ? "" : item.Cells["FieldName"].Value.ToString(),
            //            FieldText = item.Cells["FieldText"].Value == null ? "" : item.Cells["FieldText"].Value.ToString(),
            //            CheckTable = item.Cells["CheckTable"].Value == null ? "" : item.Cells["CheckTable"].Value.ToString(),
            //            Active = item.Cells["Select"].Value == null ? false : (bool)item.Cells["Select"].Value
            //        });
            //    }

            //}
            ////dt.Options.Cast<string>().ToList().ForEach(I => info.Options.Add(I));
            //TableInfo info1 = _tablelist.Find(X => X.Name == _tableName);
            //if (info1 != null)
            //{
            //    _tablelist.Remove(info1);
            //}
            //_tablelist.Add(info);


            SAPTableInfo info2 = _rfcTableList.Find(x => x.name == TableName);

            if (info2 != null)
            {
                _rfcTableList.Remove(info2);
            }
            _rfctable.Fields = fieldsDt.ToList <TableField>() as List <TableField>;
            // _rfctable.Fields.Sort(new PositionComparer());
            _rfctable.name = TableName;
            _rfcTableList.Add(_rfctable);

            return(true);
        }
Пример #6
0
        private bool LoadFieldsFromCache(string pTableName)
        {
            this.dataGridView1.DataSource = null;
            var info = new SAPTableInfo();

            info = m_RfcTableList.Find(x => x.name == pTableName);
            if (info != null)
            {
                this.dataGridView1.DataSource = info.Fields.ToDataTable <TableField>();

                UpdateDgvDisplay();
                this.txtTableName.Text = pTableName;
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #7
0
 /// <summary>
 /// 从SAP系统中加载表的定义信息。
 /// </summary>
 private void GetTableDefinition()
 {
     if (!check())
     {
         return;
     }
     try
     {
         //_rfctable = new RFCTableInfo();
         fieldsDt = SAPTableInfo.GetTableDefinitionDt(_systemName, _tableName);
         this.dataGridView1.DataSource = fieldsDt;
         // _rfctable.GetTableDefinition(_systemName, _tableName);
         // _rfctable.TransformDataType();
         //_rfctable.Fields.ForEach(row =>
         //{
         //    row.FIELDNAME = row.FIELDNAME.Replace("/", "_");
         //});
         // fieldList =  SAPINT.RFCTable.RFCTable.GetTableDefinition(cbxSystemList.Text,textBoxTableName.Text);
         if (fieldsDt != null)
         {
             if (fieldsDt.Rows.Count > 0)
             {
                 MessageBox.Show("读取成功");
             }
             else
             {
                 MessageBox.Show("无可用字段");
             }
         }
         else
         {
             MessageBox.Show("无法读取表信息");
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message);
     }
 }
Пример #8
0
 /// <summary>
 /// 从SAP系统中加载表的定义信息。
 /// </summary>
 private bool GetTableDefinition()
 {
     if (!check())
     {
         return(false);
     }
     try
     {
         this.dataGridView1.DataSource = null;
         // var _rfctable = new RFCTableInfo();
         m_FieldsDt = SAPTableInfo.GetTableDefinitionDt(m_SystemName, m_TableName, m_TypeName);
         this.dataGridView1.DataSource = m_FieldsDt;
         this.Text = "表:" + m_TableName;
         if (m_FieldsDt != null)
         {
             if (m_FieldsDt.Rows.Count > 0)
             {
                 this.toolStripStatusLabel1.Text = string.Format("{0} 读取成功", m_TableName);
                 return(true);
             }
             else
             {
                 this.toolStripStatusLabel1.Text = string.Format("{0} 无可用", m_TableName);
                 return(false);
             }
         }
         else
         {
             MessageBox.Show("无法读取表信息");
             return(false);
         }
     }
     catch (Exception exception)
     {
         MessageBox.Show(exception.Message);
     }
     return(false);
 }
Пример #9
0
        bool loadFieldsAndOptionFromMemory(string tableName)
        {
            //_tableName = tableName;
            //tableName = tableName.ToUpper();
            ////按照表名加载字段列表与条件列表
            //TableInfo info = _tablelist.Find(x => x.Name == tableName);
            //if (info != null)
            //{
            //    this.dataGridView1.Rows.Clear();

            //    foreach (SAPINT.Utils.ReadTableField item in info.Fields)
            //    {
            //        this.dataGridView1.Rows.Add(item.Active, item.FieldName, item.FieldText, item.CheckTable);
            //    }
            //    return true;
            //}
            //else
            //{
            //    return false;
            //}

            this.dataGridView1.DataSource = null;
            SAPTableInfo info = _rfcTableList.Find(x => x.name == tableName);

            if (info != null)
            {
                // IList<TableField> list = info.Fields as IList<TableField>;
                this.dataGridView1.DataSource = info.Fields.ToDataTable <TableField>();

                updateDgvDisplay();
                return(true);
            }
            else
            {
                return(false);
            }
        }
Пример #10
0
        public static FunctionMetaAsDataTable GetFuncMetaAsDataTable(string sysName, String funame)
        {
            FunctionMetaAsDataTable metaTable = null;

            List <CParams> parameters = getFunctionDef(sysName, funame);

            metaTable = new FunctionMetaAsDataTable();


            if (Is_rfc == true)
            {
                metaTable        = GetRfcFuncMetaAsDataTable(sysName, funame);
                metaTable.Is_RFC = Is_rfc;
                return(metaTable);
            }
            metaTable.Is_RFC = Is_rfc;
            DataTable dtImport   = FunctionMetaAsDataTable.ParameterDefinitionView();
            DataTable dtExport   = dtImport.Copy();
            DataTable dtChanging = dtImport.Copy();
            DataTable dtTables   = dtImport.Copy();


            for (int i = 0; i < parameters.Count; i++)
            {
                var item = parameters[i];
                switch (item.paramclass)
                {
                case "I":
                    AddMetadataToTable2(ref item, ref dtImport);
                    break;

                case "E":
                    AddMetadataToTable2(ref item, ref dtExport);
                    break;

                case "T":
                    AddMetadataToTable2(ref item, ref dtTables);
                    break;

                case "C":
                    AddMetadataToTable2(ref item, ref dtChanging);
                    break;

                case "X":
                    //AddMetadataToTable2(ref item, ref );
                    break;

                default:
                    break;
                }



                if (item.paramclass == "T")
                {
                    if (!metaTable.StructureDetail.Keys.Contains(item.tabname))
                    {
                        //在这里创建结构体的定义表格
                        DataTable dtStructure = FunctionMetaAsDataTable.StructDefinitionView();
                        var       tableInfo   = new SAPTableInfo(sysName, item.tabname);

                        var fields = tableInfo.Fields;

                        foreach (var field in fields)
                        {
                            DataRow dr = dtStructure.NewRow();
                            dr["Name"]          = field.FIELDNAME;
                            dr["DataType"]      = field.DOMNAME;
                            dr["Decimals"]      = field.DECIMALS;
                            dr["Length"]        = field.OUTPUTLEN;
                            dr["Documentation"] = field.SCRTEXT_L;

                            dtStructure.Rows.Add(dr);
                        }

                        metaTable.StructureDetail.Add(item.tabname, dtStructure);
                    }
                }
            }

            metaTable.Import   = dtImport;
            metaTable.Export   = dtExport;
            metaTable.Changing = dtChanging;
            metaTable.Tables   = dtTables;
            return(metaTable);
        }