Files
PR_PRM_GUI/LFP_Manager_PRM/Controls/ucHistroy.cs
2026-02-11 10:10:43 +09:00

175 lines
5.4 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Text;
using System.Linq;
using System.Windows.Forms;
using System.IO;
using DevExpress.XtraWaitForm;
using DevExpress.XtraSplashScreen;
using System.Data.SQLite;
using LFP_Manager.DataStructure;
using LFP_Manager.Utils;
namespace LFP_Manager.Controls
{
public partial class ucHistroy : DevExpress.XtraEditors.XtraUserControl
{
#region VARIABLES
CommConfig Config;
DataTable dt;
#endregion
#region CONSTRUCTOR
public ucHistroy()
{
InitializeComponent();
dt = new DataTable();
}
public void SetCommCofig(CommConfig aConfig)
{
Config = aConfig;
}
#endregion
#region SQL Quary Excute
private void quaryExcute(string quary)
{
string dbFilename = System.IO.Path.GetDirectoryName(Application.ExecutablePath) + csDbConstData.DataBase.FileName;
// Open database
string strConn = @"Data Source=" + dbFilename;
using (var connection = new SQLiteConnection(strConn))
{
connection.Open();
try
{
DataTable aT = new DataTable();
DbWaitForm.ShowWaitForm();
csDbUtils.BeginTran(connection);
// Update data
using (SQLiteCommand command = connection.CreateCommand())
{
//sSQL = "insert into TrendTable ( TrendStamp, TagName, TagValue) Values ( " + IntToStr(stamp) + "," + name + "," + value + ");";
command.CommandText = quary;
try
{
SQLiteDataReader reader = command.ExecuteReader();
aT.Load(reader);
}
catch (Exception)
{
}
}
csDbUtils.CommitTran(connection);
dt = aT;
//RealGridView.DataSource = dt;
DbWaitForm.CloseWaitForm();
}
catch (Exception e)
{
MessageBox.Show(e.ToString());
}
finally
{
connection.Close();
}
}
}
#endregion
#region BUTTON EVENT
private void btnSearch_Click(object sender, EventArgs e)
{
DateTime start = dtpStart.Value;
DateTime mid;
DateTime end = dtpEnd.Value;
TimeSpan span = end - start;
DataTable result = new DataTable();
int sDay = start.Day;
int eDay = end.Day;
int total_days = eDay - sDay;
DataTable[] dDt = new DataTable[total_days + 1];
string quary = "";
try
{
if (total_days == 0)
{
quary = String.Format(" where create_date > '{0:yyyy-MM-dd HH:mm:ss}'", start);
quary += String.Format(" and create_date < '{0:yyyy-MM-dd HH:mm:ss}'", end);
dDt[0] = csDbUtils.BmsDataSelectToDataTable(Config, start, quary);
if (dDt[0] == null)
MessageBox.Show("No data", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
{
gridSearchResult.DataSource = dDt[0];
//gridSearchResult.();
}
}
else
{
DataTable bDt = new DataTable();
for (int i = 0; i < (total_days + 1); i++)
{
//dDt[i] = new DataTable();
if (i == 0)
{
quary = String.Format(" where create_date > '{0:yyyy-MM-dd HH:mm:ss}'", start);
dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, start, quary);
}
else if (i == total_days)
{
quary = String.Format(" where create_date < '{0:yyyy-MM-dd HH:mm:ss}'", end);
dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, end, quary);
}
else
{
quary = "";
mid = start.AddDays(i);
dDt[i] = csDbUtils.BmsDataSelectToDataTable(Config, mid, quary);
}
if (dDt[i] != null)
bDt.Merge(dDt[i]);
}
if (bDt == null)
MessageBox.Show("No data", "Result", MessageBoxButtons.OK, MessageBoxIcon.Information);
else
{
gridSearchResult.DataSource = bDt;
//gridSearchResult.();
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message, "Exception", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
#endregion
}
}