首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 开源 FAQ 第二书店 博文视点 程序员
频道: 研发 数据库 中间件 信息化 视频 .NET Java 游戏 移动 服务: 人才 外包 培训
    图书品种:235680
       
热门搜索: ASP.NET Ajax Spring Hibernate Java

13.7  其 他 程 序

实例435 条形码扫描器销售商品

实例说明

文本框:  
图13.19  利用条形码扫描器销售商品

如今,许多超市都利用条形码销售商品。微机操作员利用扫描器在商品的条形码处进行扫描,商品的详细信息就会显示在屏幕中。本例实现了利用条形码销售商品的功能。效果如图13.19所示。

技术要点

当利用扫描器扫描条形码时,条形码数据会显示在当前获得焦点的窗口控件中。例如,如果当前编辑框获得焦点,那么条形码数据会显示在TextBox文本框中。然后会向TextBox文本框发送回车键按下时的消息。

在程序中只要触发TextBox文本框的KeyDown事件,判断当前按键是否是回车键,如果是,读取TextBox文本框中的条形码数据,并从数据表中根据条形码查询商品信息,将其显示在DataGridView列表中。

实现过程

(1)新建一个项目,命名为Ex13_18,默认窗体为Form1。

(2)在Form1窗体中,主要添加TextBox控件,用于接收条形码;添加一个DataGridView控件,用于显示扫描器扫描条形码的商品销售信息。

(3)主要程序代码。

        private void textBox1_KeyDown(object sender, KeyEventArgs e)

        {

            if (e.KeyValue == 13)

            {

                OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "price.mdb" + ";Persist Security Info=False");

                OleDbDataAdapter dap = new OleDbDataAdapter("select * from MerchandiseInfo where barcode='" + textBox1.Text + "'", con);

                DataSet ds = new DataSet();

                dap.Fill(ds);

                if (ds.Tables[0].Rows.Count == 0)

                {

                    MessageBox.Show("该商品不存在!", "系统提示", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    return;

                }

                for (int i = 0; i < dataGridView1.RowCount; i++)

                {

                    if (Convert.ToString(dataGridView1[0, i].Value) == "")

                    {

                        dataGridView1[0, i].Value = ds.Tables[0].Rows[0][0].ToString();

                        dataGridView1[1, i].Value = ds.Tables[0].Rows[0][1].ToString();

                        dataGridView1[2, i].Value = ds.Tables[0].Rows[0][2].ToString();

                        dataGridView1[3, i].Value = ds.Tables[0].Rows[0][3].ToString();

                        return;

                    }

                }

            }

        }

举一反三

根据本实例,读者可以开发以下程序。

*  超市条形码扫描系统。

*  公司工具条形码扫描系统。

实例436 利用神龙卡制作练歌房程序

实例说明

在开发酒店、宾馆的点歌系统时,使用神龙DVD解压卡可以方便地进行媒体控制。神龙DVD解压卡(以下简称神龙卡)是一款专门针对中国大陆市场而开发出来的DVD硬解压卡,神龙卡与好莱坞卡的基本功能相近,两卡比较具有以下几个区别。

l     神龙卡可播放中国大陆全区码DVD碟,好莱坞卡可播放全球1~6区码影碟,可无数次解区码。

l     神龙卡支持1~5M码流播放,好莱坞卡可支持1~15M的视频流播放。

l     神龙卡支持全屏播放,好莱坞卡支持全屏及窗口(即可缩放窗口)播放。

l     神龙卡支持Win 9x下工作环境,好莱坞卡可支持Win 9x及WinNT下工作环境。

本例利用神龙卡实现了音乐的控制功能。运行程序,结果如图13.20所示。

图13.20  利用神龙卡制作练歌房程序

技术要点

本程序主要通过一个第三方NNSREALmagicCtrl.ocx控件实现。在.NET下使用第三方控件,首先,需要进行Windows注册,注册命令为“REgsvr32 路径\NNSREALmagicCtrl.ocx”;其次,将注册成功的控件添加到Microsoft Visual Studio 2005开发环境中,实现步骤为:选择菜单“工具”/“选择工具箱”,弹出“选择工具箱”窗口,在该窗口中选择“COM组件”选项卡,在列表中选择注册的第三方控件,单击【确定】按钮即可,如图13.21所示。

图13.21  添加第三方控件

实现过程

(1)新建一个项目,命名为Ex13_19,默认窗体为Form1。

(2)在Form1窗体中,主要添加DataGridView控件,用于选择播放影音;添加其他控件及用途如图13.20所示。

(3)主要程序代码。

        private void button1_Click(object sender, EventArgs e)

        {

            if (strFileName == "")

            {

                MessageBox.Show("请在列表中选择播放文件!","系统提示");

                return;

            }

            axREALmagicCtrl1.Filename = strFileName;  //指定播放文件

            axREALmagicCtrl1.Play(); //播放

        }

        private void btnPause_Click(object sender, EventArgs e)

        {

            axREALmagicCtrl1.Pause(); //暂停播放

        }

        private void btnStop_Click(object sender, EventArgs e)

        {

            axREALmagicCtrl1.Stop();  //停止播放

        }

        private void btnSpeed_Click(object sender, EventArgs e)

        {

            axREALmagicCtrl1.CurrentFrame = axREALmagicCtrl1.CurrentFrame + 125; //快进

        }

        private void btnRecede_Click(object sender, EventArgs e)

        {

                axREALmagicCtrl1.CurrentFrame = axREALmagicCtrl1.CurrentFrame - 125; //快退

        }

        private void rdoLeftTrack_Click(object sender, EventArgs e)

        {

            axREALmagicCtrl1.AudioChannel = NNSREALmagicCtrl.TAudChannel.acLEFT; //左声道

        }

        private void rdoRightTrack_Click(object sender, EventArgs e)

        {

            axREALmagicCtrl1.AudioChannel = NNSREALmagicCtrl.TAudChannel.acRIGHT; //右声道

        }

        private void rdoStereo_Click(object sender, EventArgs e)

        {

            axREALmagicCtrl1.AudioChannel = NNSREALmagicCtrl.TAudChannel.acSTEREO; //立体声

        }

        private void tbVolume_Scroll(object sender, EventArgs e)

        {

            axREALmagicCtrl1.Volume = tbVolume.Value;   //音量

        }

        private void rdoTV_Click(object sender, EventArgs e)

        {

            axREALmagicCtrl1.DisplayDevice = NNSREALmagicCtrl.TDisDev.ddTV; //TV输出模式

        }

        private void rdoVGA_Click(object sender, EventArgs e)

        {

            axREALmagicCtrl1.DisplayDevice = NNSREALmagicCtrl.TDisDev.ddVGA; //VGA输出模式

        }

        private void Form1_Load(object sender, EventArgs e)

        {

            if (!axREALmagicCtrl1.OpenDriver())  //打开驱动

            {

                MessageBox.Show("打开驱动失败!!", "系统提示");

                this.groupBox1.Enabled = false;

                this.groupBox2.Enabled = false;

                this.groupBox3.Enabled = false;

                this.groupBox4.Enabled = false;

                return;

            }

            OleDbConnection con = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + "DataBase.mdb" + ";Persist Security Info=False");

            OleDbDataAdapter dap = new OleDbDataAdapter("select G_name as 影音名称,G_YC as 原唱,G_wjlx as 文件格式 from g_music_name", con);

            DataSet ds = new DataSet();

            dap.Fill(ds); //显示影音文件的相关属性

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

        }

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)

        {  //选择播放的影音

            strFileName = @"\vod\" + dataGridView1[0, e.RowIndex].Value.ToString() + "." + dataGridView1[2, e.RowIndex].Value.ToString();

        }

举一反三

根据本实例,读者可以开发以下程序。

*  练歌房卡拉OK系统。

*  单机卡拉OK系统。

查看所有评论(0)条】

最近评论



正在载入评论列表...
热点评论