//public List<TableField> getFields()
        //{
        //    var list = new List<TableField>();
        //    for (int i = 0; i < FIELDS.RowCount; i++)
        //    {
        //        var field = new TableField();
        //        field.FieldText =  FIELDS[i].GetString("FIELDTEXT");
        //        field.FieldName = FIELDS[i].GetString("FIELDNAME");
        //        field.Length =  FIELDS[i].GetInt("LENGTH");
        //        field.Offset = FIELDS[i].GetInt("OFFSET");
        //        field.Type = FIELDS[i].GetString("TYPE");
        //    }
        //    return list;
        //}
        public void Excute()
        {
            try
            {
                if (String.IsNullOrEmpty(this.TableName))
                {
                    throw new SAPException("表名为空!!");
                }
                RfcDATA = null;
                RfcFIELDS = null;

                //string _funame = "Z_SAPINT_READ_TABLE";

                this._function.SetValue("QUERY_TABLE", this.TableName);
                this._function.SetValue("ROWCOUNT", this.RowCount);
                this._function.SetValue("DELIMITER", this.Delimiter);

                if (conditions != null)
                {
                    if (conditions.Count > 0)
                    {
                        IRfcTable rfcOptions = this._function.GetTable("OPTIONS");
                        foreach (var item in conditions)
                        {
                            rfcOptions.Append();
                            rfcOptions.SetValue("TEXT", item);
                        }
                    }

                }

                if (this._fieldsIn != null)
                {
                    if (_fieldsIn.Count > 0)
                    {
                        IRfcTable rfcfields = this._function.GetTable("FIELDS");
                        foreach (var item in _fieldsIn)
                        {
                            rfcfields.Append();
                            rfcfields.SetValue("FIELDNAME", item.FieldName);
                        }
                    }
                }

                this._function.Invoke(this._destination);

                RfcDATA = this._function.GetTable("DATA");
                RfcFIELDS = this._function.GetTable("FIELDS");

                //输出到界面或需要进一步的处理
                if (this.Operation != OperationType.direct)
                {
                    this.Result = new List<String>();
                    for (int i = 0; i < RfcDATA.RowCount; i++)
                    {
                        this.Result.Add(RfcDATA[i].GetString(0));
                    }

                    this._fieldsOut = new List<CopyTableField>();
                    for (int i = 0; i < RfcFIELDS.RowCount; i++)
                    {
                        var field = new CopyTableField();
                        field.FieldText = RfcFIELDS[i].GetString("FIELDTEXT");
                        field.FieldName = RfcFIELDS[i].GetString("FIELDNAME");
                        field.Length = RfcFIELDS[i].GetInt("LENGTH");
                        field.Offset = RfcFIELDS[i].GetInt("OFFSET");
                        field.Type = RfcFIELDS[i].GetString("TYPE");
                        _fieldsOut.Add(field);
                    }
                    //Result = SAPFunction.RfcTableToDataTable(DATA);

                }
                if (eventReadTableDone != null)
                {
                    this.Message = string.Format("表{0},一共{1}行,读取完成!!", this.TableName, RfcDATA.RowCount.ToString());
                    eventReadTableDone(this, this._fieldsOut, this.Result);
                }

            }
            catch (RfcAbapException abapEx)
            {
                throw new SAPException(abapEx.Key + abapEx.Message);
            }
            catch (RfcBaseException rfcbase)
            {
                throw new SAPException(rfcbase.Message);
            }
            catch (Exception ex)
            {
                throw new SAPException(ex.Message);
            }
        }
        //public List<TableField> getFields()
        //{
        //    var list = new List<TableField>();

        //    for (int i = 0; i < FIELDS.RowCount; i++)
        //    {
        //        var field = new TableField();
        //        field.FieldText =  FIELDS[i].GetString("FIELDTEXT");
        //        field.FieldName = FIELDS[i].GetString("FIELDNAME");
        //        field.Length =  FIELDS[i].GetInt("LENGTH");
        //        field.Offset = FIELDS[i].GetInt("OFFSET");
        //        field.Type = FIELDS[i].GetString("TYPE");
        //    }

        //    return list;

        //}
        public void Excute()
        {
            try
            {
                if (String.IsNullOrEmpty(this.TableName))
                {
                    throw new SAPException("表名为空!!");
                }
                RfcDATA   = null;
                RfcFIELDS = null;

                //string _funame = "Z_SAPINT_READ_TABLE";

                this._function.SetValue("QUERY_TABLE", this.TableName);
                this._function.SetValue("ROWCOUNT", this.RowCount);
                this._function.SetValue("DELIMITER", this.Delimiter);

                if (conditions != null)
                {
                    if (conditions.Count > 0)
                    {
                        IRfcTable rfcOptions = this._function.GetTable("OPTIONS");
                        foreach (var item in conditions)
                        {
                            rfcOptions.Append();
                            rfcOptions.SetValue("TEXT", item);
                        }
                    }
                }

                if (this._fieldsIn != null)
                {
                    if (_fieldsIn.Count > 0)
                    {
                        IRfcTable rfcfields = this._function.GetTable("FIELDS");
                        foreach (var item in _fieldsIn)
                        {
                            rfcfields.Append();
                            rfcfields.SetValue("FIELDNAME", item.FieldName);
                        }
                    }
                }

                this._function.Invoke(this._destination);

                RfcDATA   = this._function.GetTable("DATA");
                RfcFIELDS = this._function.GetTable("FIELDS");

                //输出到界面或需要进一步的处理
                if (this.Operation != OperationType.direct)
                {
                    this.Result = new List <String>();
                    for (int i = 0; i < RfcDATA.RowCount; i++)
                    {
                        this.Result.Add(RfcDATA[i].GetString(0));
                    }

                    this._fieldsOut = new List <CopyTableField>();
                    for (int i = 0; i < RfcFIELDS.RowCount; i++)
                    {
                        var field = new CopyTableField();
                        field.FieldText = RfcFIELDS[i].GetString("FIELDTEXT");
                        field.FieldName = RfcFIELDS[i].GetString("FIELDNAME");
                        field.Length    = RfcFIELDS[i].GetInt("LENGTH");
                        field.Offset    = RfcFIELDS[i].GetInt("OFFSET");
                        field.Type      = RfcFIELDS[i].GetString("TYPE");
                        _fieldsOut.Add(field);
                    }
                    //Result = SAPFunction.RfcTableToDataTable(DATA);
                }
                if (eventReadTableDone != null)
                {
                    this.Message = string.Format("表{0},一共{1}行,读取完成!!", this.TableName, RfcDATA.RowCount.ToString());
                    eventReadTableDone(this, this._fieldsOut, this.Result);
                }
            }
            catch (RfcAbapException abapEx)
            {
                throw new SAPException(abapEx.Key + abapEx.Message);
            }
            catch (RfcBaseException rfcbase)
            {
                throw new SAPException(rfcbase.Message);
            }
            catch (Exception ex)
            {
                throw new SAPException(ex.Message);
            }
        }
        private List<CopyTableField> getFields()
        {
            fieldsList = new List<CopyTableField>();
            //fieldsList.Clear();
            for (int i = 0; i < this.dgvFields.Rows.Count; i++)
            {
                if (dgvFields[0, i].Value != null)
                {
                    int offset = 0;
                    int length = 0;
                    string s = dgvFields[0, i].Value.ToString();

                    int.TryParse(dgvFields[1, i].Value.ToString(), out offset);
                    int.TryParse(dgvFields[2, i].Value.ToString(), out length);
                    if (!string.IsNullOrEmpty(s))
                    {
                        var field = new CopyTableField();
                        field.FieldName = s;
                        field.Length = length;
                        field.Offset = offset;
                        fieldsList.Add(field);
                    }
                }
            }

            return fieldsList;
        }