tbf/ProductionTracing/Forms/MoreInfoDlg.cs

60 lines
2.6 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using NHibernate;
using SharedDatabase.Entities;
using ProductionTracing.Resources;
namespace ProductionTracing.Forms
{
public partial class MoreInfoDlg : Form
{
public MoreInfoDlg(int refRecordId, ISession session)
{
InitializeComponent();
Text = Strings.More_informations;
listViewEx.Columns.Add("Date/time", 150);
listViewEx.Columns.Add("Workstep", 100);
listViewEx.Columns.Add("Workplace", 100);
listViewEx.Columns.Add("User", 70);
listViewEx.Columns.Add("Result", 70);
listViewEx.Columns.Add("Parts and serial numbers", 1000);
var refRecords = session.QueryOver<ReferenceRecord>()
.Where(x => (x.Id == refRecordId))
.OrderBy(x => x.Timestamp).Asc
.List();
foreach (var rr in refRecords)
{
foreach (var step in rr.StepRecords)
{
ListViewItem lvi = new ListViewItem(step.Timestamp.ToString());
lvi.SubItems.Add(step.Workstep != null ? step.Workstep : string.Empty);
lvi.SubItems.Add(step.Workplace != null ? step.Workplace : string.Empty);
lvi.SubItems.Add(step.User != null ? step.User : string.Empty);
lvi.SubItems.Add(step.Result == 0 ? "OK" : string.Format("Err{0}", step.Result));
StringBuilder sb = new StringBuilder();
if (!string.IsNullOrEmpty(rr.Name1)) sb.Append(string.Format(" {0}={1}", rr.Name1, rr.Code1 != null ? rr.Code1 : string.Empty));
if (!string.IsNullOrEmpty(rr.Name2)) sb.Append(string.Format(" {0}={1}", rr.Name2, rr.Code1 != null ? rr.Code2 : string.Empty));
if (!string.IsNullOrEmpty(rr.Code3)) sb.Append(string.Format(" S/N={0}", rr.Code3));
if (!string.IsNullOrEmpty(rr.Code4)) sb.Append(string.Format(" radio addres={0}", rr.Code4));
foreach (var rec in step.Records)
{
sb.Append(string.Format(" {0}={1}", rec.Name, rec.Code != null ? rec.Code : string.Empty));
}
lvi.SubItems.Add(sb.ToString());
listViewEx.Items.Add(lvi);
}
}
}
}
}