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 TableKey key, CSideWriter writer) { writer.Write("{"); switch (key.Enabled) { case null: writer.Write(" "); break; default: writer.Write(writer.CodeStyle.Localization.ConvertBoolToString(key.Enabled).EqualPad(4)); 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("}"); }
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("}"); }
/* * 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 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 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 ReportLabel reportLabel, CSideWriter writer) { var id = reportLabel.ID.ToString().PadRight(4); var debt = id.Length > 4 ? id.Length - 4 : 0; var name = reportLabel.Name.PadRight(20 - debt); writer.Write("{ "); writer.Write(id); writer.Write(";"); writer.Write(name); var relevantProperties = reportLabel.Properties.Where(p => p.HasValue); switch (relevantProperties.Any()) { case true: writer.Write(";"); break; default: writer.Write(" "); break; } if (writer.Column > 32) { writer.Indent(32); writer.WriteLine(""); } else { writer.Indent(writer.Column); } reportLabel.Properties.Write(PropertiesStyle.Field, writer); writer.WriteLine("}"); writer.Unindent(); }
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 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 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(); }
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 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 PageControl fieldPageControl, CSideWriter writer, int propertyIndentation) { var debt = 0; var controlID = BuildControlPart(fieldPageControl.ID.ToString(), 4, ref debt); var controlIndentation = BuildControlPart(fieldPageControl.IndentationLevel.AsString(), 4, ref debt); var controlType = BuildControlPart("Field", 10, ref debt); var relevantProperties = fieldPageControl.Properties.Where(p => p.HasValue); switch (relevantProperties.Any()) { case false: writer.WriteLine("{{ {0};{1};{2} }}", controlID, controlIndentation, controlType); break; default: writer.WriteLine("{{ {0};{1};{2};", controlID, controlIndentation, controlType); writer.Indent(propertyIndentation); fieldPageControl.Properties.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(); break; } writer.InnerWriter.WriteLine(); }
public static void Write(this TableRelationProperty property, bool isLastProperty, PropertiesStyle style, CSideWriter writer) { var indentations = 0; writer.Write("{0}=", property.Name); writer.Indent(writer.Column); indentations++; foreach (var tableRelationLine in property.Value) { if (tableRelationLine != property.Value.First()) { writer.Write("ELSE "); } if (tableRelationLine.Conditions.Any()) { writer.Write("IF ("); // Only indent if multiple conditions exist. Note that C/SIDE doesn't properly unindent. if (tableRelationLine.Conditions.Count() > 1) { writer.Indent(writer.Column); // conditions indentations++; } foreach (var condition in tableRelationLine.Conditions) { writer.Write("{0}={1}({2})", condition.FieldName, condition.Type.ToString().ToUpper(), condition.Value); var isLastCondition = (condition == tableRelationLine.Conditions.Last()); switch (isLastCondition) { case false: writer.WriteLine(","); break; } } writer.Write(") "); } writer.Write(tableRelationLine.TableName.QuotedExcept('/', '.', '-')); if (!string.IsNullOrEmpty(tableRelationLine.FieldName)) { writer.Write(".{0}", tableRelationLine.FieldName.QuotedExcept('/', '.', '-')); } if (tableRelationLine.TableFilter.Any()) { writer.Write(" WHERE ("); if (tableRelationLine.TableFilter.Count() > 1) { writer.Indent(writer.Column); // filters indentations++; } foreach (var tableFilterLine in tableRelationLine.TableFilter) { writer.Write("{0}={1}({2})", tableFilterLine.FieldName, tableFilterLine.Type.AsString(), tableFilterLine.Value); switch (tableFilterLine == tableRelationLine.TableFilter.Last()) { case true: writer.Write(")"); break; default: writer.WriteLine(","); break; } } } var isLastLine = (tableRelationLine == property.Value.Last()); if (!isLastLine) { writer.WriteLine(""); } else if (isLastProperty) { writer.Write(" "); } else { writer.WriteLine(";"); } //switch (tableRelationLine == property.Value.Last() && !isLastProperty) //{ // case true: // writer.WriteLine(";"); // break; // default: // writer.Write(" "); // break; //} } for (var i = 0; i < indentations; i++) { writer.Unindent(); } }