国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學(xué)院 > 開發(fā)設(shè)計 > 正文

c#條碼打印—電子監(jiān)管碼打印

2019-11-14 16:17:35
字體:
供稿:網(wǎng)友

  說到條碼打印,很多人會說直接調(diào)用諸如codesoft 或者bartender之類的軟件來打印。沒錯,簡單單獨打印是可以使用這些方法。但實際項目應(yīng)用中所需要的條碼打印功能卻很復(fù)雜,必須結(jié)合公司的業(yè)務(wù)軟件才能很到位的打印條碼。這時候,咱們不能依賴別人給的軟件來打印,必須自己寫代碼耦合應(yīng)用程序中去。看下圖:

  如何打印中國藥品電子監(jiān)管碼的條碼?看起來很容易,實際上生成藥品監(jiān)管碼有一定的命名規(guī)則。在這里就不說了,自己上網(wǎng)看一下就明白了。以后大家買藥前也可以去http://www1.drugadmin.com/ 中國藥品電子監(jiān)管平臺,查看一下自己買的是否真假。可以在系統(tǒng) 上追朔藥品流向情況【包括、生產(chǎn)廠商是誰,賣給誰了,誰又批發(fā)給誰了,該藥品通過合不合格,質(zhì)檢機構(gòu)是。。。】我還是附上藥品監(jiān)管碼組成的一些常識,給偷懶的自己一個交代。

    1. 普通藥品的監(jiān)管碼文件名稱系統(tǒng)自動生成,生成規(guī)則是“藥品通用名_申請單號_碼開始序列號(20位監(jiān)管碼的前16位)_-文件序號(3位數(shù)字)_包裝規(guī)格_包裝級別”

    例:復(fù)方苦參注射液_20090813-1_8200008400050520-000_盒5瓶_1

    藥品名稱:復(fù)方苦參注射液;

    申請單號:20090813-1;

    碼開始序列號:8200008400050520;

    文件序號:000

    包裝規(guī)格:盒5支

    包裝級別:1(包裝級別中,1為最小包裝)

    2. 各級外包裝的產(chǎn)品名稱定義規(guī)則為,外包裝藥品通用名=最小包裝藥品通用名+—+該包裝包括的最小包裝數(shù)量+最小包裝單位。

     例:企業(yè)填寫魚腥草注射液2ml 5只裝/盒的藥品,包裝比例1:10:100。則系統(tǒng)需要生成中包裝、大包裝的藥品通用名,分別為魚腥草注射液—10盒,魚腥草注射液—100盒。

 

二、不好意思,題外話太多了。如何自定義打印條碼功能?

 第一步:vs建立打印模板[報表]

    

           

                

 

 第二步:配置好條碼打印機和打印字體【略】

第三步:調(diào)用自定義類,打印。

打印調(diào)用代碼如下:

 PRivate void print_package_box(DataTable dt)        {            SourceApp.report.print_code ss = new report.print_code();            string[] Parameter = new string[4];            Parameter[0] = "條碼";            Parameter[1] = get_code128(dt.Rows[0]["業(yè)務(wù)員編號"].ToString() + "/" + dt.Rows[0]["日期"].ToString());            Parameter[2] = "條碼內(nèi)容";            Parameter[3] = dt.Rows[0]["業(yè)務(wù)員編號"].ToString() + "/" + dt.Rows[0]["日期"].ToString();            ss.print_report(dt, "SourceApp.report.OutSumPrint.rdlc", Parameter);        }        static public string get_code128(string code_comment)        {            //string str ="";            string result;            int checksum = 104;            for (int i = 0; i < code_comment.Length; i++)            {                if (code_comment[i] >= 32)                {                    checksum += (code_comment[i] - 32) * (i + 1);                }                else                {                    checksum += (code_comment[i] + 64) * (i + 1);                }            }            checksum = checksum % 103;            if (checksum < 95)            {                checksum += 32;            }            else            {                checksum += 100;            }            //result = Convert.ToChar(204) + checksum.ToString() +            //    Convert.ToChar(checksum) + Convert.ToChar(206);            result = Convert.ToChar(204) + code_comment +               Convert.ToChar(checksum) + Convert.ToChar(206);            return result;        }

  自定義打印類如下:

  1  /// <summary>  2     /// 條碼打印基礎(chǔ)類  3     /// </summary>  4    public class print_code  5     {  6   7         private IList<Stream> m_streams;  8         private int m_currentPageIndex;  9         DataTable dt = new DataTable(); 10         private string _errormessage = ""; 11         private string m_ReportName = string.Empty; 12         public bool PPrint(LocalReport report) 13         { 14             try 15             { 16                 Export(report); 17                 m_currentPageIndex = 0; 18                 if (!NBPrint()) 19                 { 20                     return false; 21                 } 22                 if (m_streams != null) 23                 { 24                     foreach (Stream stream in m_streams) 25                         stream.Close(); 26                     m_streams = null; 27                 } 28                 return true; 29             } 30             catch (Exception ex) 31             { 32                 _errormessage = "在打印過程中出現(xiàn)異常!"; 33                 return false; 34             } 35  36         } 37  38         public bool NBPrint() 39         { 40             if (m_streams == null || m_streams.Count == 0) 41             { 42                 _errormessage = "在打印過程中出現(xiàn)異常!"; 43                 return false; 44             } 45             PrintDocument printDoc = new PrintDocument(); 46             //printDoc.PrinterSettings. 47             printDoc.DocumentName = "×××××公司報表打印"; 48             // 49            50             const string printerName = @"//127.0.0.1/ZDesigner GT800 (EPL) (副本 3)"; 51            // MainForm.code_print_name = "http:////127.0.0.1//ZDesigner GT800 (EPL) (副本 6)"; 52             if (MainForm.code_print_name != "") 53             { 54                 printDoc.PrinterSettings.PrinterName = MainForm.code_print_name;//printerName;//MainForm.code_print_name; 55             } 56             //printDoc.pri 57             if (!printDoc.PrinterSettings.IsValid) 58             { 59                 _errormessage = "請?zhí)砑幽J打印機!"; 60                 return false; 61             } 62  63             printDoc.PrintPage += new PrintPageEventHandler(PrintPage); 64             printDoc.Print(); 65             return true; 66         } 67         public void PrintPage(object sender, PrintPageEventArgs ev) 68         { 69             Metafile pageImage = new Metafile(m_streams[m_currentPageIndex]); 70             //ev.PageSettings.Landscape = false; 71             ev.Graphics.DrawImage(pageImage, ev.PageBounds); 72             m_currentPageIndex++; 73             ev.HasMorePages = (m_currentPageIndex < m_streams.Count); 74         } 75         public void Export(LocalReport report) 76         { 77              78             string deviceInfo = 79                    "<DeviceInfo>" + 80             "  <OutputFormat>EMF</OutputFormat>" + 81             "  <PageWidth>10.0cm</PageWidth>" + 82             "  <PageHeight>5.0cm</PageHeight>" + 83             "  <MarginTop>0.0cm</MarginTop>" + 84             "  <MarginLeft>0.0cm</MarginLeft>" + 85             "  <MarginRight>0.0cm</MarginRight>" + 86             "  <MarginBottom>0.0cm</MarginBottom>" + 87             "</DeviceInfo>"; 88              89             Warning[] warnings; 90             m_streams = new List<Stream>(); 91             report.Render("Image", deviceInfo, CreateStream, out warnings); 92             //report.Render("Excel", deviceInfo, CreateStream, out warnings); 93             foreach (Stream stream in m_streams) 94             { 95                 stream.Position = 0; 96             } 97         } 98  99         private Stream CreateStream(string name, string fileNameExtension,100       Encoding encoding, string mimeType, bool willSeek)101         {102             Stream stream = new FileStream(name + "." + fileNameExtension,103          FileMode.Create);104             try105             {106               107                 m_streams.Add(stream);108               109             }110             catch (Exception)111             {112                 113               114             }115             return stream;116         }117 118         public void print_report(DataTable dt, string report_paths, string[] Parameter)119         {120             LocalReport report = new LocalReport();121             report.ReportEmbeddedResource = report_paths;122             if (Parameter != null)123             {124                 ReportParameter[] Paramet = new ReportParameter[Parameter.Length / 2];125                 for (int i = 0; i < Parameter.Length / 2; i++)126                 {127                     Paramet[i] = new ReportParameter(Parameter[i * 2], Parameter[i * 2 + 1]);128                 }129                 if (Paramet.Length == 1)130                     report.SetParameters(new ReportParameter[] { Paramet[0] });131                 else if (Paramet.Length == 2)132                     report.SetParameters(new ReportParameter[] { Paramet[0], Paramet[1] });133                 else if (Paramet.Length == 3)134                     report.SetParameters(new ReportParameter[] { Paramet[0], Paramet[1], Paramet[2] });135                 else if (Paramet.Length == 4)136                     report.SetParameters(new ReportParameter[] { Paramet[0], Paramet[1], Paramet[2], Paramet[3] });137                 else if (Paramet.Length == 5)138                     report.SetParameters(new ReportParameter[] { Paramet[0], Paramet[1], Paramet[2], Paramet[3], Paramet[4] });139                 else if (Paramet.Length == 6)140                     report.SetParameters(new ReportParameter[] { Paramet[0], Paramet[1], Paramet[2], Paramet[3], Paramet[4], Paramet[5] });141                 else if (Paramet.Length == 7)142                     report.SetParameters(new ReportParameter[] { Paramet[0], Paramet[1], Paramet[2], Paramet[3], Paramet[4], Paramet[5], Paramet[6] });143 144                 else if (Paramet.Length == 8)145                     report.SetParameters(new ReportParameter[] { Paramet[0], Paramet[1], Paramet[2], Paramet[3], Paramet[4], Paramet[5], Paramet[6], Paramet[7] });146                 else if (Paramet.Length == 9)147                     report.SetParameters(new ReportParameter[] { Paramet[0], Paramet[1], Paramet[2], Paramet[3], Paramet[4], Paramet[5], Paramet[6], Paramet[7], Paramet[8] });148                 else if (Paramet.Length == 33)149                     report.SetParameters(new ReportParameter[] { Paramet[0],Paramet[1],Paramet[2],Paramet[3],Paramet[4],Paramet[5], 150                                                                             Paramet[6],Paramet[7],Paramet[8],Paramet[9],Paramet[10],151                                                                             Paramet[11],Paramet[12],Paramet[13],Paramet[14],Paramet[15],152                                                                             Paramet[16],Paramet[17],Paramet[18],Paramet[19],Paramet[20],153                                                                             Paramet[21],Paramet[22],Paramet[23],Paramet[24],Paramet[25],154                                                                             Paramet[26],Paramet[27],Paramet[28],Paramet[29],Paramet[30],Paramet[31],//Paramet[32],155                                                                             Paramet[32]});156                 //else if (Paramet.Length == 13)157                 //    report.SetParameters(new ReportParameter[] { Paramet[0],Paramet[1],Paramet[2],Paramet[3],Paramet[4],Paramet[5], 158                 //                                                            Paramet[6],Paramet[7],Paramet[8],Paramet[9],Paramet[10],159                 //                                                            Paramet[11],Paramet[12]});160 161                 else if (Paramet.Length == 10)162                     report.SetParameters(new ReportParameter[] { Paramet[0],Paramet[1],Paramet[2],Paramet[3],Paramet[4],Paramet[5], 163                                                                             Paramet[6],Paramet[7],Paramet[8],Paramet[9]});164 165             }166             report.DataSources.Clear();167             report.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("DataSet1", dt));168             PPrint(report);169         }170 171         public void print_reportbycheck(DataTable dt, string report_paths)172         {173             LocalReport report = new LocalReport();174             report.ReportEmbeddedResource = report_paths;           175             report.DataSources.Clear();176             report.DataSources.Add(new Microsoft.Reporting.WinForms.ReportDataSource("SourceAppReport", dt));177             PPrint(report);178         }179 180     }
View Code

 

  

 


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 茌平县| 禄丰县| 右玉县| 泰来县| 延川县| 蓬安县| 淄博市| 北川| 临沭县| 恭城| 温州市| 长乐市| 青州市| 文登市| 营山县| 衡山县| 诏安县| 会同县| 屏南县| 丹巴县| 岳普湖县| 巴彦县| 房产| 西乌珠穆沁旗| 黑山县| 余干县| 高邑县| 阳朔县| 赞皇县| 仪征市| 大埔县| 龙游县| 景德镇市| 东丰县| 阜宁县| 扎赉特旗| 和林格尔县| 津南区| 南京市| 稷山县| 宜丰县|