机房重构结帐部分涉及到购卡,退卡,充值表的查询,以及汇总和结帐。下面就说一下购卡,退卡以及充值和汇老是怎么样用DataGridView来实现的。此次的结帐页面只走了两次七层结构,其他均是绑定数据源来实现的。sql
获取操做员用户名用的是comboBox控件,本次直接采用窗体加载显示。ide
直接查询级别为操做员的用户,而后循环加载到comboBox控件中,而后走七层查询User表。工具
Private Sub frmAdadcount_Load(sender As Object, e As EventArgs) Handles MyBase.Load Dim facade As New Facade.SelectOpFacade Dim table As New DataTable Dim user As New Entity.Entity Dim i As Integer user.Level = "操做员" table = facade.selectOpfacade(user) For i = 1 To table.Rows.Count cmdUserID.Items.Add(Convert.ToString(table.Rows(i - 1).Item(0))) Next FillByToolStrip1.Hide() '隐藏工具栏 '清空DataGridView表中数据() While (DataGridView1.RowCount > 0) DataGridView1.Rows.Remove(DataGridView1.Rows(0)) End While End Sub
DataGridView绑定数据源:http://blog.csdn.net/tgbyn/article/details/74858291spa
Private Sub cmdUserID_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmdUserID.SelectedIndexChanged Dim facade As New Facade.SelectOpFacade Dim table As New DataTable Dim user As New Entity.Entity Dim RechargeMoney As Integer Dim CancelMoney As Integer Dim TotalMoney As Integer UserIDToolStripTextBox.Text = cmdUserID.Text '传入的操做员 Try '绑定数据源,查询各个表数据 Me.Y_Card_InfoTableAdapter.Fill(Me.Register.Y_Card_Info, UserIDToolStripTextBox.Text) '注册表 Me.Y_ReCharge_InfoTableAdapter.Fill(Me.Recharge.Y_ReCharge_Info, UserIDToolStripTextBox.Text) '充值表 Me.Y_CancelCard_InfoTableAdapter.Fill(Me.CancelCard.Y_CancelCard_Info, UserIDToolStripTextBox.Text) '退卡表 txtRegister.Text = DataGridView1.RowCount '获取注册卡张数 txtCancelCard.Text = DataGridView3.RowCount '获取退卡张数 txtTotal.Text = txtRegister.Text - txtCancelCard.Text '总售卡张数 '经过查询DataGridView每一条充值金额,获取总充值金额 For i = 0 To DataGridView2.RowCount - 1 RechargeMoney = RechargeMoney + DataGridView2.Rows(i).Cells(1).Value '计算充值金额 Next '经过查询DataGridView每一条退卡金额,获取总退卡金额 For i = 0 To DataGridView3.RowCount - 1 CancelMoney = CancelMoney + DataGridView3.Rows(i).Cells(1).Value '计算退卡金额 Next TotalMoney = RechargeMoney - CancelMoney '应收金额 txtRechargeCash.Text = RechargeMoney '充值金额 txtCancelCash.Text = CancelMoney '退卡金额 txtActualCash.Text = TotalMoney '应收金额 Catch ex As System.Exception System.Windows.Forms.MessageBox.Show(ex.Message) End Try End Sub
将汇总页面得到的充值金额,退卡金额,应收金额等,更新进结帐表;同时将注册表,退卡表,充值表状态更改成已结帐。.net
'结帐 Private Sub btnAcount_Click(sender As Object, e As EventArgs) Handles btnAcount.Click Dim adcount As New Entity.EntityAdCount Dim flag As Integer Dim facade As New Facade.AdcountFacade adcount.RechCash = txtRechargeCash.Text adcount.CancelCash = txtCancelCash.Text adcount.CheckCash = txtActualCash.Text adcount.Checkdate = Format(Now, "yyyy-MM-dd HH:mm:ss") adcount.UserID = cmdUserID.Text flag = facade.adcountbFacade(adcount) If flag > 0 Then MsgBox("结帐成功!") End If End Sub存储过程
ALTER PROCEDURE [dbo].[proc_Account] @UserID varchar(11), @CheckCash numeric(10, 2), @RechCash numeric(10, 2), @CancelCash numeric(10, 2), @Checkdate datetime as declare @Is varchar(20) BEGIN set @Is = '未结帐' update Y_ReCharge_Info set IsCheck='已结帐' where UserID=@UserID and IsCheck=@Is update Y_CancelCard_Info set IsCheck='已结帐' where UserID=@UserID and IsCheck=@Is update Y_Card_Info set IsCheck='已结帐' where UserID=@UserID and IsCheck=@Is insert into Y_Check_Info(UserID,CheckCash,RechCash,CancelCash,Checkdate)values(@UserID,@CheckCash,@RechCash,@CancelCash,@Checkdate) ---exec('select * from Bill_Info') END