当前位置:文档之家› 顺丰单号、EMS 单号算法(规则 规律)

顺丰单号、EMS 单号算法(规则 规律)

顺丰单号、EMS 单号算法(规则 规律)
顺丰单号、EMS 单号算法(规则 规律)

using System;

using System.Collections.Generic;

using https://www.doczj.com/doc/1b9717873.html,ponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.Data.OleDb;

using Microsoft.Office.Interop.Excel;

using System.Diagnostics;

using System.IO;

namespace RMEmsNum

{

public partial class Form1 : Form

{

public Form1()

{

InitializeComponent();

}

public int BNum = 0;

///

/// 生成数据写入Access数据库

///

///

private void RE(string sql)

{

string path = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DONENAME.mdb;";

OleDbConnection conn = new OleDbConnection(path);

OleDbCommand cmd = new OleDbCommand(sql, conn);

conn.Open();

try

{

cmd.ExecuteNonQuery();

}

catch (Exception)

{

conn.Close();

MessageBox.Show("写入数据失败!");

}

conn.Close();

}

///

/// 开始生成Ems数据

///

///

///

private void btn_Go_Click(object sender, EventArgs e)

{

this.btn_showinfo.Enabled = false;

this.btn_ToExcle.Enabled = false;

try

{

if (this.txtBox_Start.Text.Trim() == "" || this.txtBox_End.Text.Trim() == "" || this.txtBox_Start.Text.Trim().Length != 8 || this.txtBox_End.Text.Trim().Length != 8 )

{

MessageBox.Show("请正确输入编码!编码应为8位全数字!");

}

else

{

//cq0784 3633 7sd

//cq0784 3638 5sd

string startStr = this.txtBox_Start.Text.Trim();

string endStr = this.txtBox_End.Text.Trim();

int startNum = Convert.ToInt32(startStr.Substring(4, 4));

int endNum = Convert.ToInt32(endStr.Substring(4, 4));

for (int i = startNum; i <= endNum; i++)

{

//8 6 4 2 3 5 9 7

int num3 = Convert.ToInt32(startStr.Substring(0, 1));

int num4 = Convert.ToInt32(startStr.Substring(1, 1));

int num5 = Convert.ToInt32(startStr.Substring(2, 1));

int num6 = Convert.ToInt32(startStr.Substring(3, 1));

int num7 = Convert.ToInt32(startStr.Substring(4, 1));

int num8 = Convert.ToInt32(startStr.Substring(5, 1));

int num9 = Convert.ToInt32(startStr.Substring(6, 1));

int num10 = Convert.ToInt32(startStr.Substring(7, 1));

int lastNum = 11

- (8 * num3

+ 6 * num4

+ 4 * num5

+ 2 * num6

+ 3 * num7

+ 5 * num8

+ 9 * num9

+ 7 * num10) % 11;

if (lastNum == 10)

{

lastNum = 0;

}

if (lastNum == 11)

{

lastNum = 5;

}

string sql = "insert into EmsNum (Ems) values ('CQ" + startStr.Substring(0, 4) + i.ToString() + lastNum.ToString() + "SD')";

RE(sql);

startStr = startStr.Substring(0, 4) + (i + 1).ToString();

}

MessageBox.Show("CQ" + this.txtBox_Start.Text.Trim() + "*SD到" + "CQ" + this.txtBox_End.Text.Trim() + "*SD 编码生成成功!");

this.btn_showinfo.Enabled = true;

this.btn_ToExcle.Enabled = true;

}

}

catch (Exception)

{

MessageBox.Show("数据生成失败!请重新尝试!");

this.btn_showinfo.Enabled = false;

}

}

///

/// 预览刚生成的Ems数据方法

///

private void showEmsNum()

{

string sql = "select * from EmsNum where id>"+BNum;

string path = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DONENAME.mdb;";

OleDbConnection conn = new OleDbConnection(path);

OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);

DataSet ds = new DataSet();

da.Fill(ds);

try

{

this.dataGridView1.DataSource = ds.Tables[0];

}

catch (Exception)

{

MessageBox.Show("写入数据失败!");

}

}

private void Form1_Load(object sender, EventArgs e)

{

this.btn_showinfo.Enabled = false;

this.btn_ToExcle.Enabled = false;

BNum = GetBNum();

}

///

/// 获取数据库中的最大ID号

///

///

private int GetBNum()

{

int BNum = 0;

string sql = "select max(ID) from EmsNum ";

string path = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DONENAME.mdb;";

OleDbConnection conn = new OleDbConnection(path);

OleDbCommand cmd = new OleDbCommand(sql, conn);

conn.Open();

try

{

BNum = Convert.ToInt32(cmd.ExecuteScalar().ToString());

}

catch (Exception)

{

}

conn.Close();

return BNum;

}

///

/// 预览事件

///

///

///

private void btn_showinfo_Click(object sender, EventArgs e)

{

showEmsNum();

}

///

/// 导出数据方法

///

/// 传入数据表

public void DataToExcel(System.Data.DataTable m_DataTable)

{

SaveFileDialog kk = new SaveFileDialog();

kk.Title = "保存EXECL文件";

kk.Filter = "EXECL文件(*.xls) |*.xls |所有文件(*.*) |*.*";

kk.FilterIndex = 1;

if (kk.ShowDialog() == DialogResult.OK)

{

string FileName = kk.FileName + ".";

if (File.Exists(FileName))

File.Delete(FileName);

FileStream objFileStream;

StreamWriter objStreamWriter;

string strLine = "";

objFileStream = new FileStream(FileName, FileMode.OpenOrCreate, FileAccess.Write);

objStreamWriter = new StreamWriter(objFileStream, System.Text.Encoding.Unicode);

for (int i = 0; i < m_DataTable.Columns.Count; i++)

{

strLine = strLine + m_DataTable.Columns[i].Caption.ToString() + Convert.ToChar(9);

}

objStreamWriter.WriteLine(strLine);

strLine = "";

for (int i = 0; i < m_DataTable.Rows.Count; i++)

{

for (int j = 0; j < m_DataTable.Columns.Count; j++)

{

if (m_DataTable.Rows[i].ItemArray[j] == null)

strLine = strLine + " " + Convert.ToChar(9);

else

{

string rowstr = "";

rowstr = m_DataTable.Rows[i].ItemArray[j].ToString();

if (rowstr.IndexOf("\r\n") > 0)

rowstr = rowstr.Replace("\r\n", " ");

if (rowstr.IndexOf("\t") > 0)

rowstr = rowstr.Replace("\t", " ");

strLine = strLine + rowstr + Convert.ToChar(9);

}

}

objStreamWriter.WriteLine(strLine);

strLine = "";

}

objStreamWriter.Close();

objFileStream.Close();

MessageBox.Show(this, "保存EXCEL成功", "提示", MessageBoxButtons.OK, https://www.doczj.com/doc/1b9717873.html,rmation);

}

}

///

/// 导出数据事件

///

///

///

private void btn_ToExcle_Click(object sender, EventArgs e)

{

string sql = "select * from EmsNum where ID>" + BNum;

string path = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=DONENAME.mdb;";

OleDbConnection conn = new OleDbConnection(path);

OleDbDataAdapter da = new OleDbDataAdapter(sql, conn);

DataSet ds = new DataSet();

da.Fill(ds);

try

{

DataToExcel(ds.Tables[0]);

}

catch (Exception)

{

conn.Close();

MessageBox.Show("请查看数据源!");

}

conn.Close();

}

}

}

相关主题
文本预览
相关文档 最新文档