TrialBalance.cs
资源名称:VCSDB.rar [点击查看]
上传用户:hjieqiu
上传日期:2013-05-11
资源大小:16494k
文件大小:8k
源码类别:
企业管理
开发平台:
C#
- using System;
- using System.Drawing;
- using System.Collections;
- using System.ComponentModel;
- using System.Windows.Forms;
- using System.Data;
- using System.Data.SqlClient;
- namespace 财务管理系统
- {
- /// <summary>
- /// TrialBalance 的摘要说明。
- /// </summary>
- public class TrialBalance : System.Windows.Forms.Form
- {
- private string sqlStr;
- private System.Windows.Forms.DataGrid dataGrid1;
- private System.Windows.Forms.GroupBox groupBox1;
- private System.Windows.Forms.DataGrid dataGrid2;
- /// <summary>
- /// 必需的设计器变量。
- /// </summary>
- private System.ComponentModel.Container components = null;
- public TrialBalance(bool isNew)//修改构造函数,以便在新建帐簿和试算平衡时分别使用
- {
- //
- // Windows 窗体设计器支持所必需的
- //
- InitializeComponent();
- //
- // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
- //
- if(isNew==true)
- {
- sqlStr="select 科目代码, 科目名称,(case when 余额方向='借方' then 期初余额 else 0 end - 累计借方)"
- +" as 期初借方,(case when 余额方向='贷方' then 期初余额 else 0 end - 累计贷方) as 期初贷方,"
- +"累计借方 as 本期发生借方,累计贷方 as 本期发生贷方, case when 余额方向='借方' then 期初余额 "
- +"else 0 end as 期末借方,case when 余额方向='贷方' then 期初余额 else 0 end as 期末贷方 "
- +"from 帐簿初始化表 where 累计借方<>0 or 累计贷方<>0 or 期初余额<>0";
- }
- else
- {
- sqlStr="select a.科目代码, b.科目名称,(case when a.余额方向='借方' then 期初余额 else 0 end )"
- +" as 期初借方,(case when a.余额方向='贷方' then 期初余额 else 0 end) as 期初贷方,"
- +" 本期借方合计 as 本期发生借方, 本期贷方合计 as 本期发生贷方,"
- +"case when a.余额方向='借方' then 余额 else 0 end as 期末借方,"
- +"case when a.余额方向='贷方' then 余额 else 0 end as 期末贷方 from 本期汇总账簿 as a,"
- +"科目表 as b where a.科目代码 = b.科目代码 and (本期借方合计<> 0"
- +" or 本期贷方合计<>0 or 期初余额<>0 or 余额<>0)";
- }
- }
- /// <summary>
- /// 清理所有正在使用的资源。
- /// </summary>
- protected override void Dispose( bool disposing )
- {
- if( disposing )
- {
- if(components != null)
- {
- components.Dispose();
- }
- }
- base.Dispose( disposing );
- }
- #region Windows 窗体设计器生成的代码
- /// <summary>
- /// 设计器支持所需的方法 - 不要使用代码编辑器修改
- /// 此方法的内容。
- /// </summary>
- private void InitializeComponent()
- {
- this.dataGrid1 = new System.Windows.Forms.DataGrid();
- this.groupBox1 = new System.Windows.Forms.GroupBox();
- this.dataGrid2 = new System.Windows.Forms.DataGrid();
- ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).BeginInit();
- this.groupBox1.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.dataGrid2)).BeginInit();
- this.SuspendLayout();
- //
- // dataGrid1
- //
- this.dataGrid1.CaptionVisible = false;
- this.dataGrid1.DataMember = "";
- this.dataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText;
- this.dataGrid1.Location = new System.Drawing.Point(0, 0);
- this.dataGrid1.Name = "dataGrid1";
- this.dataGrid1.ReadOnly = true;
- this.dataGrid1.Size = new System.Drawing.Size(640, 384);
- this.dataGrid1.TabIndex = 0;
- //
- // groupBox1
- //
- this.groupBox1.BackColor = System.Drawing.SystemColors.Control;
- this.groupBox1.Controls.Add(this.dataGrid2);
- this.groupBox1.Location = new System.Drawing.Point(0, 384);
- this.groupBox1.Name = "groupBox1";
- this.groupBox1.Size = new System.Drawing.Size(640, 88);
- this.groupBox1.TabIndex = 1;
- this.groupBox1.TabStop = false;
- this.groupBox1.Text = "试算平衡结果";
- //
- // dataGrid2
- //
- this.dataGrid2.CaptionVisible = false;
- this.dataGrid2.DataMember = "";
- this.dataGrid2.ForeColor = System.Drawing.Color.Red;
- this.dataGrid2.HeaderBackColor = System.Drawing.SystemColors.Desktop;
- this.dataGrid2.HeaderForeColor = System.Drawing.SystemColors.ControlText;
- this.dataGrid2.Location = new System.Drawing.Point(8, 24);
- this.dataGrid2.Name = "dataGrid2";
- this.dataGrid2.ReadOnly = true;
- this.dataGrid2.SelectionForeColor = System.Drawing.SystemColors.Info;
- this.dataGrid2.Size = new System.Drawing.Size(624, 56);
- this.dataGrid2.TabIndex = 2;
- //
- // TrialBalance
- //
- this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
- this.ClientSize = new System.Drawing.Size(640, 477);
- this.Controls.Add(this.groupBox1);
- this.Controls.Add(this.dataGrid1);
- this.Name = "TrialBalance";
- this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
- this.Text = "【试算平衡表】";
- this.Load += new System.EventHandler(this.TrialBalance_Load);
- ((System.ComponentModel.ISupportInitialize)(this.dataGrid1)).EndInit();
- this.groupBox1.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.dataGrid2)).EndInit();
- this.ResumeLayout(false);
- }
- #endregion
- //-------------创建窗体时显示数据-----------
- private void TrialBalance_Load(object sender, System.EventArgs e)
- {
- string strConn = "workstation id=localhost;Integrated Security=SSPI;database=caiwubook";
- SqlConnection cn=new SqlConnection(strConn);
- cn.Open();
- SqlDataAdapter da=new SqlDataAdapter(sqlStr,cn);
- DataTable newTable=new DataTable();
- da.Fill(newTable);
- dataGrid1.DataSource=newTable;
- this.sumTable(newTable);
- }
- //----------------统计数据,判断是否平衡--------------------
- private void sumTable(DataTable tbl)
- {
- decimal iniDebit=0;//期初借方
- decimal iniLoan=0;//期初贷方
- decimal thisDebit=0;//本期发生借方
- decimal thisLoan=0;//本期发生贷方
- decimal finDebit=0;//期末借方
- decimal finLoan=0;//期末贷方
- string isBalance="平衡";
- if(tbl.Rows.Count>0)
- {
- foreach(DataRow aRow in tbl.Rows)
- {
- iniDebit+=Convert.ToDecimal(aRow["期初借方"]);
- iniLoan+=Convert.ToDecimal(aRow["期初贷方"]);
- thisDebit+=Convert.ToDecimal(aRow["本期发生借方"]);
- thisLoan+=Convert.ToDecimal(aRow["本期发生贷方"]);
- finDebit+=Convert.ToDecimal(aRow["期末借方"]);
- finLoan+=Convert.ToDecimal(aRow["期末贷方"]);
- }
- if(iniDebit!=iniLoan||thisDebit!=thisLoan||finDebit!=finLoan)
- isBalance="不平衡";
- }
- DataTable sumTable = new DataTable();
- sumTable.Columns.Add("是否平衡",typeof(string));
- sumTable.Columns.Add("期初借方",typeof(decimal));
- sumTable.Columns.Add("期初贷方",typeof(decimal));
- sumTable.Columns.Add("本期发生借方",typeof(decimal));
- sumTable.Columns.Add("本期发生贷方",typeof(decimal));
- sumTable.Columns.Add("期末借方",typeof(decimal));
- sumTable.Columns.Add("期末贷方",typeof(decimal));
- this.dataGrid2.DataSource = sumTable;
- sumTable.Rows.Add(sumTable.NewRow()); //向表中添加一行
- //设置表格格式
- DataGridTableStyle ts = new DataGridTableStyle();
- DataGridTextBoxColumn aColumnTextColumn;
- ts.AllowSorting = false;
- ts.MappingName = sumTable.TableName;
- int numCols = sumTable.Columns.Count;
- for (int i = 0;i< numCols;i++)
- {
- aColumnTextColumn = new DataGridTextBoxColumn();
- aColumnTextColumn.MappingName = sumTable.Columns[i].ColumnName;
- aColumnTextColumn.HeaderText = sumTable.Columns[i].ColumnName;
- aColumnTextColumn.NullText = "";
- aColumnTextColumn.Format = "N"; //设置为数字格式显示
- ts.GridColumnStyles.Add(aColumnTextColumn);
- }
- dataGrid2.TableStyles.Add(ts);
- //将结果显示在表格中
- dataGrid2[0,0]=isBalance;
- dataGrid2[0,1]=iniDebit.ToString();
- dataGrid2[0,2]=iniLoan.ToString();
- dataGrid2[0,3]=thisDebit.ToString();
- dataGrid2[0,4]=thisLoan.ToString();
- dataGrid2[0,5]=finDebit.ToString();
- dataGrid2[0,6]=finLoan.ToString();
- if(isBalance=="不平衡")//如果试算结果不平衡,则用红色来提醒用户
- {
- groupBox1.Text="试算结果不平衡!";
- groupBox1.BackColor=Color.Red;
- }
- else
- {
- groupBox1.Text="试算结果平衡";
- }
- }
- }
- }