private void DrawTitleB(StiContainer content, DateTime startDate, DateTime endDate, double dynamicWidth) { double left = 0, top = 0, basicHeight = .2; var border = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid); var artistText = new StiText(new RectangleD(left, top, 1.2, basicHeight)) { Text = "作家", Font = new Font("Meiryo", 6), Border = border, HorAlignment = StiTextHorAlignment.Center, VertAlignment = StiVertAlignment.Center }; content.Components.Add(artistText); left += 1.2; for (var date = startDate; date.Date <= endDate.Date; date = date.AddDays(1)) { var dateText = new StiText(new RectangleD(left, top, dynamicWidth * 3, basicHeight)) { Text = date.ToString(Constants.ExactMonthDayFormatJP), Font = new Font("Meiryo", 6), Border = border, HorAlignment = StiTextHorAlignment.Center, VertAlignment = StiVertAlignment.Center }; content.Components.Add(dateText); left += dateText.Width; } var totalOfContractArtist = new StiText(new RectangleD(left, top, .6, basicHeight)) { Text = "本数", Font = new Font("Meiryo", 6), Border = border, HorAlignment = StiTextHorAlignment.Center, VertAlignment = StiVertAlignment.Center }; content.Components.Add(totalOfContractArtist); left += .6; var subTotalArtist = new StiText(new RectangleD(left, top, 1.1, basicHeight)) { Text = "小計", Font = new Font("Meiryo", 6), Border = border, HorAlignment = StiTextHorAlignment.Center, VertAlignment = StiVertAlignment.Center }; content.Components.Add(subTotalArtist); }
public static StiBorder Border(JProperty prop) { if (prop.Value is JValue) { return(Border((string)((JValue)prop.Value).Value)); } else { var border = new StiBorder(); border.LoadFromJson((JObject)prop.Value); return(border); } }
public override object ConvertTo(ITypeDescriptorContext context, CultureInfo culture, object value, Type destinationType) { if (destinationType == typeof(string) && value is StiBorder) { if (value == null) { return("null"); } else { StiEnumConverter enc = new StiEnumConverter(typeof(StiBorderSides)); return(enc.ConvertTo(context, culture, ((StiBorder)value).Side, typeof(string)) as string); } } if (destinationType == typeof(InstanceDescriptor) && value != null) { #region StiAdvancedBorder if (value is StiAdvancedBorder) { StiAdvancedBorder border = (StiAdvancedBorder)value; Type[] types = new Type[] { typeof(Color), typeof(double), typeof(StiPenStyle), typeof(Color), typeof(double), typeof(StiPenStyle), typeof(Color), typeof(double), typeof(StiPenStyle), typeof(Color), typeof(double), typeof(StiPenStyle), typeof(bool), typeof(double), typeof(StiBrush), typeof(bool) }; ConstructorInfo info = typeof(StiAdvancedBorder).GetConstructor(types); if (info != null) { object[] objs = new object[] { border.TopSide.Color, border.TopSide.Size, border.TopSide.Style, border.BottomSide.Color, border.BottomSide.Size, border.BottomSide.Style, border.LeftSide.Color, border.LeftSide.Size, border.LeftSide.Style, border.RightSide.Color, border.RightSide.Size, border.RightSide.Style, border.DropShadow, border.ShadowSize, border.ShadowBrush, border.Topmost }; return(CreateNewInstanceDescriptor(info, objs)); } } #endregion #region StiBorder else { StiBorder border = (StiBorder)value; Type[] types = new Type[] { typeof(StiBorderSides), typeof(Color), typeof(double), typeof(StiPenStyle), typeof(bool), typeof(double), typeof(StiBrush), typeof(bool) }; ConstructorInfo info = typeof(StiBorder).GetConstructor(types); if (info != null) { object[] objs = new object[] { border.Side, border.Color, border.Size, border.Style, border.DropShadow, border.ShadowSize, border.ShadowBrush, border.Topmost }; return(CreateNewInstanceDescriptor(info, objs)); } } #endregion } return(base.ConvertTo(context, culture, value, destinationType)); }
private void ReadBorder(XmlNode node, StiComponent comp) { try { if (comp is IStiBorder) { StiBorder border = ((IStiBorder)comp).Border; #region Border.Color border.Color = ReadColor(node, "Border.Color"); #endregion #region Border.Lines XmlAttribute attr = node.Attributes["Border.Lines"]; if (attr != null) { if (attr.Value == "All") { border.Side = StiBorderSides.All; } else { if (attr.Value.Contains("Left")) { border.Side |= StiBorderSides.Left; } if (attr.Value.Contains("Right")) { border.Side |= StiBorderSides.Right; } if (attr.Value.Contains("Top")) { border.Side |= StiBorderSides.Top; } if (attr.Value.Contains("Bottom")) { border.Side |= StiBorderSides.Bottom; } } } #endregion #region Border.Width border.Size = ReadDouble(node, "Border.Width", comp, 1d); #endregion #region Border.Style attr = node.Attributes["Border.Style"]; if (attr != null) { switch (attr.Value) { case "Dash": border.Style = StiPenStyle.Dash; break; case "DashDot": border.Style = StiPenStyle.DashDot; break; case "DashDotDot": border.Style = StiPenStyle.DashDotDot; break; case "Dot": border.Style = StiPenStyle.Dot; break; case "Double": border.Style = StiPenStyle.Double; break; case "Solid": border.Style = StiPenStyle.Solid; break; } } #endregion #region Border.Shadow border.DropShadow = ReadBool(node, "Border.Shadow", comp, false); #endregion #region Border.ShadowWidth border.ShadowSize = ReadDouble(node, "Border.ShadowWidth", comp, 4d); #endregion #region Border.ShadowColor attr = node.Attributes["Border.ShadowColor"]; if (attr != null) { border.ShadowBrush = new StiSolidBrush(ReadColor(node, "Border.ShadowColor")); } #endregion } } catch { } }
private static StiBorder Border(string text) { var values = text.Split(';'); if (values.Length == 7) { bool dropShadow = false; double shadowSize = 4d; var shadowBrush = new StiSolidBrush(System.Drawing.Color.Black); return(new StiAdvancedBorder(JBorderSide(values[0]), JBorderSide(values[1]), JBorderSide(values[2]), JBorderSide(values[3]), dropShadow, shadowSize, shadowBrush)); } else { var border = new StiBorder(); // Side if (!string.IsNullOrEmpty(values[0])) { border.Side = (StiBorderSides)Enum.Parse(typeof(StiBorderSides), values[0]); } // Color if (!string.IsNullOrEmpty(values[1])) { border.Color = Color(values[1]); } // Size if (!string.IsNullOrEmpty(values[2])) { border.Size = double.Parse(values[2]); } // Style if (!string.IsNullOrEmpty(values[3])) { border.Style = (StiPenStyle)Enum.Parse(typeof(StiPenStyle), values[3]); } // ShadowSize if (!string.IsNullOrEmpty(values[4])) { border.ShadowSize = double.Parse(values[4]); } // DropShadow if (!string.IsNullOrEmpty(values[5])) { border.DropShadow = true; } // Topmost if (!string.IsNullOrEmpty(values[6])) { border.Topmost = true; } // ShadowBrush if (!string.IsNullOrEmpty(values[7])) { border.ShadowBrush = Brush(values[7]); } return(border); } }
public static string JBorder(StiBorder border) { var builder = new StringBuilder(); var advancedBorder = border as StiAdvancedBorder; if (advancedBorder != null) { // TopSide builder.Append(JBorderSide(advancedBorder.TopSide)); builder.Append(";"); // BottomSide builder.Append(JBorderSide(advancedBorder.BottomSide)); builder.Append(";"); // LeftSide builder.Append(JBorderSide(advancedBorder.LeftSide)); builder.Append(";"); // RightSide builder.Append(JBorderSide(advancedBorder.RightSide)); builder.Append(";"); // DropShadow if (border.DropShadow) { builder.Append(border.DropShadow); } builder.Append(";"); // ShadowSize if (border.ShadowSize != 4d) { builder.Append(border.ShadowSize); } builder.Append(";"); // ShadowBrush builder.Append(JBrush(border.ShadowBrush, new StiSolidBrush(Color.Black))); } else { // Side if (border.Side != StiBorderSides.None) { builder.Append(border.Side); } builder.Append(";"); // Color if (border.Color != Color.Black) { builder.Append(JColor(border.Color)); } builder.Append(";"); // Size if (border.Size != 1d) { builder.Append(border.Size); } builder.Append(";"); // Style if (border.Style != StiPenStyle.Solid) { builder.Append(border.Style); } builder.Append(";"); // ShadowSize if (border.ShadowSize != 4d) { builder.Append(border.ShadowSize); } builder.Append(";"); // DropShadow if (border.DropShadow) { builder.Append(border.DropShadow); } builder.Append(";"); // Topmost if (border.Topmost) { builder.Append(border.Topmost); } builder.Append(";"); // ShadowBrush builder.Append(JBrush(border.ShadowBrush, new StiSolidBrush(Color.Black))); } return(builder.ToString()); }
public IActionResult PurchaseStatisticsBPrint(SearchFormModel model) { model.Type = (int)Constants.PurchaseType.B; var result = _unitOfWork.PurchaseStatisticsRepository.GetListOfContractByPurchaseStatisticsCd(model); var reportLocation = "./wwwroot/report/PurchaseStatisticsBReport.mrt"; var report = new StiReport(); StiFontCollection.AddFontFile("./wwwroot/assets/fonts/meiryo/Meiryo W53 Regular.ttf", "Meiryo"); StiFontCollection.AddFontFile("./wwwroot/assets/fonts/meiryo/MeiryoUI-Bold.ttf", "Meiryo UI"); report.Load(reportLocation); report.ReportName = string.Concat("購入者リスト集計表 B_", DateTime.Now.ToString(Constants.ExactDateTimeFormat)); report["EventName"] = $"【{result.EventName}】"; report["EventAddress"] = result.EventAddress + (string.IsNullOrEmpty(result.EventPlace) ? string.Empty : $"({result.EventPlace})"); report["PeriodTime"] = result.PeriodTime; report["EventManager"] = result.EventManagerString; report["InputPerson"] = result.InputPersonString; var content = report.Pages["content"]; var border = new StiBorder(StiBorderSides.All, Color.Black, 1, StiPenStyle.Solid); double top = .2, left = 0, basicWidth = .4, basicHeight = .2; var countDays = (result.EndDate - result.StartDate).TotalDays + 1; var dynamicWidth = Math.Round(basicWidth + (7 - countDays) * 1.4 / countDays / 3, 2); DrawTitleB(content, result.StartDate, result.EndDate, dynamicWidth); foreach (var artist in result.ArtistsTotal) { artist.MaxCell = artist.MaxCell < 6 ? 6 : artist.MaxCell; while (artist.MaxCell % 3 != 0) { artist.MaxCell++; } var artistName = new StiText(new RectangleD(left, top, 1.2, Math.Round((double)artist.MaxCell / 3) * .2 + basicHeight)) { Text = artist.ArtistName, Font = new Font("Meiryo", 6), WordWrap = true, Border = border, HorAlignment = StiTextHorAlignment.Center, VertAlignment = StiVertAlignment.Center }; content.Components.Add(artistName); left += artistName.Width; for (var date = result.StartDate; date.Date <= result.EndDate.Date; date = date.AddDays(1)) { var cell = result.RowDetails.FirstOrDefault(x => x.ArtistCd == artist.ArtistCd && x.HoldDate.Date.CompareTo(date.Date) == 0); var emptyText = new StiText(new RectangleD(left, top + artistName.Height - basicHeight, dynamicWidth, basicHeight)) { Text = string.Empty, Border = border, }; content.Components.Add(emptyText); var numberOfContracts = new StiText(new RectangleD(left + dynamicWidth, top + artistName.Height - basicHeight, dynamicWidth, basicHeight)) { Text = (cell?.NumberOfContracts ?? 0).ToString(), Font = new Font("Meiryo", 5), WordWrap = true, Border = border, HorAlignment = StiTextHorAlignment.Right, VertAlignment = StiVertAlignment.Center, Margins = new StiMargins(0, 2, 0, 0) }; content.Components.Add(numberOfContracts); var totalPriceOfContracts = new StiText(new RectangleD(left + dynamicWidth * 2, top + artistName.Height - basicHeight, dynamicWidth, basicHeight)) { Text = (cell?.TotalPriceOfContracts ?? 0).ToString(Constants.CurrencyFormat), Font = new Font("Meiryo", 5), Border = border, HorAlignment = StiTextHorAlignment.Right, VertAlignment = StiVertAlignment.Center, Margins = new StiMargins(0, 2, 0, 0), ShrinkFontToFit = true, ShrinkFontToFitMinimumSize = 4 }; content.Components.Add(totalPriceOfContracts); double topPrice = top, leftPrice = left; for (var i = 0; i < artist.MaxCell; i++) { var rec = new RectangleD(leftPrice, topPrice, dynamicWidth, basicHeight); var price = new StiText(rec) { Text = (cell == null || i >= cell.ContractPrices.Count) ? string.Empty : cell.ContractPrices[i].ToString(Constants.CurrencyFormat), Font = new Font("Meiryo", 5), WordWrap = true, Border = border, HorAlignment = StiTextHorAlignment.Right, VertAlignment = StiVertAlignment.Center, Margins = new StiMargins(0, 2, 0, 0) }; if ((i + 1) % 3 == 0) { leftPrice -= dynamicWidth * 2; topPrice += .2; } else { leftPrice += dynamicWidth; } content.Components.Add(price); } left += dynamicWidth * 3; } var totalContracts = new StiText(new RectangleD(left, top, .6, artistName.Height)) { Text = artist.TotalContracts.ToString(), Font = new Font("Meiryo", 5), WordWrap = true, Border = border, HorAlignment = StiTextHorAlignment.Center, VertAlignment = StiVertAlignment.Center }; content.Components.Add(totalContracts); left += .6; var subTotal = new StiText(new RectangleD(left, top, 1.1, artistName.Height)) { Text = artist.SubTotal.ToString(Constants.CurrencyFormat), Font = new Font("Meiryo", 5), Border = border, HorAlignment = StiTextHorAlignment.Right, VertAlignment = StiVertAlignment.Center, Margins = new StiMargins(0, 2, 0, 0), ShrinkFontToFit = true, ShrinkFontToFitMinimumSize = 4 }; content.Components.Add(subTotal); left = 0; top += artistName.Height; } var totalText = new StiText(new RectangleD(left, top, 1.2, basicHeight)) { Text = "合計", Font = new Font("Meiryo", 6), Border = border, HorAlignment = StiTextHorAlignment.Center, VertAlignment = StiVertAlignment.Center }; content.Components.Add(totalText); left += 1.2; for (var date = result.StartDate; date.Date <= result.EndDate.Date; date = date.AddDays(1)) { var cell = result.DateTotal.FirstOrDefault(x => date.Date.CompareTo(x.Date.Value.Date) == 0); var emptyText = new StiText(new RectangleD(left, top, dynamicWidth, basicHeight)) { Text = string.Empty, Border = border, }; content.Components.Add(emptyText); left += dynamicWidth; var numberOfContracts = new StiText(new RectangleD(left, top, dynamicWidth, basicHeight)) { Text = (cell?.TotalContracts ?? 0).ToString(), Font = new Font("Meiryo", 5), Border = border, HorAlignment = StiTextHorAlignment.Right, VertAlignment = StiVertAlignment.Center, Margins = new StiMargins(0, 2, 0, 0) }; content.Components.Add(numberOfContracts); left += dynamicWidth; var totalPriceOfContracts = new StiText(new RectangleD(left, top, dynamicWidth, basicHeight)) { Text = (cell?.SubTotal ?? 0).ToString(Constants.CurrencyFormat), Font = new Font("Meiryo", 5), Border = border, HorAlignment = StiTextHorAlignment.Right, VertAlignment = StiVertAlignment.Center, Margins = new StiMargins(0, 2, 0, 0), ShrinkFontToFit = true, ShrinkFontToFitMinimumSize = 4 }; content.Components.Add(totalPriceOfContracts); left += dynamicWidth; } var sumNumberOfContracts = new StiText(new RectangleD(left, top, .6, basicHeight)) { Text = result.ArtistsTotal.Sum(x => x.TotalContracts).ToString(), Font = new Font("Meiryo", 5), Border = border, HorAlignment = StiTextHorAlignment.Center, VertAlignment = StiVertAlignment.Center }; content.Components.Add(sumNumberOfContracts); left += sumNumberOfContracts.Width; var total = new StiText(new RectangleD(left, top, 1.1, basicHeight)) { Text = result.ArtistsTotal.Sum(x => x.SubTotal).ToString(Constants.CurrencyFormat), Font = new Font("Meiryo", 5), Border = border, HorAlignment = StiTextHorAlignment.Right, VertAlignment = StiVertAlignment.Center, Margins = new StiMargins(0, 2, 0, 0), ShrinkFontToFit = true, ShrinkFontToFitMinimumSize = 4 }; content.Components.Add(total); return(StiNetCoreReportResponse.PrintAsPdf(report)); }