Sales Map.frx 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <Report ScriptLanguage="CSharp" ReportInfo.Created="03/18/2023 15:42:04" ReportInfo.Modified="03/26/2023 03:05:27" ReportInfo.CreatorVersion="1.0.0.0">
  3. <ScriptText>using System;
  4. using System.Collections;
  5. using System.Collections.Generic;
  6. using System.ComponentModel;
  7. using System.Windows.Forms;
  8. using System.Drawing;
  9. using System.Data;
  10. using FastReport;
  11. using FastReport.Data;
  12. using FastReport.Dialog;
  13. using FastReport.Barcode;
  14. using FastReport.Table;
  15. using FastReport.Utils;
  16. using FastReport.Map;
  17. namespace FastReport
  18. {
  19. public class ReportScript
  20. {
  21. private Dictionary&lt;string,string&gt; states = new Dictionary&lt;string,string&gt;();
  22. private void Child1_BeforePrint(object sender, EventArgs e)
  23. {
  24. // extract state names from the map layer
  25. foreach (ShapeBase shape in Layer1.Shapes)
  26. {
  27. var abbrev = shape.SpatialData.GetValue(&quot;ABBREV&quot;);
  28. var name = shape.SpatialData.GetValue(&quot;NAME&quot;);
  29. states[abbrev] = name;
  30. }
  31. }
  32. }
  33. }
  34. </ScriptText>
  35. <Dictionary>
  36. <TableDataSource Name="Order Details" ReferenceName="NorthWind.Order Details" DataType="System.Int32" Enabled="true">
  37. <Column Name="OrderID" DataType="System.Int32"/>
  38. <Column Name="ProductID" DataType="System.Int32"/>
  39. <Column Name="UnitPrice" DataType="System.Decimal"/>
  40. <Column Name="Quantity" DataType="System.Int16"/>
  41. <Column Name="Discount" DataType="System.Single"/>
  42. <Column Name="Price" DataType="System.Decimal" PropName="Column" Calculated="true" Expression="[Order Details.Quantity]*[Order Details.UnitPrice]*(decimal)(1 - [Order Details.Discount])"/>
  43. </TableDataSource>
  44. <TableDataSource Name="Orders" ReferenceName="NorthWind.Orders" DataType="System.Int32" Enabled="true">
  45. <Column Name="OrderID" DataType="System.Int32"/>
  46. <Column Name="CustomerID" DataType="System.String"/>
  47. <Column Name="EmployeeID" DataType="System.Int32"/>
  48. <Column Name="OrderDate" DataType="System.DateTime"/>
  49. <Column Name="RequiredDate" DataType="System.DateTime"/>
  50. <Column Name="ShippedDate" DataType="System.DateTime"/>
  51. <Column Name="ShipVia" DataType="System.Int32"/>
  52. <Column Name="Freight" DataType="System.Decimal"/>
  53. <Column Name="ShipName" DataType="System.String"/>
  54. <Column Name="ShipAddress" DataType="System.String"/>
  55. <Column Name="ShipCity" DataType="System.String"/>
  56. <Column Name="ShipRegion" DataType="System.String"/>
  57. <Column Name="ShipPostalCode" DataType="System.String"/>
  58. <Column Name="ShipCountry" DataType="System.String"/>
  59. <Column Name="Latitude" DataType="System.Double"/>
  60. <Column Name="Longitude" DataType="System.Double"/>
  61. </TableDataSource>
  62. <TableDataSource Name="Customers" ReferenceName="NorthWind.Customers" DataType="System.Int32" Enabled="true">
  63. <Column Name="CustomerID" DataType="System.String"/>
  64. <Column Name="CompanyName" DataType="System.String"/>
  65. <Column Name="ContactName" DataType="System.String"/>
  66. <Column Name="ContactTitle" DataType="System.String"/>
  67. <Column Name="Address" DataType="System.String"/>
  68. <Column Name="City" DataType="System.String"/>
  69. <Column Name="Region" DataType="System.String"/>
  70. <Column Name="PostalCode" DataType="System.String"/>
  71. <Column Name="Country" DataType="System.String"/>
  72. <Column Name="Phone" DataType="System.String"/>
  73. <Column Name="Fax" DataType="System.String"/>
  74. </TableDataSource>
  75. <TableDataSource Name="Products" ReferenceName="NorthWind.Products" DataType="System.Int32" Enabled="true">
  76. <Column Name="ProductID" DataType="System.Int32"/>
  77. <Column Name="ProductName" DataType="System.String"/>
  78. <Column Name="SupplierID" DataType="System.Int32"/>
  79. <Column Name="CategoryID" DataType="System.Int32"/>
  80. <Column Name="QuantityPerUnit" DataType="System.String"/>
  81. <Column Name="UnitPrice" DataType="System.Decimal"/>
  82. <Column Name="UnitsInStock" DataType="System.Int16"/>
  83. <Column Name="UnitsOnOrder" DataType="System.Int16"/>
  84. <Column Name="ReorderLevel" DataType="System.Int16"/>
  85. <Column Name="Discontinued" DataType="System.Boolean" BindableControl="CheckBox"/>
  86. <Column Name="EAN13" DataType="System.String"/>
  87. </TableDataSource>
  88. <Relation Name="OrdersOrderDetails" ReferenceName="NorthWind.OrdersOrderDetails" ParentDataSource="Orders" ChildDataSource="Order Details" ParentColumns="OrderID" ChildColumns="OrderID" Enabled="true"/>
  89. <Relation Name="CustomersOrders" ReferenceName="NorthWind.CustomersOrders" ParentDataSource="Customers" ChildDataSource="Orders" ParentColumns="CustomerID" ChildColumns="CustomerID" Enabled="true"/>
  90. <Relation Name="ProductsOrderDetails" ReferenceName="NorthWind.ProductsOrderDetails" ParentDataSource="Products" ChildDataSource="Order Details" ParentColumns="ProductID" ChildColumns="ProductID" Enabled="true"/>
  91. <Parameter Name="SelectedRegion" DataType="System.String" AsString="MT"/>
  92. <Total Name="OrderTotal" Expression="[Order Details.Price]" Evaluator="Data2" PrintOn="DataFooter1"/>
  93. <Total Name="GrandTotal" Expression="[Order Details.Price]" Evaluator="Data2" PrintOn="DataFooter2"/>
  94. </Dictionary>
  95. <ReportPage Name="Page1" RawPaperSize="9" Watermark.Font="Segoe UI, 60pt" UnlimitedHeight="true" UnlimitedWidth="true" LastPageSource="15" FirstPageSource="15">
  96. <ReportTitleBand Name="ReportTitle1" Width="718.2" Height="75.6">
  97. <TextObject Name="Text1" Left="189" Width="529.2" Height="56.7" Text="SALES IN THE USA" VertAlign="Center" Font="Segoe UI, 24pt, style=Bold" TextFill.Color="DimGray"/>
  98. <TextObject Name="Text18" Width="56.7" Height="56.7" Text="Ṅ" VertAlign="Center" Font="Segoe UI, 36pt, style=Bold" TextFill.Color="DimGray"/>
  99. <TextObject Name="Text19" Left="56.7" Top="9.45" Width="94.5" Height="37.8" Border.Lines="Left" Text="NORTHWIND&#13;&#10;TRADERS" Padding="10, 0, 2, 0" VertAlign="Center" Font="Segoe UI, 9pt" TextFill.Color="DimGray"/>
  100. <ChildBand Name="Child1" Top="77.6" Width="718.2" Height="604.8" BeforePrintEvent="Child1_BeforePrint">
  101. <MapObject Name="Map1" Top="37.8" Width="718.2" Height="548.1" Fill.Color="White" Hyperlink.Kind="DetailPage" Hyperlink.DetailPageName="Page2" Hyperlink.ReportParameter="SelectedRegion" ColorScale.TitleFont="Segoe UI, 9pt" ColorScale.Font="Segoe UI, 9pt">
  102. <MapLayer Name="Layer1" Shapefile="..\..\Maps\usa1.shp" Type="Polygon" DataSource="Order Details" Filter="[Order Details.Orders.ShipCountry] == &quot;USA&quot;" SpatialColumn="ABBREV" SpatialValue="[Order Details.Orders.ShipRegion]" AnalyticalValue="[Order Details.Price]" LabelColumn="NAME" LabelKind="NameAndValue" LabelFormat="C" BoxAsString="-125.463921613118,19.8932814128116,-66.9698486328125,49.3717346191406" DefaultShapeStyle.BorderColor="WhiteSmoke" DefaultShapeStyle.Font="Segoe UI, 9pt" ColorRanges.StartColor="LightBlue" ColorRanges.MiddleColor="Khaki" ColorRanges.EndColor="DarkSalmon" ColorRanges.ShowInColorScale="true" ColorRanges.RangesAsString="Transparent;NaN;NaN&#13;&#10;Transparent;NaN;NaN&#13;&#10;Transparent;NaN;NaN&#13;&#10;Transparent;NaN;NaN&#13;&#10;Transparent;NaN;NaN" SizeRanges.StartSize="4" SizeRanges.EndSize="20" SizeRanges.RangesAsString=""/>
  103. </MapObject>
  104. <TextObject Name="Text31" Width="670.95" Height="28.35" Text="Use the left mouse button to pan, mouse wheel to zoom the map. Click map area to show details." Padding="10, 0, 2, 0" VertAlign="Center" Font="Segoe UI, 9pt" TextFill.Color="DimGray"/>
  105. </ChildBand>
  106. </ReportTitleBand>
  107. </ReportPage>
  108. <ReportPage Name="Page2" Visible="false" Watermark.Font="Segoe UI, 60pt">
  109. <ReportTitleBand Name="ReportTitle2" Width="718.2" Height="56.7">
  110. <TextObject Name="Text30" Width="529.2" Height="37.8" Text="SALES IN [states[[SelectedRegion]]]" Font="Segoe UI, 20pt, style=Bold" TextFill.Color="DimGray"/>
  111. </ReportTitleBand>
  112. <DataBand Name="Data1" Top="58.7" Width="718.2" Height="56.7" Fill.Color="WhiteSmoke" DataSource="Orders" Filter="[Orders.ShipRegion] == [SelectedRegion]">
  113. <TextObject Name="Text20" Top="28.35" Width="94.5" Height="18.9" Text="[Orders.OrderID]" Font="Segoe UI, 9pt"/>
  114. <TextObject Name="Text21" Left="94.5" Top="28.35" Width="94.5" Height="18.9" Text="[Orders.OrderDate]" Format="Date" Format.Format="d" Font="Segoe UI, 9pt"/>
  115. <TextObject Name="Text22" Left="189" Top="28.35" Width="226.8" Height="18.9" Text="[Orders.Customers.CompanyName]" Font="Segoe UI, 9pt"/>
  116. <TextObject Name="Text2" Top="9.45" Width="94.5" Height="18.9" Text="Order ID" Font="Segoe UI, 9pt, style=Bold"/>
  117. <TextObject Name="Text3" Left="94.5" Top="9.45" Width="94.5" Height="18.9" Text="Order date" Font="Segoe UI, 9pt, style=Bold"/>
  118. <TextObject Name="Text4" Left="189" Top="9.45" Width="226.8" Height="18.9" Text="Company name" Font="Segoe UI, 9pt, style=Bold"/>
  119. <DataBand Name="Data2" Top="147.75" Width="718.2" Height="18.9" DataSource="Order Details">
  120. <TextObject Name="Text23" Left="18.9" Width="245.7" Height="18.9" Border.Lines="Bottom" Border.Color="Gainsboro" Text="[Order Details.Products.ProductName]" Font="Segoe UI, 9pt"/>
  121. <TextObject Name="Text24" Left="264.6" Width="94.5" Height="18.9" Border.Lines="Bottom" Border.Color="Gainsboro" Text="[Order Details.UnitPrice]" Format="Currency" Format.UseLocale="true" Format.DecimalDigits="2" HorzAlign="Right" WordWrap="false" Font="Segoe UI, 9pt" Trimming="EllipsisCharacter"/>
  122. <TextObject Name="Text25" Left="359.1" Width="94.5" Height="18.9" Border.Lines="Bottom" Border.Color="Gainsboro" Text="[Order Details.Quantity]" HorzAlign="Center" Font="Segoe UI, 9pt"/>
  123. <TextObject Name="Text26" Left="453.6" Width="94.5" Height="18.9" Border.Lines="Bottom" Border.Color="Gainsboro" Text="[Order Details.Discount]" Format="Percent" Format.UseLocale="true" Format.DecimalDigits="0" HorzAlign="Center" WordWrap="false" Font="Segoe UI, 9pt" Trimming="EllipsisCharacter"/>
  124. <TextObject Name="Text27" Left="548.1" Width="94.5" Height="18.9" Border.Lines="Bottom" Border.Color="Gainsboro" Text="[Order Details.Price]" Format="Currency" Format.UseLocale="true" Format.DecimalDigits="2" HorzAlign="Right" WordWrap="false" Font="Segoe UI, 9pt" Trimming="EllipsisCharacter"/>
  125. <DataHeaderBand Name="DataHeader1" Top="117.4" Width="718.2" Height="28.35">
  126. <TextObject Name="Text5" Left="18.9" Top="9.45" Width="245.7" Height="18.9" Border.Lines="Bottom" Border.Color="Gainsboro" Text="Product name" Font="Segoe UI, 9pt, style=Bold"/>
  127. <TextObject Name="Text6" Left="264.6" Top="9.45" Width="94.5" Height="18.9" Border.Lines="Bottom" Border.Color="Gainsboro" Text="Unit price" HorzAlign="Right" Font="Segoe UI, 9pt, style=Bold"/>
  128. <TextObject Name="Text7" Left="359.1" Top="9.45" Width="94.5" Height="18.9" Border.Lines="Bottom" Border.Color="Gainsboro" Text="Quantity" HorzAlign="Center" Font="Segoe UI, 9pt, style=Bold"/>
  129. <TextObject Name="Text8" Left="453.6" Top="9.45" Width="94.5" Height="18.9" Border.Lines="Bottom" Border.Color="Gainsboro" Text="Discount" HorzAlign="Center" Font="Segoe UI, 9pt, style=Bold"/>
  130. <TextObject Name="Text9" Left="548.1" Top="9.45" Width="94.5" Height="18.9" Border.Lines="Bottom" Border.Color="Gainsboro" Text="Price" HorzAlign="Right" Font="Segoe UI, 9pt, style=Bold"/>
  131. </DataHeaderBand>
  132. <DataFooterBand Name="DataFooter1" Top="168.65" Width="718.2" Height="37.8">
  133. <TextObject Name="Text28" Left="453.6" Width="189" Height="18.9" Text="Subtotal: [OrderTotal]" Format="Currency" Format.UseLocale="true" Format.DecimalDigits="2" HorzAlign="Right" Font="Segoe UI, 9pt, style=Bold"/>
  134. </DataFooterBand>
  135. </DataBand>
  136. <DataFooterBand Name="DataFooter2" Top="208.45" Width="718.2" Height="37.8" Border.Color="Gainsboro" Border.Style="Double">
  137. <TextObject Name="Text29" Width="642.6" Height="28.35" Border.Lines="Top" Border.Color="Gainsboro" Border.Style="Double" Text="Grand total: [GrandTotal]" Format="Currency" Format.UseLocale="true" Format.DecimalDigits="2" HorzAlign="Right" VertAlign="Center" Font="Segoe UI, 9pt, style=Bold"/>
  138. </DataFooterBand>
  139. </DataBand>
  140. <PageFooterBand Name="PageFooter1" Top="248.25" Width="718.2" Height="18.9"/>
  141. </ReportPage>
  142. </Report>