コード例 #1
0
 private void WriteSegmentToTable(string ParentNr, IRfcTable tData, IdocSegment SegToWrite, int HLevel)
 {
     tData.Append();
     IRfcStructure structure = tData.CurrentRow;
     //RFCStructure structure = tData.AddRow();
     string parentNr = tData.RowCount.ToString();
     string str2 = SegToWrite.ReadDataBuffer(0, 0x3e8);
     structure["SEGNAM"].SetValue(SegToWrite.SegmentName);
     structure["MANDT"].SetValue(this.MANDT);
     structure["DOCNUM"].SetValue(this.DOCNUM);
     structure["SEGNUM"].SetValue(parentNr.PadLeft(6, "0".ToCharArray()[0]));
     structure["PSGNUM"].SetValue(ParentNr.PadLeft(6, "0".ToCharArray()[0]));
     if ((HLevel == 1) && (SegToWrite.MaxOccur > 1))
     {
         HLevel++;
     }
     if (this._SkipHLevel)
     {
         structure["HLEVEL"].SetValue("  ");
     }
     else
     {
         structure["HLEVEL"].SetValue(Convert.ToString(HLevel).PadLeft(2, "0".ToCharArray()[0]));
     }
     structure["SDATA"].SetValue(str2);
     if (SegToWrite.HasChildren)
     {
         for (int i = 0; i < SegToWrite.ChildSegments.Count; i++)
         {
             this.WriteSegmentToTable(parentNr, tData, SegToWrite.ChildSegments[i], HLevel + 1);
         }
     }
 }
コード例 #2
0
 private void WriteSegmentToFile(string ParentNr, StreamWriter writer, IdocSegment SegToWrite, int HLevel)
 {
     string str = "";
     str = SegToWrite.SegmentName.PadRight(30) + this.MANDT.PadRight(3) + this.DOCNUM.PadRight(0x10);
     string input = SegToWrite.ReadDataBuffer(0, 0x3e8).TrimEnd(new char[] { " ".ToCharArray()[0] });
     string parentNr = this.SegNumForPlainFile.ToString().PadLeft(6, "0".ToCharArray()[0]);
     string str4 = ParentNr.PadLeft(6, "0".ToCharArray()[0]);
     this.SegNumForPlainFile++;
     str = str + parentNr + str4;
     if ((HLevel == 1) && (SegToWrite.MaxOccur > 1))
     {
         HLevel++;
     }
     if (this._SkipHLevel)
     {
         str = str + "  ";
     }
     else
     {
         str = str + HLevel.ToString().PadLeft(2, "0".ToCharArray()[0]);
     }
     str = str + Converts.Escape(input, plainTextEscapes, '\\');
     writer.WriteLine(str);
     if (SegToWrite.HasChildren)
     {
         for (int i = 0; i < SegToWrite.ChildSegments.Count; i++)
         {
             this.WriteSegmentToFile(parentNr, writer, SegToWrite.ChildSegments[i], HLevel + 1);
         }
     }
 }
コード例 #3
0
 private void RegenerateSegment(IdocSegment seg)
 {
     try
     {
         if (seg.Fields.Count == 0)
         {
             try
             {
                 IdocSegment segment = this.CreateSegment(seg.SegmentName);
                 string str = seg.ReadDataBuffer(0, 0x3e8);
                 seg.Fields = segment.Fields;
                 foreach (IdocSegmentField field in seg.Fields)
                 {
                     field.FieldValue = str.Substring(field.OffsetInBuffer, field.ExternalLength);
                 }
             }
             catch
             {
             }
         }
         for (int i = 0; i < seg.ChildSegments.Count; i++)
         {
             this.RegenerateSegment(seg.ChildSegments[i]);
         }
     }
     catch
     {
     }
 }
コード例 #4
0
 private void WriteSegment(ref string ret, IdocSegment seg)
 {
     string str = ret;
     ret = str + seg.SegmentName + " " + seg.Description + "\r\n";
     ret = ret + seg.ReadDataBuffer(0, 0x3e8) + "\r\n";
     for (int i = 0; i < seg.ChildSegments.Count; i++)
     {
         this.WriteSegment(ref ret, seg.ChildSegments[i]);
     }
 }
コード例 #5
0
 private XmlNode GetXMLNodeFromSegment(IdocSegment seg, XmlDocument doc)
 {
     XmlNode node = doc.CreateNode(XmlNodeType.Element, Converts.OriginalNameToXmlName(seg.SegmentName), "");
     if (seg.Fields.Count > 0)
     {
         foreach (IdocSegmentField field in seg.Fields)
         {
             if (!field.FieldValue.ToString().Trim().Equals(""))
             {
                 XmlNode newChild = doc.CreateNode(XmlNodeType.Element, Converts.OriginalNameToXmlName(field.FieldName), "");
                 newChild.InnerText = field.FieldValue.ToString().TrimEnd(new char[0]);
                 node.AppendChild(newChild);
             }
         }
     }
     else
     {
         XmlNode node3 = doc.CreateNode(XmlNodeType.Element, "BUFFER", "");
         node3.InnerText = seg.ReadDataBuffer(0, 0x3e8).TrimEnd(" ".ToCharArray());
         node.AppendChild(node3);
     }
     foreach (IdocSegment segment in seg.ChildSegments)
     {
         node.AppendChild(this.GetXMLNodeFromSegment(segment, doc));
     }
     return node;
 }