基线 SVN r240

SVN-Revision: r240
This commit is contained in:
cyf
2025-02-06 06:46:06 +00:00
commit ab56a9bcf7
5317 changed files with 902274 additions and 0 deletions
+39
View File
@@ -0,0 +1,39 @@
using Lskj.Business;
using Lskj.Util;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Lskj.PubFingerPrint
{
/// <summary>
/// c#库被调用统一接口类
/// </summary>
public sealed class DllBaseClass : IForm
{
public DllBaseClass()
{
}
public DllBaseClass(string[] obj)
{
try
{
//DynamicPubchartModel moduleModel = new DynamicPubchartModel(obj);
FrmMain main = new FrmMain();
this.SubForm = main;
//main.PubchartModel = moduleModel;
}
catch (Exception ex)
{
LogUtil.WriteError("Lskj.PubFingerPrint.dll--参数错误-->" + obj.ToString(), ex);
}
}
/// <summary>
/// 窗口
/// </summary>
public Form SubForm { get; set; }
}
}
+420
View File
@@ -0,0 +1,420 @@
namespace Lskj.PubFingerPrint
{
partial class FingerControl
{
/// <summary>
/// 必需的设计器变量。
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// 清理所有正在使用的资源。
/// </summary>
/// <param name="disposing">如果应释放托管资源,为 true;否则为 false。</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region
/// <summary>
/// 设计器支持所需的方法 - 不要修改
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
this.repositoryItemCheckEdit1 = new DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit();
this.FingerPanel = new System.Windows.Forms.Panel();
this.LeftPanel = new System.Windows.Forms.Panel();
this.MainSplitContainer = new DevExpress.XtraEditors.SplitContainerControl();
this.FingerPicBox = new System.Windows.Forms.PictureBox();
this.LeftMsgPanel = new System.Windows.Forms.Panel();
this.LeftMessage = new System.Windows.Forms.Label();
this.saveBtn = new System.Windows.Forms.Label();
this.EmployeeControl = new DevExpress.XtraGrid.GridControl();
this.EmployeeView = new DevExpress.XtraGrid.Views.Grid.GridView();
this. = new DevExpress.XtraGrid.Columns.GridColumn();
this. = new DevExpress.XtraGrid.Columns.GridColumn();
this.IsPrint = new DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit();
this.IsFinerPrintEdit = new DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit();
this.RightMessage = new System.Windows.Forms.Label();
this.split2 = new System.Windows.Forms.Label();
this.InfoLabel = new System.Windows.Forms.Label();
this.split1 = new System.Windows.Forms.Label();
this.userGroupBox = new System.Windows.Forms.GroupBox();
this.userDepartment = new System.Windows.Forms.Label();
this.userDepartText = new System.Windows.Forms.Label();
this.userId = new System.Windows.Forms.Label();
this.userIdText = new System.Windows.Forms.Label();
this.userAcount = new System.Windows.Forms.Label();
this.userAcountText = new System.Windows.Forms.Label();
this.userName = new System.Windows.Forms.Label();
this.userNameText = new System.Windows.Forms.Label();
this. = new DevExpress.XtraGrid.Columns.GridColumn();
((System.ComponentModel.ISupportInitialize)(this.repositoryItemCheckEdit1)).BeginInit();
this.FingerPanel.SuspendLayout();
this.LeftPanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.MainSplitContainer)).BeginInit();
this.MainSplitContainer.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.FingerPicBox)).BeginInit();
this.LeftMsgPanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.EmployeeControl)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.EmployeeView)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.IsPrint)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.IsFinerPrintEdit)).BeginInit();
this.userGroupBox.SuspendLayout();
this.SuspendLayout();
//
// repositoryItemCheckEdit1
//
this.repositoryItemCheckEdit1.AutoHeight = false;
this.repositoryItemCheckEdit1.Name = "repositoryItemCheckEdit1";
this.repositoryItemCheckEdit1.ValueChecked = 1;
this.repositoryItemCheckEdit1.ValueUnchecked = 0;
//
// FingerPanel
//
this.FingerPanel.Controls.Add(this.LeftPanel);
this.FingerPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.FingerPanel.Location = new System.Drawing.Point(0, 0);
this.FingerPanel.Name = "FingerPanel";
this.FingerPanel.Size = new System.Drawing.Size(964, 455);
this.FingerPanel.TabIndex = 2;
//
// LeftPanel
//
this.LeftPanel.Controls.Add(this.MainSplitContainer);
this.LeftPanel.Controls.Add(this.split2);
this.LeftPanel.Controls.Add(this.InfoLabel);
this.LeftPanel.Controls.Add(this.split1);
this.LeftPanel.Controls.Add(this.userGroupBox);
this.LeftPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.LeftPanel.Location = new System.Drawing.Point(0, 0);
this.LeftPanel.Name = "LeftPanel";
this.LeftPanel.Padding = new System.Windows.Forms.Padding(10);
this.LeftPanel.Size = new System.Drawing.Size(964, 455);
this.LeftPanel.TabIndex = 0;
//
// MainSplitContainer
//
this.MainSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
this.MainSplitContainer.Location = new System.Drawing.Point(10, 211);
this.MainSplitContainer.Name = "MainSplitContainer";
this.MainSplitContainer.Panel1.Controls.Add(this.FingerPicBox);
this.MainSplitContainer.Panel1.Controls.Add(this.LeftMsgPanel);
this.MainSplitContainer.Panel1.Text = "Panel1";
this.MainSplitContainer.Panel2.Controls.Add(this.EmployeeControl);
this.MainSplitContainer.Panel2.Controls.Add(this.RightMessage);
this.MainSplitContainer.Panel2.Text = "Panel2";
this.MainSplitContainer.Size = new System.Drawing.Size(944, 234);
this.MainSplitContainer.SplitterPosition = 800;
this.MainSplitContainer.TabIndex = 11;
this.MainSplitContainer.Text = "splitContainerControl1";
//
// FingerPicBox
//
this.FingerPicBox.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Zoom;
this.FingerPicBox.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.FingerPicBox.Dock = System.Windows.Forms.DockStyle.Fill;
this.FingerPicBox.Location = new System.Drawing.Point(0, 45);
this.FingerPicBox.Name = "FingerPicBox";
this.FingerPicBox.Size = new System.Drawing.Size(800, 189);
this.FingerPicBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.CenterImage;
this.FingerPicBox.TabIndex = 33;
this.FingerPicBox.TabStop = false;
//
// LeftMsgPanel
//
this.LeftMsgPanel.Controls.Add(this.LeftMessage);
this.LeftMsgPanel.Controls.Add(this.saveBtn);
this.LeftMsgPanel.Dock = System.Windows.Forms.DockStyle.Top;
this.LeftMsgPanel.Location = new System.Drawing.Point(0, 0);
this.LeftMsgPanel.Name = "LeftMsgPanel";
this.LeftMsgPanel.Size = new System.Drawing.Size(800, 45);
this.LeftMsgPanel.TabIndex = 32;
//
// LeftMessage
//
this.LeftMessage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(231)))), ((int)(((byte)(238)))), ((int)(((byte)(249)))));
this.LeftMessage.Dock = System.Windows.Forms.DockStyle.Top;
this.LeftMessage.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LeftMessage.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(108)))), ((int)(((byte)(206)))));
this.LeftMessage.Location = new System.Drawing.Point(0, 0);
this.LeftMessage.Name = "LeftMessage";
this.LeftMessage.Size = new System.Drawing.Size(738, 45);
this.LeftMessage.TabIndex = 34;
this.LeftMessage.Text = " 指纹识别区";
this.LeftMessage.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// saveBtn
//
this.saveBtn.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(28)))), ((int)(((byte)(118)))), ((int)(((byte)(200)))));
this.saveBtn.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
this.saveBtn.Cursor = System.Windows.Forms.Cursors.Hand;
this.saveBtn.Dock = System.Windows.Forms.DockStyle.Right;
this.saveBtn.Font = new System.Drawing.Font("Microsoft YaHei UI", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.saveBtn.ForeColor = System.Drawing.Color.White;
this.saveBtn.Location = new System.Drawing.Point(738, 0);
this.saveBtn.Name = "saveBtn";
this.saveBtn.Size = new System.Drawing.Size(62, 45);
this.saveBtn.TabIndex = 33;
this.saveBtn.Text = "录入";
this.saveBtn.TextAlign = System.Drawing.ContentAlignment.MiddleCenter;
this.saveBtn.Click += new System.EventHandler(this.saveBtn_Click);
//
// EmployeeControl
//
this.EmployeeControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.EmployeeControl.Location = new System.Drawing.Point(0, 45);
this.EmployeeControl.MainView = this.EmployeeView;
this.EmployeeControl.Name = "EmployeeControl";
this.EmployeeControl.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] {
this.IsPrint,
this.IsFinerPrintEdit});
this.EmployeeControl.Size = new System.Drawing.Size(138, 189);
this.EmployeeControl.TabIndex = 17;
this.EmployeeControl.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
this.EmployeeView});
//
// EmployeeView
//
this.EmployeeView.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
this.,
this.});
this.EmployeeView.GridControl = this.EmployeeControl;
this.EmployeeView.IndicatorWidth = 40;
this.EmployeeView.Name = "EmployeeView";
this.EmployeeView.OptionsView.ShowGroupPanel = false;
//
// 工号
//
this..Caption = "员工工号";
this..FieldName = "员工工号";
this..Name = "工号";
this..Visible = true;
this..VisibleIndex = 0;
//
// 姓名
//
this..Caption = "员工姓名";
this..FieldName = "员工姓名";
this..Name = "姓名";
this..Visible = true;
this..VisibleIndex = 1;
//
// IsPrint
//
this.IsPrint.AutoHeight = false;
this.IsPrint.Name = "IsPrint";
this.IsPrint.ValueChecked = 1;
this.IsPrint.ValueUnchecked = "0";
//
// IsFinerPrintEdit
//
this.IsFinerPrintEdit.AutoHeight = false;
this.IsFinerPrintEdit.Name = "IsFinerPrintEdit";
this.IsFinerPrintEdit.ValueChecked = 1;
this.IsFinerPrintEdit.ValueUnchecked = 0;
//
// RightMessage
//
this.RightMessage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(231)))), ((int)(((byte)(238)))), ((int)(((byte)(249)))));
this.RightMessage.Dock = System.Windows.Forms.DockStyle.Top;
this.RightMessage.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.RightMessage.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(108)))), ((int)(((byte)(206)))));
this.RightMessage.Location = new System.Drawing.Point(0, 0);
this.RightMessage.Name = "RightMessage";
this.RightMessage.Size = new System.Drawing.Size(138, 45);
this.RightMessage.TabIndex = 16;
this.RightMessage.Text = " 已录入人员";
this.RightMessage.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// split2
//
this.split2.Dock = System.Windows.Forms.DockStyle.Top;
this.split2.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.split2.Location = new System.Drawing.Point(10, 201);
this.split2.Name = "split2";
this.split2.Size = new System.Drawing.Size(944, 10);
this.split2.TabIndex = 10;
//
// InfoLabel
//
this.InfoLabel.AutoSize = true;
this.InfoLabel.Dock = System.Windows.Forms.DockStyle.Top;
this.InfoLabel.Font = new System.Drawing.Font("宋体", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.InfoLabel.ForeColor = System.Drawing.Color.Red;
this.InfoLabel.Location = new System.Drawing.Point(10, 181);
this.InfoLabel.Name = "InfoLabel";
this.InfoLabel.Size = new System.Drawing.Size(0, 20);
this.InfoLabel.TabIndex = 8;
//
// split1
//
this.split1.Dock = System.Windows.Forms.DockStyle.Top;
this.split1.Location = new System.Drawing.Point(10, 171);
this.split1.Name = "split1";
this.split1.Size = new System.Drawing.Size(944, 10);
this.split1.TabIndex = 6;
//
// userGroupBox
//
this.userGroupBox.Controls.Add(this.userDepartment);
this.userGroupBox.Controls.Add(this.userDepartText);
this.userGroupBox.Controls.Add(this.userId);
this.userGroupBox.Controls.Add(this.userIdText);
this.userGroupBox.Controls.Add(this.userAcount);
this.userGroupBox.Controls.Add(this.userAcountText);
this.userGroupBox.Controls.Add(this.userName);
this.userGroupBox.Controls.Add(this.userNameText);
this.userGroupBox.Dock = System.Windows.Forms.DockStyle.Top;
this.userGroupBox.Font = new System.Drawing.Font("宋体", 10.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(134)));
this.userGroupBox.Location = new System.Drawing.Point(10, 10);
this.userGroupBox.Name = "userGroupBox";
this.userGroupBox.Size = new System.Drawing.Size(944, 161);
this.userGroupBox.TabIndex = 4;
this.userGroupBox.TabStop = false;
this.userGroupBox.Text = "用户信息";
//
// userDepartment
//
this.userDepartment.AutoSize = true;
this.userDepartment.Location = new System.Drawing.Point(6, 124);
this.userDepartment.Name = "userDepartment";
this.userDepartment.Size = new System.Drawing.Size(104, 19);
this.userDepartment.TabIndex = 6;
this.userDepartment.Text = "部门名称:";
//
// userDepartText
//
this.userDepartText.AutoSize = true;
this.userDepartText.Location = new System.Drawing.Point(116, 124);
this.userDepartText.Name = "userDepartText";
this.userDepartText.Size = new System.Drawing.Size(0, 19);
this.userDepartText.TabIndex = 7;
//
// userId
//
this.userId.AutoSize = true;
this.userId.Location = new System.Drawing.Point(6, 33);
this.userId.Name = "userId";
this.userId.Size = new System.Drawing.Size(104, 19);
this.userId.TabIndex = 4;
this.userId.Text = "用户编号:";
//
// userIdText
//
this.userIdText.AutoSize = true;
this.userIdText.Location = new System.Drawing.Point(116, 33);
this.userIdText.Name = "userIdText";
this.userIdText.Size = new System.Drawing.Size(0, 19);
this.userIdText.TabIndex = 5;
//
// userAcount
//
this.userAcount.AutoSize = true;
this.userAcount.Location = new System.Drawing.Point(6, 94);
this.userAcount.Name = "userAcount";
this.userAcount.Size = new System.Drawing.Size(104, 19);
this.userAcount.TabIndex = 2;
this.userAcount.Text = "用户工号:";
//
// userAcountText
//
this.userAcountText.AutoSize = true;
this.userAcountText.Location = new System.Drawing.Point(116, 94);
this.userAcountText.Name = "userAcountText";
this.userAcountText.Size = new System.Drawing.Size(0, 19);
this.userAcountText.TabIndex = 3;
//
// userName
//
this.userName.AutoSize = true;
this.userName.Location = new System.Drawing.Point(6, 63);
this.userName.Name = "userName";
this.userName.Size = new System.Drawing.Size(85, 19);
this.userName.TabIndex = 0;
this.userName.Text = "用户名:";
//
// userNameText
//
this.userNameText.AutoSize = true;
this.userNameText.Location = new System.Drawing.Point(97, 63);
this.userNameText.Name = "userNameText";
this.userNameText.Size = new System.Drawing.Size(0, 19);
this.userNameText.TabIndex = 1;
//
// 已录入
//
this..AppearanceHeader.Options.UseTextOptions = true;
this..AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
this..Caption = "已录入";
this..ColumnEdit = this.repositoryItemCheckEdit1;
this..FieldName = "已录入";
this..Name = "已录入";
this..Visible = true;
this..VisibleIndex = 2;
//
// FingerControl
//
this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 15F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.Controls.Add(this.FingerPanel);
this.Name = "FingerControl";
this.Size = new System.Drawing.Size(964, 455);
((System.ComponentModel.ISupportInitialize)(this.repositoryItemCheckEdit1)).EndInit();
this.FingerPanel.ResumeLayout(false);
this.LeftPanel.ResumeLayout(false);
this.LeftPanel.PerformLayout();
((System.ComponentModel.ISupportInitialize)(this.MainSplitContainer)).EndInit();
this.MainSplitContainer.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.FingerPicBox)).EndInit();
this.LeftMsgPanel.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.EmployeeControl)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.EmployeeView)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.IsPrint)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.IsFinerPrintEdit)).EndInit();
this.userGroupBox.ResumeLayout(false);
this.userGroupBox.PerformLayout();
this.ResumeLayout(false);
}
#endregion
private System.Windows.Forms.Panel FingerPanel;
private System.Windows.Forms.Panel LeftPanel;
private System.Windows.Forms.Label split2;
private System.Windows.Forms.Label InfoLabel;
private System.Windows.Forms.Label split1;
private System.Windows.Forms.GroupBox userGroupBox;
private System.Windows.Forms.Label userName;
private System.Windows.Forms.Label userNameText;
private System.Windows.Forms.Label userId;
private System.Windows.Forms.Label userIdText;
private System.Windows.Forms.Label userAcount;
private System.Windows.Forms.Label userAcountText;
private DevExpress.XtraEditors.SplitContainerControl MainSplitContainer;
private DevExpress.XtraGrid.Columns.GridColumn ;
private DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit repositoryItemCheckEdit1;
private System.Windows.Forms.Label userDepartment;
private System.Windows.Forms.Label userDepartText;
private DevExpress.XtraGrid.GridControl EmployeeControl;
private DevExpress.XtraGrid.Views.Grid.GridView EmployeeView;
private DevExpress.XtraGrid.Columns.GridColumn ;
private DevExpress.XtraGrid.Columns.GridColumn ;
private DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit IsPrint;
private DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit IsFinerPrintEdit;
private System.Windows.Forms.Label RightMessage;
private System.Windows.Forms.PictureBox FingerPicBox;
private System.Windows.Forms.Panel LeftMsgPanel;
private System.Windows.Forms.Label saveBtn;
private System.Windows.Forms.Label LeftMessage;
}
}
+149
View File
@@ -0,0 +1,149 @@
using DevExpress.XtraGrid;
using DevExpress.XtraGrid.Views.Grid;
using libzkfpcsharp;
using Lskj.Control;
using Lskj.Control.Model;
using Lskj.Control.ZKFinger;
using Lskj.Core;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading;
using System.Windows.Forms;
namespace Lskj.PubFingerPrint
{
public partial class FingerControl : UserControl
{
public DataRow focusedRow;
public bool isDoCapture = false;
public GridControl PrintUserControl
{
get
{
return this.EmployeeControl;
}
}
public GridView PrintUserView
{
get
{
return this.EmployeeView;
}
}
public FingerControl()
{
InitializeComponent();
}
public byte[] FingerBuffer
{
get { return StaticControl.fingerHelper.CapTmp; }
}
public void OnFrmFingerLoad(DataRow row)
{
try
{
this.focusedRow = row;
string userName = row["员工姓名"] + "";
string userId = row["employeeid"] + "";
string loginaccount = row["员工工号"] + "";
string departName = row["departmentname"] + "";
this.userNameText.Text = userName;
this.userIdText.Text = userId;
this.userAcountText.Text = loginaccount;
this.userDepartText.Text = departName;
InfoLabel.Text = "请放手指";
}
catch (Exception ex)
{
InfoLabel.Text = ex.Message;
this.focusedRow = null;
}
}
public void DoCapture()
{
while (!isDoCapture)
{
try
{
int cbCapTmp = 2048;
int ret = zkfp2.AcquireFingerprint(StaticControl.fingerHelper.mDevHandle, StaticControl.fingerHelper.FPBuffer, StaticControl.fingerHelper.CapTmp, ref cbCapTmp);
if (ret == zkfp.ZKFP_ERR_OK)
{
if (this.focusedRow != null)
{
MemoryStream ms = new MemoryStream();
BitmapFormat.GetBitmap(StaticControl.fingerHelper.FPBuffer, StaticControl.fingerHelper.mfpWidth, StaticControl.fingerHelper.mfpHeight, ref ms);
Bitmap bmp = new Bitmap(ms);
ShowImg(bmp);
}
else
{
MessageUtil.Show("请选择录入人员");
}
}
}
catch (Exception)
{
}
}
}
private void ShowImg(Bitmap bt)
{
if (this.InvokeRequired)
{
this.Invoke(new Action(() =>
{
FingerPicBox.Image = bt;
}));
}
else
{
FingerPicBox.Image = bt;
}
}
private void saveBtn_Click(object sender, EventArgs e)
{
if (StaticControl.fingerHelper.FPBuffer == null || StaticControl.fingerHelper.FPBuffer.Length == 0 || this.focusedRow == null)
{
MessageUtil.Show("请录入指纹后再保存");
}
else
{
try
{
string saveSql = string.Format("update P_EmployeeTab set FingerBuffer = @Picture,IsFingerPrint = 1 where EmployeeId = '{0}'", this.userIdText.Text);
SqlParameter[] cmdParams = new SqlParameter[]
{
new SqlParameter("@Picture",SqlDbType.Binary,FingerBuffer.Length),
};
cmdParams[0].Value = FingerBuffer;
int result = SqlHelper.ExecuteNonQuery(CommandType.Text, saveSql, cmdParams);
if (result == 1)
{
MessageUtil.Show("指纹信息录入成功");
DataTable sourceTable = this.EmployeeControl.DataSourceTable();
DataRow addRow = sourceTable.NewRow();
addRow.ItemArray = this.focusedRow.ItemArray;
this.focusedRow.Table.Rows.Remove(this.focusedRow);
sourceTable.Rows.Add(addRow);
}
else
{
MessageUtil.Show("指纹信息录入失败,请重试");
}
}
catch (Exception ex)
{
MessageUtil.Show(string.Format("指纹信息录入失败,{0}", ex.Message));
}
}
}
}
}
+120
View File
@@ -0,0 +1,120 @@
<?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>
</root>
+236
View File
@@ -0,0 +1,236 @@
namespace Lskj.PubFingerPrint
{
partial class FrmMain
{
/// <summary>
/// Required designer variable.
/// </summary>
private System.ComponentModel.IContainer components = null;
/// <summary>
/// Clean up any resources being used.
/// </summary>
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
protected override void Dispose(bool disposing)
{
if (disposing && (components != null))
{
components.Dispose();
}
base.Dispose(disposing);
}
#region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
private void InitializeComponent()
{
this.MainSplitContainer = new DevExpress.XtraEditors.SplitContainerControl();
this.LeftMainPanel = new System.Windows.Forms.Panel();
this.EmployeeControl = new DevExpress.XtraGrid.GridControl();
this.EmployeeView = new DevExpress.XtraGrid.Views.Grid.GridView();
this. = new DevExpress.XtraGrid.Columns.GridColumn();
this. = new DevExpress.XtraGrid.Columns.GridColumn();
this.IsPrint = new DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit();
this.IsFinerPrintEdit = new DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit();
this.LeftMessage = new System.Windows.Forms.Label();
this.SearchControl = new DevExpress.XtraEditors.PanelControl();
this.DepartmentSearch = new Lskj.Control.LabelComboxEdit();
this.RightMainPanel = new System.Windows.Forms.Panel();
this.FrmFinger = new Lskj.PubFingerPrint.FingerControl();
((System.ComponentModel.ISupportInitialize)(this.MainSplitContainer)).BeginInit();
this.MainSplitContainer.SuspendLayout();
this.LeftMainPanel.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.EmployeeControl)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.EmployeeView)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.IsPrint)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.IsFinerPrintEdit)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.SearchControl)).BeginInit();
this.SearchControl.SuspendLayout();
this.RightMainPanel.SuspendLayout();
this.SuspendLayout();
//
// MainSplitContainer
//
this.MainSplitContainer.Dock = System.Windows.Forms.DockStyle.Fill;
this.MainSplitContainer.Location = new System.Drawing.Point(0, 0);
this.MainSplitContainer.Name = "MainSplitContainer";
this.MainSplitContainer.Panel1.Controls.Add(this.LeftMainPanel);
this.MainSplitContainer.Panel1.Text = "Panel1";
this.MainSplitContainer.Panel2.Controls.Add(this.RightMainPanel);
this.MainSplitContainer.Panel2.Text = "Panel2";
this.MainSplitContainer.Size = new System.Drawing.Size(1244, 545);
this.MainSplitContainer.SplitterPosition = 300;
this.MainSplitContainer.TabIndex = 0;
this.MainSplitContainer.Text = "splitContainerControl1";
//
// LeftMainPanel
//
this.LeftMainPanel.BackColor = System.Drawing.Color.White;
this.LeftMainPanel.Controls.Add(this.EmployeeControl);
this.LeftMainPanel.Controls.Add(this.LeftMessage);
this.LeftMainPanel.Controls.Add(this.SearchControl);
this.LeftMainPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.LeftMainPanel.Location = new System.Drawing.Point(0, 0);
this.LeftMainPanel.Name = "LeftMainPanel";
this.LeftMainPanel.Size = new System.Drawing.Size(300, 545);
this.LeftMainPanel.TabIndex = 0;
//
// EmployeeControl
//
this.EmployeeControl.Dock = System.Windows.Forms.DockStyle.Fill;
this.EmployeeControl.Location = new System.Drawing.Point(0, 92);
this.EmployeeControl.MainView = this.EmployeeView;
this.EmployeeControl.Name = "EmployeeControl";
this.EmployeeControl.RepositoryItems.AddRange(new DevExpress.XtraEditors.Repository.RepositoryItem[] {
this.IsPrint,
this.IsFinerPrintEdit});
this.EmployeeControl.Size = new System.Drawing.Size(300, 453);
this.EmployeeControl.TabIndex = 11;
this.EmployeeControl.ViewCollection.AddRange(new DevExpress.XtraGrid.Views.Base.BaseView[] {
this.EmployeeView});
//
// EmployeeView
//
this.EmployeeView.Columns.AddRange(new DevExpress.XtraGrid.Columns.GridColumn[] {
this.,
this.});
this.EmployeeView.GridControl = this.EmployeeControl;
this.EmployeeView.IndicatorWidth = 40;
this.EmployeeView.Name = "EmployeeView";
this.EmployeeView.OptionsView.ShowGroupPanel = false;
//
// 工号
//
this..Caption = "员工工号";
this..FieldName = "员工工号";
this..Name = "工号";
this..Visible = true;
this..VisibleIndex = 0;
//
// 姓名
//
this..Caption = "员工姓名";
this..FieldName = "员工姓名";
this..Name = "姓名";
this..Visible = true;
this..VisibleIndex = 1;
//
// IsPrint
//
this.IsPrint.AutoHeight = false;
this.IsPrint.Name = "IsPrint";
this.IsPrint.ValueChecked = 1;
this.IsPrint.ValueUnchecked = "0";
//
// IsFinerPrintEdit
//
this.IsFinerPrintEdit.AutoHeight = false;
this.IsFinerPrintEdit.Name = "IsFinerPrintEdit";
this.IsFinerPrintEdit.ValueChecked = 1;
this.IsFinerPrintEdit.ValueUnchecked = 0;
//
// LeftMessage
//
this.LeftMessage.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(231)))), ((int)(((byte)(238)))), ((int)(((byte)(249)))));
this.LeftMessage.Dock = System.Windows.Forms.DockStyle.Top;
this.LeftMessage.Font = new System.Drawing.Font("微软雅黑", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
this.LeftMessage.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(108)))), ((int)(((byte)(206)))));
this.LeftMessage.Location = new System.Drawing.Point(0, 47);
this.LeftMessage.Name = "LeftMessage";
this.LeftMessage.Size = new System.Drawing.Size(300, 45);
this.LeftMessage.TabIndex = 2;
this.LeftMessage.Text = " 未录入人员";
this.LeftMessage.TextAlign = System.Drawing.ContentAlignment.MiddleLeft;
//
// SearchControl
//
this.SearchControl.Appearance.BackColor = System.Drawing.Color.White;
this.SearchControl.Appearance.Options.UseBackColor = true;
this.SearchControl.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Simple;
this.SearchControl.Controls.Add(this.DepartmentSearch);
this.SearchControl.Dock = System.Windows.Forms.DockStyle.Top;
this.SearchControl.Location = new System.Drawing.Point(0, 0);
this.SearchControl.Margin = new System.Windows.Forms.Padding(4);
this.SearchControl.Name = "SearchControl";
this.SearchControl.Size = new System.Drawing.Size(300, 47);
this.SearchControl.TabIndex = 9;
//
// DepartmentSearch
//
this.DepartmentSearch.BackColor = System.Drawing.Color.Transparent;
this.DepartmentSearch.EditText = "";
this.DepartmentSearch.FontSize = 0F;
this.DepartmentSearch.LabelText = "部门";
this.DepartmentSearch.Location = new System.Drawing.Point(13, 13);
this.DepartmentSearch.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4);
this.DepartmentSearch.Model = null;
this.DepartmentSearch.Name = "DepartmentSearch";
this.DepartmentSearch.NullText = "";
this.DepartmentSearch.ReadOnly = false;
this.DepartmentSearch.Required = false;
this.DepartmentSearch.Size = new System.Drawing.Size(269, 21);
this.DepartmentSearch.TabIndex = 1;
//
// RightMainPanel
//
this.RightMainPanel.BackColor = System.Drawing.Color.White;
this.RightMainPanel.Controls.Add(this.FrmFinger);
this.RightMainPanel.Dock = System.Windows.Forms.DockStyle.Fill;
this.RightMainPanel.Location = new System.Drawing.Point(0, 0);
this.RightMainPanel.Name = "RightMainPanel";
this.RightMainPanel.Size = new System.Drawing.Size(938, 545);
this.RightMainPanel.TabIndex = 1;
//
// FrmFinger
//
this.FrmFinger.Dock = System.Windows.Forms.DockStyle.Fill;
this.FrmFinger.Location = new System.Drawing.Point(0, 0);
this.FrmFinger.Margin = new System.Windows.Forms.Padding(3, 4, 3, 4);
this.FrmFinger.Name = "FrmFinger";
this.FrmFinger.Size = new System.Drawing.Size(938, 545);
this.FrmFinger.TabIndex = 0;
//
// FrmMain
//
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None;
this.BackColor = System.Drawing.Color.White;
this.ClientSize = new System.Drawing.Size(1244, 545);
this.Controls.Add(this.MainSplitContainer);
this.Name = "FrmMain";
this.Text = "指纹管理";
((System.ComponentModel.ISupportInitialize)(this.MainSplitContainer)).EndInit();
this.MainSplitContainer.ResumeLayout(false);
this.LeftMainPanel.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.EmployeeControl)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.EmployeeView)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.IsPrint)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.IsFinerPrintEdit)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.SearchControl)).EndInit();
this.SearchControl.ResumeLayout(false);
this.RightMainPanel.ResumeLayout(false);
this.ResumeLayout(false);
}
#endregion
private DevExpress.XtraEditors.SplitContainerControl MainSplitContainer;
private System.Windows.Forms.Panel LeftMainPanel;
private System.Windows.Forms.Panel RightMainPanel;
private DevExpress.XtraEditors.PanelControl SearchControl;
private Control.LabelComboxEdit DepartmentSearch;
private FingerControl FrmFinger;
private System.Windows.Forms.Label LeftMessage;
private DevExpress.XtraGrid.GridControl EmployeeControl;
private DevExpress.XtraGrid.Views.Grid.GridView EmployeeView;
private DevExpress.XtraGrid.Columns.GridColumn ;
private DevExpress.XtraGrid.Columns.GridColumn ;
private DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit IsPrint;
private DevExpress.XtraEditors.Repository.RepositoryItemCheckEdit IsFinerPrintEdit;
}
}
+295
View File
@@ -0,0 +1,295 @@
using DevExpress.Utils;
using DevExpress.XtraGrid.Views.Grid;
using Lskj.Business.Impl;
using Lskj.Control;
using Lskj.Control.Model;
using Lskj.Control.ZKFinger;
using Lskj.Core;
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.Windows.Forms;
namespace Lskj.PubFingerPrint
{
public partial class FrmMain : Form
{
public ContextMenuStrip menuStrip = new ContextMenuStrip();
public Thread captureThread;
public FrmMain()
{
InitializeComponent();
this.Load += FrmMain_Load;
this.Disposed += FrmMain_Disposed;
}
#region
/// <summary>
/// 初始化
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmMain_Load(object sender, EventArgs e)
{
try
{
if (!CheckTabColumns())
{
MessageUtil.Show("数据表employeetab不存在FingerBuffer或IsFingerPrint列");
return;
}
if (StaticControl.fingerHelper != null)
{
StaticControl.fingerHelper.Close();
StaticControl.fingerHelper = null;
}
FingerHelper.FreeSensor();
StaticControl.fingerHelper = new FingerHelper();
StaticControl.fingerHelper.FPBuffer = new byte[StaticControl.fingerHelper.mfpWidth * StaticControl.fingerHelper.mfpHeight];
captureThread = new Thread(new ThreadStart(this.FrmFinger.DoCapture));
captureThread.IsBackground = true;
captureThread.Start();
InitializeDeps();
InitLeftSearchControl();
InitLeftEmployeeGrid();
InitRightEmployeeGrid();
}
catch (Exception ex)
{
MessageUtil.Show(ex.Message);
}
}
/// <summary>
/// 释放时
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void FrmMain_Disposed(object sender, EventArgs e)
{
this.FrmFinger.isDoCapture = true;
if (StaticControl.fingerHelper != null)
{
StaticControl.fingerHelper.Close();
StaticControl.fingerHelper = null;
}
FingerHelper.FreeSensor();
if (captureThread != null)
{
captureThread.Abort();
}
}
private void OnFocusedRowObjectChanged(object sender, DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventArgs e)
{
DataRow focusedRow = this.EmployeeView.GetDataRow(e.FocusedRowHandle);
if (focusedRow != null)
{
this.FrmFinger.OnFrmFingerLoad(focusedRow);
}
}
/// <summary>
/// 部门查询值改变
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnDepartmentEditValueChanged(object sender, EventArgs e)
{
string depid = this.DepartmentSearch.EditValue;
DataTable table = GetUsersInfo(depid, "");
DataTable sourceTab = table.Clone();
table.Select("isfingerprint=0").CopyToDataTable(sourceTab, LoadOption.OverwriteChanges);
sourceTab.Columns["loginaccount"].ColumnName = "员工工号";
sourceTab.Columns["employeename"].ColumnName = "员工姓名";
this.EmployeeControl.DataSource = sourceTab;
DataTable sourceRightTab = table.Clone();
table.Select("isfingerprint=1").CopyToDataTable(sourceRightTab, LoadOption.OverwriteChanges);
sourceRightTab.Columns["loginaccount"].ColumnName = "员工工号";
sourceRightTab.Columns["employeename"].ColumnName = "员工姓名";
this.FrmFinger.PrintUserControl.DataSource = sourceRightTab;
}
/// <summary>
/// 删除按钮点击
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MenuStripItemClick(object sender, EventArgs e)
{
try
{
int[] selectIndexs = this.FrmFinger.PrintUserView.GetSelectedRows().OrderByDescending(n => n).ToArray();
foreach (int index in selectIndexs)
{
DataRow focusedUserRow = this.FrmFinger.PrintUserView.GetDataRow(index);
if (focusedUserRow != null)
{
string employeeid = focusedUserRow["employeeid"] + "";
string saveSql = string.Format("update P_EmployeeTab set FingerBuffer = null,IsFingerPrint = 0 where EmployeeId = '{0}'", employeeid);
SqlHelper.ExecuteNonQuery(saveSql);
DataTable sourceTab = this.FrmFinger.PrintUserControl.DataSourceTable();
DataTable notPrintTab = this.EmployeeControl.DataSourceTable();
DataRow addRow = notPrintTab.NewRow();
addRow.ItemArray = focusedUserRow.ItemArray;
sourceTab.Rows.Remove(focusedUserRow);
notPrintTab.Rows.Add(addRow);
}
}
}
catch (Exception ex)
{
MessageUtil.Show(string.Format("删除失败,原因:{0}", ex.Message));
}
}
/// <summary>
/// 行序号
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void OnCustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
try
{
e.Appearance.TextOptions.HAlignment = HorzAlignment.Center;
if (e.Info.IsRowIndicator)
{
if (e.RowHandle >= 0)
{
e.Info.DisplayText = (e.RowHandle + 1).ToString();
}
}
}
catch (Exception)
{
}
}
private void OnCustomDrawCell(object sender, DevExpress.XtraGrid.Views.Base.RowCellCustomDrawEventArgs e)
{
GridView gridView = (GridView)sender;
try
{
if (e.RowHandle == gridView.FocusedRowHandle)
e.Appearance.BackColor = ColorTranslator.FromHtml("#9feb6a");
}
catch (Exception)
{
}
}
#endregion
#region
/// <summary>
/// 初始化左侧搜索
/// </summary>
private void InitLeftSearchControl()
{
this.DepartmentSearch.TextEdit.EditValueChanged += OnDepartmentEditValueChanged;
}
/// <summary>
/// 初始化左侧员工表
/// </summary>
private void InitLeftEmployeeGrid()
{
DataTable table = GetUsersInfo("", "");
DataTable sourceTab = table.Clone();
table.Select("isfingerprint=0").CopyToDataTable(sourceTab, LoadOption.OverwriteChanges);
sourceTab.Columns["loginaccount"].ColumnName = "员工工号";
sourceTab.Columns["employeename"].ColumnName = "员工姓名";
this.EmployeeControl.DataSource = sourceTab;
this.EmployeeView.OptionsBehavior.Editable = false;
this.EmployeeView.OptionsSelection.MultiSelect = false;
this.EmployeeView.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.RowSelect;
this.EmployeeView.FocusedRowObjectChanged += OnFocusedRowObjectChanged;
this.EmployeeView.CustomDrawRowIndicator += OnCustomDrawRowIndicator;
this.EmployeeView.CustomDrawCell += OnCustomDrawCell;
if (sourceTab.Rows.Count > 0)
{
this.OnFocusedRowObjectChanged(null, new DevExpress.XtraGrid.Views.Base.FocusedRowObjectChangedEventArgs(0, null));
}
}
/// <summary>
/// 初始化右侧员工表
/// </summary>
private void InitRightEmployeeGrid()
{
DataTable table = GetUsersInfo("", "");
DataTable sourceTab = table.Clone();
table.Select("isfingerprint=1").CopyToDataTable(sourceTab, LoadOption.OverwriteChanges);
sourceTab.Columns["loginaccount"].ColumnName = "员工工号";
sourceTab.Columns["employeename"].ColumnName = "员工姓名";
this.FrmFinger.PrintUserControl.DataSource = sourceTab;
this.FrmFinger.PrintUserView.OptionsBehavior.Editable = false;
this.FrmFinger.PrintUserView.OptionsSelection.MultiSelect = true;
this.FrmFinger.PrintUserView.OptionsSelection.MultiSelectMode = DevExpress.XtraGrid.Views.Grid.GridMultiSelectMode.CellSelect;
this.FrmFinger.PrintUserView.CustomDrawRowIndicator += OnCustomDrawRowIndicator;
this.FrmFinger.PrintUserView.CustomDrawCell += OnCustomDrawCell;
ToolStripMenuItem menuItem = new ToolStripMenuItem();
menuItem.Text = "删除指纹";
menuItem.Click += new EventHandler(MenuStripItemClick);
this.menuStrip.Items.Add(menuItem);
this.FrmFinger.PrintUserControl.ContextMenuStrip = this.menuStrip;
}
/// <summary>
/// <para>说明:初始化部门数据</para>
/// <para>创建人:龚宇超</para>
/// <para>创建日期:2019-06-24 </para>
/// <para>修改人:</para>
/// <para>修改日期:</para>
/// <para>修改备注:</para>
/// <para>版本:1.0</para>
/// </summary>
private void InitializeDeps()
{
DataTable table = WorkFlowBaseImpl.GetDeps();
this.DepartmentSearch.ValueMember = "departmentid";
this.DepartmentSearch.ValueField = "departmentid";
this.DepartmentSearch.TextField = "departmentname";
this.DepartmentSearch.SetDataSource(table);
}
/// <summary>
/// 获取员工信息
/// </summary>
/// <param name="depid"></param>
/// <param name="mf"></param>
/// <returns></returns>
private DataTable GetUsersInfo(string depid, string mf)
{
string where = string.Empty;
if (!string.IsNullOrEmpty(depid))
where = " and a.departmentid=" + depid;
if (!string.IsNullOrEmpty(mf))
where = string.Format(" and (a.loginaccount like '%{0}%' or a.employeename like '%{0}%' or dbo.P_getpy(a.employeename) like '%{0}%')", mf);
string sqlValue = "select a.loginaccount,a.employeeid,a.employeename,a.departmentid,a.fingerbuffer,isnull(a.isfingerprint,0) as isfingerprint,b.departmentname from p_employeeTab a left join P_DepartmentTab b on a.departmentid=b.departmentid where a.sign=0 and a.UseFlag=1 " + where + " order by a.employeeid";
return BaseImpl.GetDataTableResult(sqlValue);
}
/// <summary>
/// 检查员工表列
/// </summary>
private bool CheckTabColumns()
{
bool isCheck = false;
try
{
string alterSql = "";
if (!BaseImpl.HasExistsColumn("p_employeeTab", "FingerBuffer"))
{
alterSql += "alter table p_employeeTab add FingerBuffer image;";
}
if (!BaseImpl.HasExistsColumn("p_employeeTab", "IsFingerPrint"))
{
alterSql += "alter table p_employeeTab add IsFingerPrint int";
}
if (!string.IsNullOrEmpty(alterSql))
{
SqlHelper.ExecuteNonQuery(alterSql);
}
isCheck = true;
}
catch (Exception)
{
}
return isCheck;
}
#endregion
}
}
+120
View File
@@ -0,0 +1,120 @@
<?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>
</root>
@@ -0,0 +1,234 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" 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>{AF768425-E7B7-4CEB-9C15-D93CFA844ED3}</ProjectGuid>
<OutputType>Library</OutputType>
<AppDesignerFolder>Properties</AppDesignerFolder>
<RootNamespace>Lskj.PubFingerPrint</RootNamespace>
<AssemblyName>Lskj.PubFingerPrint</AssemblyName>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<FileAlignment>512</FileAlignment>
<Deterministic>true</Deterministic>
<NuGetPackageImportStamp>
</NuGetPackageImportStamp>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<Optimize>false</Optimize>
<OutputPath>..\..\Debug\Lib\</OutputPath>
<DefineConstants>DEBUG;TRACE</DefineConstants>
<ErrorReport>prompt</ErrorReport>
<WarningLevel>4</WarningLevel>
<PlatformTarget>x86</PlatformTarget>
</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>
<ItemGroup>
<Reference Include="API, Version=0.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\GpyApi\API.dll</HintPath>
</Reference>
<Reference Include="AxInterop.CamCaptureCtlLib, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\AxInterop.CamCaptureCtlLib.dll</HintPath>
</Reference>
<Reference Include="DevExpress.Data.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.Printing.v15.2.Core, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
<Reference Include="DevExpress.RichEdit.v15.2.Core, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Spreadsheet.v15.2.Core, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.Utils.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraBars.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraCharts.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraCharts.v15.2.UI, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraEditors.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraGrid.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraPrinting.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraReports.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraReports.v15.2.Extensions, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraRichEdit.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraScheduler.v15.2.Core, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraSpreadsheet.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="DevExpress.XtraTreeList.v15.2, Version=15.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
<Reference Include="FastReport, Version=2017.1.16.0, Culture=neutral, PublicKeyToken=417583d16d08abed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\FastReport.dll</HintPath>
</Reference>
<Reference Include="Geckofx-Core, Version=45.0.6.0, Culture=neutral, PublicKeyToken=3209ac31600d1857, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\Geckofx-Core.dll</HintPath>
</Reference>
<Reference Include="Geckofx-Winforms, Version=45.0.6.0, Culture=neutral, PublicKeyToken=3209ac31600d1857, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\Geckofx-Winforms.dll</HintPath>
</Reference>
<Reference Include="IKVM.OpenJDK.Core, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\GpyApi\IKVM.OpenJDK.Core.dll</HintPath>
</Reference>
<Reference Include="IKVM.OpenJDK.Security, Version=8.1.5717.0, Culture=neutral, PublicKeyToken=13235d27fcbfff58, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\GpyApi\IKVM.OpenJDK.Security.dll</HintPath>
</Reference>
<Reference Include="itextsharp, Version=5.5.8.0, Culture=neutral, PublicKeyToken=8354ae6d2174ddca, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\itextsharp.dll</HintPath>
</Reference>
<Reference Include="libzkfpcsharp">
<HintPath>..\..\引用DLL\libzkfpcsharp.dll</HintPath>
</Reference>
<Reference Include="Lskj.AutoUpdate, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Debug\Lskj.AutoUpdate.dll</HintPath>
</Reference>
<Reference Include="Lskj.Core, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Debug\Lskj.Core.dll</HintPath>
</Reference>
<Reference Include="Lskj.Data, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Debug\Lskj.Data.dll</HintPath>
</Reference>
<Reference Include="Lskj.Interface.Api, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Debug\Lskj.Interface.Api.dll</HintPath>
</Reference>
<Reference Include="Lskj.Model, Version=1.0.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\Debug\Lskj.Model.dll</HintPath>
</Reference>
<Reference Include="Lskj.Redis, Version=1.0.0.0, Culture=neutral, processorArchitecture=x86">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Lskj.Redius\bin\Debug\Lskj.Redis.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Threading.Tasks, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\Lskj.LserpAll\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Threading.Tasks.Extensions, Version=1.0.12.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\Lskj.LserpAll\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.dll</HintPath>
</Reference>
<Reference Include="Microsoft.Threading.Tasks.Extensions.Desktop, Version=1.0.168.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\Lskj.LserpAll\packages\Microsoft.Bcl.Async.1.0.168\lib\net40\Microsoft.Threading.Tasks.Extensions.Desktop.dll</HintPath>
</Reference>
<Reference Include="Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\Newtonsoft.Json.dll</HintPath>
</Reference>
<Reference Include="NPOI, Version=2.1.3.1, Culture=neutral, PublicKeyToken=0df73ec7942b34e1, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\NPOI.dll</HintPath>
</Reference>
<Reference Include="O2S.Components.PDFView4NET, Version=4.7.4.0, Culture=neutral, PublicKeyToken=bdf0cc7afcc23208, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\O2S.Components.PDFView4NET.dll</HintPath>
</Reference>
<Reference Include="PresentationCore" />
<Reference Include="Spire.Barcode, Version=4.1.1.11040, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\Spire.Barcode.dll</HintPath>
</Reference>
<Reference Include="Spire.Doc, Version=8.3.15.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\Spire.Doc.dll</HintPath>
</Reference>
<Reference Include="Spire.Pdf, Version=6.3.11.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\Spire.Pdf.dll</HintPath>
</Reference>
<Reference Include="Spire.XLS, Version=10.3.8.0, Culture=neutral, PublicKeyToken=663f351905198cb3, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\Spire.XLS.dll</HintPath>
</Reference>
<Reference Include="System" />
<Reference Include="System.ComponentModel.DataAnnotations" />
<Reference Include="System.Core" />
<Reference Include="System.Design" />
<Reference Include="System.Drawing" />
<Reference Include="System.Drawing.Design" />
<Reference Include="System.IO, Version=2.6.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\Lskj.LserpAll\packages\Microsoft.Bcl.1.1.10\lib\net40\System.IO.dll</HintPath>
</Reference>
<Reference Include="System.Net" />
<Reference Include="System.Runtime, Version=2.6.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\Lskj.LserpAll\packages\Microsoft.Bcl.1.1.10\lib\net40\System.Runtime.dll</HintPath>
</Reference>
<Reference Include="System.Runtime.Remoting" />
<Reference Include="System.Threading.Tasks, Version=2.6.10.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL">
<HintPath>..\Lskj.LserpAll\packages\Microsoft.Bcl.1.1.10\lib\net40\System.Threading.Tasks.dll</HintPath>
</Reference>
<Reference Include="System.Web" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="Microsoft.CSharp" />
<Reference Include="System.Data" />
<Reference Include="System.Xml" />
<Reference Include="UIAutomationClient" />
<Reference Include="WindowsBase" />
<Reference Include="Xilium.CefGlue, Version=87.1.1.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\引用DLL\Xilium.CefGlue.dll</HintPath>
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="DllBaseClass.cs" />
<Compile Include="FingerControl.cs">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="FingerControl.Designer.cs">
<DependentUpon>FingerControl.cs</DependentUpon>
</Compile>
<Compile Include="FrmMain.cs">
<SubType>Form</SubType>
</Compile>
<Compile Include="FrmMain.Designer.cs">
<DependentUpon>FrmMain.cs</DependentUpon>
</Compile>
<Compile Include="Properties\AssemblyInfo.cs" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\Lskj.Business\Lskj.Business.csproj">
<Project>{7EAFCCC2-A18F-49E9-85C6-A984966CFD01}</Project>
<Name>Lskj.Business</Name>
</ProjectReference>
<ProjectReference Include="..\Lskj.Control\Lskj.Control.csproj">
<Project>{447CDC40-659F-4CCA-9ED6-8E818B4CF8BF}</Project>
<Name>Lskj.Control</Name>
</ProjectReference>
<ProjectReference Include="..\Lskj.Util\Lskj.Util.csproj">
<Project>{A51BF642-6543-4DE3-8948-83F558B72BD4}</Project>
<Name>Lskj.Util</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="FingerControl.resx">
<DependentUpon>FingerControl.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="FrmMain.resx">
<DependentUpon>FrmMain.cs</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Properties\licenses.licx" />
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="packages.config" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
<Import Project="..\Lskj.LserpAll\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets" Condition="Exists('..\Lskj.LserpAll\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" />
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup>
<ErrorText>这台计算机上缺少此项目引用的 NuGet 程序包。使用“NuGet 程序包还原”可下载这些程序包。有关更多信息,请参见 http://go.microsoft.com/fwlink/?LinkID=322105。缺少的文件是 {0}。</ErrorText>
</PropertyGroup>
<Error Condition="!Exists('..\Lskj.LserpAll\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\Lskj.LserpAll\packages\Microsoft.Bcl.Build.1.0.21\build\Microsoft.Bcl.Build.targets'))" />
</Target>
</Project>
@@ -0,0 +1,36 @@
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
// 有关程序集的一般信息由以下
// 控制。更改这些特性值可修改
// 与程序集关联的信息。
[assembly: AssemblyTitle("PubFingerPrint")]
[assembly: AssemblyDescription("")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany("")]
[assembly: AssemblyProduct("PubFingerPrint")]
[assembly: AssemblyCopyright("Copyright © 2023")]
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
// 将 ComVisible 设置为 false 会使此程序集中的类型
//对 COM 组件不可见。如果需要从 COM 访问此程序集中的类型
//请将此类型的 ComVisible 特性设置为 true。
[assembly: ComVisible(false)]
// 如果此项目向 COM 公开,则下列 GUID 用于类型库的 ID
[assembly: Guid("af768425-e7b7-4ceb-9c15-d93cfa844ed3")]
// 程序集的版本信息由下列四个值组成:
//
// 主版本
// 次版本
// 生成号
// 修订号
//
//可以指定所有这些值,也可以使用“生成号”和“修订号”的默认值
//通过使用 "*",如下所示:
// [assembly: AssemblyVersion("1.0.*")]
[assembly: AssemblyVersion("1.0.0.0")]
[assembly: AssemblyFileVersion("1.0.0.0")]
+35
View File
@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="Newtonsoft.Json" publicKeyToken="30ad4fe6b2a6aeed" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-12.0.0.0" newVersion="12.0.0.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Spire.XLS" publicKeyToken="663f351905198cb3" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-10.3.8.0" newVersion="10.3.8.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Spire.Presentation" publicKeyToken="663f351905198cb3" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.3.6.0" newVersion="5.3.6.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="Spire.Doc" publicKeyToken="663f351905198cb3" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-8.3.15.0" newVersion="8.3.15.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="NPOI" publicKeyToken="0df73ec7942b34e1" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.1.3.1" newVersion="2.1.3.1" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Runtime" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
</dependentAssembly>
<dependentAssembly>
<assemblyIdentity name="System.Threading.Tasks" publicKeyToken="b03f5f7f11d50a3a" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-2.6.10.0" newVersion="2.6.10.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
+6
View File
@@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Microsoft.Bcl" version="1.1.10" targetFramework="net40" />
<package id="Microsoft.Bcl.Async" version="1.0.168" targetFramework="net40" />
<package id="Microsoft.Bcl.Build" version="1.0.21" targetFramework="net40" />
</packages>