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 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 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 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 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 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 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 CodeLines codeLines, CSideWriter writer) { foreach (var codeLine in codeLines) { if (string.IsNullOrEmpty(codeLine)) { writer.InnerWriter.WriteLine(); } else { writer.WriteLine(codeLine); } } }
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 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 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 WriteIntegrationEventAttributes(Function function, CSideWriter writer) { var parameters = string.Format( "({0},{1})", function.IncludeSender.HasValue ? function.IncludeSender.ToString().ToUpperInvariant() : "DEFAULT", function.GlobalVarAccess.HasValue ? function.GlobalVarAccess.ToString().ToUpperInvariant() : "DEFAULT"); // Handle exceptional cases parameters = parameters == "(DEFAULT,DEFAULT)" ? "" : parameters; parameters = parameters == "(FALSE,DEFAULT)" ? "(FALSE)" : parameters; parameters = parameters == "(TRUE,DEFAULT)" ? "(TRUE)" : parameters; writer.WriteLine("[Integration{0}]", parameters); }
public static void Write(this WordLayout wordLayout, CSideWriter writer) { if (wordLayout.CodeLines.Any()) { writer.BeginSection("WORDLAYOUT"); foreach (var line in wordLayout.CodeLines) { writer.WriteLine(line); } writer.InnerWriter.WriteLine(" END_OF_WORDLAYOUT"); writer.EndSection(); } }
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 Variables variables, CSideWriter writer) { if (!variables.Any()) { return; } writer.WriteLine("VAR"); writer.Indent(); foreach (Variable variable in variables) { variable.Write(writer); } writer.Unindent(); }
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(); }
private static void DoWrite(string name, int id, string type, string dimensions, bool temporary, bool includeInDataset, bool withEvents, bool runOnClient, string securityFiltering, CSideWriter writer) { var stringBuilder = new StringBuilder(); stringBuilder.AppendFormat("{0}@{1} : ", name, id); if (!string.IsNullOrEmpty(dimensions)) { stringBuilder.AppendFormat("ARRAY [{0}] OF ", dimensions.Replace(';', ',')); } if (temporary) { stringBuilder.Append("TEMPORARY "); } stringBuilder.Append(type); if (withEvents) { stringBuilder.Append(" WITHEVENTS"); } if (runOnClient) { stringBuilder.Append(" RUNONCLIENT"); } if (includeInDataset) { stringBuilder.Append(" INDATASET"); } if (!string.IsNullOrEmpty(securityFiltering)) { stringBuilder.AppendFormat(" SECURITYFILTERING({0})", securityFiltering); } stringBuilder.Append(";"); writer.WriteLine(stringBuilder.ToString()); }
public static void Write(this WordLayout wordLayout, CSideWriter writer) { if (writer.CodeStyle.DoNotPrintEmptyWordReportLayout) { if (!wordLayout.CodeLines.Any()) { return; } } writer.BeginSection("WORDLAYOUT"); foreach (var line in wordLayout.CodeLines) { writer.WriteLine(line); } writer.InnerWriter.WriteLine(" END_OF_WORDLAYOUT"); writer.EndSection(); }
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 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(); }
private static void DoWrite(string name, int id, string type, string dimensions, bool temporary, bool includeInDataset, bool withEvents, bool runOnClient, string securityFiltering, bool suppressDispose, CSideWriter writer) { var stringBuilder = new StringBuilder(); if (writer.CodeStyle.NoVariableIds) { stringBuilder.AppendFormat("{0} : ", name); } else { stringBuilder.AppendFormat("{0}@{1} : ", name, id); } if (!string.IsNullOrEmpty(dimensions)) { stringBuilder.AppendFormat("ARRAY [{0}] OF ", dimensions.Replace(';', ',')); } if (temporary) { stringBuilder.Append("TEMPORARY "); } stringBuilder.Append(type); if (writer.CodeStyle.PlatformVersion.MajorVersion < 13) { if (suppressDispose) { stringBuilder.Append(" SUPPRESSDISPOSE"); } } if (withEvents) { stringBuilder.Append(" WITHEVENTS"); } if (runOnClient) { stringBuilder.Append(" RUNONCLIENT"); } if (includeInDataset) { stringBuilder.Append(" INDATASET"); } if (writer.CodeStyle.PlatformVersion.MajorVersion >= 13) { if (suppressDispose) { stringBuilder.Append(" SUPPRESSDISPOSE"); } } if (!string.IsNullOrEmpty(securityFiltering)) { stringBuilder.AppendFormat(" SECURITYFILTERING({0})", securityFiltering); } stringBuilder.Append(";"); writer.WriteLine(stringBuilder.ToString()); }
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(); } }