亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

c#條碼打印—電子監管碼打印

2019-11-14 16:17:35
字體:
來源:轉載
供稿:網友

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

  如何打印中國藥品電子監管碼的條碼?看起來很容易,實際上生成藥品監管碼有一定的命名規則。在這里就不說了,自己上網看一下就明白了。以后大家買藥前也可以去http://www1.drugadmin.com/ 中國藥品電子監管平臺,查看一下自己買的是否真假??梢栽谙到y 上追朔藥品流向情況【包括、生產廠商是誰,賣給誰了,誰又批發給誰了,該藥品通過合不合格,質檢機構是。。?!?/strong>我還是附上藥品監管碼組成的一些常識,給偷懶的自己一個交代。

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

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

    藥品名稱:復方苦參注射液;

    申請單號:20090813-1;

    碼開始序列號:8200008400050520;

    文件序號:000

    包裝規格:盒5支

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

    2. 各級外包裝的產品名稱定義規則為,外包裝藥品通用名=最小包裝藥品通用名+—+該包裝包括的最小包裝數量+最小包裝單位。

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

 

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

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

    

           

                

 

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

第三步:調用自定義類,打印。

打印調用代碼如下:

 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]["業務員編號"].ToString() + "/" + dt.Rows[0]["日期"].ToString());            Parameter[2] = "條碼內容";            Parameter[3] = dt.Rows[0]["業務員編號"].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     /// 條碼打印基礎類  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 = "在打印過程中出現異常!"; 33                 return false; 34             } 35  36         } 37  38         public bool NBPrint() 39         { 40             if (m_streams == null || m_streams.Count == 0) 41             { 42                 _errormessage = "在打印過程中出現異常!"; 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 = "請添加默認打印機!"; 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

 

  

 


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
91av在线免费观看| 97视频在线观看成人| 欧美成人精品在线| 亚洲va男人天堂| 中文字幕精品在线视频| 国产精品视频久久久| 亚洲欧洲在线视频| 国产精品免费久久久| 最近2019免费中文字幕视频三| 欧美男插女视频| 国产精品夜间视频香蕉| 精品国产区一区二区三区在线观看| 中文日韩在线观看| 亚洲色图美腿丝袜| 亚洲奶大毛多的老太婆| 欧美性猛交xxxx黑人猛交| 国产99久久精品一区二区 夜夜躁日日躁| 亚洲国模精品一区| 国产在线精品播放| 久久久久久午夜| 成人国产精品久久久| 精品亚洲国产视频| 国产精品久久久久久久久| 亚洲精品小视频在线观看| 国产成人鲁鲁免费视频a| 国产精品视频26uuu| 成人av.网址在线网站| 日韩有码片在线观看| 欧美最猛黑人xxxx黑人猛叫黄| 在线中文字幕日韩| 亚洲男人天堂九九视频| 7777精品视频| 97超视频免费观看| 中文字幕精品www乱入免费视频| 亚洲精品乱码久久久久久按摩观| 欧美一二三视频| 欧美一级大片在线免费观看| 精品一区电影国产| 亚洲人成绝费网站色www| 亚洲a中文字幕| 国产亚洲精品久久久久久| 亚洲一区二区三区久久| 欧美性20hd另类| 琪琪第一精品导航| 欧美第一页在线| 91亚洲精华国产精华| 操人视频在线观看欧美| 黑人狂躁日本妞一区二区三区| 国产精品免费一区豆花| 欧美黄色小视频| 国产91精品高潮白浆喷水| 亚洲男人天堂网站| 久久久噜噜噜久久中文字免| 国产成人一区二| 九九久久精品一区| 日韩欧美在线视频日韩欧美在线视频| 久久久精品在线观看| 97超碰色婷婷| 国产欧美一区二区三区四区| 国模gogo一区二区大胆私拍| 亚洲激情免费观看| 国产精品视频男人的天堂| 久久精品人人爽| 91精品国产91久久久久久最新| 这里只有视频精品| 国产美女精品视频免费观看| 亚洲已满18点击进入在线看片| 亚洲国产日韩欧美在线图片| 一区二区三区高清国产| 日韩经典第一页| 久久精品成人欧美大片| 日韩电影在线观看永久视频免费网站| 伊人伊成久久人综合网站| 亚洲女同性videos| 欧美亚洲激情视频| 欧美一级片在线播放| 欧美黑人xxx| 日韩av快播网址| 国产精品精品久久久| xxx一区二区| 国产精品一区av| 国产精品成熟老女人| 日韩电影大片中文字幕| 成人黄色片在线| 亚洲自拍av在线| 久久视频免费在线播放| 在线亚洲国产精品网| 日韩亚洲第一页| 亚洲性69xxxbbb| 在线观看91久久久久久| 国产丝袜精品第一页| 欧美激情综合色| 91精品视频在线免费观看| 97在线视频观看| 久久精品国产2020观看福利| 日韩av中文字幕在线免费观看| 亚洲国产精品网站| 国产盗摄xxxx视频xxx69| 久久精品视频中文字幕| 亚洲国产精品女人久久久| 亚洲天堂第一页| 亚洲成av人影院在线观看| 欧美多人乱p欧美4p久久| 久久免费在线观看| 全色精品综合影院| 日韩av免费在线| 久久久久久国产免费| 97在线日本国产| 91色中文字幕| 欧美一区二区大胆人体摄影专业网站| 久久精品国产一区二区电影| 免费91麻豆精品国产自产在线观看| 久久免费视频在线观看| 亚洲女人初尝黑人巨大| 欧美在线欧美在线| 亚洲精品欧美一区二区三区| 中文字幕欧美视频在线| 97视频在线观看成人| 亚洲激情免费观看| 九九久久久久99精品| 成人有码在线视频| 亚洲欧美另类国产| 久久国产精品久久久| 成人黄色影片在线| 国产成+人+综合+亚洲欧美丁香花| 91精品国产色综合久久不卡98口| 成人乱人伦精品视频在线观看| 国产精品成人久久久久| 中文字幕在线成人| 久久露脸国产精品| 国产成人高清激情视频在线观看| 欧美视频不卡中文| 中文字幕精品av| 俺去了亚洲欧美日韩| 久久天天躁狠狠躁老女人| 久久综合久中文字幕青草| 国产精品一区二区三区在线播放| 亚洲国产成人一区| 国内偷自视频区视频综合| 日韩激情片免费| 国产精品一区二区女厕厕| 亚洲激情成人网| 精品久久久久久久久久久久久| 最近2019中文字幕大全第二页| 国产性猛交xxxx免费看久久| 日韩av色综合| 蜜月aⅴ免费一区二区三区| 欧美日韩在线影院| 欧美孕妇与黑人孕交| 国产综合视频在线观看| 国模叶桐国产精品一区| 日韩在线中文视频| 精品一区二区电影| 国产精品专区h在线观看| 欧美成人小视频| 国产女同一区二区| 国产午夜精品美女视频明星a级| 欧美成aaa人片免费看| 2023亚洲男人天堂| 亚洲高清一二三区| 欧美美女15p| 热久久这里只有| 免费成人高清视频| 日本成人在线视频网址|