2017-02-07 7 views
0

添付画像に示すように、ラベルのページを作成したいと思います。バーコードには、ラベル「PT01-0000011」と同じ記述があり、*が付加されているため、「* PT01-0000011 *」となります。C#Hangタグを作成する4x12

これまでのところ、2番目のラベルには「PT01-0000012」、3番目の「PT01-0000013」...「PT01-00000XX」が必要です。

enter image description here

私はデータベースのスクリプトの下に残し、およびC#が使用されます。

SQL

USE [Etiquetas] 
GO 


    SET ANSI_NULLS ON 
    GO 

    SET QUOTED_IDENTIFIER ON 
    GO 

    CREATE TABLE [dbo].[Etiquetas](
     [ID] [varchar](10) NULL, 
     [NInicialEtiqueta] [varchar](10) NULL, 
     [NFinalEtiqueta] [varchar](10) NULL, 
     [StringEtiqueta] [varchar](20) NULL 
    ) ON [PRIMARY] 

INSERT INTO [dbo].[Etiquetas] 
      ([ID] 
      ,[NInicialEtiqueta] 
      ,[NFinalEtiqueta] 
      ,[StringEtiqueta]) 
    VALUES 
      ('PT01' 
      ,'000001' 
      ,null 
      ,'PT01-000001') 

GO 

C#

namespace EtiquetasECM 
{ 
    public partial class Form2 : Form 
    { 
     public Form2(string CBarras, string label) 
     { 
      InitializeComponent(); 
      CodigoBarras.Text = CBarras; 
      label1.Text = label; 
      getValues(); 

     } 


     void pd_PrintPage(object sender, PrintPageEventArgs e) 
     { 
      Graphics g = e.Graphics; 
      // g.DrawRectangle(Pens.Black, 1, 1, 180, 95); 

      Font fBody1 = new Font("Free 3 of 9 Extended", 22, FontStyle.Regular); 
      Font fBody2 = new Font("Urania Czech", 12, FontStyle.Regular); 
      Font rs = new Font("Urania Czech", 5, FontStyle.Bold); 


      /* para imprimir um so objeto 
       g.DrawString(CodigoBarras.Text, fBody1, sb, 3, 15); 
       g.DrawString(label1.Text, fBody2, sb, 20, 40); 
      */ 


      SolidBrush sb = new SolidBrush(Color.Black); 

      int npaginas = Convert.ToInt32(textBox1.Text);   // numero de paginas a imprimir 
      int codigoBarrasPosicaox = 3; 
      int codigoBarrasPosicaoy = 28; 
      int labelCodigoBarrasPosicaox = 28; 
      int labelCodigoBarrasPosicaoy = 55; 
      int retanguloPosicaox = 1; 
      int retanguloPosicaoy = 22; 
      // float scale = Convert.ToInt32((5.2)); 
      // label2.Text = Convert.ToString(scale); 


      for (int i = 0; i < npaginas; i++) //Numero de paginas 
      { 
       for (int x = 0; x < 4; x++) 
       { //Numero de objetos em X 
        string myConnectionString = "Integrated Security=SSPI;Persist Security Info=False;User ID=COTESI/dafonso;Initial Catalog=Etiquetas;Data Source = SERVSQL;"; //you connectionstring goes here 

        SqlCommand cmd1 = new SqlCommand("SELECT NInicialEtiqueta FROM Etiquetas WHERE id ='" + label1.Text + "'", new SqlConnection(myConnectionString)); 
        // SqlCommand cmd = new SqlCommand("SELECT NInicialEtiqueta FROM Etiquetas WHERE id ='PT01'", new SqlConnection(myConnectionString)); 
        cmd1.Connection.Open(); 
        label2.Text = cmd1.ExecuteScalar().ToString(); // assign to your label 



        //primeira fila 
        g.DrawRectangle(Pens.Black, retanguloPosicaox, 22, 174, 90); 
        g.DrawString(CodigoBarras.Text, fBody1, sb, codigoBarrasPosicaox, codigoBarrasPosicaoy); 
        g.DrawString(label1.Text + "-" + label2.Text, fBody2, sb, labelCodigoBarrasPosicaox, labelCodigoBarrasPosicaoy); 
        // codigoBarrasPosicaox += codigoBarrasPosicaox; 
        codigoBarrasPosicaox += 206; 
        labelCodigoBarrasPosicaox += 206; 
        retanguloPosicaox += 206; 
        retanguloPosicaoy += 100; 
        cmd1.Connection.Close(); 

        for (int y = 0; y < 10; y++) //Numero de objetos em Y 
        { 
         SqlCommand cmd2 = new SqlCommand("SELECT NInicialEtiqueta FROM Etiquetas WHERE id ='" + label1.Text + "'", new SqlConnection(myConnectionString)); 
         // SqlCommand cmd = new SqlCommand("SELECT NInicialEtiqueta FROM Etiquetas WHERE id ='PT01'", new SqlConnection(myConnectionString)); 
         cmd2.Connection.Open(); 
         label2.Text = cmd2.ExecuteScalar().ToString(); // assign to your label 
         g.DrawRectangle(Pens.Black, 1, retanguloPosicaoy, 174, 90); 
         g.DrawString(CodigoBarras.Text, fBody1, sb, 3, codigoBarrasPosicaoy); 
         g.DrawString(label1.Text + "-" + label2.Text+1 , fBody2, sb, 28, labelCodigoBarrasPosicaoy); 

         //primeira coluna 
         g.DrawRectangle(Pens.Black, retanguloPosicaox, retanguloPosicaoy, 174, 90); 
         g.DrawString(CodigoBarras.Text, fBody1, sb, codigoBarrasPosicaox, codigoBarrasPosicaoy); 
         g.DrawString(label1.Text + "-" + label2.Text+1, fBody2, sb, labelCodigoBarrasPosicaox, labelCodigoBarrasPosicaoy); 

         //terceira coluna 
         g.DrawRectangle(Pens.Black, retanguloPosicaox + 206, retanguloPosicaoy, 174, 90); 
         g.DrawString(CodigoBarras.Text, fBody1, sb, codigoBarrasPosicaox +206, codigoBarrasPosicaoy); 
         g.DrawString(label1.Text + "-" + label2.Text+1, fBody2, sb, labelCodigoBarrasPosicaox +206, labelCodigoBarrasPosicaoy); 

         //quarta coluna 
         g.DrawRectangle(Pens.Black, retanguloPosicaox + retanguloPosicaox + 206, retanguloPosicaoy, 174, 90); 
         g.DrawString(CodigoBarras.Text, fBody1, sb, codigoBarrasPosicaox + 412, codigoBarrasPosicaoy); 
         g.DrawString(label1.Text + "-" + label2.Text+1, fBody2, sb, labelCodigoBarrasPosicaox + 412, labelCodigoBarrasPosicaoy); 

         label2.Text += 1; 
         retanguloPosicaoy += 100; 
         codigoBarrasPosicaoy += 100; 
         labelCodigoBarrasPosicaoy += 100; 

         cmd2.Connection.Close(); 
        } 

       } 

      } 

     } 


     private void Form2_Load(object sender, EventArgs e) 
     { 

     } 

     private void button1_Click(object sender, EventArgs e) 
     { 

      PrintDocument pd = new PrintDocument(); 
      PaperSize ps = new PaperSize("", 2100, 2970); 

      pd.PrintPage += new PrintPageEventHandler(pd_PrintPage); 

      pd.PrintController = new StandardPrintController(); 
      pd.DefaultPageSettings.Margins.Left = 0; 
      pd.DefaultPageSettings.Margins.Right = 0; 
      pd.DefaultPageSettings.Margins.Top = 0; 
      pd.DefaultPageSettings.Margins.Bottom = 0; 

      pd.DefaultPageSettings.PaperSize = ps; 
      pd.Print(); 

     } 


     private void getValues() 
     { 

      string myConnectionString = "Integrated Security=SSPI;Persist Security Info=False;User ID=COTESI/dafonso;Initial Catalog=Etiquetas;Data Source = SERVSQL;"; //you connectionstring goes here 

      SqlCommand cmd = new SqlCommand("SELECT NInicialEtiqueta FROM Etiquetas WHERE id ='" + label1.Text + "'", new SqlConnection(myConnectionString)); 
      // SqlCommand cmd = new SqlCommand("SELECT NInicialEtiqueta FROM Etiquetas WHERE id ='PT01'", new SqlConnection(myConnectionString)); 
      cmd.Connection.Open(); 
      label2.Text = cmd.ExecuteScalar().ToString(); // assign to your label 
      cmd.Connection.Close(); 


     } 

    } 
} 
+0

を使用することができますので、あなたがリードするヌルが必要になります推測だからあなたの質問は何ですか?具体的にする。 – Amy

+0

混乱しています。 \ *または数字を追加しますか?または両方? – stuartd

+0

両方を追加しますか?ラベルの番号。 – djva

答えて

0

あなたはint

のvarたcurrentLabelとしてあなたのラベルの一部を解析する必要があります= int.Parse(cmd1.ExecuteScalar()。ToString());

label2.Textの代わりに、必要なときに使用するよりも、stringという値があります。あなたは再び刺しに変換する必要があるとき に私はあなたが

currentLabel.ToString(「D7」)

関連する問題