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.SourceFactory/FormReport.cs | 367 ++++++++++++++++++++++++++++++++++++++++++++++++++++
1 files changed, 367 insertions(+), 0 deletions(-)
diff --git a/HotelPms.SourceFactory/FormReport.cs b/HotelPms.SourceFactory/FormReport.cs
new file mode 100644
index 0000000..29ce2a4
--- /dev/null
+++ b/HotelPms.SourceFactory/FormReport.cs
@@ -0,0 +1,367 @@
+using HotelPms.Share.Windows.Component;
+using HotelPms.Share.Windows.Report;
+using HotelPms.Share.Windows.Report.Member;
+using HotelPms.Share.Windows.Util;
+using System;
+using System.Collections.Generic;
+using System.ComponentModel;
+using System.Data;
+using System.Drawing;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+using System.Windows.Forms;
+
+namespace HotelPms.SourceFactory
+{
+ public partial class FormReport : Form
+ {
+ private DataTable listData;
+
+ private DataTable data;
+
+ public FormReport()
+ {
+ InitializeComponent();
+ }
+
+ private void FormReport_Load(object sender, EventArgs e)
+ {
+ GeneralSub.SetDoubleBuffered(dataGridView1);
+ GeneralSub.InitDataGridView(dataGridView1, true);
+ InitData();
+ InitReport();
+
+ CreateTestData();
+ dataGridView1.DataSource = listData;
+ SetGridStyle();
+ }
+
+ private void InitData()
+ {
+ data = new DataTable();
+ data.Columns.Add("Field0", typeof(DateTime));
+ data.Columns.Add("Field1", typeof(DateTime));
+ data.Columns.Add("Field2", typeof(int));
+ data.Columns.Add("Field3", typeof(int));
+ data.Columns.Add("Field4", typeof(int));
+ data.Columns.Add("Field5", typeof(int));
+ data.Columns.Add("Field6", typeof(int));
+ data.Columns.Add("Field7", typeof(int));
+ data.Columns.Add("Field8", typeof(int));
+ data.Columns.Add("Field9", typeof(string));
+
+ for (int i = 0; i < 100; i++)
+ {
+ DataRow row = data.NewRow();
+ row["Field0"] = DateTime.Now.AddDays((double)i);
+ row["Field1"] = DateTime.Now.AddMinutes(i);
+ row["Field2"] = i + 10000;
+ row["Field3"] = i + 5000;
+ row["Field4"] = i + 6000;
+ row["Field5"] = i + 7000;
+ row["Field6"] = i + 8000;
+ row["Field7"] = i + 9000;
+ row["Field8"] = i + 4000;
+ row["Field9"] = $"備考ですよ:{i}";
+ }
+ }
+
+ private void InitReport()
+ {
+ pnlPageHeader.SetPropertyEx("ReportTag", new ReportControl() { ItemType = ReportControl.EItemType.PageHeader });
+ pnlGroupHeader.SetPropertyEx("ReportTag", new ReportControl() { ItemType = ReportControl.EItemType.GroupHeader });
+ pnlDetail.SetPropertyEx("ReportTag", new ReportControl() { ItemType = ReportControl.EItemType.Detail });
+ }
+
+ private void SetGridStyle()
+ {
+ dataGridView1.ColumnHeadersDefaultCellStyle.SelectionBackColor = SystemColors.Control;
+
+ dataGridView1.Columns[0].Width = 250;
+ dataGridView1.Columns[1].Width = 100;
+ dataGridView1.Columns[2].Width = 80;
+ dataGridView1.Columns[2].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+ dataGridView1.Columns[3].Width = 200;
+ dataGridView1.Columns[4].Width = 150;
+ dataGridView1.Columns[5].Width = 100;
+ dataGridView1.Columns[6].Width = 60;
+ dataGridView1.Columns[6].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+ dataGridView1.Columns[7].Width = 100;
+ dataGridView1.Columns[8].Width = 100;
+ dataGridView1.Columns[9].Width = 150;
+ dataGridView1.Columns[10].Width = 150;
+ dataGridView1.Columns[10].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
+ dataGridView1.Columns[11].Width = 100;
+ dataGridView1.Columns[11].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
+ dataGridView1.Columns[12].Width = 100;
+ dataGridView1.Columns[12].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
+ dataGridView1.Columns[13].Width = 100;
+ dataGridView1.Columns[13].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
+ dataGridView1.Columns[14].Width = 100;
+ dataGridView1.Columns[14].DefaultCellStyle.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleRight;
+ }
+
+
+ private void CreateTestData()
+ {
+ listData = new DataTable();
+ listData.Columns.Add("予約No", typeof(string));
+ listData.Columns.Add("部屋タイプ", typeof(string));
+ listData.Columns.Add("部屋No", typeof(int));
+ listData.Columns.Add("氏名", typeof(string));
+ listData.Columns.Add("カナ", typeof(string));
+ listData.Columns.Add("到着日", typeof(DateTime));
+ listData.Columns.Add("泊数", typeof(int));
+ listData.Columns.Add("出発日", typeof(DateTime));
+ listData.Columns.Add("部屋人数", typeof(int));
+ listData.Columns.Add("利用合計", typeof(int));
+ listData.Columns.Add("入金合計", typeof(int));
+ listData.Columns.Add("現金", typeof(int));
+ listData.Columns.Add("クレジット", typeof(int));
+ listData.Columns.Add("クーポン", typeof(int));
+ listData.Columns.Add("その他", typeof(int));
+
+ for (int i = 0; i < 100; i++)
+ {
+ Random rd = new Random(Guid.NewGuid().GetHashCode());
+
+ DataRow row = listData.NewRow();
+ listData.Rows.Add(row);
+
+ row["予約No"] = Guid.NewGuid().ToString();
+ row["部屋タイプ"] = GetType(rd.Next(1, 4));
+ row["部屋No"] = rd.Next(101, 3000);
+ int nameId = rd.Next(1, 11);
+ row["氏名"] = GetName(nameId) + " " + GetKanjiNumber(rd.Next(1, 11)) + "郎";
+ row["カナ"] = GetNameKana(nameId);
+
+ DateTime cinDate = DateTime.Now.Date.AddDays((double)rd.Next(1, 10));
+ int stay = rd.Next(1, 99);
+ DateTime coutDate = cinDate.AddDays((double)stay);
+ row["到着日"] = cinDate;
+ row["泊数"] = stay;
+ row["出発日"] = coutDate;
+ row["部屋人数"] = rd.Next(1, 11);
+
+ int cash = rd.Next(0, 100000);
+ int credit = rd.Next(0, 100000);
+ int coupon = rd.Next(0, 100000);
+ int other = rd.Next(0, 100000);
+
+ row["利用合計"] = cash + credit + coupon + other;
+ row["入金合計"] = cash + credit + coupon + other;
+ row["現金"] = cash;
+ row["クレジット"] = credit;
+ row["クーポン"] = coupon;
+ row["その他"] = other;
+ }
+ }
+
+ private string GetKanjiNumber(int type)
+ {
+ switch (type)
+ {
+ case 1:
+ return "一";
+ case 2:
+ return "二";
+ case 3:
+ return "三";
+ case 4:
+ return "四";
+ case 5:
+ return "五";
+ case 6:
+ return "六";
+ case 7:
+ return "七";
+ case 8:
+ return "八";
+ case 9:
+ return "九";
+ case 10:
+ return "十";
+ default:
+ return "太";
+ }
+ }
+
+ private string GetNameKana(int type)
+ {
+ switch (type)
+ {
+ case 1:
+ return "クマモト";
+ case 2:
+ return "フクオカ";
+ case 3:
+ return "サトウ";
+ case 4:
+ return "ナカタ";
+ case 5:
+ return "ナカノ";
+ case 6:
+ return "タムラ";
+ case 7:
+ return "キムラ";
+ case 8:
+ return "ヨシカワ";
+ case 9:
+ return "キチセ";
+ case 10:
+ return "ヨシカワ";
+ default:
+ return "タナカ";
+ }
+ }
+
+ private string GetName(int type)
+ {
+ switch (type)
+ {
+ case 1:
+ return "熊本";
+ case 2:
+ return "福岡";
+ case 3:
+ return "佐藤";
+ case 4:
+ return "中田";
+ case 5:
+ return "中野";
+ case 6:
+ return "田村";
+ case 7:
+ return "木村";
+ case 8:
+ return "吉川";
+ case 9:
+ return "吉瀬";
+ case 10:
+ return "吉岡";
+ default:
+ return "田中";
+ }
+ }
+
+ private string GetType(int type)
+ {
+ switch(type)
+ {
+ case 1:
+ return "シングル";
+ case 2:
+ return "ダブル";
+ default:
+ return "ツイン";
+ }
+ }
+
+ private void button2_Click(object sender, EventArgs e)
+ {
+ if (dataGridView1.Rows.Count == 0)
+ {
+ MessageBox.Show("印刷対象を選択してください。", this.Text, MessageBoxButtons.OK, MessageBoxIcon.Information);
+ return;
+ }
+ //using (Graphics g = this.CreateGraphics())
+ //{
+ // g.PageUnit = GraphicsUnit.Pixel;
+ // using (Font font = new Font("MS UI Gothic", 9F))
+ // {
+ // float w = g.MeasureString("濃", font).Width;
+ // }
+ //}
+
+ // Truncate([numChars*7+5]/7*256)/256
+ using (DataTable data = (dataGridView1.DataSource as DataTable).Copy())
+ {
+ GridStyle style = new GridStyle();
+ style.DefaultRowStyle.Padding = new Padding(10);
+ style.DefaultCellStyle.Font = dataGridView1.DefaultCellStyle.Font;
+
+ //ヘッダー情報設定
+ style.Header.DefaultRowStyle.Font = new Font("MS UI Gothic", 12F);
+ style.Header.DefaultRowStyle.Padding = new Padding(5);
+ style.Header.DefaultCellStyle.Font = new Font("MS UI Gothic", 12F);
+
+ #region 一行目
+ PrintRow printRow = new PrintRow();
+ style.Header.Rows.Add(printRow);
+
+ //右下⇒印刷日時+頁:
+ CellStyle cellTyle = new CellStyle
+ {
+ Dock = DockStyle.Right,
+ WidthMode = CellStyle.EWidthMode.TextWidth,
+ Padding = new Padding(0, 3, 3, 0),
+ Font = new Font("メイリオ", 10F),
+ Alignment = StringAlignment.Far,
+ LineAlignment = StringAlignment.Far,
+ Template = "印刷日時:{0}\r\n頁:{1} / {2}"
+ };
+ //cellTyle.TopBorder.Visible = cellTyle.LeftBorder.Visible = cellTyle.RightBorder.Visible = cellTyle.BottomBorder.Visible = true;
+ Cell cell = new Cell { CellType = Cell.CellKind.TimeAndPage, Style = cellTyle };
+ printRow.Cells.Add(cell);
+
+ //タイトル
+ cellTyle = new CellStyle
+ {
+ Dock = DockStyle.Fill,
+ WidthMode = CellStyle.EWidthMode.AutoFill,
+ Padding = new Padding(0, 3, 3, 0),
+ Font = new Font("メイリオ", 18F),
+ Alignment = StringAlignment.Near,
+ LineAlignment = StringAlignment.Center,
+ };
+ //cellTyle.TopBorder.Visible = cellTyle.LeftBorder.Visible = cellTyle.RightBorder.Visible = cellTyle.BottomBorder.Visible = true;
+ cell = new Cell { CellType = Cell.CellKind.Text, Style = cellTyle, Text = "部屋別売上一覧" };
+ printRow.Cells.Add(cell);
+ #endregion
+
+ #region 二行目
+
+ printRow = new PrintRow();
+ style.Header.Rows.Add(printRow);
+
+ cellTyle = new CellStyle
+ {
+ LocalXMode = CellStyle.ELocalXMode.BeginOfCol,
+ WidthMode = CellStyle.EWidthMode.EndOfCol,
+ BeginCol = 0,
+ EndCol = 3,
+ Padding = new Padding(0, 3, 3, 0),
+ Font = new Font("メイリオ", 10F),
+ Alignment = StringAlignment.Near,
+ LineAlignment = StringAlignment.Center,
+ Template = "利用期間:{0}"
+ };
+ //cellTyle.TopBorder.Visible = cellTyle.LeftBorder.Visible = cellTyle.RightBorder.Visible = cellTyle.BottomBorder.Visible = true;
+ cell = new Cell { CellType = Cell.CellKind.Text, Style = cellTyle, Text = "2021/09/01~2021/09/30" };
+ printRow.Cells.Add(cell);
+
+ cellTyle = new CellStyle
+ {
+ LocalXMode = CellStyle.ELocalXMode.BeginOfCol,
+ WidthMode = CellStyle.EWidthMode.TextWidth,
+ BeginCol = 4,
+ Padding = new Padding(0, 3, 3, 0),
+ Font = new Font("メイリオ", 10F),
+ Alignment = StringAlignment.Near,
+ LineAlignment = StringAlignment.Center,
+ };
+ //cellTyle.TopBorder.Visible = cellTyle.LeftBorder.Visible = cellTyle.RightBorder.Visible = cellTyle.BottomBorder.Visible = true;
+ cell = new Cell { CellType = Cell.CellKind.Text, Style = cellTyle, Text = "利用状態:在室、アウト" };
+ printRow.Cells.Add(cell);
+
+ #endregion
+
+ ReportBase.CreateColumnStyle(dataGridView1, style);
+ ReportFactory.OutputGrid(data, style);
+ }
+
+ MessageBox.Show("OK");
+ }
+ }
+}
--
Gitblit v1.10.0