From 1a1c8e71fcd14858f595029f089b2d4a00202b32 Mon Sep 17 00:00:00 2001
From: ogi <Administrator@S-OGI-PC>
Date: Fri, 05 Dec 2025 09:24:16 +0900
Subject: [PATCH] プロジェクトファイルを追加。
---
HotelPms.Share.Windows/Report/ReportBase.cs | 148 +++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 148 insertions(+), 0 deletions(-)
diff --git a/HotelPms.Share.Windows/Report/ReportBase.cs b/HotelPms.Share.Windows/Report/ReportBase.cs
new file mode 100644
index 0000000..9fc944f
--- /dev/null
+++ b/HotelPms.Share.Windows/Report/ReportBase.cs
@@ -0,0 +1,148 @@
+using Microsoft.Win32;
+using HotelPms.Share.Util;
+using System;
+using System.Collections.Generic;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Windows.Forms;
+using HotelPms.Share.Windows.Util;
+
+namespace HotelPms.Share.Windows.Report
+{
+ public enum ReportType : int
+ {
+ Print = 0,
+ Pdf,
+ Xlsx,
+ Csv,
+ Html,
+ Json,
+ Xml,
+ Xls,
+ Preveiw,
+ }
+
+#pragma warning disable CA1416
+ public abstract class ReportBase
+ {
+ protected float m_PrintWidth = 700F; // 印字使用幅(A4)
+ protected float m_PrintHeight = 1032F; // 印字使用高(A4)
+
+ protected float m_LeftMargins = 50F; //左余白
+ protected float m_TopMargins = 60F; //上余白
+
+ protected int m_PageCount = 0;
+ protected int m_PageIndex = 1;
+ protected int m_DataRowIndex = 0;
+ protected float m_DetailRowHeight = 0F;
+ protected float m_TitleHeight = 0F;
+ protected int m_DetailRowCount = 0;
+ protected float m_HeaderHeight = 0F;
+ protected float m_CaptionHeight = 0F; //項目名の固定行
+ protected float m_FooterHeight = 0F;
+
+
+ protected DataTable m_Data = null;
+
+ public DataTable Data
+ {
+ get { return m_Data; }
+ set { m_Data = value; }
+ }
+
+ protected GridStyle m_Style = null;
+
+ public GridStyle Style
+ {
+ get { return m_Style; }
+ set { m_Style = value; }
+ }
+
+ /// <summary>
+ /// 1/100 インチ ⇒ Point
+ /// </summary>
+ /// <param name="value"></param>
+ /// <returns></returns>
+ public float GetPointWithDisplay(float value)
+ {
+ return value * 0.72F;
+ }
+
+ public float GetTextHeight(Graphics g, Font font)
+ {
+ return g.MeasureString("A", font).Height;
+ }
+
+ public float GetTextWidth(Graphics g, Font font, string text)
+ {
+ return g.MeasureString(text, font).Width;
+ }
+
+ public static void CreateColumnStyle(DataGridView grid, GridStyle style)
+ {
+ style.ColumnStyle.Clear();
+ int total = 0;
+ int lastIdx = 0;
+ foreach (DataGridViewColumn col in grid.Columns)
+ {
+ if (!col.Visible || (col.CellType.Name != "DataGridViewTextBoxCell")) { continue; }
+ total += col.Width;
+ lastIdx = col.Index;
+ }
+
+ float rate = 0F;
+ foreach (DataGridViewColumn col in grid.Columns)
+ {
+ if (!col.Visible || (col.CellType.Name != "DataGridViewTextBoxCell")) { continue; }
+
+ ColumnStyle colStyle = new ColumnStyle();
+ colStyle.DefaultCellStyle = new CellStyle();
+ colStyle.WidthRate = lastIdx == col.Index ? (1.0F - rate) : (float)CConvert.Divide(col.Width * 1.0F, total, 2);
+ colStyle.Width = col.Width * 1.0F;
+ rate += colStyle.WidthRate;
+ colStyle.DataField = col.DataPropertyName.Length > 0 ? col.DataPropertyName : col.Name;
+ colStyle.Text = col.HeaderText;
+ colStyle.Alignment = GeneralSub.ToStringAlignment(grid.ColumnHeadersDefaultCellStyle.Alignment);
+ colStyle.LineAlignment = GeneralSub.ToLineStringAlignment(grid.ColumnHeadersDefaultCellStyle.Alignment);
+ colStyle.DefaultCellStyle.Alignment = GeneralSub.ToStringAlignment(col.DefaultCellStyle.Alignment);
+ colStyle.DefaultCellStyle.LineAlignment = GeneralSub.ToLineStringAlignment(col.DefaultCellStyle.Alignment);
+ colStyle.DefaultCellStyle.Font = col.DefaultCellStyle.Font;
+ colStyle.Font = grid.ColumnHeadersDefaultCellStyle.Font;
+ style.ColumnStyle.Add(colStyle);
+ }
+ }
+
+ public static SortedDictionary<string, string> ReadFontInformation()
+ {
+ var dictionary = new SortedDictionary<string, string>();
+
+ RegistryKey mykey = Registry.LocalMachine;
+
+ string key = @"SOFTWARE\Microsoft\Windows NT\CurrentVersion\Fonts";
+ using (RegistryKey regkey = mykey.OpenSubKey(key, false))
+ {
+ if (regkey != null)
+ {
+ //获取字体名
+ string[] mynames = regkey.GetValueNames();
+
+ foreach (string name in mynames)
+ {
+ //获取字体的文件名
+ string myvalue = regkey.GetValue(name).ToString();
+
+ if (myvalue.Substring(myvalue.Length - 4).ToUpper() == ".TTF" && myvalue.Substring(1, 2).ToUpper() != @":\")
+ {
+ string val = name.Substring(0, name.Length - 11);
+ dictionary[val] = myvalue;
+ }
+ }
+ regkey.Close();
+ }
+ }
+ return dictionary;
+ }
+ }
+}
--
Gitblit v1.10.0