public static void Write(this XmlPortTextAttribute xmlPortTextAttribute, CSideWriter writer) { var relevantProperties = xmlPortTextAttribute.Properties.Where(p => p.HasValue); WriteDeclaration(xmlPortTextAttribute.ID, xmlPortTextAttribute.NodeName, xmlPortTextAttribute.IndentationLevel, "Attribute", "Text", relevantProperties.Any(), writer); relevantProperties.Write(PropertiesStyle.Field, writer); writer.Write(IndentationAfterLastTrigger(relevantProperties)); writer.WriteLine("}"); writer.Unindent(); writer.InnerWriter.WriteLine(); }
public static void Write(this DataportDataItem dataportDataItem, CSideWriter writer) { writer.Write("{ "); writer.Indent(); writer.BeginSection("PROPERTIES"); dataportDataItem.Properties.Write(PropertiesStyle.Object, writer); writer.EndSection(); dataportDataItem.Fields.Write(writer); writer.WriteLine(" }"); writer.Unindent(); }
public static void Write(this SectionBase reportDataItemSection, CSideWriter writer) { writer.Write("{ "); writer.Indent(); writer.BeginSection("PROPERTIES"); reportDataItemSection.AllProperties.Where(p => p.HasValue).Write(PropertiesStyle.Object, writer); writer.EndSection(); reportDataItemSection.Controls.Write(writer, 58); writer.WriteLine(" }"); writer.Unindent(); }
/* * public static void Write(this PageControlGroup groupPageControl, CSideWriter writer, int propertyIndentation) * { * var debt = 0; * var controlID = BuildControlPart(groupPageControl.ID.ToString(), 4, ref debt); * var controlIndentation = BuildControlPart(groupPageControl.IndentationLevel.AsString(), 4, ref debt); * var controlType = BuildControlPart("Group", 10, ref debt); * var declaration = string.Format("{{ {0};{1};{2}", controlID, controlIndentation, controlType); * * writer.Write(declaration); * * if (groupPageControl.Properties.Any(p => p.HasValue)) * { * writer.WriteLine(";"); * writer.Indent(propertyIndentation); * groupPageControl.Properties.Write(PropertiesStyle.Field, writer); * writer.Unindent(); * } * else * { * writer.Write(" "); * } * * //var idLength = Math.Max(groupPageControl.ID.ToString().Length, 4); * //var id = groupPageControl.ID.ToString().PadRight(idLength); * //var idAndIndentation = string.Format("{0};{1}", id, groupPageControl.IndentationLevel.ToString()).PadRight(9); * //var idAndIndentationAndType = string.Format("{0};Group", idAndIndentation); * * //writer.WriteLine("{{ {0};", idAndIndentationAndType.PadRight(20)); * * if (groupPageControl.Properties.Where(p => p.HasValue).LastOrDefault() is ActionListProperty) * writer.Write(new string(' ', 13)); * * writer.WriteLine("}"); * writer.InnerWriter.WriteLine(); * } * * public static void Write(this PageControlPart partPageControl, CSideWriter writer, int propertyIndentation) * { * var debt = 0; * var controlID = BuildControlPart(partPageControl.ID.ToString(), 4, ref debt); * var controlIndentation = BuildControlPart(partPageControl.IndentationLevel.AsString(), 4, ref debt); * var controlType = BuildControlPart("Part", 10, ref debt); * var declaration = string.Format("{{ {0};{1};{2};", controlID, controlIndentation, controlType); * writer.WriteLine(declaration); * * * //var idLength = Math.Max(partPageControl.ID.ToString().Length, 4); * //var id = partPageControl.ID.ToString().PadRight(idLength); * //var idAndIndentation = string.Format("{0};{1}", id, partPageControl.IndentationLevel.ToString()); * //var idAndIndentationAndType = string.Format("{{ {0};Part", idAndIndentation.PadRight(9)); * * //writer.WriteLine("{0};", idAndIndentationAndType.PadRight(22)); * * writer.Indent(propertyIndentation); * partPageControl.Properties.Write(PropertiesStyle.Field, writer); * writer.WriteLine("}"); * writer.Unindent(); * writer.InnerWriter.WriteLine(); * }*/ public static void Write(this FormControl fieldFormControl, CSideWriter writer, int propertyIndentation) { var debt = 0; var controlID = BuildControlPart(fieldFormControl.ID.ToString(), 4, ref debt); var controlType = BuildControlPart(fieldFormControl.Type.ToString(), 13, ref debt); var controlXPos = BuildControlPart(fieldFormControl.PosX.ToString(), 5, ref debt); var controlYPos = BuildControlPart(fieldFormControl.PosY.ToString(), 5, ref debt); var controlWidth = BuildControlPart(fieldFormControl.Width.ToString(), 5, ref debt); var controlHeight = BuildControlPart(fieldFormControl.Height.ToString(), 5, ref debt); var relevantProperties = fieldFormControl.Properties.Where(p => p.HasValue); var declaration = string.Format("{{ {0};{1};{2};{3};{4};{5}", controlID, controlType, controlXPos, controlYPos, controlWidth, controlHeight); writer.Write(declaration); writer.Write(relevantProperties.Any() ? ";" : " "); if ((writer.Column > propertyIndentation) && (relevantProperties.Any())) { writer.Indent(propertyIndentation); writer.WriteLine(""); } else { writer.Indent(writer.Column); } relevantProperties.Write(PropertiesStyle.Field, writer); var lastProperty = relevantProperties.LastOrDefault(); if (lastProperty != null) { if (lastProperty is TriggerProperty) { writer.Write(new string(' ', lastProperty.Name.Length + 2)); } } writer.WriteLine("}"); writer.Unindent(); }
public static void Write(this SIFTLevelsProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { //SIFTLevelsToMaintain=[{G/L Account No.,Global Dimension 1 Code}, // {G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code}, // {G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Posting Date:Year}, // {G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Posting Date:Month}, // {G/L Account No.,Global Dimension 1 Code,Global Dimension 2 Code,Posting Date:Day}] } writer.Write("{0}=[", property.Name); writer.Indent(writer.Column); foreach (var siftLevel in property.Value) { writer.Write("{"); writer.Write(string.Join(",", siftLevel.Components.Select(f => f.FieldName + (!string.IsNullOrEmpty(f.Aspect) ? string.Format(":{0}", f.Aspect) : string.Empty)))); var isLastLine = (siftLevel == property.Value.Last()); switch (isLastLine) { case true: switch (isLastProperty) { case true: writer.Write("}] "); break; default: writer.WriteLine("}];"); break; } break; default: writer.WriteLine("},"); break; } } writer.Unindent(); }
public static void Write(this FunctionReturnValue functionReturnValue, CSideWriter writer) { if (!functionReturnValue.Type.HasValue) { return; } if (!string.IsNullOrEmpty(functionReturnValue.Name)) { writer.Write(" {0}", functionReturnValue.Name); } writer.Write(" : "); if (!string.IsNullOrEmpty(functionReturnValue.Dimensions)) { writer.Write("ARRAY [{0}] OF ", functionReturnValue.Dimensions); } writer.Write(GetTypeName(functionReturnValue)); }
public static void Write(this PageActionGroup action, CSideWriter writer) { var idLength = Math.Max(action.ID.ToString().Length, 8); var id = action.ID.ToString().PadRight(idLength); var idAndIndentation = string.Format("{0};{1}", id, action.IndentationLevel.ToString()); writer.Write("{{ {0};", idAndIndentation.PadRight(13)); writer.Indent(writer.Column); writer.Write("ActionGroup"); if (action.Properties.Any(p => p.HasValue)) { writer.WriteLine(";"); action.Properties.Write(PropertiesStyle.Field, writer); } else { writer.Write(" "); } writer.WriteLine("}"); writer.Unindent(); }
public static void Write(this Parameters parameters, CSideWriter writer) { foreach (var parameter in parameters) { parameter.Write(writer); if (parameter != parameters.Last()) { writer.Write(";"); } } }
private static void DoWrite(bool var, string name, int uid, bool temporary, string typeName, string dimensions, CSideWriter writer) { if (var) { writer.Write("VAR "); } writer.Write("{0}@{1} : ", name, uid); if (!string.IsNullOrEmpty(dimensions)) { writer.Write("ARRAY [{0}] OF ", dimensions.Replace(';', ',')); } if (temporary) { writer.Write("TEMPORARY "); } writer.Write(typeName); }
public static void Write(this TableField field, CSideWriter writer) { var debt = 0; var fieldNo = BuildFieldPart(field.ID.ToString(), 4, ref debt); var fieldEnabled = BuildFieldPart(field.Enabled.AsString(), 3, ref debt); var fieldName = BuildFieldPart(field.Name, 20, ref debt); var fieldTypeName = BuildFieldPart(field.TypeName(), 14, ref debt); var declaration = string.Format("{{ {0};{1};{2};{3}", fieldNo, fieldEnabled, fieldName, fieldTypeName); var properties = field.AllProperties; writer.Write("{0}", declaration.PadRight(46)); writer.Write(properties.Any(p => p.HasValue) ? ";" : " "); if ((writer.Column > 51) && (properties.Any(p => p.HasValue))) { writer.Indent(51); writer.WriteLine(""); } else { writer.Indent(writer.Column); } properties.Write(PropertiesStyle.Field, writer); var relevantProperties = properties.Where(p => p.HasValue); var lastProperty = relevantProperties.LastOrDefault(); if (lastProperty != null) { if (lastProperty is TriggerProperty) { writer.Write(new string(' ', lastProperty.Name.Length + 2)); } } writer.WriteLine("}"); writer.Unindent(); }
public static void Write(this PageReferenceProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { switch (isLastProperty) { case true: writer.Write("{0}=Page{1} ", property.Name, property.Value.Value); break; case false: writer.WriteLine("{0}=Page{1};", property.Name, property.Value.Value); break; } }
public static void Write(this RunObjectProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { switch (isLastProperty) { case true: writer.Write("{0}={1} {2} ", property.Name, FormatRunObjectType(property.Value.Type.Value), property.Value.ID); break; case false: writer.WriteLine("{0}={1} {2};", property.Name, FormatRunObjectType(property.Value.Type.Value), property.Value.ID); break; } }
public static void Write(this QueryOrderByLinesProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { writer.Write("{0}=", property.Name); writer.Indent(writer.Column); foreach (var line in property.Value) { var isLastLine = (line == property.Value.Last()); writer.WriteLine("{0}={1}{2}", line.Column, line.Direction, isLastLine ? ";" : ","); } writer.Unindent(); }
public static void WriteSimpleProperty(string propertyName, string propertyValue, bool isLastProperty, CSideWriter writer) { switch (isLastProperty) { case true: writer.Write("{0}={1} ", propertyName, propertyValue); break; case false: writer.WriteLine("{0}={1};", propertyName, propertyValue); break; } }
public static void Write(this PageActionContainer action, CSideWriter writer) { var idLength = Math.Max(action.ID.ToString().Length, 8); var id = action.ID.ToString().PadRight(idLength); var idAndIndentation = string.Format("{0};{1}", id, action.IndentationLevel.HasValue ? action.IndentationLevel.ToString() : string.Empty); writer.Write("{{ {0};", idAndIndentation.PadRight(13)); writer.Indent(writer.Column); writer.WriteLine("ActionContainer;"); action.Properties.Write(PropertiesStyle.Field, writer); writer.WriteLine("}"); writer.Unindent(); }
public static void Write(this ColumnFilterProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { writer.Write("{0}=", property.Name); writer.Indent(writer.Column); foreach (var line in property.Value) { var isLastLine = (line == property.Value.Last()); writer.WriteLine("{0}={1}({2}){3}", line.FieldName, line.Type.AsString(), line.Value, isLastLine ? ";" : ","); } writer.Unindent(); }
public static void Write(this NullableBooleanProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { switch (isLastProperty) { case true: writer.Write("{0}={1} ", property.Name, property.Value.Value ? "Yes" : "No"); break; case false: writer.WriteLine("{0}={1};", property.Name, property.Value.Value ? "Yes" : "No"); break; } }
public static void Write(this Function function, CSideWriter writer) { writer.InnerWriter.WriteLine(); #if NAV2016 WriteSubscriberAttributes(function, writer); writer.WriteLineIf(function.TryFunction.GetValueOrDefault(false), "[TryFunction]"); WritePublisherAttributes(function, writer); #endif #if NAV2018 writer.WriteLineIf( function.FunctionVisibility.GetValueOrDefault(Common.FunctionVisibility.Internal) == Common.FunctionVisibility.External && function.ServiceEnabled.GetValueOrDefault(false), "[ServiceEnabled]"); #endif #if NAV2015 writer.WriteLineIf(function.UpgradeFunctionType.HasValue, "[{0}]", function.UpgradeFunctionType); #endif writer.WriteLineIf(function.TestFunctionType.HasValue, "[{0}]", function.TestFunctionType); writer.WriteLineIf(function.HandlerFunctions != null, "[HandlerFunctions({0})]", function.HandlerFunctions); writer.WriteLineIf(function.TransactionModel.HasValue, "[TransactionModel({0})]", function.TransactionModel); #if NAV2017 writer.WriteLineIf(function.TestPermissions.HasValue, "[TestPermissions({0})]", function.TestPermissions); #endif #if NAV2018 writer.WriteLineIf(function.FunctionVisibility.HasValue, "[{0}]", function.FunctionVisibility); #endif writer.Write("{2}PROCEDURE {0}@{1}(", function.Name, function.ID, function.Local ? "LOCAL " : ""); function.Parameters.Write(writer); writer.Write(")"); function.ReturnValue.Write(writer); writer.WriteLine(";"); function.Variables.Write(writer); writer.WriteLine("BEGIN"); writer.Indent(); function.CodeLines.Write(writer); writer.Unindent(); writer.WriteLine("END;"); }
public static void Write(this Event @event, CSideWriter writer) { writer.InnerWriter.WriteLine(); writer.Write("EVENT {0}@{1}::{2}@{3}(", @event.SourceName, @event.SourceID, @event.Name, @event.ID); @event.Parameters.Write(writer); writer.WriteLine(");"); @event.Variables.Write(writer); writer.WriteLine("BEGIN"); writer.Indent(); @event.CodeLines.Write(writer); writer.Unindent(); writer.WriteLine("END;"); }
public static void Write(this FormMenuItemBase fieldFormControl, CSideWriter writer) { var relevantProperties = fieldFormControl.Properties.Where(p => p.HasValue); var declaration = "{ "; writer.Write(declaration); writer.Indent(writer.Column); relevantProperties.Write(PropertiesStyle.Field, writer); var lastProperty = relevantProperties.LastOrDefault(); if (lastProperty != null) { if (lastProperty is TriggerProperty) { writer.Write(new string(' ', lastProperty.Name.Length + 2)); } } writer.WriteLine("}"); writer.Unindent(); }
private static void WriteDeclaration(int id, int?indentation, string type, string name, CSideWriter writer) { name = name ?? string.Empty; var nameLength = Math.Max(name.Length, 20); writer.Write("{ "); writer.Write(id.ToString().PadRight(4)); writer.Write(";"); writer.Write((indentation.HasValue ? indentation.Value.ToString() : string.Empty).PadRight(4)); writer.Indent(writer.Column); writer.Write(";"); writer.Write(type.PadRight(8)); writer.Write(";"); writer.Write(name.PadRight(nameLength)); writer.WriteLine(";"); }
public static void Write(this ReportDataItemLinkProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { writer.Write("{0}=", property.Name); writer.Indent(writer.Column); foreach (var line in property.Value) { var isLastLine = (line == property.Value.Last()); switch (isLastProperty && isLastLine) { case true: writer.Write("{0}=FIELD({1}) ", line.FieldName, line.ReferenceFieldName); break; case false: writer.WriteLine("{0}=FIELD({1}){2}", line.FieldName, line.ReferenceFieldName, isLastLine ? ";" : ","); break; } } writer.Unindent(); }
public static void Write(this PageControlGroup groupPageControl, CSideWriter writer, int propertyIndentation) { var debt = 0; var controlID = BuildControlPart(groupPageControl.ID.ToString(), 4, ref debt); var controlIndentation = BuildControlPart(groupPageControl.IndentationLevel.AsString(), 4, ref debt); var controlType = BuildControlPart("Group", 10, ref debt); var declaration = string.Format("{{ {0};{1};{2}", controlID, controlIndentation, controlType); writer.Write(declaration); if (groupPageControl.Properties.Any(p => p.HasValue)) { writer.WriteLine(";"); writer.Indent(propertyIndentation); groupPageControl.Properties.Write(PropertiesStyle.Field, writer); writer.Unindent(); } else { writer.Write(" "); } //var idLength = Math.Max(groupPageControl.ID.ToString().Length, 4); //var id = groupPageControl.ID.ToString().PadRight(idLength); //var idAndIndentation = string.Format("{0};{1}", id, groupPageControl.IndentationLevel.ToString()).PadRight(9); //var idAndIndentationAndType = string.Format("{0};Group", idAndIndentation); //writer.WriteLine("{{ {0};", idAndIndentationAndType.PadRight(20)); if (groupPageControl.Properties.Where(p => p.HasValue).LastOrDefault() is ActionListProperty) { writer.Write(new string(' ', 13)); } writer.WriteLine("}"); writer.InnerWriter.WriteLine(); }
public static void Write(this DataportField dataportField, CSideWriter writer, int propertyIndentation) { var debt = 0; var startPos = BuildControlPart(dataportField.StartPosition.HasValue? dataportField.StartPosition.Value.ToString() : "", 5, ref debt); var width = BuildControlPart(dataportField.Width.HasValue? dataportField.Width.Value.ToString() : "", 5, ref debt); var sourceExp = BuildControlPart(dataportField.SourceExpr, 20, ref debt); var relevantProperties = dataportField.Properties.Where(p => p.HasValue); var declaration = string.Format("{{ {0};{1};{2}", startPos, width, sourceExp); writer.Write(declaration); writer.Write(relevantProperties.Any() ? ";" : " "); if ((writer.Column > propertyIndentation) && (relevantProperties.Any())) { writer.Indent(propertyIndentation); writer.WriteLine(""); } else { writer.Indent(writer.Column); } relevantProperties.Write(PropertiesStyle.Field, writer); var lastProperty = relevantProperties.LastOrDefault(); if (lastProperty != null) { if (lastProperty is TriggerProperty) { writer.Write(new string(' ', lastProperty.Name.Length + 2)); } } writer.WriteLine("}"); writer.Unindent(); }
public static void Write(this OptionStringProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { var value = (property.Value.Trim() != property.Value) ? string.Format("[{0}]", property.Value) : property.Value; switch (isLastProperty) { case true: writer.Write("{0}={1} ", property.Name, value); break; case false: writer.WriteLine("{0}={1};", property.Name, value); break; } }
public static void Write(this PermissionsProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { writer.Write("{0}=", property.Name); writer.Indent(writer.Column); foreach (var permission in property.Value) { var isLastValue = (permission == property.Value.Last()); var terminator = isLastValue ? ";" : ","; var read = permission.ReadPermission ? "r" : ""; var insert = permission.InsertPermission ? "i" : ""; var modify = permission.ModifyPermission ? "m" : ""; var delete = permission.DeletePermission ? "d" : ""; writer.WriteLine("TableData {0}={1}{2}{3}{4}{5}", permission.TableID, read, insert, modify, delete, terminator); } writer.Unindent(); }
public static void Write(this ScopedTriggerProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { writer.Write("{0}=", property.ScopedName()); writer.Indent(writer.Column); property.Value.Variables.Write(writer); writer.WriteLine("BEGIN"); writer.Indent(); property.Value.CodeLines.Write(writer); writer.Unindent(); writer.WriteLine("END;"); writer.Unindent(); if (!isLastProperty || style == PropertiesStyle.Object) { writer.InnerWriter.WriteLine(); } }
public static void WriteSubscriberAttributes(Function function, CSideWriter writer) { if (function.Event.GetValueOrDefault(EventPublisherSubscriber.No) != EventPublisherSubscriber.Subscriber) { return; } if (function.EventPublisherObject.Type == null) { return; } if (function.EventPublisherObject.ID == null) { return; } if (string.IsNullOrEmpty(function.EventFunction)) { return; } writer.Write( "[EventSubscriber({0},{1},{2}", function.EventPublisherObject.Type, function.EventPublisherObject.ID, function.EventFunction); var parameters = string.Format( ",{0},{1}", function.OnMissingLicense.HasValue ? function.OnMissingLicense.ToString() : "DEFAULT", function.OnMissingPermission.HasValue ? function.OnMissingPermission.ToString() : "DEFAULT"); var eventPublisherElement = string.IsNullOrEmpty(function.EventPublisherElement) ? ",\"\"" : string.Format(",{0}", function.EventPublisherElement); // Handle exceptional cases parameters = parameters == ",DEFAULT,DEFAULT" ? "" : parameters; parameters = parameters == ",Skip,DEFAULT" ? ",Skip" : parameters; parameters = parameters == ",Error,DEFAULT" ? ",Error" : parameters; eventPublisherElement = (parameters == "" && eventPublisherElement == ",\"\"" ? "" : eventPublisherElement); writer.WriteLine("{0}{1})]", eventPublisherElement, parameters); }
public static void WriteLineParts(this CSideWriter writer, params LinePart[] parts) { var debt = 0; foreach (var part in parts) { var value = part.Elastic ? part.Value.PadRight(Math.Max(0, part.NominalWidth - debt)) : part.Value; if (part.NewLine) { writer.WriteLine(value); } else { writer.Write(value); } if (part.SetIndentationAt != 0) { writer.Indent(part.SetIndentationAt); } debt = debt + (value.Length - part.NominalWidth); } }
public static void Write(this TableKey key, CSideWriter writer) { writer.Write("{"); switch (key.Enabled) { case null: writer.Write(" "); break; case true: writer.Write(" Yes"); break; case false: writer.Write(" No "); break; } writer.Write(";"); key.Fields.Write(writer); if (key.Properties.Any(p => p.HasValue)) { writer.Write(";"); if (writer.Column > 51) { writer.Indent(51); writer.WriteLine(""); } else { writer.Indent(writer.Column); } key.Properties.Write(PropertiesStyle.Field, writer); writer.Unindent(); } else { writer.Write(" "); } writer.WriteLine("}"); }