//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; }