Browse Source

需求单No.142066 白条领用、分割领用客户端。

master
yibo 6 years ago
parent
commit
7fa1c62af5
39 changed files with 4795 additions and 5006 deletions
  1. +3
    -1
      ButcherFactory.BO/Bill/CarcassTakeOut.cs
  2. +4
    -6
      ButcherFactory.BO/Bill/SegmentPickUp.cs
  3. +75
    -77
      ButcherFactory.BO/LocalBL/CarcassTakeOutBL.cs
  4. +157
    -264
      ButcherFactory.BO/LocalBL/SegmentPickUpBL.cs
  5. +44
    -66
      ButcherFactory.BO/Utils/FormUtil.cs
  6. +421
    -398
      ButcherFactory.Form/ButcherFactory.Form.csproj
  7. +1
    -1
      ButcherFactory.Form/CarcassSaleOut_/CarcassSaleOutForm.cs
  8. +626
    -688
      ButcherFactory.Form/CarcassTakeOut_/CarcassTakeOutForm.Designer.cs
  9. +30
    -129
      ButcherFactory.Form/CarcassTakeOut_/CarcassTakeOutForm.cs
  10. +157
    -189
      ButcherFactory.Form/CarcassTakeOut_/CarcassTakeOutForm.resx
  11. +3
    -1
      ButcherFactory.Form/CarcassTakeOut_/CarcassTakeOutFormConfig.cs
  12. +23
    -0
      ButcherFactory.Form/Files/DbSelectList.xml
  13. +7
    -0
      ButcherFactory.Form/Files/RoleRedirectConfig.xml
  14. BIN
      ButcherFactory.Form/Files/app.ico
  15. BIN
      ButcherFactory.Form/Files/check.png
  16. BIN
      ButcherFactory.Form/Files/click.wav
  17. BIN
      ButcherFactory.Form/Files/closeImg.png
  18. BIN
      ButcherFactory.Form/Files/di.wav
  19. BIN
      ButcherFactory.Form/Files/error.wav
  20. BIN
      ButcherFactory.Form/Files/formTitle.png
  21. BIN
      ButcherFactory.Form/Files/l40.wav
  22. BIN
      ButcherFactory.Form/Files/l45.wav
  23. BIN
      ButcherFactory.Form/Files/l50.wav
  24. BIN
      ButcherFactory.Form/Files/l55.wav
  25. BIN
      ButcherFactory.Form/Files/l60.wav
  26. BIN
      ButcherFactory.Form/Files/l65.wav
  27. BIN
      ButcherFactory.Form/Files/l68.wav
  28. BIN
      ButcherFactory.Form/Files/logo.png
  29. BIN
      ButcherFactory.Form/Files/longSucc.wav
  30. BIN
      ButcherFactory.Form/Files/shotSucc.wav
  31. BIN
      ButcherFactory.Form/Files/today.png
  32. BIN
      ButcherFactory.Form/Files/uCheck.png
  33. BIN
      ButcherFactory.Form/Files/wtl.wav
  34. +3
    -1
      ButcherFactory.Form/SegmentPickUp_/SegmentPickUpConfig.cs
  35. +508
    -511
      ButcherFactory.Form/SegmentPickUp_/SegmentPickUpForm.Designer.cs
  36. +269
    -331
      ButcherFactory.Form/SegmentPickUp_/SegmentPickUpForm.cs
  37. +159
    -159
      ButcherFactory.Form/SegmentPickUp_/SegmentPickUpForm.resx
  38. +11
    -11
      ButcherFactory.Form/SegmentProduction_/SegmentProductionForm.cs
  39. +2294
    -2173
      ButcherFactorySolution/ButcherFactorySolution.vdproj

+ 3
- 1
ButcherFactory.BO/Bill/CarcassTakeOut.cs View File

@ -37,6 +37,8 @@ namespace ButcherFactory.BO
public bool Submited { get; set; }
[DbColumn(DefaultValue = true)]
public bool IsCarcass { get; set; }
public bool IsCarcass { get; set; }
public long? Store_ID { get; set; }
}
}

+ 4
- 6
ButcherFactory.BO/Bill/SegmentPickUp.cs View File

@ -9,13 +9,11 @@ using System.Threading.Tasks;
namespace ButcherFactory.BO.Bill
{
[MapToTable("Butcher_SegmentPickUp")]
[DBIndex("IDX_Butcher_SegmentPickUp_Clustered", "BarCode", false, 0)]
[DBIndexType("IDX_Butcher_SegmentPickUp_Clustered", IndexType.Clustered)]
public class SegmentPickUp : SyncBill
{
public string BarCode { get; set; }
public long? WorkUnit_ID { get; set; }
{
public long? WorkUnit_ID { get; set; }
public long? Store_ID { get; set; }
public long? Goods_ID { get; set; }


+ 75
- 77
ButcherFactory.BO/LocalBL/CarcassTakeOutBL.cs View File

@ -17,7 +17,7 @@ namespace ButcherFactory.BO.LocalBL
{
const string RpcPath = @"/MainSystem/B3ClientService/Rpcs/CarcassTakeOutRpc/";
public static CarcassTakeOut Insert(long? workUnitID, long? batchID, long? goodsID, string barCode, bool isCarcass)
public static CarcassTakeOut Insert(long? workUnitID, long? batchID, long? goodsID, string barCode,long storeID)
{
using (var session = DmoSession.New())
{
@ -31,8 +31,8 @@ namespace ButcherFactory.BO.LocalBL
entity.ProductBatch_ID = batchID;
entity.Goods_ID = goodsID;
}
entity.IsCarcass = isCarcass;
entity.Number = 1;
entity.Number = 1;
entity.Store_ID = storeID;
entity.UserID = AppContext.Worker.ID;
entity.BarCode = barCode;
entity.RowIndex = GenerateRowIndex(session);
@ -218,81 +218,78 @@ namespace ButcherFactory.BO.LocalBL
}
static string carcassMethod = RpcPath + "UploadCarcassInfo";
static string sectionMethod = @"/MainSystem/B3ClientService/Rpcs/SectionStoreDetailRpc/FillWeight";
public static void UploadCarcassInfo()
{
try
{
using (var session = DmoSession.New())
{
var needUpload = GetUnSyncData(session);
if (needUpload.Count == 0)
return;
foreach (var gp in needUpload.GroupBy(x => x.IsCarcass))
{
var method = gp.Key ? carcassMethod : sectionMethod;
var json = JsonConvert.SerializeObject(gp);
RpcFacade.Call<int>(method, json);
foreach (var item in needUpload)
SetLocalAsSyncd(item, session);
}
session.Commit();
}
}
catch
{
#if DEBUG
throw;
#endif
}
}
static List<CarcassTakeOutObj> GetUnSyncData(IDmoSession session)
{
var query = new DQueryDom(new JoinAlias(typeof(CarcassTakeOut)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("RowVersion"));
query.Columns.Add(DQSelectColumn.Field("BarCode"));
query.Columns.Add(DQSelectColumn.Field("UserID"));
query.Columns.Add(DQSelectColumn.Field("WorkUnit_ID"));
query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID"));
query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
query.Columns.Add(DQSelectColumn.Field("Weight"));
query.Columns.Add(DQSelectColumn.Field("CreateTime"));
query.Columns.Add(DQSelectColumn.Field("GroupID"));
query.Columns.Add(DQSelectColumn.Field("Number"));
query.Columns.Add(DQSelectColumn.Field("IsCarcass"));
query.Columns.Add(DQSelectColumn.Field("UserID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Submited", true), DQCondition.EQ("Sync", false)));
query.Range = SelectRange.Top(10);
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
var upload = new List<CarcassTakeOutObj>();
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var obj = new CarcassTakeOutObj();
obj.ID = (long)reader[0];
obj.RowVersion = (int)reader[1];
obj.BarCode = (string)reader[2];
obj.TakeOutWorker_ID = (long)reader[3];
obj.WorkUnit_ID = (long?)reader[4];
if (string.IsNullOrEmpty(obj.BarCode))
{
obj.ProductBatch_ID = (long?)reader[5];
obj.Goods_ID = (long?)reader[6];
}
obj.Weight = (decimal)reader[7];
obj.Time = (DateTime)reader[8];
obj.GroupID = (long?)reader[9];
obj.Number = (int)reader[10];
obj.IsCarcass = (bool)reader[11];
obj.Worker_ID = (long)reader[12];
upload.Add(obj);
}
{
try
{
using (var session = DmoSession.New())
{
var needUpload = GetUnSyncData(session);
if (needUpload.Count == 0)
return;
var json = JsonConvert.SerializeObject(needUpload);
RpcFacade.Call<int>(carcassMethod, json);
foreach (var item in needUpload)
SetLocalAsSyncd(item, session);
session.Commit();
}
}
catch
{
#if DEBUG
throw;
#endif
}
return upload;
}
static List<CarcassTakeOutObj> GetUnSyncData(IDmoSession session)
{
var query = new DQueryDom(new JoinAlias(typeof(CarcassTakeOut)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("RowVersion"));
query.Columns.Add(DQSelectColumn.Field("BarCode"));
query.Columns.Add(DQSelectColumn.Field("UserID"));
query.Columns.Add(DQSelectColumn.Field("WorkUnit_ID"));
query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID"));
query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
query.Columns.Add(DQSelectColumn.Field("Weight"));
query.Columns.Add(DQSelectColumn.Field("CreateTime"));
query.Columns.Add(DQSelectColumn.Field("GroupID"));
query.Columns.Add(DQSelectColumn.Field("Number"));
query.Columns.Add(DQSelectColumn.Field("IsCarcass"));
query.Columns.Add(DQSelectColumn.Field("UserID"));
query.Columns.Add(DQSelectColumn.Field("Store_ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Submited", true), DQCondition.EQ("Sync", false)));
query.Range = SelectRange.Top(10);
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
var upload = new List<CarcassTakeOutObj>();
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var obj = new CarcassTakeOutObj();
obj.ID = (long)reader[0];
obj.RowVersion = (int)reader[1];
obj.BarCode = (string)reader[2];
obj.TakeOutWorker_ID = (long)reader[3];
obj.WorkUnit_ID = (long?)reader[4];
if (string.IsNullOrEmpty(obj.BarCode))
{
obj.ProductBatch_ID = (long?)reader[5];
obj.Goods_ID = (long?)reader[6];
}
obj.Weight = (decimal)reader[7];
obj.Time = (DateTime)reader[8];
obj.GroupID = (long?)reader[9];
obj.Number = (int)reader[10];
obj.IsCarcass = (bool)reader[11];
obj.Worker_ID = (long)reader[12];
obj.Store_ID = (long?)reader[13];
upload.Add(obj);
}
}
return upload;
}
static void SetLocalAsSyncd(CarcassTakeOutObj obj, IDmoSession session)
@ -320,6 +317,7 @@ namespace ButcherFactory.BO.LocalBL
public long? GroupID { get; set; }
public int Number { get; set; }
public bool IsCarcass { get; set; }
public long Worker_ID { get; set; }
public long Worker_ID { get; set; }
public long? Store_ID { get; set; }
}
}

+ 157
- 264
ButcherFactory.BO/LocalBL/SegmentPickUpBL.cs View File

@ -1,264 +1,157 @@
using ButcherFactory.BO.Bill;
using ButcherFactory.BO.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using Forks.JsonRpc.Client;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ButcherFactory.BO.LocalBL
{
public static class SegmentPickUpBL
{
const string RpcPath = @"/MainSystem/B3ClientService/Rpcs/SegmentPickUpRpc/";
public static BindingList<SegmentPickUp> GetSegmentPickUp(bool unSubmit)
{
var query = new DQueryDom(new JoinAlias(typeof(SegmentPickUp)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("RowIndex"));
query.Columns.Add(DQSelectColumn.Field("BarCode"));
query.Columns.Add(DQSelectColumn.Field("Goods_Name"));
query.Columns.Add(DQSelectColumn.Field("Number"));
query.Columns.Add(DQSelectColumn.Field("Weight"));
query.Columns.Add(DQSelectColumn.Field("CreateTime"));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
if (unSubmit)
query.Where.Conditions.Add(DQCondition.EQ("Submited", false));
else
{
query.Where.Conditions.Add(DQCondition.Between("CreateTime", DateTime.Today, DateTime.Today + new TimeSpan(23, 59, 59)));
query.Range = SelectRange.Top(20);
}
var list = new BindingList<SegmentPickUp>();
using (var session = DmoSession.New())
{
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var entity = new SegmentPickUp();
entity.ID = (long)reader[0];
entity.RowIndex = (int)reader[1];
entity.BarCode = (string)reader[2];
entity.Goods_Name = (string)reader[3];
entity.Number = (int)reader[4];
entity.Weight = (decimal?)reader[5];
if (unSubmit)
entity.CreateTime = (DateTime)reader[6];
list.Add(entity);
}
}
}
return list;
}
public static void InsertEntityByCode(SegmentPickUp entity)
{
using (var session = DmoSession.New())
{
if (CheckExist(entity.BarCode, session))
return;
try
{
var json = RpcFacade.Call<string>(RpcPath + "GetScanInfo", entity.BarCode);
if (!string.IsNullOrEmpty(json))
{
var obj = JsonConvert.DeserializeObject<ExtensionObj>(json);
entity.Goods_ID = obj.LongExt1.Value;
entity.Goods_Name = obj.StringExt1;
entity.Weight = obj.DecimalExt1;
}
}
catch
{
#if DEBUG
throw;
#endif
}
entity.Number = 1;
entity.UserID = AppContext.Worker.ID;
session.Insert(entity);
session.Commit();
}
}
static bool CheckExist(string barCode, IDmoSession session)
{
if (string.IsNullOrEmpty(barCode))
return false;
var query = new DQueryDom(new JoinAlias(typeof(SegmentPickUp)));
query.Columns.Add(DQSelectColumn.Create(DQExpression.Value(1), "c"));
query.Where.Conditions.Add(DQCondition.EQ("BarCode", barCode));
return query.EExecuteScalar(session) != null;
}
public static void InsertEntityByWeight(SegmentPickUp entity)
{
using (var session = DmoSession.New())
{
entity.Number = 1;
entity.UserID = AppContext.Worker.ID;
session.Insert(entity);
session.Commit();
}
}
public static void UpdateNumber(long id, int number)
{
var update = new DQUpdateDom(typeof(SegmentPickUp));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
update.Columns.Add(new DQUpdateColumn("Number", number));
update.EExecute();
}
public static void UpdateSubmit(IEnumerable<long> ids)
{
var update = new DQUpdateDom(typeof(SegmentPickUp));
update.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("ID"), ids.Select(x => DQExpression.Value(x)).ToArray()));
update.Columns.Add(new DQUpdateColumn("Submited", true));
update.EExecute();
}
public static List<ExtensionObj> GetBeforeInfo(IEnumerable<string> codeList)
{
try
{
var json = RpcFacade.Call<string>(RpcPath + "GetBeforeInfo", codeList);
var list = JsonConvert.DeserializeObject<List<ExtensionObj>>(json);
if (list.Any())
{
using (var session = DmoSession.New())
{
foreach (var item in list)
SaveBeforeInfoInDB(item, session);
session.Commit();
}
}
return list;
}
catch
{
#if DEBUG
throw;
#endif
return new List<ExtensionObj>();
}
}
private static void SaveBeforeInfoInDB(ExtensionObj obj, IDmoSession session)
{
var update = new DQUpdateDom(typeof(SegmentPickUp));
update.Where.Conditions.Add(DQCondition.EQ("BarCode", obj.StringExt1));
update.Columns.Add(new DQUpdateColumn("Goods_ID", obj.LongExt1));
update.Columns.Add(new DQUpdateColumn("Weight", obj.DecimalExt1));
session.ExecuteNonQuery(update);
}
public static void UploadSegmentInfo()
{
try
{
using (var session = DmoSession.New())
{
var needUpload = GetUnSyncData(session);
if (needUpload.Count == 0)
return;
var method = RpcPath + "UploadSegmentInfo";
var json = JsonConvert.SerializeObject(needUpload);
RpcFacade.Call<int>(method, json);
foreach (var item in needUpload)
SetLocalAsSyncd(item, session);
session.Commit();
}
}
catch
{
#if DEBUG
throw;
#endif
}
}
static List<SegmentPickUpObj> GetUnSyncData(IDmoSession session)
{
var query = new DQueryDom(new JoinAlias(typeof(SegmentPickUp)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("RowVersion"));
query.Columns.Add(DQSelectColumn.Field("BarCode"));
query.Columns.Add(DQSelectColumn.Field("UserID"));
query.Columns.Add(DQSelectColumn.Field("WorkUnit_ID"));
query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID"));
query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
query.Columns.Add(DQSelectColumn.Field("Weight"));
query.Columns.Add(DQSelectColumn.Field("CreateTime"));
query.Columns.Add(DQSelectColumn.Field("Number"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Submited", true), DQCondition.EQ("Sync", false)));
query.Range = SelectRange.Top(10);
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
var upload = new List<SegmentPickUpObj>();
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var obj = new SegmentPickUpObj();
obj.ID = (long)reader[0];
obj.RowVersion = (int)reader[1];
obj.BarCode = (string)reader[2];
obj.TakeOutWorker_ID = (long)reader[3];
obj.WorkUnit_ID = (long?)reader[4];
if (string.IsNullOrEmpty(obj.BarCode))
{
obj.ProductBatch_ID = (long?)reader[5];
obj.Goods_ID = (long?)reader[6];
}
obj.Weight = (decimal?)reader[7];
obj.Time = (DateTime)reader[8];
obj.Number = (int)reader[9];
upload.Add(obj);
}
}
return upload;
}
static void SetLocalAsSyncd(SegmentPickUpObj obj, IDmoSession session)
{
var update = new DQUpdateDom(typeof(SegmentPickUp));
update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("ID", obj.ID), DQCondition.EQ("RowVersion", obj.RowVersion)));
update.Columns.Add(new DQUpdateColumn("Sync", true));
session.ExecuteNonQuery(update);
}
}
class SegmentPickUpObj
{
[JsonIgnore]
public long ID { get; set; }
[JsonIgnore]
public int RowVersion { get; set; }
public string BarCode { get; set; }
public long TakeOutWorker_ID { get; set; }
public long? WorkUnit_ID { get; set; }
public long? ProductBatch_ID { get; set; }
public long? Goods_ID { get; set; }
public decimal? Weight { get; set; }
public DateTime? Time { get; set; }
public int Number { get; set; }
}
}
using ButcherFactory.BO.Bill;
using ButcherFactory.BO.Utils;
using Forks.EnterpriseServices.DomainObjects2;
using Forks.EnterpriseServices.DomainObjects2.DQuery;
using Forks.EnterpriseServices.SqlDoms;
using Forks.JsonRpc.Client;
using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace ButcherFactory.BO.LocalBL
{
public static class SegmentPickUpBL
{
const string RpcPath = @"/MainSystem/B3ClientService/Rpcs/SegmentPickUpRpc/";
public static BindingList<SegmentPickUp> GetSegmentPickUp(bool submited)
{
var query = new DQueryDom(new JoinAlias(typeof(SegmentPickUp)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("RowIndex"));
query.Columns.Add(DQSelectColumn.Field("Goods_Name"));
query.Columns.Add(DQSelectColumn.Field("Number"));
query.Columns.Add(DQSelectColumn.Field("Weight"));
//query.Columns.Add(DQSelectColumn.Field("CreateTime"));
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID", true));
query.Where.Conditions.Add(DQCondition.EQ("Submited", submited));
if (submited)
{
query.Where.Conditions.Add(DQCondition.And(DQCondition.Between("CreateTime", DateTime.Today, DateTime.Today + new TimeSpan(23, 59, 59))));
query.Range = SelectRange.Top(20);
}
var list = new BindingList<SegmentPickUp>();
using (var session = DmoSession.New())
{
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var entity = new SegmentPickUp();
entity.ID = (long)reader[0];
entity.RowIndex = (int)reader[1];
entity.Goods_Name = (string)reader[2];
entity.Number = (int)reader[3];
entity.Weight = (decimal?)reader[4];
//entity.CreateTime = (DateTime)reader[5];
list.Add(entity);
}
}
}
return list;
}
public static void InsertEntityByWeight(SegmentPickUp entity)
{
using (var session = DmoSession.New())
{
entity.Number = 1;
entity.UserID = AppContext.Worker.ID;
session.Insert(entity);
session.Commit();
}
}
public static void UpdateNumber(long id, int number)
{
var update = new DQUpdateDom(typeof(SegmentPickUp));
update.Where.Conditions.Add(DQCondition.EQ("ID", id));
update.Columns.Add(new DQUpdateColumn("Number", number));
update.EExecute();
}
public static void UpdateSubmit(IEnumerable<long> ids)
{
var update = new DQUpdateDom(typeof(SegmentPickUp));
update.Where.Conditions.Add(DQCondition.InList(DQExpression.Field("ID"), ids.Select(x => DQExpression.Value(x)).ToArray()));
update.Columns.Add(new DQUpdateColumn("Submited", true));
update.EExecute();
}
public static void UploadSegmentInfo()
{
try
{
using (var session = DmoSession.New())
{
var needUpload = GetUnSyncData(session);
if (needUpload.Count == 0)
return;
var method = RpcPath + "UploadSegmentInfo";
var json = JsonConvert.SerializeObject(needUpload);
RpcFacade.Call<int>(method, json);
foreach (var item in needUpload)
SetLocalAsSyncd(item, session);
session.Commit();
}
}
catch
{
#if DEBUG
throw;
#endif
}
}
static List<SegmentPickUp> GetUnSyncData(IDmoSession session)
{
var query = new DQueryDom(new JoinAlias(typeof(SegmentPickUp)));
query.Columns.Add(DQSelectColumn.Field("ID"));
query.Columns.Add(DQSelectColumn.Field("RowVersion"));
query.Columns.Add(DQSelectColumn.Field("UserID"));
query.Columns.Add(DQSelectColumn.Field("WorkUnit_ID"));
query.Columns.Add(DQSelectColumn.Field("ProductBatch_ID"));
query.Columns.Add(DQSelectColumn.Field("Goods_ID"));
query.Columns.Add(DQSelectColumn.Field("Weight"));
query.Columns.Add(DQSelectColumn.Field("CreateTime"));
query.Columns.Add(DQSelectColumn.Field("Number"));
query.Columns.Add(DQSelectColumn.Field("Store_ID"));
query.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("Submited", true), DQCondition.EQ("Sync", false)));
query.Range = SelectRange.Top(10);
query.OrderBy.Expressions.Add(DQOrderByExpression.Create("ID"));
var upload = new List<SegmentPickUp>();
using (var reader = session.ExecuteReader(query))
{
while (reader.Read())
{
var obj = new SegmentPickUp();
obj.ID = (long)reader[0];
obj.RowVersion = (int)reader[1];
obj.UserID = (long)reader[2];
obj.WorkUnit_ID = (long?)reader[4];
obj.ProductBatch_ID = (long?)reader[4];
obj.Goods_ID = (long?)reader[5];
obj.Weight = (decimal?)reader[6];
obj.CreateTime = (DateTime)reader[7];
obj.Number = (int)reader[8];
obj.Store_ID = (long?)reader[9];
upload.Add(obj);
}
}
return upload;
}
static void SetLocalAsSyncd(SegmentPickUp obj, IDmoSession session)
{
var update = new DQUpdateDom(typeof(SegmentPickUp));
update.Where.Conditions.Add(DQCondition.And(DQCondition.EQ("ID", obj.ID), DQCondition.EQ("RowVersion", obj.RowVersion)));
update.Columns.Add(new DQUpdateColumn("Sync", true));
session.ExecuteNonQuery(update);
}
}
}

+ 44
- 66
ButcherFactory.BO/Utils/FormUtil.cs View File

@ -1,66 +1,44 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
namespace ButcherFactory.BO.Utils
{
public static class FormUtil
{
public static Form CreateFrom()
{
//RedirectRole();
var dll = Path.Combine(Directory.GetCurrentDirectory(), "ButcherFactory.Form.dll");
if (!File.Exists(dll))
throw new Exception("缺少必要的程序集文件 ButcherFactory.Form.dll");
var formType = typeof(IWithRoleForm);
Form form = null;
foreach (var type in Assembly.LoadFile(dll).GetTypes())
{
if (formType.IsAssignableFrom(type))
{
var instance = (IWithRoleForm)Activator.CreateInstance(type);
foreach (var item in instance.RoleName)
{
if (AppContext.Worker.RoleList.Contains(item))
return instance.Generate();
}
}
}
return form;
}
private static void RedirectRole()
{
var list = XmlUtil.DeserializeFromFile<List<RoleRedirectConfig>>("Config\\RoleRedirectConfig.xml");
var arr = AppContext.Worker.RoleList.ToList();
foreach (var item in list)
{
var idx = arr.IndexOf(item.Role);
if (idx >= 0)
arr[idx] = item.RedirectRole;
}
AppContext.Worker.Role = string.Join(",", arr);
}
}
public class RoleRedirectConfig
{
public short Role { get; set; }
public short RedirectRole { get; set; }
}
public interface IWithRoleForm
{
List<short> RoleName { get; }
Form Generate();
}
}
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using System.IO;
using System.Reflection;
namespace ButcherFactory.BO.Utils
{
public static class FormUtil
{
public static Form CreateFrom()
{
var dll = Path.Combine(Directory.GetCurrentDirectory(), "ButcherFactory.Form.dll");
if (!File.Exists(dll))
throw new Exception("缺少必要的程序集文件 ButcherFactory.Form.dll");
var formType = typeof(IWithRoleForm);
Form form = null;
foreach (var type in Assembly.LoadFile(dll).GetTypes())
{
if (formType.IsAssignableFrom(type))
{
var instance = (IWithRoleForm)Activator.CreateInstance(type);
foreach (var item in instance.RoleName)
{
if (AppContext.Worker.RoleList.Contains(item))
return instance.Generate();
}
}
}
return form;
}
}
public interface IWithRoleForm
{
List<short> RoleName { get; }
Form Generate();
}
}

+ 421
- 398
ButcherFactory.Form/ButcherFactory.Form.csproj View File

@ -1,407 +1,430 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{2485631B-624C-43E0-9287-86FA1C8485FC}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ButcherFactory</RootNamespace>
<AssemblyName>ButcherFactory.Form</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>
</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="BwpClientPrint, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\BwpClientPrint.dll</HintPath>
</Reference>
<Reference Include="HidLibrary">
<HintPath>..\..\WinFormControl\HidLibrary\bin\Release\HidLibrary.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Speech" />
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
<Reference Include="WinFormControl, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" />
</ItemGroup>
<ItemGroup>
<Compile Include="CarcassInStore_\CarcassInStoreForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CarcassInStore_\CarcassInStoreForm.Designer.cs">
<DependentUpon>CarcassInStoreForm.cs</DependentUpon>
</Compile>
<Compile Include="CarcassInStore_\CarcassInStoreFormConfig.cs" />
<Compile Include="CarcassSaleOut2_\CarcassSaleOutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CarcassSaleOut2_\CarcassSaleOutForm.Designer.cs">
<DependentUpon>CarcassSaleOutForm.cs</DependentUpon>
</Compile>
<Compile Include="CarcassSaleOut2_\CarcassSaleOutReadForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CarcassSaleOut2_\CarcassSaleOutReadForm.Designer.cs">
<DependentUpon>CarcassSaleOutReadForm.cs</DependentUpon>
</Compile>
<Compile Include="Controls\ColorButton.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\FormTemplate.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Controls\FormTemplate.Designer.cs">
<DependentUpon>FormTemplate.cs</DependentUpon>
</Compile>
<Compile Include="Controls\InfoBox.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Controls\InfoBox.Designer.cs">
<DependentUpon>InfoBox.cs</DependentUpon>
</Compile>
<Compile Include="Controls\RoundPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\Utils\AoHaoSi3000DataFormat.cs" />
<Compile Include="Controls\Utils\DataFormatBase.cs" />
<Compile Include="Controls\Utils\IND560DataFormat.cs" />
<Compile Include="Controls\Utils\Xk3124DataFormat.cs" />
<Compile Include="Controls\Utils\Xk3190A9DataFormat.cs" />
<Compile Include="Controls\Utils\Xk3190D10DataFormat.cs" />
<Compile Include="Controls\WeightConfig.cs" />
<Compile Include="Controls\WeightControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\WeightControl.Designer.cs">
<DependentUpon>WeightControl.cs</DependentUpon>
</Compile>
<Compile Include="CarcassSaleOut_\CarcassSaleOutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CarcassSaleOut_\CarcassSaleOutForm.Designer.cs">
<DependentUpon>CarcassSaleOutForm.cs</DependentUpon>
</Compile>
<Compile Include="CarcassSaleOut_\CarcassSaleOutFormConfig.cs" />
<Compile Include="CarcassTakeOut_\CarcassTakeOutFormConfig.cs" />
<Compile Include="Controls\WeightSettingFrom.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Controls\WeightSettingFrom.Designer.cs">
<DependentUpon>WeightSettingFrom.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\AddWeightRecord.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\AddWeightRecord.Designer.cs">
<DependentUpon>AddWeightRecord.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\CalendarSelecter.xaml.cs">
<DependentUpon>CalendarSelecter.xaml</DependentUpon>
</Compile>
<Compile Include="Dialogs\ClientGoodsSetDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\ClientGoodsSetDialog.Designer.cs">
<DependentUpon>ClientGoodsSetDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\NumberSetDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\NumberSetDialog.Designer.cs">
<DependentUpon>NumberSetDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\SelectBillStateDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\SelectBillStateDialog.Designer.cs">
<DependentUpon>SelectBillStateDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\SelectCustomerDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\SelectCustomerDialog.Designer.cs">
<DependentUpon>SelectCustomerDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\SelectDeliverGoodsLineDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\SelectDeliverGoodsLineDialog.Designer.cs">
<DependentUpon>SelectDeliverGoodsLineDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\SelectStoreDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\SelectStoreDialog.Designer.cs">
<DependentUpon>SelectStoreDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\WeightDeleteRecord.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\WeightDeleteRecord.Designer.cs">
<DependentUpon>WeightDeleteRecord.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\WeightRecordDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\WeightRecordDialog.Designer.cs">
<DependentUpon>WeightRecordDialog.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="CarcassTakeOut_\CarcassTakeOutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CarcassTakeOut_\CarcassTakeOutForm.Designer.cs">
<DependentUpon>CarcassTakeOutForm.cs</DependentUpon>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="SegmentInStore_\InStoreSummaryView.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentInStore_\InStoreSummaryView.Designer.cs">
<DependentUpon>InStoreSummaryView.cs</DependentUpon>
</Compile>
<Compile Include="SegmentInStore_\SegmentInStoreForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentInStore_\SegmentInStoreForm.Designer.cs">
<DependentUpon>SegmentInStoreForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentInStore_\SegmentInStoreFormConfig.cs" />
<Compile Include="SegmentPickUp_\SegmentPickUpConfig.cs" />
<Compile Include="SegmentPickUp_\SegmentPickUpForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentPickUp_\SegmentPickUpForm.Designer.cs">
<DependentUpon>SegmentPickUpForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentProductionAuto_\SegmentProductionAutoForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentProductionAuto_\SegmentProductionAutoForm.Designer.cs">
<DependentUpon>SegmentProductionAutoForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentProductionAuto_\TemplateSelector.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentProductionAuto_\TemplateSelector.Designer.cs">
<DependentUpon>TemplateSelector.cs</DependentUpon>
</Compile>
<Compile Include="SegmentProduction_\SegmentProductionForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentProduction_\SegmentProductionForm.Designer.cs">
<DependentUpon>SegmentProductionForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentProduction_\SegmentProductionFormConfig.cs" />
<Compile Include="SegmentProduction_\SegmentProductionPrint.cs" />
<Compile Include="SegmentProduction_\TrunOutDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentProduction_\TrunOutDialog.Designer.cs">
<DependentUpon>TrunOutDialog.cs</DependentUpon>
</Compile>
<Compile Include="SegmentSaleOut_\AddWeightRecord.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentSaleOut_\AddWeightRecord.Designer.cs">
<DependentUpon>AddWeightRecord.cs</DependentUpon>
</Compile>
<Compile Include="SegmentSaleOut_\DiscontSetDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentSaleOut_\DiscontSetDialog.Designer.cs">
<DependentUpon>DiscontSetDialog.cs</DependentUpon>
</Compile>
<Compile Include="SegmentSaleOut_\SegmentSaleOutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentSaleOut_\SegmentSaleOutForm.Designer.cs">
<DependentUpon>SegmentSaleOutForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentSaleOut_\SegmentSaleOutFormConfig.cs" />
<Compile Include="SegmentSaleOut_\WeightRecordDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentSaleOut_\WeightRecordDialog.Designer.cs">
<DependentUpon>WeightRecordDialog.cs</DependentUpon>
</Compile>
<Compile Include="SegmentStockUp_\PrintAPI.cs" />
<Compile Include="SegmentStockUp_\SegmentStockUpForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentStockUp_\SegmentStockUpForm.Designer.cs">
<DependentUpon>SegmentStockUpForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentStockUp_\SegmentStockUpPrint.cs" />
<Compile Include="Utils\ControlsUtil.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ButcherFactory.BO\ButcherFactory.BO.csproj">
<Project>{b258c523-269c-4ed7-ab71-7196d5d2ef65}</Project>
<Name>ButcherFactory.BO</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="CarcassInStore_\CarcassInStoreForm.resx">
<DependentUpon>CarcassInStoreForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CarcassSaleOut2_\CarcassSaleOutForm.resx">
<DependentUpon>CarcassSaleOutForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CarcassSaleOut2_\CarcassSaleOutReadForm.resx">
<DependentUpon>CarcassSaleOutReadForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\FormTemplate.resx">
<DependentUpon>FormTemplate.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\InfoBox.resx">
<DependentUpon>InfoBox.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\WeightControl.resx">
<DependentUpon>WeightControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CarcassSaleOut_\CarcassSaleOutForm.resx">
<DependentUpon>CarcassSaleOutForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CarcassTakeOut_\CarcassTakeOutForm.resx">
<DependentUpon>CarcassTakeOutForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\WeightSettingFrom.resx">
<DependentUpon>WeightSettingFrom.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\AddWeightRecord.resx">
<DependentUpon>AddWeightRecord.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\ClientGoodsSetDialog.resx">
<DependentUpon>ClientGoodsSetDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\NumberSetDialog.resx">
<DependentUpon>NumberSetDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\SelectBillStateDialog.resx">
<DependentUpon>SelectBillStateDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\SelectCustomerDialog.resx">
<DependentUpon>SelectCustomerDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\SelectDeliverGoodsLineDialog.resx">
<DependentUpon>SelectDeliverGoodsLineDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\SelectStoreDialog.resx">
<DependentUpon>SelectStoreDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\WeightDeleteRecord.resx">
<DependentUpon>WeightDeleteRecord.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\WeightRecordDialog.resx">
<DependentUpon>WeightRecordDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="SegmentInStore_\InStoreSummaryView.resx">
<DependentUpon>InStoreSummaryView.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentInStore_\SegmentInStoreForm.resx">
<DependentUpon>SegmentInStoreForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentPickUp_\SegmentPickUpForm.resx">
<DependentUpon>SegmentPickUpForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentProductionAuto_\SegmentProductionAutoForm.resx">
<DependentUpon>SegmentProductionAutoForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentProductionAuto_\TemplateSelector.resx">
<DependentUpon>TemplateSelector.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentProduction_\SegmentProductionForm.resx">
<DependentUpon>SegmentProductionForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentProduction_\TrunOutDialog.resx">
<DependentUpon>TrunOutDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentSaleOut_\AddWeightRecord.resx">
<DependentUpon>AddWeightRecord.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentSaleOut_\DiscontSetDialog.resx">
<DependentUpon>DiscontSetDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentSaleOut_\SegmentSaleOutForm.resx">
<DependentUpon>SegmentSaleOutForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentSaleOut_\WeightRecordDialog.resx">
<DependentUpon>WeightRecordDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentStockUp_\SegmentStockUpForm.resx">
<DependentUpon>SegmentStockUpForm.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Page Include="Dialogs\CalendarSelecter.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<None Include="Resources\closeImg.png" />
</ItemGroup>
<ItemGroup>
<Content Include="SegmentProduction_\SegmentProductionPrint1.html" />
<Content Include="SegmentProduction_\SegmentProductionPrint.html" />
<Content Include="SegmentProduction_\SegmentProductionPrintEnd.html" />
<Content Include="SegmentStockUp_\SegmentStockUpPrint.html" />
<Content Include="SegmentStockUp_\SegmentStockUpPrint.txt" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="12.0" DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{2485631B-624C-43E0-9287-86FA1C8485FC}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>ButcherFactory</RootNamespace>
<AssemblyName>ButcherFactory.Form</AssemblyName>
<TargetFrameworkVersion>v4.5</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>bin\Debug\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>pdbonly</DebugType>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DefineConstants>TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>
</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="BwpClientPrint, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\tsref\Debug\BwpClientPrint.dll</HintPath>
</Reference>
<Reference Include="HidLibrary">
<HintPath>..\..\WinFormControl\HidLibrary\bin\Release\HidLibrary.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="PresentationFramework" />
<Reference Include="System" />
<Reference Include="System.Core" />
<Reference Include="System.Drawing" />
<Reference Include="System.Speech" />
<Reference Include="System.Windows" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xaml" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="WindowsBase" />
<Reference Include="WinFormControl, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL" />
</ItemGroup>
<ItemGroup>
<Compile Include="CarcassInStore_\CarcassInStoreForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CarcassInStore_\CarcassInStoreForm.Designer.cs">
<DependentUpon>CarcassInStoreForm.cs</DependentUpon>
</Compile>
<Compile Include="CarcassInStore_\CarcassInStoreFormConfig.cs" />
<Compile Include="CarcassSaleOut2_\CarcassSaleOutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CarcassSaleOut2_\CarcassSaleOutForm.Designer.cs">
<DependentUpon>CarcassSaleOutForm.cs</DependentUpon>
</Compile>
<Compile Include="CarcassSaleOut2_\CarcassSaleOutReadForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CarcassSaleOut2_\CarcassSaleOutReadForm.Designer.cs">
<DependentUpon>CarcassSaleOutReadForm.cs</DependentUpon>
</Compile>
<Compile Include="Controls\ColorButton.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\FormTemplate.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Controls\FormTemplate.Designer.cs">
<DependentUpon>FormTemplate.cs</DependentUpon>
</Compile>
<Compile Include="Controls\InfoBox.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Controls\InfoBox.Designer.cs">
<DependentUpon>InfoBox.cs</DependentUpon>
</Compile>
<Compile Include="Controls\RoundPanel.cs">
<SubType>Component</SubType>
</Compile>
<Compile Include="Controls\Utils\AoHaoSi3000DataFormat.cs" />
<Compile Include="Controls\Utils\DataFormatBase.cs" />
<Compile Include="Controls\Utils\IND560DataFormat.cs" />
<Compile Include="Controls\Utils\Xk3124DataFormat.cs" />
<Compile Include="Controls\Utils\Xk3190A9DataFormat.cs" />
<Compile Include="Controls\Utils\Xk3190D10DataFormat.cs" />
<Compile Include="Controls\WeightConfig.cs" />
<Compile Include="Controls\WeightControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Controls\WeightControl.Designer.cs">
<DependentUpon>WeightControl.cs</DependentUpon>
</Compile>
<Compile Include="CarcassSaleOut_\CarcassSaleOutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CarcassSaleOut_\CarcassSaleOutForm.Designer.cs">
<DependentUpon>CarcassSaleOutForm.cs</DependentUpon>
</Compile>
<Compile Include="CarcassSaleOut_\CarcassSaleOutFormConfig.cs" />
<Compile Include="CarcassTakeOut_\CarcassTakeOutFormConfig.cs" />
<Compile Include="Controls\WeightSettingFrom.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Controls\WeightSettingFrom.Designer.cs">
<DependentUpon>WeightSettingFrom.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\AddWeightRecord.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\AddWeightRecord.Designer.cs">
<DependentUpon>AddWeightRecord.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\CalendarSelecter.xaml.cs">
<DependentUpon>CalendarSelecter.xaml</DependentUpon>
</Compile>
<Compile Include="Dialogs\ClientGoodsSetDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\ClientGoodsSetDialog.Designer.cs">
<DependentUpon>ClientGoodsSetDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\NumberSetDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\NumberSetDialog.Designer.cs">
<DependentUpon>NumberSetDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\SelectBillStateDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\SelectBillStateDialog.Designer.cs">
<DependentUpon>SelectBillStateDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\SelectCustomerDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\SelectCustomerDialog.Designer.cs">
<DependentUpon>SelectCustomerDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\SelectDeliverGoodsLineDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\SelectDeliverGoodsLineDialog.Designer.cs">
<DependentUpon>SelectDeliverGoodsLineDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\SelectStoreDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\SelectStoreDialog.Designer.cs">
<DependentUpon>SelectStoreDialog.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\WeightDeleteRecord.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\WeightDeleteRecord.Designer.cs">
<DependentUpon>WeightDeleteRecord.cs</DependentUpon>
</Compile>
<Compile Include="Dialogs\WeightRecordDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="Dialogs\WeightRecordDialog.Designer.cs">
<DependentUpon>WeightRecordDialog.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="CarcassTakeOut_\CarcassTakeOutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="CarcassTakeOut_\CarcassTakeOutForm.Designer.cs">
<DependentUpon>CarcassTakeOutForm.cs</DependentUpon>
</Compile>
<Compile Include="Properties\Resources.Designer.cs">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="SegmentInStore_\InStoreSummaryView.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentInStore_\InStoreSummaryView.Designer.cs">
<DependentUpon>InStoreSummaryView.cs</DependentUpon>
</Compile>
<Compile Include="SegmentInStore_\SegmentInStoreForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentInStore_\SegmentInStoreForm.Designer.cs">
<DependentUpon>SegmentInStoreForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentInStore_\SegmentInStoreFormConfig.cs" />
<Compile Include="SegmentPickUp_\SegmentPickUpConfig.cs" />
<Compile Include="SegmentPickUp_\SegmentPickUpForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentPickUp_\SegmentPickUpForm.Designer.cs">
<DependentUpon>SegmentPickUpForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentProductionAuto_\SegmentProductionAutoForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentProductionAuto_\SegmentProductionAutoForm.Designer.cs">
<DependentUpon>SegmentProductionAutoForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentProductionAuto_\TemplateSelector.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentProductionAuto_\TemplateSelector.Designer.cs">
<DependentUpon>TemplateSelector.cs</DependentUpon>
</Compile>
<Compile Include="SegmentProduction_\SegmentProductionForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentProduction_\SegmentProductionForm.Designer.cs">
<DependentUpon>SegmentProductionForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentProduction_\SegmentProductionFormConfig.cs" />
<Compile Include="SegmentProduction_\SegmentProductionPrint.cs" />
<Compile Include="SegmentProduction_\TrunOutDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentProduction_\TrunOutDialog.Designer.cs">
<DependentUpon>TrunOutDialog.cs</DependentUpon>
</Compile>
<Compile Include="SegmentSaleOut_\AddWeightRecord.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentSaleOut_\AddWeightRecord.Designer.cs">
<DependentUpon>AddWeightRecord.cs</DependentUpon>
</Compile>
<Compile Include="SegmentSaleOut_\DiscontSetDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentSaleOut_\DiscontSetDialog.Designer.cs">
<DependentUpon>DiscontSetDialog.cs</DependentUpon>
</Compile>
<Compile Include="SegmentSaleOut_\SegmentSaleOutForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentSaleOut_\SegmentSaleOutForm.Designer.cs">
<DependentUpon>SegmentSaleOutForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentSaleOut_\SegmentSaleOutFormConfig.cs" />
<Compile Include="SegmentSaleOut_\WeightRecordDialog.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentSaleOut_\WeightRecordDialog.Designer.cs">
<DependentUpon>WeightRecordDialog.cs</DependentUpon>
</Compile>
<Compile Include="SegmentStockUp_\PrintAPI.cs" />
<Compile Include="SegmentStockUp_\SegmentStockUpForm.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="SegmentStockUp_\SegmentStockUpForm.Designer.cs">
<DependentUpon>SegmentStockUpForm.cs</DependentUpon>
</Compile>
<Compile Include="SegmentStockUp_\SegmentStockUpPrint.cs" />
<Compile Include="Utils\ControlsUtil.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ButcherFactory.BO\ButcherFactory.BO.csproj">
<Project>{b258c523-269c-4ed7-ab71-7196d5d2ef65}</Project>
<Name>ButcherFactory.BO</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="CarcassInStore_\CarcassInStoreForm.resx">
<DependentUpon>CarcassInStoreForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CarcassSaleOut2_\CarcassSaleOutForm.resx">
<DependentUpon>CarcassSaleOutForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CarcassSaleOut2_\CarcassSaleOutReadForm.resx">
<DependentUpon>CarcassSaleOutReadForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\FormTemplate.resx">
<DependentUpon>FormTemplate.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\InfoBox.resx">
<DependentUpon>InfoBox.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\WeightControl.resx">
<DependentUpon>WeightControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CarcassSaleOut_\CarcassSaleOutForm.resx">
<DependentUpon>CarcassSaleOutForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="CarcassTakeOut_\CarcassTakeOutForm.resx">
<DependentUpon>CarcassTakeOutForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Controls\WeightSettingFrom.resx">
<DependentUpon>WeightSettingFrom.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\AddWeightRecord.resx">
<DependentUpon>AddWeightRecord.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\ClientGoodsSetDialog.resx">
<DependentUpon>ClientGoodsSetDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\NumberSetDialog.resx">
<DependentUpon>NumberSetDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\SelectBillStateDialog.resx">
<DependentUpon>SelectBillStateDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\SelectCustomerDialog.resx">
<DependentUpon>SelectCustomerDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\SelectDeliverGoodsLineDialog.resx">
<DependentUpon>SelectDeliverGoodsLineDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\SelectStoreDialog.resx">
<DependentUpon>SelectStoreDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\WeightDeleteRecord.resx">
<DependentUpon>WeightDeleteRecord.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Dialogs\WeightRecordDialog.resx">
<DependentUpon>WeightRecordDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\Resources.resx">
<Generator>ResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.cs</LastGenOutput>
</EmbeddedResource>
<EmbeddedResource Include="SegmentInStore_\InStoreSummaryView.resx">
<DependentUpon>InStoreSummaryView.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentInStore_\SegmentInStoreForm.resx">
<DependentUpon>SegmentInStoreForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentPickUp_\SegmentPickUpForm.resx">
<DependentUpon>SegmentPickUpForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentProductionAuto_\SegmentProductionAutoForm.resx">
<DependentUpon>SegmentProductionAutoForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentProductionAuto_\TemplateSelector.resx">
<DependentUpon>TemplateSelector.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentProduction_\SegmentProductionForm.resx">
<DependentUpon>SegmentProductionForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentProduction_\TrunOutDialog.resx">
<DependentUpon>TrunOutDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentSaleOut_\AddWeightRecord.resx">
<DependentUpon>AddWeightRecord.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentSaleOut_\DiscontSetDialog.resx">
<DependentUpon>DiscontSetDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentSaleOut_\SegmentSaleOutForm.resx">
<DependentUpon>SegmentSaleOutForm.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentSaleOut_\WeightRecordDialog.resx">
<DependentUpon>WeightRecordDialog.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="SegmentStockUp_\SegmentStockUpForm.resx">
<DependentUpon>SegmentStockUpForm.cs</DependentUpon>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<Page Include="Dialogs\CalendarSelecter.xaml">
<SubType>Designer</SubType>
<Generator>MSBuild:Compile</Generator>
</Page>
</ItemGroup>
<ItemGroup>
<None Include="Resources\closeImg.png" />
</ItemGroup>
<ItemGroup>
<Content Include="Files\app.ico" />
<Content Include="Files\check.png" />
<Content Include="Files\click.wav" />
<Content Include="Files\closeImg.png" />
<Content Include="Files\DbSelectList.xml" />
<Content Include="Files\di.wav" />
<Content Include="Files\error.wav" />
<Content Include="Files\formTitle.png" />
<Content Include="Files\l40.wav" />
<Content Include="Files\l45.wav" />
<Content Include="Files\l50.wav" />
<Content Include="Files\l55.wav" />
<Content Include="Files\l60.wav" />
<Content Include="Files\l65.wav" />
<Content Include="Files\l68.wav" />
<Content Include="Files\logo.png" />
<Content Include="Files\longSucc.wav" />
<Content Include="Files\RoleRedirectConfig.xml" />
<Content Include="Files\shotSucc.wav" />
<Content Include="Files\today.png" />
<Content Include="Files\uCheck.png" />
<Content Include="Files\wtl.wav" />
<Content Include="SegmentProduction_\SegmentProductionPrint1.html" />
<Content Include="SegmentProduction_\SegmentProductionPrint.html" />
<Content Include="SegmentProduction_\SegmentProductionPrintEnd.html" />
<Content Include="SegmentStockUp_\SegmentStockUpPrint.html" />
<Content Include="SegmentStockUp_\SegmentStockUpPrint.txt" />
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<PropertyGroup>
<PostBuildEvent>if $(Configuration)==Debug (
xcopy "$(ProjectDir)bin\debug\*.*" "$(ProjectDir)..\ButcherFactory.Login\bin\debug\" /y
)</PostBuildEvent>
</PropertyGroup>
)</PostBuildEvent>
</PropertyGroup>
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
-->
</Project>

+ 1
- 1
ButcherFactory.Form/CarcassSaleOut_/CarcassSaleOutForm.cs View File

@ -16,7 +16,7 @@ using WinFormControl;
namespace ButcherFactory.CarcassSaleOut_
{
public partial class CarcassSaleOutForm : Form//, IWithRoleForm
public partial class CarcassSaleOutForm : Form, IWithRoleForm
{
#region IWithRoleForm
public List<short> RoleName


+ 626
- 688
ButcherFactory.Form/CarcassTakeOut_/CarcassTakeOutForm.Designer.cs
File diff suppressed because it is too large
View File


+ 30
- 129
ButcherFactory.Form/CarcassTakeOut_/CarcassTakeOutForm.cs View File

@ -32,28 +32,33 @@ namespace ButcherFactory.CarcassTakeOut_
}
#endregion
const string FilePatch = @"Config\NumberSetDialog.cfg";
Thread syncBeforeInfo;
Thread uploadData;
BindingList<CarcassTakeOut> needSubmitedList;
BindingList<CarcassTakeOut> historyList;
BindingList<CarcassTakeOutWeightTemp> weightList;
long? workUnitID;
long? batchID;
bool isCarcass;
long? batchID;
CarcassTakeOutFormConfig config;
public CarcassTakeOutForm()
{
InitializeComponent();
BuildNumberPanel();
netStateWatch1.GetConnectState = () => LoginUtil.TestConnection(500);
uScanPanel1.AfterScan += uScanPanel1_AfterScan;
uScanPanel1.AfterScan += uScanPanel1_AfterScan;
storeSelect.SelectedIndexChanged += delegate
{
if (storeSelect.SelectedValue == null)
config.Store_ID = null;
else
config.Store_ID = (long)storeSelect.SelectedValue;
XmlUtil.SerializerObjToFile(config);
};
workUnitSelect.SelectedIndexChanged += delegate
{
if (workUnitSelect.SelectedValue == null)
workUnitID = null;
else
workUnitID = (long)workUnitSelect.SelectedValue;
XmlUtil.SerializerObjToFile(new CarcassTakeOutFormConfig { WorkUnitID = workUnitID });
config.WorkUnitID = null;
else
config.WorkUnitID = (long)workUnitSelect.SelectedValue;
XmlUtil.SerializerObjToFile(config);
};
productBatchSelect.SelectedIndexChanged += delegate
{
@ -88,19 +93,19 @@ namespace ButcherFactory.CarcassTakeOut_
{
this.Invoke(new Action(() =>
{
BLUtil.DeleteLocalDb<CarcassTakeOut>();
if (netStateWatch1.NetState)
{
BaseInfoSyncRpc.SyncGoodsByTag(ApplyClient.);
BaseInfoSyncRpc.SyncBaseInfo<WorkUnit>();
BaseInfoSyncRpc.SyncProductBatch(0);
BLUtil.DeleteLocalDb<CarcassTakeOut>();
if (netStateWatch1.NetState)
{
BaseInfoSyncRpc.SyncGoodsByTag(ApplyClient.);
BaseInfoSyncRpc.SyncBaseInfo<WorkUnit>();
BaseInfoSyncRpc.SyncProductBatch(0);
BaseInfoSyncRpc.SyncBaseInfo<Store>();
}
productBatchSelect.EBindComboBox<ProductBatch>(x => x.Date == DateTime.Today, 6, "Date");
var config = XmlUtil.DeserializeFromFile<CarcassTakeOutFormConfig>();
var m = config.WorkUnitID;
workUnitSelect.EBindComboBox<WorkUnit>(x => x.ID == m, top: 100);
config = XmlUtil.DeserializeFromFile<CarcassTakeOutFormConfig>();
workUnitSelect.EBindComboBox<WorkUnit>(x => x.ID == config.WorkUnitID, top: 100);
storeSelect.EBindComboBox<Store>(x => x.ID == config.Store_ID, top: 100);
BindGoods();
BindGrid();
}));
@ -137,27 +142,11 @@ namespace ButcherFactory.CarcassTakeOut_
needSubmitGrid.DataSource = needSubmitedList;
needSubmitGrid.Refresh();
BindSectionBtn();
historyList = CarcassTakeOutBL.GetLocalDataWithState(true);
historyDataGrid.DataSource = historyList;
historyDataGrid.Refresh();
}
void BindSectionBtn()
{
if (needSubmitedList.Count == 0 || needSubmitedList.First().IsCarcass)
{
carcassBtn.Enabled = false;
SetSection(false);
}
else
{
sectionBtn.Enabled = false;
SetSection(true);
}
}
private void GetBeforeInfo()
{
while (true)
@ -216,7 +205,9 @@ namespace ButcherFactory.CarcassTakeOut_
}
void uScanPanel1_AfterScan()
{
{
if (config.Store_ID == null)
throw new Exception("请先选择仓库");
var barCode = uScanPanel1.TextBox.Text.Trim();
if (string.IsNullOrEmpty(barCode))
throw new Exception("请先扫码");
@ -237,8 +228,8 @@ namespace ButcherFactory.CarcassTakeOut_
}
void Insert(string barCode, long? goodsID, string goodsName)
{
var entity = CarcassTakeOutBL.Insert(workUnitID, batchID, goodsID, barCode, isCarcass);
{
var entity = CarcassTakeOutBL.Insert(config.WorkUnitID, batchID, goodsID, barCode, config.Store_ID.Value);
if (entity == null)
return;
if (string.IsNullOrEmpty(barCode))
@ -288,95 +279,5 @@ namespace ButcherFactory.CarcassTakeOut_
weightGrid.FirstDisplayedScrollingRowIndex = 0;
weightGrid.Refresh();
}
private void sectionBtn_Click(object sender, EventArgs e)
{
CheckCanChange();
SetSection(true);
}
private void carcassBtn_Click(object sender, EventArgs e)
{
CheckCanChange();
SetSection(false);
}
void CheckCanChange()
{
if (needSubmitedList.Any())
throw new Exception("领料明细有未提交的数据");
}
private void numSetBtn_Click(object sender, EventArgs e)
{
new NumberSetDialog().ShowDialog();
BuildNumberPanel();
}
void BuildNumberPanel()
{
numFlowPanel.Controls.Clear();
if (!System.IO.File.Exists(FilePatch))
return;
var simpBtn = new UButton() { Width = 100, Height = 34, Text = "自定义", Font = new Font("宋体", 15), Margin = new Padding(6, 2, 6, 0), WithStataHode = true, EnableGroup = true };
simpBtn.Click += delegate
{
var cr = GetCurrentRowEntity();
if (cr == null)
return;
var keyBoard = new NumberPad();
if (keyBoard.ShowDialog() == true)
{
var v = 0;
if (int.TryParse(keyBoard.Result, out v))
{
cr.Number = v;
CarcassTakeOutBL.Update(cr.ID, new Tuple<string, object>("Number", cr.Number));
needSubmitGrid.Refresh();
}
else
throw new Exception("输入头数有误!");
}
};
numFlowPanel.Controls.Add(simpBtn);
var arr = System.IO.File.ReadAllText(FilePatch).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Reverse();
foreach (var item in arr)
{
var btn = new UButton() { Width = 100, Height = 34, Text = item, Font = new Font("宋体", 15), Margin = new Padding(6, 2, 6, 0), WithStataHode = true, EnableGroup = true };
btn.Click += (sender, e) =>
{
var row = GetCurrentRowEntity();
if (row == null)
return;
var b = sender as UButton;
row.Number = int.Parse(b.Text);
CarcassTakeOutBL.Update(row.ID, new Tuple<string, object>("Number", row.Number));
needSubmitGrid.Refresh();
};
numFlowPanel.Controls.Add(btn);
}
}
CarcassTakeOut GetCurrentRowEntity()
{
if (needSubmitGrid.CurrentRow == null)
return null;
var row = needSubmitGrid.CurrentRow.DataBoundItem as CarcassTakeOut;
if (string.IsNullOrEmpty(row.BarCode))
return row;
return null;
}
void SetSection(bool section)
{
numSetBtn.Visible = section;
numFlowPanel.Visible = section;
isCarcass = !section;
if (section)
carcassBtn.Enabled = true;
else
sectionBtn.Enabled = true;
}
}
}

+ 157
- 189
ButcherFactory.Form/CarcassTakeOut_/CarcassTakeOutForm.resx View File

@ -1,190 +1,158 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="numSetBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<data name="carcassBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<data name="sectionBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<data name="closeBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<metadata name="H_RowIndex.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="H_Number.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="W_ID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="W_Weight.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="U_RowIndex.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="U_Number.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="U_Weight.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="readBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<data name="submitBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="H_RowIndex.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="H_Number.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="W_ID.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="W_Weight.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="U_RowIndex.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="U_Number.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="U_Weight.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="readBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<data name="submitBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
</root>

+ 3
- 1
ButcherFactory.Form/CarcassTakeOut_/CarcassTakeOutFormConfig.cs View File

@ -8,6 +8,8 @@ namespace ButcherFactory.CarcassTakeOut_
{
public class CarcassTakeOutFormConfig
{
public long? WorkUnitID { get; set; }
public long? WorkUnitID { get; set; }
public long? Store_ID { get; set; }
}
}

+ 23
- 0
ButcherFactory.Form/Files/DbSelectList.xml View File

@ -0,0 +1,23 @@
<?xml version="1.0"?>
<ArrayOfDbSelectEntity xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<DbSelectEntity>
<Name>我的机器</Name>
<Value>Server=.;Database=LocalClientService;Integrated Security=true;Language=Simplified Chinese;</Value>
</DbSelectEntity>
<DbSelectEntity>
<Name>L2</Name>
<Value>Server=.;Database=L2;Integrated Security=true;Language=Simplified Chinese;</Value>
</DbSelectEntity>
<DbSelectEntity>
<Name>主机</Name>
<Value>Server=172.28.21.5;Database=LocalClientService;User ID=sa;Password=123;Language=Simplified Chinese;</Value>
</DbSelectEntity>
<DbSelectEntity>
<Name>线路01</Name>
<Value>Server=172.28.1.194;Database=LocalClientService;User ID=sa;Password=Wanfu2014;Language=Simplified Chinese;</Value>
</DbSelectEntity>
<DbSelectEntity>
<Name>线路02</Name>
<Value>Server=172.28.1.99;Database=LocalClientService;User ID=sa;Password=Wanfu2014;Language=Simplified Chinese;</Value>
</DbSelectEntity>
</ArrayOfDbSelectEntity>

+ 7
- 0
ButcherFactory.Form/Files/RoleRedirectConfig.xml View File

@ -0,0 +1,7 @@
<?xml version="1.0"?>
<ArrayOfRoleRedirectConfig xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<RoleRedirectConfig>
<Role>2</Role>
<RedirectRole>201</RedirectRole>
</RoleRedirectConfig>
</ArrayOfRoleRedirectConfig>

BIN
ButcherFactory.Form/Files/app.ico View File

Before After

BIN
ButcherFactory.Form/Files/check.png View File

Before After
Width: 20  |  Height: 20  |  Size: 328 B

BIN
ButcherFactory.Form/Files/click.wav View File


BIN
ButcherFactory.Form/Files/closeImg.png View File

Before After
Width: 30  |  Height: 30  |  Size: 3.2 KiB

BIN
ButcherFactory.Form/Files/di.wav View File


BIN
ButcherFactory.Form/Files/error.wav View File


BIN
ButcherFactory.Form/Files/formTitle.png View File

Before After
Width: 181  |  Height: 25  |  Size: 3.1 KiB

BIN
ButcherFactory.Form/Files/l40.wav View File


BIN
ButcherFactory.Form/Files/l45.wav View File


BIN
ButcherFactory.Form/Files/l50.wav View File


BIN
ButcherFactory.Form/Files/l55.wav View File


BIN
ButcherFactory.Form/Files/l60.wav View File


BIN
ButcherFactory.Form/Files/l65.wav View File


BIN
ButcherFactory.Form/Files/l68.wav View File


BIN
ButcherFactory.Form/Files/logo.png View File

Before After
Width: 44  |  Height: 44  |  Size: 2.7 KiB

BIN
ButcherFactory.Form/Files/longSucc.wav View File


BIN
ButcherFactory.Form/Files/shotSucc.wav View File


BIN
ButcherFactory.Form/Files/today.png View File

Before After
Width: 44  |  Height: 34  |  Size: 1.1 KiB

BIN
ButcherFactory.Form/Files/uCheck.png View File

Before After
Width: 16  |  Height: 16  |  Size: 158 B

BIN
ButcherFactory.Form/Files/wtl.wav View File


+ 3
- 1
ButcherFactory.Form/SegmentPickUp_/SegmentPickUpConfig.cs View File

@ -8,6 +8,8 @@ namespace ButcherFactory.SegmentPickUp_
{
public class SegmentPickUpConfig
{
public long? WorkUnitID { get; set; }
public long? WorkUnitID { get; set; }
public long? Store_ID { get; set; }
}
}

+ 508
- 511
ButcherFactory.Form/SegmentPickUp_/SegmentPickUpForm.Designer.cs
File diff suppressed because it is too large
View File


+ 269
- 331
ButcherFactory.Form/SegmentPickUp_/SegmentPickUpForm.cs View File

@ -1,331 +1,269 @@
using ButcherFactory.BO;
using ButcherFactory.BO.Rpcs;
using ButcherFactory.BO.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using ButcherFactory.Utils;
using WinFormControl;
using ButcherFactory.BO.LocalBL;
using ButcherFactory.Dialogs;
using ButcherFactory.BO.Bill;
namespace ButcherFactory.SegmentPickUp_
{
public partial class SegmentPickUpForm : Form, IWithRoleForm
{
#region IWithRoleForm
public List<short> RoleName
{
get { return new List<short> { (short). }; }
}
public Form Generate()
{
return this;
}
#endregion
const string FilePatch = @"Config\NumberSetDialog.cfg";
Thread syncBeforeInfo;
Thread uploadData;
BindingList<SegmentPickUp> needSubmitedList;
BindingList<SegmentPickUp> historyList;
long? workUnitID;
long? batchID;
public SegmentPickUpForm()
{
InitializeComponent();
BuildNumberPanel();
netStateWatch1.GetConnectState = () => LoginUtil.TestConnection(500);
uScanPanel1.AfterScan += uScanPanel1_AfterScan;
workUnitSelect.SelectedIndexChanged += delegate
{
if (workUnitSelect.SelectedValue == null)
workUnitID = null;
else
workUnitID = (long)workUnitSelect.SelectedValue;
XmlUtil.SerializerObjToFile(new SegmentPickUpConfig { WorkUnitID = workUnitID });
};
productBatchSelect.SelectedIndexChanged += delegate
{
if (productBatchSelect.SelectedValue == null)
batchID = null;
else
batchID = (long)productBatchSelect.SelectedValue;
};
this.FormClosing += delegate
{
if (syncBeforeInfo != null && syncBeforeInfo.IsAlive)
syncBeforeInfo.Abort();
if (uploadData != null && uploadData.IsAlive)
uploadData.Abort();
};
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
var initTask = new Thread(LoadBind);
initTask.Start();
syncBeforeInfo = new Thread(GetBeforeInfo);
syncBeforeInfo.Start();
uploadData = new Thread(UpLoadLocalData);
uploadData.Start();
}
private void LoadBind()
{
this.Invoke(new Action(() =>
{
BLUtil.DeleteLocalDb<SegmentPickUp>();
if (netStateWatch1.NetState)
{
BaseInfoSyncRpc.SyncGoodsByTag(ApplyClient.);
BaseInfoSyncRpc.SyncBaseInfo<WorkUnit>();
BaseInfoSyncRpc.SyncProductBatch(1);
}
productBatchSelect.EBindComboBox<ProductBatch>(x => x.Date == DateTime.Today, 6, "Date");
var config = XmlUtil.DeserializeFromFile<SegmentPickUpConfig>();
var m = config.WorkUnitID;
workUnitSelect.EBindComboBox<WorkUnit>(x => x.ID == m, top: 100);
BindGoods();
BindGrid();
}));
}
List<UButton> goodsBtns = new List<UButton>();
void BindGoods()
{
var goods = FormClientGoodsSetBL.GetGoodsList();
foreach (var item in goods)
{
var btn = new UButton() { Width = 120, Height = 75, Text = item.Goods_Name, Tag = item.Goods_ID, Font = new Font("宋体", 15), Margin = new Padding(22, 10, 22, 30), PlaySound = true };
btn.Click += GoodsBtnClick;
goodsBtns.Add(btn);
flowLayoutPanel1.Controls.Add(btn);
}
}
void GoodsBtnClick(object sender, EventArgs e)
{
if (batchID == null)
throw new Exception("请先选择批次");
if (uWeightControl1.Weight == 0)
throw new Exception("重量不能为0!");
var c = sender as UButton;
var entity = new SegmentPickUp();
entity.RowIndex = GetRowIndex();
entity.Weight = uWeightControl1.Weight;
entity.Goods_ID = (long)c.Tag;
entity.Goods_Name = c.Text;
entity.ProductBatch_ID = batchID;
entity.WorkUnit_ID = workUnitID;
SegmentPickUpBL.InsertEntityByWeight(entity);
needSubmitedList.Insert(0, entity);
AfterInsert();
}
void BindGrid()
{
needSubmitedList = SegmentPickUpBL.GetSegmentPickUp(true);
needSubmitGrid.DataSource = needSubmitedList;
needSubmitGrid.Refresh();
historyList = SegmentPickUpBL.GetSegmentPickUp(false);
historyDataGrid.DataSource = historyList;
historyDataGrid.Refresh();
}
private void GetBeforeInfo()
{
while (true)
{
if (this.IsHandleCreated)
{
this.Invoke(new Action(() =>
{
if (netStateWatch1.NetState)
{
bool ff = true;
var list = needSubmitedList.Where(x => x.Weight == null).Take(5);
if (!list.Any())
{
list = historyList.Where(x => x.Weight == null).Take(5);
ff = false;
}
if (list.Any())
{
var back = SegmentPickUpBL.GetBeforeInfo(list.Select(x => x.BarCode));
if (back.Any())
{
foreach (var item in back)
{
var f = list.First(x => x.BarCode == item.StringExt1);
f.Weight = item.DecimalExt1;
f.Goods_Name = item.StringExt2;
}
if (ff)
needSubmitGrid.Refresh();
else
historyDataGrid.Refresh();
}
}
}
}));
}
Thread.Sleep(2000);
}
}
private void UpLoadLocalData()
{
while (true)
{
if (this.IsHandleCreated)
{
this.Invoke(new Action(() =>
{
if (netStateWatch1.NetState)
SegmentPickUpBL.UploadSegmentInfo();
}));
}
Thread.Sleep(2000);
}
}
void uScanPanel1_AfterScan()
{
var barCode = uScanPanel1.TextBox.Text.Trim();
if (string.IsNullOrEmpty(barCode))
throw new Exception("请先扫码");
if (barCode.Length != 24)
throw new Exception("条码格式不正确");
if (needSubmitedList.Any(x => x.BarCode == barCode) || historyList.Any(x => x.BarCode == barCode))
return;
var entity = new SegmentPickUp();
entity.BarCode = barCode;
entity.WorkUnit_ID = workUnitID;
entity.RowIndex = GetRowIndex();
SegmentPickUpBL.InsertEntityByCode(entity);
needSubmitedList.Insert(0, entity);
AfterInsert();
uScanPanel1.TextBox.Clear();
}
void AfterInsert()
{
needSubmitGrid.FirstDisplayedScrollingRowIndex = 0;
needSubmitGrid.Rows[0].Selected = true;
needSubmitGrid.Refresh();
}
int GetRowIndex()
{
var f = needSubmitedList.FirstOrDefault(x => x.CreateTime.Date == DateTime.Today);
if (f != null)
return f.RowIndex.Value + 1;
else if (historyList.Any())
return historyList.First().RowIndex.Value + 1;
else
return 1;
}
private void closeBtn_Click(object sender, EventArgs e)
{
Close();
}
private void submitBtn_Click(object sender, EventArgs e)
{
if (needSubmitedList.Count == 0)
throw new Exception("没有待提交记录");
var arr = needSubmitedList.ToList();
SegmentPickUpBL.UpdateSubmit(needSubmitedList.Select(x => x.ID));
foreach (var item in arr)
{
historyList.Add(item);
if (historyList.Count > 50)
historyList.RemoveAt(50);
needSubmitedList.Remove(item);
}
historyDataGrid.FirstDisplayedScrollingRowIndex = 0;
historyDataGrid.Refresh();
needSubmitGrid.Refresh();
}
private void numSetBtn_Click(object sender, EventArgs e)
{
new NumberSetDialog().ShowDialog();
BuildNumberPanel();
}
void BuildNumberPanel()
{
numFlowPanel.Controls.Clear();
if (!System.IO.File.Exists(FilePatch))
return;
var simpBtn = new UButton() { Width = 100, Height = 34, Text = "自定义", Font = new Font("宋体", 15), Margin = new Padding(6, 2, 6, 0), WithStataHode = true, EnableGroup = true };
simpBtn.Click += delegate
{
var cr = GetCurrentRowEntity();
if (cr == null)
return;
var keyBoard = new NumberPad();
if (keyBoard.ShowDialog() == true)
{
var v = 0;
if (int.TryParse(keyBoard.Result, out v) && v > 0)
{
cr.Number = v;
SegmentPickUpBL.UpdateNumber(cr.ID, cr.Number);
needSubmitGrid.Refresh();
}
else
throw new Exception("输入数量有误!");
}
};
numFlowPanel.Controls.Add(simpBtn);
var arr = System.IO.File.ReadAllText(FilePatch).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Reverse();
foreach (var item in arr)
{
var btn = new UButton() { Width = 100, Height = 34, Text = item, Font = new Font("宋体", 15), Margin = new Padding(6, 2, 6, 0), WithStataHode = true, EnableGroup = true };
btn.Click += (sender, e) =>
{
var row = GetCurrentRowEntity();
if (row == null)
return;
var b = sender as UButton;
row.Number = int.Parse(b.Text);
SegmentPickUpBL.UpdateNumber(row.ID, row.Number);
needSubmitGrid.Refresh();
};
numFlowPanel.Controls.Add(btn);
}
}
SegmentPickUp GetCurrentRowEntity()
{
if (needSubmitGrid.CurrentRow == null)
return null;
var row = needSubmitGrid.CurrentRow.DataBoundItem as SegmentPickUp;
if (string.IsNullOrEmpty(row.BarCode))
return row;
return null;
}
}
}
using ButcherFactory.BO;
using ButcherFactory.BO.Rpcs;
using ButcherFactory.BO.Utils;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.Threading.Tasks;
using System.Windows.Forms;
using ButcherFactory.Utils;
using WinFormControl;
using ButcherFactory.BO.LocalBL;
using ButcherFactory.Dialogs;
using ButcherFactory.BO.Bill;
namespace ButcherFactory.SegmentPickUp_
{
public partial class SegmentPickUpForm : Form, IWithRoleForm
{
#region IWithRoleForm
public List<short> RoleName
{
get { return new List<short> { (short). }; }
}
public Form Generate()
{
return this;
}
#endregion
const string FilePatch = @"Config\NumberSetDialog.cfg";
Thread syncBeforeInfo;
Thread uploadData;
BindingList<SegmentPickUp> needSubmitedList;
BindingList<SegmentPickUp> historyList;
SegmentPickUpConfig config;
long? batchID;
public SegmentPickUpForm()
{
InitializeComponent();
BuildNumberPanel();
workUnitSelect.SelectedIndexChanged += delegate
{
if (workUnitSelect.SelectedValue == null)
config.WorkUnitID = null;
else
config.WorkUnitID = (long)workUnitSelect.SelectedValue;
XmlUtil.SerializerObjToFile(config);
};
storeSelect.SelectedIndexChanged += delegate
{
if (storeSelect.SelectedValue == null)
config.Store_ID = null;
else
config.Store_ID = (long)storeSelect.SelectedValue;
XmlUtil.SerializerObjToFile(config);
};
productBatchSelect.SelectedIndexChanged += delegate
{
if (productBatchSelect.SelectedValue == null)
batchID = null;
else
batchID = (long)productBatchSelect.SelectedValue;
};
this.FormClosing += delegate
{
if (uploadData != null && uploadData.IsAlive)
uploadData.Abort();
};
}
protected override void OnLoad(EventArgs e)
{
base.OnLoad(e);
var initTask = new Thread(LoadBind);
initTask.Start();
uploadData = new Thread(UpLoadLocalData);
uploadData.Start();
}
private void LoadBind()
{
this.Invoke(new Action(() =>
{
BLUtil.DeleteLocalDb<SegmentPickUp>();
BaseInfoSyncRpc.SyncGoodsByTag(ApplyClient.);
BaseInfoSyncRpc.SyncBaseInfo<WorkUnit>();
BaseInfoSyncRpc.SyncProductBatch(1);
BaseInfoSyncRpc.SyncBaseInfo<Store>();
productBatchSelect.EBindComboBox<ProductBatch>(x => x.Date == DateTime.Today, 6, "Date");
config = XmlUtil.DeserializeFromFile<SegmentPickUpConfig>();
workUnitSelect.EBindComboBox<WorkUnit>(x => x.ID == config.WorkUnitID, top: 100);
storeSelect.EBindComboBox<Store>(x => x.ID == config.Store_ID, top: 100);
BindGoods();
BindGrid();
}));
}
List<UButton> goodsBtns = new List<UButton>();
void BindGoods()
{
var goods = FormClientGoodsSetBL.GetGoodsList();
foreach (var item in goods)
{
var btn = new UButton() { Width = 120, Height = 75, Text = item.Goods_Name, Tag = item.Goods_ID, Font = new Font("宋体", 15), Margin = new Padding(22, 10, 22, 30), PlaySound = true };
btn.Click += GoodsBtnClick;
goodsBtns.Add(btn);
flowLayoutPanel1.Controls.Add(btn);
}
}
void GoodsBtnClick(object sender, EventArgs e)
{
if (batchID == null)
throw new Exception("请先选择批次");
if (config.Store_ID == null)
throw new Exception("请先选择仓库");
if (uWeightControl1.Weight == 0)
throw new Exception("重量不能为0!");
var c = sender as UButton;
var entity = new SegmentPickUp();
entity.RowIndex = GetRowIndex();
entity.Weight = uWeightControl1.Weight;
entity.Goods_ID = (long)c.Tag;
entity.Goods_Name = c.Text;
entity.ProductBatch_ID = batchID;
entity.WorkUnit_ID = config.WorkUnitID;
entity.Store_ID = config.Store_ID;
SegmentPickUpBL.InsertEntityByWeight(entity);
needSubmitedList.Insert(0, entity);
AfterInsert();
}
void BindGrid()
{
needSubmitedList = SegmentPickUpBL.GetSegmentPickUp(false);
needSubmitGrid.DataSource = needSubmitedList;
needSubmitGrid.Refresh();
historyList = SegmentPickUpBL.GetSegmentPickUp(true);
historyDataGrid.DataSource = historyList;
historyDataGrid.Refresh();
}
private void UpLoadLocalData()
{
while (true)
{
if (this.IsHandleCreated)
{
this.Invoke(new Action(() =>
{
SegmentPickUpBL.UploadSegmentInfo();
}));
}
Thread.Sleep(2000);
}
}
void AfterInsert()
{
needSubmitGrid.FirstDisplayedScrollingRowIndex = 0;
needSubmitGrid.Rows[0].Selected = true;
needSubmitGrid.CurrentCell = needSubmitGrid.Rows[0].Cells[2];
needSubmitGrid.Refresh();
}
int GetRowIndex()
{
var f = needSubmitedList.FirstOrDefault(x => x.CreateTime.Date == DateTime.Today);
if (f != null)
return f.RowIndex.Value + 1;
else if (historyList.Any())
return historyList.First().RowIndex.Value + 1;
else
return 1;
}
private void closeBtn_Click(object sender, EventArgs e)
{
Close();
}
private void submitBtn_Click(object sender, EventArgs e)
{
if (needSubmitedList.Count == 0)
throw new Exception("没有待提交记录");
var arr = needSubmitedList.ToList();
arr.Reverse();
SegmentPickUpBL.UpdateSubmit(needSubmitedList.Select(x => x.ID));
foreach (var item in arr)
{
historyList.Insert(0, item);
if (historyList.Count > 50)
historyList.RemoveAt(50);
needSubmitedList.Remove(item);
}
historyDataGrid.FirstDisplayedScrollingRowIndex = 0;
historyDataGrid.Refresh();
needSubmitGrid.Refresh();
}
private void numSetBtn_Click(object sender, EventArgs e)
{
new NumberSetDialog().ShowDialog();
BuildNumberPanel();
}
void BuildNumberPanel()
{
numFlowPanel.Controls.Clear();
if (!System.IO.File.Exists(FilePatch))
return;
var simpBtn = new UButton() { Width = 100, Height = 34, Text = "自定义", Font = new Font("宋体", 15), Margin = new Padding(6, 2, 6, 0), WithStataHode = true, EnableGroup = true };
simpBtn.Click += delegate
{
var cr = GetCurrentRowEntity();
if (cr == null)
return;
var keyBoard = new NumberPad();
if (keyBoard.ShowDialog() == true)
{
var v = 0;
if (int.TryParse(keyBoard.Result, out v) && v > 0)
{
cr.Number = v;
SegmentPickUpBL.UpdateNumber(cr.ID, cr.Number);
needSubmitGrid.Refresh();
}
else
throw new Exception("输入数量有误!");
}
};
numFlowPanel.Controls.Add(simpBtn);
var arr = System.IO.File.ReadAllText(FilePatch).Split(new char[] { ',' }, StringSplitOptions.RemoveEmptyEntries).Reverse();
foreach (var item in arr)
{
var btn = new UButton() { Width = 100, Height = 34, Text = item, Font = new Font("宋体", 15), Margin = new Padding(6, 2, 6, 0), WithStataHode = true, EnableGroup = true };
btn.Click += (sender, e) =>
{
var row = GetCurrentRowEntity();
if (row == null)
return;
var b = sender as UButton;
row.Number = int.Parse(b.Text);
SegmentPickUpBL.UpdateNumber(row.ID, row.Number);
needSubmitGrid.Refresh();
};
numFlowPanel.Controls.Add(btn);
}
}
SegmentPickUp GetCurrentRowEntity()
{
if (needSubmitGrid.CurrentRow == null)
return null;
return needSubmitGrid.CurrentRow.DataBoundItem as SegmentPickUp;
}
}
}

+ 159
- 159
ButcherFactory.Form/SegmentPickUp_/SegmentPickUpForm.resx View File

@ -1,160 +1,160 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="submitBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<metadata name="U_RowIndex.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="U_Number.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="U_Weight.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="numSetBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<data name="closeBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<metadata name="H_RowIndex.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="H_Number.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="submitBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<metadata name="U_RowIndex.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="U_Number.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="U_Weight.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="numSetBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<data name="closeBtn.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAGAAAAAwCAIAAABhdOiYAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
wwAADsMBx2+oZAAAAHNJREFUaEPt0AENACAMwDAkowVB14aDz0CTKui5b1gICoKCoCAoCAqCgqAgKAgK
goKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAgKAgKgoKgICgICoKCoCAoCAqCgqAg
KAgKgoKg1ZsPvpCB0hBohjQAAAAASUVORK5CYII=
</value>
</data>
<metadata name="H_RowIndex.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="H_Number.UserAddedColumn" type="System.Boolean, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
</root>

+ 11
- 11
ButcherFactory.Form/SegmentProduction_/SegmentProductionForm.cs View File

@ -18,17 +18,17 @@ using ButcherFactory.Dialogs;
namespace ButcherFactory.SegmentProduction_
{
public partial class SegmentProductionForm : Form//, IWithRoleForm
{
//public List<short> RoleName
//{
// get { return new List<short> { (short)设备类别.分割生产 }; }
//}
//public Form Generate()
//{
// return this;
//}
public partial class SegmentProductionForm : Form, IWithRoleForm
{
public List<short> RoleName
{
get { return new List<short> { (short). }; }
}
public Form Generate()
{
return this;
}
Thread uploadData;
BindingList<SegmentProduction> historyList;


+ 2294
- 2173
ButcherFactorySolution/ButcherFactorySolution.vdproj
File diff suppressed because it is too large
View File


Loading…
Cancel
Save