From dcf08ab64dad8c7dbcd7a1e6f494d36861bd3baf Mon Sep 17 00:00:00 2001 From: robin Date: Mon, 19 Jun 2017 10:14:22 +0800 Subject: [PATCH] add --- BLUtil/BLUtil.csproj | 69 ++++ BLUtil/BaseInforObj.cs | 11 + BLUtil/DbUtil.cs | 178 +++++++++ BLUtil/EncodeString.cs | 56 +++ BLUtil/LoginRpc.cs | 60 +++ BLUtil/Properties/AssemblyInfo.cs | 36 ++ BLUtil/WeightTable.cs | 29 ++ BWPClientForTianRou.sln | 56 +++ BWPClientForTianRou/App.config | 17 + BWPClientForTianRou/AppDb.mdb | Bin 0 -> 299008 bytes BWPClientForTianRou/AutoSizeFormClass.cs | 111 ++++++ .../BWPClientForTianRou.csproj | 157 ++++++++ BWPClientForTianRou/Config.txt | 1 + BWPClientForTianRou/ConfigUtil.cs | 62 +++ .../FormProcessBar.Designer.cs | 65 ++++ BWPClientForTianRou/FormProcessBar.cs | 25 ++ BWPClientForTianRou/FormProcessBar.resx | 120 ++++++ BWPClientForTianRou/Image/u15.png | Bin 0 -> 1477 bytes BWPClientForTianRou/Image/u17.png | Bin 0 -> 6637 bytes BWPClientForTianRou/Image/u19.png | Bin 0 -> 6096 bytes BWPClientForTianRou/Image/u37.png | Bin 0 -> 6071 bytes BWPClientForTianRou/KeyPad.csproj | 125 ++++++ .../Converter/BoolToVisibilityConverter.cs | 21 + BWPClientForTianRou/KeyPad/KeyPad.csproj | 148 +++++++ BWPClientForTianRou/KeyPad/Keypad.xaml | 61 +++ BWPClientForTianRou/KeyPad/Keypad.xaml.cs | 88 +++++ .../KeyPad/Properties/AssemblyInfo.cs | 55 +++ .../KeyPad/Properties/Resources.Designer.cs | 71 ++++ .../KeyPad/Properties/Resources.resx | 117 ++++++ .../KeyPad/Properties/Settings.Designer.cs | 30 ++ .../KeyPad/Properties/Settings.settings | 7 + .../KeyPad/VirtualKeyboard.xaml | 353 +++++++++++++++++ .../KeyPad/VirtualKeyboard.xaml.cs | 128 ++++++ BWPClientForTianRou/KeyPad/app.config | 3 + .../KeyPad/bin/Debug/KeyPad.dll | Bin 0 -> 29696 bytes .../KeyPad/bin/Debug/KeyPad.dll.config | 3 + .../KeyPad/bin/Debug/KeyPad.pdb | Bin 0 -> 56832 bytes .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 12105 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6677 bytes .../Debug/GeneratedInternalTypeHelper.g.cs | 62 +++ .../Debug/GeneratedInternalTypeHelper.g.i.cs | 62 +++ .../KeyPad.Properties.Resources.resources | Bin 0 -> 180 bytes .../Debug/KeyPad.csproj.FileListAbsolute.txt | 30 ++ .../KeyPad.csproj.GenerateResource.Cache | Bin 0 -> 917 bytes .../KeyPad/obj/Debug/KeyPad.dll | Bin 0 -> 29696 bytes .../KeyPad/obj/Debug/KeyPad.g.resources | Bin 0 -> 16741 bytes .../KeyPad/obj/Debug/KeyPad.pdb | Bin 0 -> 56832 bytes .../obj/Debug/KeyPad_MarkupCompile.cache | 20 + .../obj/Debug/KeyPad_MarkupCompile.i.cache | 20 + .../obj/Debug/KeyPad_MarkupCompile.lref | 4 + .../KeyPad/obj/Debug/Keypad.baml | Bin 0 -> 3562 bytes .../KeyPad/obj/Debug/Keypad.g.cs | 112 ++++++ .../KeyPad/obj/Debug/Keypad.g.i.cs | 112 ++++++ .../Properties.Resources.Designer.cs.dll | Bin 0 -> 4608 bytes .../KeyPad/obj/Debug/VirtualKeyboard.baml | Bin 0 -> 12901 bytes .../KeyPad/obj/Debug/VirtualKeyboard.g.cs | 146 +++++++ .../KeyPad/obj/Debug/VirtualKeyboard.g.i.cs | 146 +++++++ .../DesignTimeResolveAssemblyReferences.cache | Bin 0 -> 11423 bytes ...gnTimeResolveAssemblyReferencesInput.cache | Bin 0 -> 6681 bytes .../Debug/GeneratedInternalTypeHelper.g.cs | 62 +++ .../Debug/GeneratedInternalTypeHelper.g.i.cs | 62 +++ .../KeyPad.Properties.Resources.resources | Bin 0 -> 180 bytes .../Debug/KeyPad.csproj.FileListAbsolute.txt | 15 + .../KeyPad.csproj.GenerateResource.Cache | Bin 0 -> 917 bytes .../KeyPad/obj/x86/Debug/KeyPad.dll | Bin 0 -> 29696 bytes .../KeyPad/obj/x86/Debug/KeyPad.g.resources | Bin 0 -> 16741 bytes .../KeyPad/obj/x86/Debug/KeyPad.pdb | Bin 0 -> 46592 bytes .../obj/x86/Debug/KeyPad_MarkupCompile.cache | 20 + .../x86/Debug/KeyPad_MarkupCompile.i.cache | 20 + .../obj/x86/Debug/KeyPad_MarkupCompile.lref | 4 + .../KeyPad/obj/x86/Debug/Keypad.baml | Bin 0 -> 3562 bytes .../KeyPad/obj/x86/Debug/Keypad.g.cs | 112 ++++++ .../KeyPad/obj/x86/Debug/Keypad.g.i.cs | 112 ++++++ .../Properties.Resources.Designer.cs.dll | Bin 0 -> 4608 bytes .../KeyPad/obj/x86/Debug/VirtualKeyboard.baml | Bin 0 -> 12901 bytes .../KeyPad/obj/x86/Debug/VirtualKeyboard.g.cs | 146 +++++++ .../obj/x86/Debug/VirtualKeyboard.g.i.cs | 146 +++++++ BWPClientForTianRou/LoginForm.Designer.cs | 144 +++++++ BWPClientForTianRou/LoginForm.cs | 99 +++++ BWPClientForTianRou/LoginForm.resx | 206 ++++++++++ BWPClientForTianRou/MainForm.Designer.cs | 364 ++++++++++++++++++ BWPClientForTianRou/MainForm.cs | 341 ++++++++++++++++ BWPClientForTianRou/MainForm.resx | 144 +++++++ BWPClientForTianRou/Program.cs | 22 ++ .../Properties/AssemblyInfo.cs | 36 ++ .../Properties/Resources.Designer.cs | 62 +++ BWPClientForTianRou/Properties/Resources.resx | 117 ++++++ .../Properties/Settings.Designer.cs | 37 ++ .../Properties/Settings.settings | 14 + .../SelectGoodsForm.Designer.cs | 138 +++++++ BWPClientForTianRou/SelectGoodsForm.cs | 81 ++++ BWPClientForTianRou/SelectGoodsForm.resx | 123 ++++++ BWPClientForTianRou/WinApiSendMessage.cs | 31 ++ 93 files changed, 5635 insertions(+) create mode 100644 BLUtil/BLUtil.csproj create mode 100644 BLUtil/BaseInforObj.cs create mode 100644 BLUtil/DbUtil.cs create mode 100644 BLUtil/EncodeString.cs create mode 100644 BLUtil/LoginRpc.cs create mode 100644 BLUtil/Properties/AssemblyInfo.cs create mode 100644 BLUtil/WeightTable.cs create mode 100644 BWPClientForTianRou.sln create mode 100644 BWPClientForTianRou/App.config create mode 100644 BWPClientForTianRou/AppDb.mdb create mode 100644 BWPClientForTianRou/AutoSizeFormClass.cs create mode 100644 BWPClientForTianRou/BWPClientForTianRou.csproj create mode 100644 BWPClientForTianRou/Config.txt create mode 100644 BWPClientForTianRou/ConfigUtil.cs create mode 100644 BWPClientForTianRou/FormProcessBar.Designer.cs create mode 100644 BWPClientForTianRou/FormProcessBar.cs create mode 100644 BWPClientForTianRou/FormProcessBar.resx create mode 100644 BWPClientForTianRou/Image/u15.png create mode 100644 BWPClientForTianRou/Image/u17.png create mode 100644 BWPClientForTianRou/Image/u19.png create mode 100644 BWPClientForTianRou/Image/u37.png create mode 100644 BWPClientForTianRou/KeyPad.csproj create mode 100644 BWPClientForTianRou/KeyPad/Converter/BoolToVisibilityConverter.cs create mode 100644 BWPClientForTianRou/KeyPad/KeyPad.csproj create mode 100644 BWPClientForTianRou/KeyPad/Keypad.xaml create mode 100644 BWPClientForTianRou/KeyPad/Keypad.xaml.cs create mode 100644 BWPClientForTianRou/KeyPad/Properties/AssemblyInfo.cs create mode 100644 BWPClientForTianRou/KeyPad/Properties/Resources.Designer.cs create mode 100644 BWPClientForTianRou/KeyPad/Properties/Resources.resx create mode 100644 BWPClientForTianRou/KeyPad/Properties/Settings.Designer.cs create mode 100644 BWPClientForTianRou/KeyPad/Properties/Settings.settings create mode 100644 BWPClientForTianRou/KeyPad/VirtualKeyboard.xaml create mode 100644 BWPClientForTianRou/KeyPad/VirtualKeyboard.xaml.cs create mode 100644 BWPClientForTianRou/KeyPad/app.config create mode 100644 BWPClientForTianRou/KeyPad/bin/Debug/KeyPad.dll create mode 100644 BWPClientForTianRou/KeyPad/bin/Debug/KeyPad.dll.config create mode 100644 BWPClientForTianRou/KeyPad/bin/Debug/KeyPad.pdb create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/DesignTimeResolveAssemblyReferences.cache create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/GeneratedInternalTypeHelper.g.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/GeneratedInternalTypeHelper.g.i.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/KeyPad.Properties.Resources.resources create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/KeyPad.csproj.FileListAbsolute.txt create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/KeyPad.csproj.GenerateResource.Cache create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/KeyPad.dll create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/KeyPad.g.resources create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/KeyPad.pdb create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/KeyPad_MarkupCompile.cache create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/KeyPad_MarkupCompile.i.cache create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/KeyPad_MarkupCompile.lref create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/Keypad.baml create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/Keypad.g.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/Keypad.g.i.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/VirtualKeyboard.baml create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/VirtualKeyboard.g.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/Debug/VirtualKeyboard.g.i.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/DesignTimeResolveAssemblyReferences.cache create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/DesignTimeResolveAssemblyReferencesInput.cache create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/GeneratedInternalTypeHelper.g.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/GeneratedInternalTypeHelper.g.i.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/KeyPad.Properties.Resources.resources create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/KeyPad.csproj.FileListAbsolute.txt create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/KeyPad.csproj.GenerateResource.Cache create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/KeyPad.dll create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/KeyPad.g.resources create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/KeyPad.pdb create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/KeyPad_MarkupCompile.cache create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/KeyPad_MarkupCompile.i.cache create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/KeyPad_MarkupCompile.lref create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/Keypad.baml create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/Keypad.g.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/Keypad.g.i.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/TempPE/Properties.Resources.Designer.cs.dll create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/VirtualKeyboard.baml create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/VirtualKeyboard.g.cs create mode 100644 BWPClientForTianRou/KeyPad/obj/x86/Debug/VirtualKeyboard.g.i.cs create mode 100644 BWPClientForTianRou/LoginForm.Designer.cs create mode 100644 BWPClientForTianRou/LoginForm.cs create mode 100644 BWPClientForTianRou/LoginForm.resx create mode 100644 BWPClientForTianRou/MainForm.Designer.cs create mode 100644 BWPClientForTianRou/MainForm.cs create mode 100644 BWPClientForTianRou/MainForm.resx create mode 100644 BWPClientForTianRou/Program.cs create mode 100644 BWPClientForTianRou/Properties/AssemblyInfo.cs create mode 100644 BWPClientForTianRou/Properties/Resources.Designer.cs create mode 100644 BWPClientForTianRou/Properties/Resources.resx create mode 100644 BWPClientForTianRou/Properties/Settings.Designer.cs create mode 100644 BWPClientForTianRou/Properties/Settings.settings create mode 100644 BWPClientForTianRou/SelectGoodsForm.Designer.cs create mode 100644 BWPClientForTianRou/SelectGoodsForm.cs create mode 100644 BWPClientForTianRou/SelectGoodsForm.resx create mode 100644 BWPClientForTianRou/WinApiSendMessage.cs diff --git a/BLUtil/BLUtil.csproj b/BLUtil/BLUtil.csproj new file mode 100644 index 0000000..d086a60 --- /dev/null +++ b/BLUtil/BLUtil.csproj @@ -0,0 +1,69 @@ + + + + Debug + AnyCPU + 8.0.30703 + 2.0 + {7E4543F1-5E83-40BF-B47A-29C40429EC2C} + Library + Properties + BLUtil + BLUtil + v4.0 + 512 + + + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + False + ..\..\..\..\..\tsref\release\forks.json.dll + + + False + ..\..\..\..\..\tsref\release\Forks.JsonRpc.Client.dll + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/BLUtil/BaseInforObj.cs b/BLUtil/BaseInforObj.cs new file mode 100644 index 0000000..29d840c --- /dev/null +++ b/BLUtil/BaseInforObj.cs @@ -0,0 +1,11 @@ +namespace BLUtil +{ + public class BaseInforObj { + public long ID { get; set; } + public string Name { get; set; } + public string Code { get; set; } + public string Spell { get; set; } + public int RowVersion { get; set; } + public string Unit { get; set; } + } +} \ No newline at end of file diff --git a/BLUtil/DbUtil.cs b/BLUtil/DbUtil.cs new file mode 100644 index 0000000..c8bcdc5 --- /dev/null +++ b/BLUtil/DbUtil.cs @@ -0,0 +1,178 @@ +using System; +using System.Collections.Generic; +using System.Data; +using System.IO; +using System.Windows.Forms; +using Forks.EnterpriseServices; +using Forks.Utils.Data; + +namespace BLUtil { + public class DbUtil { + + public static string ConnectionStr = ""; + + public static object DialogReturnValue { get; set; } + + private static int _startTime = 12;//默认12点 + + private static DateTime NewToday { + get { + if (DateTime.Now.Hour >= _startTime) { + return new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, _startTime, 0, 0); + } + return new DateTime(DateTime.Today.Year, DateTime.Today.Month, DateTime.Today.Day, _startTime, 0, 0).AddDays(-1); + } + } + + private static DateTime NextNewToday { + get { return NewToday.AddHours(24); } + } + + + public static void Init() { + ConnectionStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Directory.GetCurrentDirectory() + "\\AppDb.mdb"; + } + + public static int GetSequence() { + using (var sqlUtil = DbFactory.GetSqlUtil(ConnectionStr, DbProviderType.OleDb)) { + var sql = string.Format("select top 1 Sequence from [Weight] where [DateTime] >= @P1 and [DateTime] < @P2 order by Sequence desc"); + var paramList = "@P1;@P2"; + var obj = sqlUtil.ExecuteScalar(sql, paramList , NewToday, NextNewToday); + return obj != null ? (int.Parse(obj.ToString()) + 1) : 1; + } + } + + private static string _querySql = "SELECT [ID], Sequence, [DateTime] ,Goods_ID, Goods_Name, Goods_Code, Weight, Unit FROM [Weight] where Finish = 0 order by [ID] desc"; + + public static DataSet GetWeight() { + using (var sqlUtil = DbFactory.GetSqlUtil(ConnectionStr, DbProviderType.OleDb)) { + DataSet data = null; + try { + data = sqlUtil.ExecuteSql(_querySql); + sqlUtil.Close(); + } catch (Exception ex) { + MessageBox.Show(ex.Message); + } + return data; + } + } + + public static void InsertGoods(List infos, bool clearFirst = false) { + using (var sqlUtil = DbFactory.GetSqlUtil(ConnectionStr, DbProviderType.OleDb)) { + if (clearFirst) { + var delete = "Delete FROM Goods"; + sqlUtil.ExecuteNonQuery(delete); + } + foreach (var obj in infos) { + var sql = String.Format( + "Insert into Goods([Goods_ID],[Goods_Name],[Goods_Spell],[Goods_Code],[Unit],[RowVersion]) values (@P1, @P2, @P3, @P4, @P5, @P6)"); + string paramList = "@P1;@P2;@P3;@P4;@P5;@P6"; + sqlUtil.ExecuteNonQuery(sql, paramList, obj.ID, obj.Name, obj.Spell, obj.Code, obj.Unit, obj.RowVersion); + } + sqlUtil.Commit(); + } + } + + public static List SelectGoods(string searchKey) { + var infos = new List(); + using (var sqlUtil = DbFactory.GetSqlUtil(ConnectionStr, DbProviderType.OleDb)) { + + var sql = String.Format( + "Select top 30 [Goods_ID],[Goods_Name], [Goods_Code],[Unit] From Goods Where ([Goods_Name] like @P1) or ([Goods_Spell] like @2) or ([Goods_Code] like @P3) order by [Goods_ID] "); + var paramList = "@P1;@P2;@P3;"; + using (var reader = sqlUtil.ExecuteReader(sql, paramList, "%" + searchKey + "%", "%" + searchKey + "%", "%" + searchKey + "%")) { + while (reader.Read()) { + var obj = new BaseInforObj(); + obj.ID = (int)reader["Goods_ID"]; + obj.Name = (string)reader["Goods_Name"]; + obj.Code = (string)reader["Goods_Code"]; + obj.Unit = (string)reader["Unit"]; + infos.Add(obj); + } + } + } + return infos; + } + + public static List SelectStore(string searchKey) { + var infos = new List(); + using (var sqlUtil = DbFactory.GetSqlUtil(ConnectionStr, DbProviderType.OleDb)) { + + var sql = String.Format( + "Select top 30 [Store_ID],[Store_Name] From [Store] Where ([Store_Name] like @P1) or ([Store_Spell] like @P2) order by [Store_ID] "); + var paramList = "@P1;@P2;"; + using (var reader = sqlUtil.ExecuteReader(sql, paramList, "%" + searchKey + "%", "%" + searchKey + "%")) { + while (reader.Read()) { + var obj = new BaseInforObj(); + obj.ID = (int)reader["Store_ID"]; + obj.Name = (string)reader["Store_Name"]; + infos.Add(obj); + } + } + } + return infos; + } + + public static void InsertStore(List infos) { + using (var sqlUtil = DbFactory.GetSqlUtil(ConnectionStr, DbProviderType.OleDb)) { + var delete = "Delete FROM Store"; + sqlUtil.ExecuteNonQuery(delete); + int i = 0; + foreach (var obj in infos) { + i++; + var sql = String.Format( + "Insert into Store([Store_ID],[Store_Name],[Store_Spell],[RowVersion]) values (@P1, @P2, @P3, @P4 )"); + string paramList = "@P1;@P2;@P3;@P4 "; + sqlUtil.ExecuteNonQuery(sql, paramList, obj.ID, obj.Name, obj.Spell, obj.RowVersion); + } + sqlUtil.Commit(); + } + } + + public static void InsertWeight(WeightTable bo) { + using (var sqlUtil = DbFactory.GetSqlUtil(ConnectionStr, DbProviderType.OleDb)) { + var sql = String.Format( + "Insert into Weight([Goods_ID],[Goods_Name],[Goods_Code],[Unit],[Weight],[DateTime],[Sequence],[Finish]) values (@P1, @P2, @P3, @P4 ,@P5, @P6 , @P7,0 )"); + string paramList = "@P1;@P2;@P3;@P4;@P5;@P6;@P7 "; + sqlUtil.ExecuteNonQuery(sql, paramList, bo.Goods_ID, bo.Goods_Name, bo.Goods_Code, bo.Unit, bo.Weight, bo.DateTime, bo.Sequence); + sqlUtil.Commit(); + } + } + + public void GetLogList(string conStr, string sql) { + + //using (var conn = new OleDbConnection(conStr)) { + // conn.Open(); + + // var myCommand = new OleDbCommand(sql, conn); + + // using (var reader = myCommand.ExecuteReader()) { + // while (reader.Read()) { + // var log = new FrmMain.AttLog(); + // log.EnrNo = (string)reader["EnrNo"]; + // log.DateTime = (DateTime)reader["DateTime"]; + // log.TyVerifype = (int)reader["Verify"]; + // log.ID = (int)reader["ID"]; + // log.IP = (string)reader["IP"]; + // list.Add(log); + // } + // } + // conn.Close(); + //} + //return list; + } + + //public static void UpdateState(List logs) { + // using (var conn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + + // Directory.GetCurrentDirectory() + "\\AttDB.mdb")) { + // conn.Open(); + + // var sql = String.Format( + // "update AttLog set [Uploaded]=1 where [ID] in ({0})", string.Join(",", logs.Select(x => x.ID))); + // var cmd = new OleDbCommand(sql, conn); + // cmd.ExecuteNonQuery(); + // conn.Close(); + // } + //} + } +} diff --git a/BLUtil/EncodeString.cs b/BLUtil/EncodeString.cs new file mode 100644 index 0000000..cc953bd --- /dev/null +++ b/BLUtil/EncodeString.cs @@ -0,0 +1,56 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; + +namespace BLUtil { + public class EncodeString { + public static string Encode(string str) { + int length = str.Length; + byte[] buffer = new byte[length]; + + int i = 0; + + foreach (char c in str) { + byte b = (byte)c; + byte tem = b; + + byte bit0 = (byte)(b & 1); + byte bit1 = (byte)((b >> 1) & 1); + byte bit2 = (byte)((b >> 2) & 1); + byte bit3 = (byte)((b >> 3) & 1); + byte bit4 = (byte)((b >> 4) & 1); + byte bit5 = (byte)((b >> 5) & 1); + byte bit6 = (byte)((b >> 6) & 1); + byte bit7 = (byte)((b >> 7) & 1); + + tem = (byte)(tem & 0); + + tem = (byte)((bit0 << 7) | tem); + tem = (byte)((bit1 << 6) | tem); + tem = (byte)((bit2 << 3) | tem); + tem = (byte)((bit3 << 2) | tem); + tem = (byte)((bit4 << 5) | tem); + tem = (byte)((bit5 << 4) | tem); + tem = (byte)((bit6 << 1) | tem); + tem = (byte)(bit7 | tem); + + buffer[i] = tem; + i++; + } + + char[] ch = new char[length]; + int j = 0; + foreach (byte b in buffer) { + ch[j] = (char)b; + j++; + } + + return new string(ch); + } + public static readonly object RwLocker = new object(); + + public static string UserName = ""; + public static string Password=""; + } +} diff --git a/BLUtil/LoginRpc.cs b/BLUtil/LoginRpc.cs new file mode 100644 index 0000000..df40473 --- /dev/null +++ b/BLUtil/LoginRpc.cs @@ -0,0 +1,60 @@ +using System; +using Forks.JsonRpc.Client; + +namespace BLUtil { + public static class RpcUtil { + + const string WpfUserMethod = "/MainSystem/B3TianJinMeatUnite/Rpcs/ClientRpc/GetWpfUserInfoByIds"; + public const string GetGoods = "/MainSystem/B3TianJinMeatUnite/Rpcs/ClientRpc/GetGoodsInfor"; + public const string GetStore = "/MainSystem/B3TianJinMeatUnite/Rpcs/ClientRpc/GetStoreInfor"; + public static string OnLineLoadNameByCode(string code, out string error) { + try { + error = string.Empty; + + return RpcFacade.Call(WpfUserMethod, code); + } catch (Exception ex) { + error = ex.ToString(); + } + return string.Empty; + } + + public static bool Login(string name, string password, out string error) { + error = string.Empty; + try { + RpcFacade.Login(name, password); + } catch (Exception e) { + error = e.Message; + return false; + } + return true; + } + + public static bool Logout(out string error) { + error = string.Empty; + try { + RpcFacade.Logout(); + } catch (Exception e) { + error = e.Message; + return false; + } + return true; + } + + + public static T Call(string relativeMethod, params object[] parameters) { + + bool logedIn; + try { + logedIn = RpcFacade.IsLogedIn; + } catch { + logedIn = false; + } + + if (!logedIn) { + RpcFacade.Login(EncodeString.UserName, EncodeString.Password); + } + + return RpcFacade.Call(relativeMethod, parameters); + } + } +} diff --git a/BLUtil/Properties/AssemblyInfo.cs b/BLUtil/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..530c6a4 --- /dev/null +++ b/BLUtil/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// 有关程序集的常规信息通过以下 +// 特性集控制。更改这些特性值可修改 +// 与程序集关联的信息。 +[assembly: AssemblyTitle("BLUtil")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("Microsoft")] +[assembly: AssemblyProduct("BLUtil")] +[assembly: AssemblyCopyright("Copyright © Microsoft 2017")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// 将 ComVisible 设置为 false 使此程序集中的类型 +// 对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型, +// 则将该类型上的 ComVisible 特性设置为 true。 +[assembly: ComVisible(false)] + +// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID +[assembly: Guid("cd79bd33-a30d-4e8b-9bbb-b6c4290b9e27")] + +// 程序集的版本信息由下面四个值组成: +// +// 主版本 +// 次版本 +// 内部版本号 +// 修订号 +// +// 可以指定所有这些值,也可以使用“内部版本号”和“修订号”的默认值, +// 方法是按如下所示使用“*”: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/BLUtil/WeightTable.cs b/BLUtil/WeightTable.cs new file mode 100644 index 0000000..cf61c58 --- /dev/null +++ b/BLUtil/WeightTable.cs @@ -0,0 +1,29 @@ +using System; +using System.Data; +using Forks.EnterpriseServices; +using Forks.EnterpriseServices.DomainObjects2; + +namespace BLUtil +{ + [MapToTable("Weight")] + public class WeightTable { + public long ID { get; set; } + + public long Goods_ID { get; set; } + + public string Goods_Name { get; set; } + + public string Goods_Code { get; set; } + + public string Unit { get; set; } + + public decimal? Weight { get; set; } + + [LogicName("")] + [DbColumn(DbType = SqlDbType.DateTime)] + public DateTime DateTime { get; set; } + + [LogicName("˳")] + public long Sequence { get; set; } + } +} \ No newline at end of file diff --git a/BWPClientForTianRou.sln b/BWPClientForTianRou.sln new file mode 100644 index 0000000..054d92d --- /dev/null +++ b/BWPClientForTianRou.sln @@ -0,0 +1,56 @@ + +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BWPClientForTianRou", "BWPClientForTianRou\BWPClientForTianRou.csproj", "{C422269D-C1F6-48B4-B26C-6FF26F2FDD46}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "KeyPad", "BWPClientForTianRou\KeyPad\KeyPad.csproj", "{3ADBFF38-915C-4115-9CDD-81C0CAD9733A}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "BLUtil", "BLUtil\BLUtil.csproj", "{7E4543F1-5E83-40BF-B47A-29C40429EC2C}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Any CPU = Debug|Any CPU + Debug|Mixed Platforms = Debug|Mixed Platforms + Debug|x86 = Debug|x86 + Release|Any CPU = Release|Any CPU + Release|Mixed Platforms = Release|Mixed Platforms + Release|x86 = Release|x86 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46}.Debug|Any CPU.ActiveCfg = Debug|x86 + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46}.Debug|Mixed Platforms.Build.0 = Debug|x86 + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46}.Debug|x86.ActiveCfg = Debug|x86 + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46}.Debug|x86.Build.0 = Debug|x86 + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46}.Release|Any CPU.ActiveCfg = Release|x86 + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46}.Release|Mixed Platforms.ActiveCfg = Release|x86 + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46}.Release|Mixed Platforms.Build.0 = Release|x86 + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46}.Release|x86.ActiveCfg = Release|x86 + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46}.Release|x86.Build.0 = Release|x86 + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Debug|Any CPU.Build.0 = Debug|Any CPU + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Debug|x86.ActiveCfg = Debug|x86 + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Debug|x86.Build.0 = Debug|x86 + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Release|Any CPU.ActiveCfg = Release|Any CPU + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Release|Any CPU.Build.0 = Release|Any CPU + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Release|x86.ActiveCfg = Release|x86 + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A}.Release|x86.Build.0 = Release|x86 + {7E4543F1-5E83-40BF-B47A-29C40429EC2C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {7E4543F1-5E83-40BF-B47A-29C40429EC2C}.Debug|Any CPU.Build.0 = Debug|Any CPU + {7E4543F1-5E83-40BF-B47A-29C40429EC2C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU + {7E4543F1-5E83-40BF-B47A-29C40429EC2C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU + {7E4543F1-5E83-40BF-B47A-29C40429EC2C}.Debug|x86.ActiveCfg = Debug|Any CPU + {7E4543F1-5E83-40BF-B47A-29C40429EC2C}.Release|Any CPU.ActiveCfg = Release|Any CPU + {7E4543F1-5E83-40BF-B47A-29C40429EC2C}.Release|Any CPU.Build.0 = Release|Any CPU + {7E4543F1-5E83-40BF-B47A-29C40429EC2C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU + {7E4543F1-5E83-40BF-B47A-29C40429EC2C}.Release|Mixed Platforms.Build.0 = Release|Any CPU + {7E4543F1-5E83-40BF-B47A-29C40429EC2C}.Release|x86.ActiveCfg = Release|Any CPU + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/BWPClientForTianRou/App.config b/BWPClientForTianRou/App.config new file mode 100644 index 0000000..30fc7df --- /dev/null +++ b/BWPClientForTianRou/App.config @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + diff --git a/BWPClientForTianRou/AppDb.mdb b/BWPClientForTianRou/AppDb.mdb new file mode 100644 index 0000000000000000000000000000000000000000..19bb2f9e9ac5342396a45f1e8bdae66ac8cec419 GIT binary patch literal 299008 zcmeI53t(JFdGF`!uC%Mi?n<_B6vvOnHhD^p9=2=;Z1lFRNS1B+5hn)gv68)!CE1ev zYDlCcgj=|UKnuCFNgEy)NG?!HNiHoRlr#w@G)>&loAg3~Bs>}jft1qQmbBjc|7Lb} z&#qRMY#GIN{%3V`zBBLn%{gcHn=><0gwcU}3(=il{*IdebyUwi(t z_CFqd^4)!VKJxD;-n;CMz28`TS>rRmc)ItMxc_+b$B)h{eC4O*-G9F=SE&`tD^L<{ zBtQZrKmsH{0wh2JBtQZrKmuojK)`v)`M3j>kDoUr0mq4kMc9&_N~lNkPFQYOZHq>(Qk`4HThJD!t{j-eCQr7|%j*8+(VL}Kn3 zDz1!25fXEIT!J$lBaAA#J#b)V`i}ZOL;ziXVq|~blwaaGs4k4dFGL?MQu8!zZ4^Rq zh}nvL5Tz*1aPLt2;4_Sn0kusXLk_*_c3cJM3iK!^9$y!apNPkm>+cfCMPMnH%IXt8 zt-2LQrQ;x$4(Ex-{qcBdJYMCBriu|qu8DE~I**AXEh3Gp8(8jLNyz8Zr{b5~QhwUW z@GG5AXUjKF`4Brt=jXwHFZQ4c;C~+WA{D~_u00cbF{UNDFJM<3GI$9ES(rSpSejTEk8}(d!LGg7&`Nd}S zf300ZZGuy}y6R+8K1K1FR3F!RtSN#dWmIC(V{=s<)X+94a?M(~+XsbhSjC{giNY!h zV-XZX+i78x!CcjWu#IU-np>qy$sW{5RDIcgSN}hiA~rE6Doq+1|B(O*kN^pg011!) z36KB@kN^psdjver%Rwns5U-Ej%5GBszX*yt_71#n#|unx)?OGi;OKz^sVaFSeoARK z@0g{_K)>_P$ruc<_HMkIlo+{4*xh50gSXO&SNrK6egxDn(NpiS&A5W+J5M^=!g3NoNlF7)J4teuZwlhBmLeoSIx;yhl zc7F0jbtQTf?5o+TEWH!*B6}FGtfe1AUOfY$efwM%kNe{B7vk|}$N3x4 zCsjFy>Sxpctwss`KL`514Ct2~BZ`%yI}YUJ)Z3)v0IwB< zItWY*qvgxEfQ0&QlgjXro`bA0ax*$5l1Z5w$=HKbQXveG?}6UGAAJG?7*3v#0p-K! zA&}7rA^dmy6`_ydcl6MD8``+I$0jV(VYWi^@6+193}5eo6itgac_?>U3zBKc@cYq3 z|HKG}x5vB>tSbl%tqo3+rZ|8F$17jf)r5ve$s$YA4S z$<2p2MFwsnAKPi9JC5wt=9Bg^7o@bc?5@5IIZL}(GyP77_4FyCTHHv01W14cNPq-L zfCNZ@1W4fgCEz%}wjdN|mmEoUUmYf7gfCNZ@1W14cNPq-RO+de*ICYRIeaEK^!2mNNaQoS4rL&UAjHz!Q^5Og2X9~T#x^2S0EclAiToceV`digx$!+|_5odaOrZG&W$I3XD^KTWnWf!l^LfbhsZW=#m7D%Ro!3%|eNb zGqyb%Z8zzJj6-Mt;eJz({()!=RnhUoZqGy^b5d^IEeHEry0>hPMTh#@S_ZakkH&T- zLKS5XW%4Y}?l};Rw%)L%Em4~}69O6EU5SFvP5HZ{`BKjNhPEWjlbdp$h}UmCrRJvI z7a50GzQU@k{-fe1bbg(ARqKyh$v z+=TIoAYpPukTAI-NEp8em>f|Y5&>o-io+sAAQXwP6hg5GmqC~#!g2_6MW}>OBEl*N zMu~->b$%(B?t_p_J!3E!fvwn^6!ba&kpKyh011!)36KB@kN^pg012Ev0moTr=Ws*O zGvohHKNZFx0TLhq5+DH*AOR8}0TLhq5+H#Kk^o+Xp0#bJX+@+YXPSu5c~1e}wPxKi zUi(iR2ypr?S@WUeZ;yby(#N(?S;4V_#|mB%Ff?FcjumpP;J1PvK7g0=3+?cMg?jja zxai>nBIw}*xRw?cODqxQSYfUeN<_f5y6{a_m}iBHtWYWfh8Qfo*b4KlaETQb$nXKl zbh#C-wnBv!Dn*cDTxEqaE0l{M#i+7EwG~!~Ai1x!LX8zxiGU#w3zu2pEmpWx1Pp>$ zc$pP0x55=xxKe}&!mPH!8Y^5Q!cus>)e3L3!dek9hGOA5E4RFMkrxZwtgy)n?Rr81ycSwvkrftOAtHj1*Hah-ub#dkf}W%yf}W5e zLQ!Ji#=8w4EZPP^_qw4T)Zf4_~qm?jC3 z011!)36KB@kN^pg011!)2~3NCwH!9Bzzj4U0zM}aI@7TO(@CFUNPq-LfCNZ@1W14c zNPq-LfCNZ@1YUmveEAx6^Nt51fhYV=9Dm~YsDJeM=iE&meD8r@{ixO+9V|k;2cHhrs|Hk;I-vHcAvKJ% z4mFyP9u{#l^nN)?Ow%|!B@qYwO}Bp)pOeEyel6vFO=hI262P`fI%T7Sxv z`*Wp9v=)iN+-D+D=gyD3{|iX$2mWV{{xXs1PLwdF_M)_->hZb<{HpfS^^%!V*XYl3 zSQ1Tr%2LU~z-S`bvXc)ENwW5s51%%a_Lv$`n}Fi5+Km5$$f#X)s~d6bL1r6OBm5t) zTcOlABIvDcYn7T0X&mNMuSK|CU~C1v9>m`-c2u$D>i_x5K{g(>O}$TlT9o^yA7#B$b1`)?n0l90)JS^XIt85YpTFYXH?*`QNVXA`81|| z>Qe=b%&343Xv$GE>|T9O#2}rGBHyLtvm@=ZEmdT>avXizezNWFZ+`!OzE~UjqB*)R zf;wDhJ-R?6$$PB}1?|OEnoh%8#VxuGeE!GiB8$|WT_pc{8ui9yLYMPhB5+aXlZTqhIDRe`5d^7)B2K1E{9x>N(E z8PcAX=E<3OW=a*Yog$$|eGPY^8B-UGJmTb1k*isr%$c8csZz?kYLpaTBJ(zF@XvYS z#aermZ0(cNw5;4LF_e1{3GdTQG@>4BnBr>mO)G;fc*6DSc9&8=)?lv2^#3)fQlr(U zQR+H;MKk(rrknJ8>^P){uHoq@?5{!{Zze3Ykja+-1IUB+2%{7^h`R<%@?T?kMr_=zM;!CTcu9aQ3)7YJv$5FPyzDkKo4= z9zJn)c|=|+QC`U-2hP}&nfs7JkxD(G_vjxcC2215BW3^%FfYxu1CKd*`0iKfp&Rrw zt5*focHFix+`uJjE8LFY+ez-Xk;DysyI%k}@%V{&JQ$B3jK}{p9{-q@YvS>%AbUWv z1Wf+CCKwslpd=0$#pB9`J7D7={^O9ni1Q|dx#?i=WAD{*Qpj-{$0n{mc}AF~HPmsE z^3(LQ*Qx|R=H$CVe&Y_~C!YLFJBFw_IsPL75+DH*AOR8}0TLhq5+DH*INu03&a)v~ zW}kW}d^lVg{&~{H`tV2sBtQZrKmsH{0wh2JBtQZrKmz9-fymh?F-8Gi5StI{|I45z zZX`egBtQZrKmsH{0wh2JBtQZrKmr#o0qXx3ZrieEBtQZrKmsH{0wh2JBtQZrKmsIS z33!|xdj9_>67&Brg2yiGdS;hx zuo8gV<7+_#m85cY+Nl_lM+w%$F-zApVB&jkLQc7E$8rGCgsTsW2t<)==rxdJ z`G6w54wA$j#G(KaB7jAJj_G9tWMV&7If%!<7LS+3<6%9$KTY-ltE`O_43~Y)Ozf99 zIm*$|vd76moJ$gMZpBflL>!-Fl|4=_;z$!oJ|<48o#33YNPzgsHKDJIlpkEo;sVKq zAu{|7Az4g7mJvu15h|qEnv zj+4~c{mJ?Np9yt`7ADIp3i{W$oi!J%Lz z_`SmaRd}%Q^1>g(2H@I)+=AS{Io0P=-`f1G;J3c|#6j1m=!u8EdGwo?ee)lW|H1K= z<8zOn_{N96v7tHM^v$L_nwpzt43Pq%g(Qs4Nv*q;e>o1=`O+6;3b?XXwY z1Y0@Vw6P)i<|$K`t7R}TG7rY2^6@p|hry7y+34T)ndsL|h<*f?IK*C&BvGLgNl&6C zGl`uD7=;0kVQsWZqAgPqjQB~9wmLJ~4g}l-3nuljdbB5_3bIg)Bvb>FKg%-`YRF7z zI|7Q~Br!TPl1R{6x{ zV_gl~LltU?>k1v4nA9djM-z@qGGJs!=xK?r+w&imT$^T@cpx3GGpS z0hOcT1*hLAHVJ!dL{c+q6q}Ge;;z<>k~jTEu~F@@9!W@}9?KMw7rMnpjU7N*ckG2c9G%&&?~-pPYU*_XF48 zBDMvd{#vqv#6)`2!pS%b9E zPnoNYE+ewjO*WoZbQz5;*7Q>5BTp;3bONMoJld%8t12=XZF`@}*!9d?%M*j6r0Ka4 z|L#K&bMGEVHnU_g?ORI%+I!V~eORl$#(bn05N-g3I{Y$h!2K$*BpY-0ru{}sHM*^Z z1e{J5^7FGD8Ay29<;$o(9g*YQ$J~Tp74oUVz5+jynpJtir6NsgNVuka z-DZndK;^kvEkz2;5pJnkgS`Rj#_ojHwO&8{Z$U1*;ogo1dK><4Qn$d6`)7;$MrF3a&n)r!wjxWw=S;t+mF>{k)^iapsFzUCu|@5>0jZw}zI zU%R?(4qFm(T;x~|D-gaJp9Yk^4z(y(D{;04pK_G40((6q2_u{ghdLdyLRG`HLhq|I zhcyWf!lE(3L4G3d#g7m%yDDXjp=8ou5J4ZwQT%$UQCDadQU?h;g1ryFHzOd`hmW}T zB82;_QWKT0N3l`dfLzG0|4xWAzzsE_`?uQO=#9v;r>j zJ6!yQpu``A)Q$L3`zF+=4%dbGrJibccTFx&wz?@%723K9C8$iatGK30J>8nDbhWy@ z`lr|GVqSLuAF+w;zBc6En0P&Oz-qRcVHO38M%1<)$0*!}a3$8D?8|W`Mtrkh2PQ@Y zVV5KH^xMC00<|U(Td7v1v9fJ^I@GFB(p3AKpQKaYD>I=s`4gr|U5B5Mr@oUWfA;jD z4Tkj49c6maL;$Dk@<#M!2`UYdp_`&S+I4T#%0FL<{nRsYs z3(Eh>XXf5epeHdJ_cQzNq-U$o8a`?!M>dyAZS zRIabCr>A#h#OvEpU-xe>cB&lT&e&jO%_FxY#Of;lSf}#(+PZqa^yi(h)s1j9pI<7z z`nTFYzt)Kf$|IxEq5Zvo(20<$v9A43ZiBztQNOXVsV?5BaNRr32IN=d@nu|%x$<)- zE~@3^w9S1}h}$V14|%*gr1YzpE8qG47sp|!U7uH6>G6CpPaP=9-QZQXc~ta1uUJ@L z5Ya_-B1(Ot7GK%8BTLqL@^|<>`<#+M?wmZ&oXT2#GZuPU-j?IZpXV9YHS+bY^IUAc zwD5e8Z>?Yn9^!9#r}AF88$ZJE)2|9Y7Jpt*t^z(^1McvUGe=catf;wpX%)VtmsTuo zxMnxL7YCz5M@Dwz3vpy;`_7sbyB%+D)$-B(-AnP!*A%HcG&(fUi66B?g9^0fy<2(5 zJ;1om)ABL%(69RwmH(a(k2^VaE1N1RFRAma%&FTvJhXQhze*y_vHiUx_&IWPb^KN?rO&DoxT8EcFfgNhR9zXaR@gUqY|KV}}mr$BL zO_eL>uUfdLx?%GduEvFtzx(U>W^$Tpny!m%Ti)JUAE?}cUwenT_DAZwM#f`3k-nkf z$k#s<*dOcp>&_AUpjP-rJre7V?H`Yg9*eA8UR_(>G_Jz+f1=dfzjhjYA1%5q$LDMb zqC+I>=J5rJBDLd~d7dd`4Nk{%kigiuzL!gt2zU~dIwGLsrqm+>ZtYU92J&_!69D+2VTQoji3sw@qNfG*I|JQ2{HTAD8c9vP(tBA_$3v`_?e50?f-Kv#2V zNCb3imxe_^CwXa+2<(m*&m?KlAQwjEZH-l&yw8(`YhQ;pwE&W1^O)6H=xgw9R#{ZBH2fwdm55m z1^O)6O`y9Pl6?;PEZMuDdmobB5W0II+0UTQl06FgOm`~?r8)91+5e!=bSK0tG!nBQ z0TLhq5+DH*AOR8}0TLjASs>tZR!*w_%bQ>P)yjXUS04GN#^nr7SdAWM5b#%oGq`GZ ztllpUh{x?5AYk(oUvV(QH*9G$h0{Y9 z3dU-5RNePbFxI{+rek3_&2fJ&dQcKW9SX-<-x+PyA$7k*vD7J<(i&-J4yOk@ z6enw7Ixxnr@}d-1dEK$~IEguuwT`#y9Jtz81QH+t5+DH*AOR8}0TLjAbD4nS49jS6 zy=_sigb#;%!kfcu!&ipC6#7``{h{9pc|)%TzZd*g@XNv4V0mzU@RNlfEWEk!#=?Io zc)s9o3%*j&P*72@upqzS-}1-v2lB7aU!Q*>@8P`Wyz0D2-u;2Q0*eEMfsgnX`3w9X z&b>7^Klk5q#&ZU8uFv_Q?}YDRU$d{;7xCTiy~}&Mx6u0^o}YMzJi9#`J|$&#<@Gn@55X^r{j0u7rg1YS5Nw0`sbYs zVmVLVw&;iZe)DocUjN#)U%q$v?&_jN&QBlp{9XL%SDt;f{JAZ6-v4}a%N;#0uRJpU z?VpW4@~ArKKmMH$y!O>!MsIxOhfm#e$-2dhzkBtU-u3&QXa4D!=aNT8{&?=~bIU3( zI*?fsSK%rr7S1}&a^Y;YuEH%x;eL(XMNXVbFw0<;3n$siZMfkQ^&#OZY?oMf9(IO%*T!S1@|jMJ=NbCRu0gmGPS=o`%} zoN=1S`@tXI;;+kpO+7I9j_<$ozRQxz}Zfv{6M+W>5~uDe(};hTAunb?xJn8@OA@*BZbIO{aa zg|peZ3Wu^4g=YWKG1;a)c5O*qg+otu*i8=hmaWrll5=Hi3zu*@iTR3;HJYD(aKa;e zT(15sPOgYH)NDQ^+=Wa0E`<}G>Y3%WPOkD=r&%tq&DP#FC@&s3ndP-kuJT%^SuU^5 zHod$s*`2!cO%=4$EMLDUTo}t=xPM%TQ^xg+Z?sIl*2%@!I?Xa)o2`p49tN4^wN9?` zTBlhqug%s~UQ_|Ym(yASPrb}4SSME%tkW!4!DgGRg5!KXEZ=alIqKo3jl};XKmsH{ z0wh2JBtQZrKmsH{0wh2J=L`YAvKET0t)#6e+l#OzGv{Jc$SIBJIL_TJ{r|Jn|IeAm zWkE=Q1W14cNPq-LfCNZ@1W14c-k<~~YWrJ2LQJd9O=$aPVDHxBtix(-N__=`8+Ku> zH;f_CJ5J3u7vlo3Z}MY7c)twR(z|*yj@V_BD6-{Cd_4q7iH$7`jldR0d?qPJ=ah=!Rf(i>WLTCfsm^F3DX%U|Dn{s@goj6$CgpJtOji^p z>`jT?nPCjDZ-xyDvCTMwI&6fkpa5)fiCwB*tY)wo7AnLt%_w$bkEjFgVzUBv9q>Pz zW-m$%IRr3j^q4lRdOOz41FU%58;{=uBOCE}S%&NZ$R!9<7P`m#UJ0yQLJRUwjCaV< z=M(yg(itZ?=SBh~KmsH{0wh2JBtQZrKmsH{0#g%koQ0UcU^cIM2=o6dljqi*M-m_b z5+DH*AOR8}0TLhq5+DH*c;gblY8GclM{+eQV);3Fz0q&6VU7bD|MA# zQ6EDxuF`AWW5~u;W_-qZT{#w>1W14cNPq-LfCNZ@1W14cNMPCoJkF$_((?q;WDkJ91!XToUCcZIi33B7@pxJ| zcYH76T$+e8j-zR1X2gjLm4zVz5+DH*AOR8}0TLhq5+DH*Ac4~(P)G18E=FI=on$@3WKEIi#?*Yaufbj)i*;5&_`X`O!MVu=WamH~x^I83w zwKa9*EPf4@|44uYNPq-LfCNZ@1W14cNZ;EEX{a*yF|BImYe-Wtv&!~YI znFL6H1W14cNPq-LfCNZ@1ZIhV;~We}5_x&mcf)@cz9T$KSu-0FAOR8}0TLhq5+DH* zAOR8}0TOs)5%4RlpRRs(>mS{)ag$67xBX@T747)esh!rkdF=2>o|X&wEtJAz8(H__*l3#yg2-;(Bq-s z3+)M2g>pjwpjQagnerbAkN^pg011!)36KB@kN^pgz&S?1FDALQ;%H~ zyo4fXl|X2UcFFfS2p}ruDFe%hUr{S76US2qhSBh(K5L61I&Rit1mI!R;Ky!>AbqO{ zyNh(GTA~&uq8p`n%rC~ulZr7`u@{@=ddr%N1h9IuXwec`wyc3AfIF~6mMv>wshABc zvP70GYhbCI4J@)mkS%Lq31|b$QTWT2HL!Tvz&79{fgR_SRk&CzY!&8nK_C9}MZKH|r#HotFq%1B(hD!7hQVIu9{>U{T@cVVA&Gorjn`u&D6T zDV5{>>V5`ng8rbUm5?ExrWv!s7^Abn`Th(47WDRTs$x(K@WeMzYw(9Zz zpGFw5|0i5zv(e^l+Tfq_!i%+=#L%9rlvg7Nc5Ua+#PFe!Y{`5oUlPl-!S}+8x0x6o z9WoW;_viX1Sl0`vZR(ghpnB06Wpdzu5+DH*AOR8}0TLhq5+DH*AOR8}fiolEIML*M ze~)@7d^mY_X6Z2&36KB@kN^pg011!)36KB@kN^pgKvn{^SzS-l@k|qOoO{Emcm7{^ z`ZTj;a1tN^5+DH*AOR8}0TLhq5+DH*Ac3<_z^__$6GUf}|sTvslZ{`a~#xgCy%ruZm0eT{Vl*pq!Ji1^$ zb<)uuUWE6$Jo2rFPr|!A6g-L~j~s;0(K9;iWQ9Bx5RY7h$DYhQfLSMA@$ka~d(xu_ zNju^ZfCu)Zhc3L@s2Z_k<9aoOPgISlJ=&!t&1IA7LbLQ@c}I7+1|6dpX>M18DyBxU zhR05XimAP7AI^%9au<%hXx5mHU!*#4c2FI{|3TG*|Ando+QxfbAT zmmTq$nKt4l7l*z;viQj*r7x>2ekPN&G<7oB+h=0y7OG8Xg8|iz78pjWZpMFUp)MSc zscYeSjI&shkSUM=36KB@kN^pg011!)3A{c89A`sveZO2i{=YK(^U!BP-AUKir(DdH z1W14cNPq-LfCNZ@1W14cNZ@=XfLEn6-`or9opEaR_WlJu32Dwfz0XKrB-*%{aoSEg~y7WW^neea)s{%Hw<>~tW=Uw{$!*@!O z+(>`~NPq-LfCNZ@1W14cNPq-LfCSDV0)F*v-#0#9{x3hO4Ro91PL%FNj01R6VjMse z%a9KzSG%uJW$N(5II*P#v|{C<2&U>jiwHW7B{h1y3zX9$bs%aZqc`TCl8{LS(B zOYwLx9zPh5e<~gy*K&;)b!|drgPqF`nq~6cuv|;gYi?Ws-hEwACIJ#40TLhq5+DH* zAOR8}0TMU|2sqB&uJ`|+<@^70piNi=5+DH*AOR8}0TLhq5+DH*Ab~eDfr)SXcYw!= zJXJd{@wR_YV%+~87$D!O+A-R{Nj1P&{2YXn@&EN|9gMK2&Hv~6{}=W(mA3vr1}AX+ z{|mdlSvwLS0TLhq5+DH*AOR8}0TP&u0QLXL$XpoiV>LCaWljPN09r{;QMfQ_$6Am8 z36KB@kN^pg011!)36KB@OqT%l|LKxCKf{g1Gs=y%BheR->54TVI5HrE6i-Qj1W14c zNPq-LfCNZ@1W4e5BH%dpy5|3Xf%E?_sMcj=NPq-LfCNZ@1W14cNPq-LfCSD{0u$E& zxDGYJ-2U-Yh0^E#A5jCU*o4uu|7+B;bo+mwa_RpMQvXkJq(lNFKmsH{0wh2JBtQZr zKmsH{0~R+gR0+F(7bR8#Oz#7*`u}RRLRF-%|K~WDgl%Pf>Y?!A@ZqN` zlP=bWM-m_b5+DH*AOR8}0TLhq5+DH*I8O;g&PKV8I1 zDGjS;>;tg*bpUlJNrYfSMIAQ;_XvcPVmdTqs=`p?Y(G1*d0ixSJ$;(-}{;Q zbm%gUqCVoEkN@UgiQ;NDHM}wLgsH)mBz5ai{Rl1TNRDz>7|OzU7$3PWBt5y;`ruZ9 zbcB(}LSyQ<*E;fS&D9TB*tW};zY4WREmtdX#HrVVG4ahRPdSbcYONzejure?2v`B$ zCQQB+3ak)6Vm?e;9lYE!DWXB~hO303LOMXiK{{Yx= zBLNa10TLhq5+DH*Ac5H;AYB;BtI&n9AfY0Pk|XMo>ActqRYE!(vioj>&ryV(hpvlZ zt=5Qon~GfsmB6U^qHctAC{Z|vwQ4gb2d)K=76QGlhJVJ~Vb^)~G!-6b)&4eAc7y^w^|UW5}q+dxy4 z=lQw~q$@>I+7FUK+H`Ks(Mse2tzfpnbp)zs>4Y}3T@6K`+^Y^EbWGgI8ARSaNJpqj zZqn%>wU&-LLv&c*Y(}{i#nU4?VIJPjiUKQwCl`XJ6dJ1^eQ{-Pf6wUNuJ!GoD(^Y* zhr@S%T>@yu7Fr?nUZV+0bkS{fI$F0C-@=6NAaZnYttcdCyC{0q9({d_ZW%s8I4{ko-nJK&=YD{;5^T z3)b1ws-A%sVqY1GZji23bvmjbS6%1iKN;FC;hM+3e#sR}-qi4sA1wR#`j(Opirb9` zqp>gi>PNLA%eEfco9J;P=2U(7%a z6=hXxt$3Mfd_^0T?H24-Yt7^;dXi|WR%;ErQk3_%qB?pmf)K}9;an9^*WGa0`=vie z)W!LdmFP{EB(>N#NhGA|lXtq3>L2Ueji%<#-L}n?C2(gP-1h1*o3So|sIXddvn4Rf ztk!BpnblhDVkxG8n^3sBb>WOw>n>cX>8C6naD$6a-Svn6*=>s^**h~V+GO19RW)V7 z+}!4kIY({blHAf-?)13bs=2`y8ZHRaRWqvf|EVq|eZ`!O0!&B$pQ#h-rV z*;mV-+j8gq&o{T+(ev`kBlF+>+2|vWs)PRH-}%66U;SnD##es$)IFE1TfF$YSAXeU zzwdeGpR#1@ICr|%|G$^(|4*w)8HfZ(fCNZ@1W14cNPq-LfCNZ@1kNgfiT3_vd=dsp zjN5E5P(%ic=uK9Av1`86W8DS2ibnvxSSJ9(@LDikXE_Go%|SneNBPwl*Z(u<_@4ww zfCNZ@1W14c&O-uR|Bvhcas9tjuNo)|0C4?3_v)W^!3wj!-^BF+x&EJ-En*itxWLx` z^Er{ws`K#6jzuN`5+DH*AOR8}0TLhq5+DH*AORAXJ^{zcEnJ=mK2QB1{1@T(hWCZn zhD*b*g#LHv_E0ob7g`j0E%=?_L&0|k-x~A*on99ve5rNESoO@Wc+b5fM_3WNI?uF z%IbNkm(%SqDtIHJin%yhn{Px%uEGH3WaP^xjl5nj*DqET#b%>BDU;0GV7eih%+hHj zW1^M8Oky%xWE#=ZZSjd=29wY_bxkTES$p3ykU`vb7`NqW3SW0ficdJB?yW( zZtX-E@3d8>Pm!rWE~hwJcRG)GbNO)GlS`LyT66jfyNSCQCB)Zp0dt6ajYQ65<0R*vbH`X%Mcsk4P#4KzBCre55`IC zv(b8+wKYfUZSqs}LbTqt0Gg~Za&LZ{i{(GD_|}gf-(vh+wrSgTyY9(fc$W=7-0fD8KFIYcog}GI?=EMc+XRQFEx&YGeP?*-MGmXp2(T3@A z@wHf33gx##H;xz#oa%Bort>uB3GGd_4L8*QZmH?yn=}@vEdz>~32PZJ%asnh2j0cF zS5Pe2YD`&}5Sxx-Invs6oKD84XNm8y&ds0|3!Y*rQhG9`%n3#f^NSH|7Ya9`u0|)? zkRVM^hNP`A-U!}V>gzZU=2`oH=p517{@)-ZHxeL$*NXtVU)cS^?ic$@I-+)<16!X<7EoV;UOua1=O2#@lr*gth)f=<>8@IhR@~asJs9y!pc$y^m|n?WG`=(E``!7hV119;dc1g8@Ex_ zLrakOQT!%7f;V{C!x`66+~6aKA?b)3?M|@`xeUVJ_%1^UtYLPOm*m_7|53b+Ga*Ni zMk-V@{3J%o_i~qSJ$z&EmDkLJ`hBsOf0vhP!zj_Eu8{IBIpx=YpXXhOVctSAhrDcH(OzVtNAYt?3ybO4V;ereci mk6#+SxGv?T{V{xH+O8A!**lIHqSU4gbyu1g%6kL%+5dm`z2`{) literal 0 HcmV?d00001 diff --git a/BWPClientForTianRou/AutoSizeFormClass.cs b/BWPClientForTianRou/AutoSizeFormClass.cs new file mode 100644 index 0000000..0543760 --- /dev/null +++ b/BWPClientForTianRou/AutoSizeFormClass.cs @@ -0,0 +1,111 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Windows.Forms; + +namespace BWPClientForTianRou { + class AutoSizeFormClass { + //(1).声明结构,只记录窗体和其控件的初始位置和大小。 + public struct controlRect { + public int Left; + public int Top; + public int Width; + public int Height; + } + //(2).声明 1个对象 + //注意这里不能使用控件列表记录 List nCtrl;,因为控件的关联性,记录的始终是当前的大小。 + // public List oldCtrl= new List();//这里将西文的大于小于号都过滤掉了,只能改为中文的,使用中要改回西文 + public List oldCtrl = new List(); + int ctrlNo = 0;//1; + //(3). 创建两个函数 + //(3.1)记录窗体和其控件的初始位置和大小, + public void ControllInitializeSize(Control mForm) { + controlRect cR; + cR.Left = mForm.Left; + cR.Top = mForm.Top; + cR.Width = mForm.Width; + cR.Height = mForm.Height; + oldCtrl.Add(cR);//第一个为"窗体本身",只加入一次即可 + AddControl(mForm);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用 + //this.WindowState = (System.Windows.Forms.FormWindowState)(2);//记录完控件的初始位置和大小后,再最大化 + //0 - Normalize , 1 - Minimize,2- Maximize + } + private void AddControl(Control ctl) { + foreach (Control c in ctl.Controls) { //**放在这里,是先记录控件的子控件,后记录控件本身 + //if (c.Controls.Count > 0) + // AddControl(c);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用 + controlRect objCtrl; + objCtrl.Left = c.Left; + objCtrl.Top = c.Top; + objCtrl.Width = c.Width; + objCtrl.Height = c.Height; + oldCtrl.Add(objCtrl); + //**放在这里,是先记录控件本身,后记录控件的子控件 + if (c.Controls.Count > 0) + AddControl(c);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用 + } + } + //(3.2)控件自适应大小, + public void controlAutoSize(Control mForm) { + if (ctrlNo == 0) { //*如果在窗体的Form1_Load中,记录控件原始的大小和位置,正常没有问题,但要加入皮肤就会出现问题,因为有些控件如dataGridView的的子控件还没有完成,个数少 + //*要在窗体的Form1_SizeChanged中,第一次改变大小时,记录控件原始的大小和位置,这里所有控件的子控件都已经形成 + controlRect cR; + // cR.Left = mForm.Left; cR.Top = mForm.Top; cR.Width = mForm.Width; cR.Height = mForm.Height; + cR.Left = 0; + cR.Top = 0; + cR.Width = mForm.PreferredSize.Width; + cR.Height = mForm.PreferredSize.Height; + + oldCtrl.Add(cR);//第一个为"窗体本身",只加入一次即可 + AddControl(mForm);//窗体内其余控件可能嵌套其它控件(比如panel),故单独抽出以便递归调用 + } + float wScale = (float)mForm.Width / (float)oldCtrl[0].Width;//新旧窗体之间的比例,与最早的旧窗体 + float hScale = (float)mForm.Height / (float)oldCtrl[0].Height;//.Height; + ctrlNo = 1;//进入=1,第0个为窗体本身,窗体内的控件,从序号1开始 + AutoScaleControl(mForm, wScale, hScale);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用 + } + + private void AutoScaleControl(Control ctl, float wScale, float hScale) { + int ctrLeft0, ctrTop0, ctrWidth0, ctrHeight0; + //int ctrlNo = 1;//第1个是窗体自身的 Left,Top,Width,Height,所以窗体控件从ctrlNo=1开始 + foreach (Control c in ctl.Controls) { //**放在这里,是先缩放控件的子控件,后缩放控件本身 + //if (c.Controls.Count > 0) + // AutoScaleControl(c, wScale, hScale);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用 + ctrLeft0 = oldCtrl[ctrlNo].Left; + ctrTop0 = oldCtrl[ctrlNo].Top; + ctrWidth0 = oldCtrl[ctrlNo].Width; + ctrHeight0 = oldCtrl[ctrlNo].Height; + //c.Left = (int)((ctrLeft0 - wLeft0) * wScale) + wLeft1;//新旧控件之间的线性比例 + //c.Top = (int)((ctrTop0 - wTop0) * h) + wTop1; + c.Left = (int)((ctrLeft0) * wScale);//新旧控件之间的线性比例。控件位置只相对于窗体,所以不能加 + wLeft1 + c.Top = (int)((ctrTop0) * hScale);// + c.Width = (int)(ctrWidth0 * wScale);//只与最初的大小相关,所以不能与现在的宽度相乘 (int)(c.Width * w); + c.Height = (int)(ctrHeight0 * hScale);// + ctrlNo++;//累加序号 + //**放在这里,是先缩放控件本身,后缩放控件的子控件 + if (c.Controls.Count > 0) + AutoScaleControl(c, wScale, hScale);//窗体内其余控件还可能嵌套控件(比如panel),要单独抽出,因为要递归调用 + + if (ctl is DataGridView) { + //var dgv = ctl as DataGridView; + //Cursor.Current = Cursors.WaitCursor; + + //var widths = 0; + //for (int i = 0; i < dgv.Columns.Count; i++) { + // dgv.AutoResizeColumn(i, DataGridViewAutoSizeColumnMode.AllCells); // 自动调整列宽 + // widths += dgv.Columns[i].Width; // 计算调整列后单元列的宽度和 + //} + //if (widths >= ctl.Size.Width) // 如果调整列的宽度大于设定列宽 + // dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; // 调整列的模式 自动 + //else + // dgv.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; // 如果小于 则填充 + + //Cursor.Current = Cursors.Default; + } + } + + + } + } +} diff --git a/BWPClientForTianRou/BWPClientForTianRou.csproj b/BWPClientForTianRou/BWPClientForTianRou.csproj new file mode 100644 index 0000000..c143ebc --- /dev/null +++ b/BWPClientForTianRou/BWPClientForTianRou.csproj @@ -0,0 +1,157 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {C422269D-C1F6-48B4-B26C-6FF26F2FDD46} + WinExe + Properties + BWPClientForTianRou + BWPClientForTianRou + v4.0 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + False + ..\..\..\..\..\tsref\release\Forks.EnterpriseServices.dll + + + False + ..\..\..\..\..\tsref\release\forks.json.dll + + + + False + D:\Projects\tsref\release\Forks.Utils.dll + + + + + + + + + + + + + + + + + + + + + + + Form + + + SelectGoodsForm.cs + + + Form + + + FormProcessBar.cs + + + Form + + + LoginForm.cs + + + Form + + + MainForm.cs + + + + + SelectGoodsForm.cs + + + FormProcessBar.cs + + + LoginForm.cs + + + MainForm.cs + Designer + + + ResXFileCodeGenerator + Resources.Designer.cs + Designer + + + True + Resources.resx + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + True + Settings.settings + True + + + + + + + PreserveNewest + + + + + + + + + {7E4543F1-5E83-40BF-B47A-29C40429EC2C} + BLUtil + + + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A} + KeyPad + + + + + \ No newline at end of file diff --git a/BWPClientForTianRou/Config.txt b/BWPClientForTianRou/Config.txt new file mode 100644 index 0000000..5f28270 --- /dev/null +++ b/BWPClientForTianRou/Config.txt @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/BWPClientForTianRou/ConfigUtil.cs b/BWPClientForTianRou/ConfigUtil.cs new file mode 100644 index 0000000..f0c61ca --- /dev/null +++ b/BWPClientForTianRou/ConfigUtil.cs @@ -0,0 +1,62 @@ +using System; +using System.IO; +using System.Windows.Forms; +using Forks.Utils.IO; + +namespace BWPClientForTianRou { + public class ConfigUtil { + public static string ConfigFilePath = Application.StartupPath + "\\Config.txt"; + public static string LivestockFilePath = Application.StartupPath + "\\Livestock.txt"; + + public static void Init() { + using (TextReader reader = FS.OpenReader(ConfigFilePath, true)) { + var nutFile = NutFile.Parse(reader); + + LogFilePath = Application.StartupPath + "\\log\\" + DateTime.Now.ToString("yyyy-MM-dd") + ".txt"; + + mStartTime = nutFile.AsInt32( StartTime, 12); + + if (string.IsNullOrEmpty(nutFile.AsString( Seconds, "1"))) { + mSeconds = 1; + } else { + mSeconds = (short)nutFile.AsInt32( Seconds, 1); + } + + mComName = nutFile.AsString( ComName, "COM1"); + mBaundRate = nutFile.AsString( BaundRate, "9600"); + mDataBits = nutFile.AsString( DataBits, "8"); + mReadType = nutFile.AsString( ReadType, "0"); + mCType = nutFile.AsString( CType, ""); + mMinWeight = nutFile.AsDecimal( MinWeight, 25m); + mMaxWeight = nutFile.AsDecimal( MaxWeight, 300m); + + } + } + public const string StartTime = "StartTime"; + public const string Seconds = "Seconds"; + public const string CType = "CType"; + public const string ComName = "ComName"; + public const string BaundRate = "BaundRate"; + public const string DataBits = "DataBits"; + public const string Assignment = "Assignment"; + public const string MinWeight = "MinWeight"; + public const string MaxWeight = "MaxWeight"; + public const string ReadType = "ReadType"; + public const string LastUser = "LastUser"; + + public static string LogFilePath; + + public static short mSeconds; + public static short BaseCount; + + public static string mComName; + public static string mBaundRate; + public static string mDataBits; + public static string mReadType; + public static string mAssignment; + public static decimal mMinWeight; + public static decimal mMaxWeight; + public static int mStartTime; + public static string mCType; + } +} diff --git a/BWPClientForTianRou/FormProcessBar.Designer.cs b/BWPClientForTianRou/FormProcessBar.Designer.cs new file mode 100644 index 0000000..4554e2c --- /dev/null +++ b/BWPClientForTianRou/FormProcessBar.Designer.cs @@ -0,0 +1,65 @@ +namespace BWPClientForTianRou { + partial class FormProcessBar { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) { + if (disposing && (components != null)) { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() { + this.label1 = new System.Windows.Forms.Label(); + this.prcBar = new System.Windows.Forms.ProgressBar(); + this.SuspendLayout(); + // + // label1 + // + this.label1.Location = new System.Drawing.Point(274, 9); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(44, 18); + this.label1.TabIndex = 2; + this.label1.Text = "0"; + this.label1.TextAlign = System.Drawing.ContentAlignment.TopCenter; + // + // prcBar + // + this.prcBar.Location = new System.Drawing.Point(1, 4); + this.prcBar.Name = "prcBar"; + this.prcBar.Size = new System.Drawing.Size(267, 28); + this.prcBar.TabIndex = 3; + // + // FormProcessBar + // + this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(321, 38); + this.Controls.Add(this.label1); + this.Controls.Add(this.prcBar); + this.Name = "FormProcessBar"; + this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; + this.Text = "信息同步中,请稍后……"; + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ProgressBar prcBar; + } +} \ No newline at end of file diff --git a/BWPClientForTianRou/FormProcessBar.cs b/BWPClientForTianRou/FormProcessBar.cs new file mode 100644 index 0000000..561d433 --- /dev/null +++ b/BWPClientForTianRou/FormProcessBar.cs @@ -0,0 +1,25 @@ +using System.Windows.Forms; + +namespace BWPClientForTianRou { + public partial class FormProcessBar : Form { + public FormProcessBar() { + InitializeComponent(); + } + + public bool Increase(int nValue) { + if (nValue > 0) { + if (prcBar.Value + nValue < prcBar.Maximum) { + prcBar.Value += nValue; + label1.Text = prcBar.Value + "/100"; + return true; + } else { + prcBar.Value = prcBar.Maximum; + label1.Text = string.Empty; + this.Close(); + return false; + } + } + return false; + } + } +} diff --git a/BWPClientForTianRou/FormProcessBar.resx b/BWPClientForTianRou/FormProcessBar.resx new file mode 100644 index 0000000..29dcb1b --- /dev/null +++ b/BWPClientForTianRou/FormProcessBar.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/BWPClientForTianRou/Image/u15.png b/BWPClientForTianRou/Image/u15.png new file mode 100644 index 0000000000000000000000000000000000000000..a55b9aefea6b5c7f8aaeafb4f63e467af0b43285 GIT binary patch literal 1477 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

9V|kJP(3WfS$9r6%}6>^G=0%k^{O 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 DTul-a literal 0 HcmV?d00001 diff --git a/BWPClientForTianRou/Image/u19.png b/BWPClientForTianRou/Image/u19.png new file mode 100644 index 0000000000000000000000000000000000000000..fc9347ecc4579dd6e6412551a5f2c807eb58d063 GIT binary patch literal 6096 zcmV;>7cc0EP)`cp-fQ}i3Tt;z_3~6iYvwpfbRZH|3yQA{0gDK$1h(V{qOqv=W(O) zNFjEzNf0}z)Fb+At6%Asa%&=}8AG4pW(F1D-5DLHk zcQhgs>Y$QnQ)t42NIuHZSgH5xXo9T`KyqNb%7KyPBIL)U0AfD}N|uXRhhOahLS~c# zc%#USlAjX_kYld^j@H5asx3eS7*4RT^d%HBRsg*^1EqEV@e~+WFiF?}0t}T>x4DOL zUOKW!5~)N*%_JfbphG1pRIZ``el8vYdNUAE5MckeIIf-PRU3fZ`WOH`J+>Aw3h^A2 zxTa7u+eIr6$yluk~udZ`&e9GZ{^wl4k-1M`wpA&2ynC+MX&3Sr4Je) zSsBQ;Zy!nu*Iv;VvH{S)0XPdS=0l8U`HwSqYVJGo~7`xQit6*eycU!(?LN3 zB>zIb0i_NKrt1{|^v3{4but?=KW$P*vsbt;gE&;J*1k^~mLoI40p#ClN=1Vo6xrOx z{4!7gV!xXt{bHu@=dC4zrMD49??W@Yf&oa;S_1+8YyceoUljF2W1=g#<(12%m3Inp z^aIo;K>(y+U*mWT&jz&9U#9l%E3gu3M@J+l2$jRr=uM|b7-2TXn zI^2k&!*$gby5#&lP4^IyiaDJ|!t#(XlqBD;f!K2j z6vWH1QqO%3fOrWIGO5NlHy<53;sOjqV9Y;O1W-_^gWX?$eeYH$Z%H>Z2g`H`?ue-}vMeKu**24Y(>5K|EKj)&Rf_SM~t!-aEY?T9q zzCvF|Bl0&~bPN%5%8kq$y(Ke`0Vv{VS1jp~^Ij=H@<`Pe2enjJV}Ko>qaj8T7vMwr z2k%G$JhNTC0@!~M$49pBv3b5SfVct&0({zxqCKDNRvU)Y<=K8aRCkhc-xKR>W zv;+q5eq)dn6xnhLki0mwE*aqhG`14y1F{lkQ5s@Z%Z(JB+l)$l8BZ6GU?q4PX~iDc5$NvQ_C12 zrcoK)wZAD9CgiPcw1x!pWy32htik@&S7#2XX9;^U=F-a$;6_a2xd^H73Of8e9A1r_v z6_GiJMXx58j951c7@1lIVP9>47-*Zk`3K%A=wY7*AKn%2pIOaOsl`&2zz?M&j7Fh|9 zJjMSHb0^veWxiL23kB{`z|g|clF^j_G01y(sXb29^d%r3aLZ%XS{@NEQK>!xye+yx zn=PHWT7>cyJz8~?jn+7djdQBb}|@TaC-YL(vFKX2+O?c z#_=PcnQz?R)#puBvo`O-_^ZgkPE{=U0NeoxS1tK$Udr-_EmsT7zYf**oU4ZcVpI-THUU7*j zplS-(eEh#_ z5MK3ea53?!nI!X9M**(;Fq{0&0Kz>SC70k-$84F|i~>wQGB@rx2t{QTWdnTRbgTE8%VjSPvA@x7?=R|ITlP|H=i|sbA0UBs)+1ta z?M_<;)b)7;INFWl{m}PUC_q9iGdW4qzm%9&Zsa<^59IvD1t2pN;l{n)NKuX7qH*b^ z@4M#!gbEf}K1gU9gjHJLJ7+yvpN}_*aY(}f2t{q{4G>5xGX`gtI>1~EBh z6^fjk3TBdAa>-gLM?6sH3>w3;byzt3t4kacUuNPhTSB2qDfvECKT|B0xV?!0FxuP%t()P zHSvn)vKR&hSOA%JHQ}nAMVGBJ)+j@T0+msK6|tQHgnO5C=$X{YxFZu+P5~A`0J4xa zyEm^~-dQ=HWdVj1;N(DVTaVIQr)hc#0RPgQH~3_c=00UujVNH!u;I5jKAT>Da0W^} z)uKnhp1$)H+NfZJksdhUgP!xZ9WH%We|B^6~;wWR&JU?e8WQwdYjoqxNP3KfJHK zPZ=0I1z61k=d7b!fEd_m?{|~rAb9G@25L?!M_6# z;yANr9(*^mPMG2A^^$tVZV@lXNV7nv1&oUFUJ39Jyv*PWxcb;l%)9b~*t7FI6uqgSyUA&)9ni0O2MFA2P3q zEDHg`HM0Qma--e;$+zZW%%j8%F#MT(7obXKOdVph>4}e zI@TcHHAo)T|BI9FS{8|Y5Fp$$ygoYX65?gazSdyhPm{6(Gb@g6JP431C&KG?LiXDJ zi#R^gqI3y^xJ~g&SW?(i1aJ2%q|58_X|vA3A=H;?UNLUndOcfzMEIv%sBw8 zybx$9K-kVY0A<#7wrQfE&~0b=5;`=~`I>^Hu- zIpXAYYAWX@+qy!;-fof{nmkkvxD_(=hF-h&xP(gui$ z7MVW)?sx~L~Ej^yedKQljX81T?!aE<|K#B<`Zu72{u5u zwe~r3y)1{Xd z05NjdDcS~bv>V6!>&a@_HJ1X$a)xMq1A!Glj7=>G{c>ewZO5DX9n`60v)%5PIOem& zwgw1o;Ol5a7p`mf(V8y6Brd(SlCq{7KS|Rs3P7u{@D7O_bziXt2rbG~1^U`9Xia6& zyKSGO=?4YCZgr}2Qc!oZP5_cQ?EGePlQkj^H`?uOTUDsLVHp<&1x)3MqE?$xwB<^k zoB<^BN4N*8a$ZTjRv1EC)+!Av$Ft?RHrt&7#594JDH4fnl_h^(&tq(^XU2&8M6^?Y z5amrOey1E0ka#V-g)c4x$G2~E+0i3|$&6~PR?XuaAXff}Xp&X@s_nnqfWx)lF-zn^ z0FwD5CIyY(eG*9|))or)H)aD4YW_9`=oEGHRbc?J$&ZLnvOegr1V`bG3JU`Wu{Z|s_k#3!jYP%?iNk&exp_#CAi#48ja#NIqAL9IwxrSY?l`(_lqb`{sIx5$OF zJDX5$W??v}v(lkf;Q+CXY-O8}WTFl)gBf%3`SUA<}3{$EL389wKAq0Lgq3s^Yx4F-|7l*_>#TN+9D?bWw$;C;(;quYPu9M zsT$4ZUI>M!-UDPxR9E?uMe;(q|8r@7Yw_E}M&b z<)Tu1p=s-&08)lFnK1({6k=bsTE}$+OKw6vgNdeK-4v?>x;w#B1g?RQNNzS#NsbEl+EIdc65b^y*gaC7pw-E=MGf{j}a-_^<&wx zm^t}~Lu@oI8sqV>3eaSwI!gVl5IaDB2o(0!v?iqVI>d>>fR@MWE=Sr!g7jaBSqSx}bwg6e6RVaB@ObJUsqD3Vk zq%ElAX5F;KA~p#?W~f5Zum6okJ9M&boxqZVqTgt>j@HGu(EVl!Kpvn}e*Bk`Z99m# zRX67z0X_lZnP`gTP!WJ=eoAtmg@Dot5-^D8pw!tI;H<7W3r$wCh6zAe@%2B#7R77po+CiLylREqYyoXhBGnUA@=H z5=8Iv`h5S0_lG<8+qv{+0 zfZ?5nijuzX>)mWE1Be<8lFN=w;`4Y`7lt@i8#;5Yb<&UNUr8M!4%dbTg7WWys|eev zmpm{0xI96t_ZV}#YC%8ASdR(@lT51is)v3=UY8Fo{hrm|)UgbtV`BRFiR4gJ6RK&J zkFSr?Lcvg77Q~jYdT&c&p^q>^?$2tdJG%ozA+z!83F?wFPfY%a3}4~(xom@Y1qCxn z4wec)bZfI)U#qHL-~3(l*_uk-Vu<5O1d7qm9x^O-1PAYbot|EvicSES9Dl(4bAJ&5 zU;w!0Q;jN>YwB-9sDuC2@%{d{#h#2W4y6dKG=~*8gYn;^iQ&SHgcL8BI-&tK%vndo zT@hq)AJ02|rSUAFa-cPAsZPR#rLuuJY08|0ul!7*rIW;iQYOX*^FgGUsI<@wjnn@a#Y&ekE8dkF5jzH;r zM<5XiPIMxhX95Fn%6m^vPFi%DTSWEtNDb!$D8a@tbbVU@*c2x^?5AXH^(M578q|JM z$9MbM+FMwn`z(NT@awRkq~!x&^=%fuY@&^=<#+R03rn3t^kGDaZ7H2dj4_O_>@0U@CoOM6p~ij#Q^Et& z4ZuGy|2z_SA1HHsGQDLlE;INUacfrcqUL1vuj(`^LXH5eRr)vhUjX)GB}cL8Q6=#~ zl8|>APH%;cNB4H_76ct2^>Hny}kV@pqYM8HDt zWodMe8I*fom(Hz%;kup1`dvlMkSsFj{dKVrYSpoX5>2FUI6V6UVF7U#Gh=qozeb#& zXt3JjH}f+y+TEg2Y*f20&nwi&DoyHX0j|+-)_#g_oIEwBW6KMVa{zxLnuW^Gd35m# zzP{VXBfPB!M-zAHP9yj$f*t@QtQPg)K?)xRV+by?#@?shE6(W?nzscKlM#iup`{>f zB@f75U)Ue+@o74= zlHF`$r6Nn6nmQCCM-)jSl`C{@=OivJOyODavr>!6df6@xz;*BOtNE?BVcg8H#?ga_ zN5diKN>$Z+rHqSBFBCG*Dqi&MI2`KyHX{}NnhuQuQH@euq=IG=Ci#yGLg-U%ci#PW zn4=@*?gk!^4a_&Kx+?0F3W3LKAPECkaQ-<1sKPEHth;xNUO^ff-m&9NC=ll$h5WCfZZdf()b#-V#H3- z;vUEarF-~7Q+W-`egKM;>R{(N{b(b-7GlxNQy`ccspI{$P!G2h0KEI}-F-I)y$?@b z$}bEvG;l|z-C=>U$cB6k3D&Nvp8C*xg#o!6el!hbG(Nrx|2(LL4<&dON}|g*zME#!!(Qh! z%xPof@{MaF0sca<3LXw#Ez2QH5R^ZGEX0I&*^m(jw+) zhApiI=ws4`PkbMuH{4~=s!O9M%+T?PAf22Fm~T=8S1)ey1k!}KRd@~gx1$Z^Wvaj| z&>x)!gFr9cJx!beJZE4EnsDu30Kc6NQL;ZzLxXL70x5N@`78WH|fnwKVLD*<^h4 zyNpY2*uw{JVIb2GZ-befR32aY+O6B@EZ$xx)w?7Qp4&68BMiq>K_OxN(GP1zczdTAsYWIVG6_ApKW=XuMQXTL-aWN>vrGG4w}Z{o%8pKf<6v@nVx{bw zs-&UeS@SA0zd&+SL+4g++F^K(v&Pv&Rp|;}@N@_Tp`dXU&|Ge5U`!*)fIj)~i=e?K|EYkW(eU6}5`kQY zCdo6__%;U!HZb`u!UV5J^4~+Z#6W>WyI1^57&_@j_O;HCA+rp25Y^TZLMzpH`+^pV zqk+&tA^C)TN7>`Q%~?8Z$-#zYicLIAyd3>x8q+Igc=&+1ZF2{h(V(QQQL;t<@fjlr zjuXO^nBKTlD=emjc_A$w_I@^$Q9ycNT?~e?`tPU655kMt6EhWV^lVi425wFg6$eJ*W1d|0q zNipak!@SQ+F&iLmIH^UO@wYF>Oaf#;wMED8Z?&0JdJ*^xP+eIZcYZVZ+m9t%%E~?C z4C><0oYaiZZHz0w@wiPhOXl8{-CROho1kLd<6i24HlB@y+*=kuTO`GL#;w!~2*Mrq z78BP%m|~=W|OPe}&1uecV2RteA{=TBv`6 zYtcVi6|diN>7|QL3W6rnor!3m#DB^M@jiT*k}%4n&Ne*$Q+1C$OOg2`NkmT@zS>Z{ zoMGbF#tPL#(w;hVHozQjw9Idb`OgZgd7Emm#|U_b#ZFgJD58NIqS?+(QP<%2Bwd<4 zy1tBJ*|m}~!X%}BuXV|?9w}3DUXpnlD+FHe+PqRKDa&e^jnbWpTTZ7HBAzBe;Y#GW zU}$EhfVnR=o2I^gad)V3(wMOp{a{YW1)DLb2SBG%?v27{eH)UuPE|-X%7)*@0ax4l zxcej9Y^)r^3v*cfoDDq_xxI#k4GmmI_cdI|)jotD?gZ60)=e;SUR( zlO(J$<;|ldglg;@7Z)wdQU|A}Z|B8con~nv=Vn4}VHBx|(QKAD-`0oBH`rE43<&YQ z&?V6|Thy8vTDj>+08V2^NcKS8euRd#))Z0P5vchr)a(9(&nt~|(5wTh`496wcR0BO zXppg6IKa^2f_8aYNdu1Ed1q~eYSSE1N&}U^RedRTr6(h&QcBEgP`kT=Ov&p`NaTd_ z$quCQ|I~`da7XZY8V8R5_Kf{1*CEX}I|V%EKRQ5Zl(kI+PX~5y#SU;!4gXZJcPI zA<1@xPtMN`a&0!Do!3%!JUUB0IA`UvO7X##EX>+ig!jsE$1m4M7KYeI%UUOU$-H{hlBbtpK;W@JKJq1d`YAAXT%gIa z*+~d#`({I#|Ad^BJKp2vh@T_F%3li&2ype3$w}O23n#(?1$n&M5k*eW3R*|B??z~t zWo=iiGl{Ah8D}52J=kS@1L#tmqcFgFh)~FF9X6cCg{lr_ZdhLWP^&}g>p!u2px)=a zEODe)>G=+dSm7vT#}Ev2w6<;5XAQ|{zhGyoBBC200ULkRnV#Nq>>OMydnr8W)>Ith zT6@KfnhNu1FZn*WocA`{Vv??I4a{*6LFGip$>1>ndWu zQ_f}E6uWHKU3$~sep8~*b~}|1s^1#ktG$U~<=W|8eNrx}mb`MfJg>Qe7Fy;* zcAUC21|WvSa;slKs48MT_AeOyJsgg65qLaiy zoPQy_P5b?#Vy7u~sm1n`A;A|IZl5w#TjifD9EC&2C{E$~vx$HMTG$>}xiv+l<^YCZER^3Q1&edg?9N9;3P0q9Lrt~C1T zU_pzVz(cmQOkE9-Z@yu5iw2C=yVRSy%W6eBOO(7->bSND36o_ZhjKv23xjHKdks2}j%HWu__ z$0Zg-iUL866#6JMPeLw^anwrrdtK=1`b>+2izVzT=A$K`Jj+KG8%?v$dHK-_2pGbb zHesO%jxujO-#R#_7HBFKR!!vos`^BQNcfJX1H=Z)hgRv5zrRM-)kdH;v%Wyj9mi^azd~A`>s>^oxeOd+*`v)-7ar2q)w@E}rIqpGi zoeIz4x`k%eXjGL1P!dd&$LmV&(B{p)D>cU7ec(Op_t=wY27g~>Y$(ym+`BPU|2ar2# ztx}$jQN*xTrUeQEcHmhu)3(Kmd!k&CVvj27MfJ*6m2tvQy}Sj(#{0_rZ9x7Sf4lCn ziWKF?(S9`_sBtLDGqyy#R$(-78qtXBFj%(y>~iJRiGC)=n>|BX zzd2oF{ld@;Z_RGG>f7Tw8yIs+T}*9aF_h1iQuBjFE65T?);T5n^Ic5yXU;VgVw)vw z`iX+SD()2N`!wLs7y4Zkts`NdQk&!h|3aGG(L8yUZq}e^XF)*Q_no^j;88WJ^y&l4 z{u*motZMT$K}OQ}UMC$=Sf#xbAf?NHd1msf;^Vg literal 0 HcmV?d00001 diff --git a/BWPClientForTianRou/KeyPad.csproj b/BWPClientForTianRou/KeyPad.csproj new file mode 100644 index 0000000..9fc6e61 --- /dev/null +++ b/BWPClientForTianRou/KeyPad.csproj @@ -0,0 +1,125 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A} + Library + Properties + KeyPad + KeyPad + v4.0 + Client + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + BwpApp + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + true + bin\Debug\ + DEBUG;TRACE + full + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + bin\Release\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + False + False + False + FalseFalse + False + False + False + + + FalseFalse + False + False + False + + + Hardware_version.cs + + VirtualKeyboard.xaml + + + MSBuild:Compile + Designer + + + Keypad.xaml + Code + + + Designer + MSBuild:Compile + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + \ No newline at end of file diff --git a/BWPClientForTianRou/KeyPad/Converter/BoolToVisibilityConverter.cs b/BWPClientForTianRou/KeyPad/Converter/BoolToVisibilityConverter.cs new file mode 100644 index 0000000..fef428e --- /dev/null +++ b/BWPClientForTianRou/KeyPad/Converter/BoolToVisibilityConverter.cs @@ -0,0 +1,21 @@ +using System; +using System.Globalization; +using System.Windows.Data; + +namespace KeyPad.Converter +{ + class BoolToVisibilityConverter : IValueConverter + { + public object Convert(object value, Type targetType, object parameter, CultureInfo culture) + { + if ((bool?)value == true) + return System.Windows.Visibility.Visible; + return System.Windows.Visibility.Collapsed; + } + + public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) + { + throw new NotImplementedException(); + } + } +} \ No newline at end of file diff --git a/BWPClientForTianRou/KeyPad/KeyPad.csproj b/BWPClientForTianRou/KeyPad/KeyPad.csproj new file mode 100644 index 0000000..a0d7755 --- /dev/null +++ b/BWPClientForTianRou/KeyPad/KeyPad.csproj @@ -0,0 +1,148 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {3ADBFF38-915C-4115-9CDD-81C0CAD9733A} + Library + Properties + KeyPad + KeyPad + v4.0 + Client + 512 + {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} + 4 + BwpApp + + + AnyCPU + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + true + bin\Debug\ + DEBUG;TRACE + full + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + bin\Release\ + TRACE + true + pdbonly + AnyCPU + prompt + MinimumRecommendedRules.ruleset + + + + False + + + False + + + False + + + False + False + + + False + + + False + + + False + + + False + False + + + False + + + False + + + False + + + + + + VirtualKeyboard.xaml + + + MSBuild:Compile + Designer + + + Keypad.xaml + Code + + + Designer + MSBuild:Compile + + + + + Code + + + True + True + Resources.resx + + + True + Settings.settings + True + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + SettingsSingleFileGenerator + Settings.Designer.cs + + + + + + \ No newline at end of file diff --git a/BWPClientForTianRou/KeyPad/Keypad.xaml b/BWPClientForTianRou/KeyPad/Keypad.xaml new file mode 100644 index 0000000..a7e9896 --- /dev/null +++ b/BWPClientForTianRou/KeyPad/Keypad.xaml @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +