?? trialbalance.cs
字號(hào):
using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Data.SqlClient;
namespace 財(cái)務(wù)管理系統(tǒng)
{
/// <summary>
/// TrialBalance 的摘要說(shuō)明。
/// </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>
/// 必需的設(shè)計(jì)器變量。
/// </summary>
private System.ComponentModel.Container components = null;
public TrialBalance(bool isNew)//修改構(gòu)造函數(shù),以便在新建帳簿和試算平衡時(shí)分別使用
{
//
// Windows 窗體設(shè)計(jì)器支持所必需的
//
InitializeComponent();
//
// TODO: 在 InitializeComponent 調(diào)用后添加任何構(gòu)造函數(shù)代碼
//
if(isNew==true)
{
sqlStr="select 科目代碼, 科目名稱,(case when 余額方向='借方' then 期初余額 else 0 end - 累計(jì)借方)"
+" as 期初借方,(case when 余額方向='貸方' then 期初余額 else 0 end - 累計(jì)貸方) as 期初貸方,"
+"累計(jì)借方 as 本期發(fā)生借方,累計(jì)貸方 as 本期發(fā)生貸方, case when 余額方向='借方' then 期初余額 "
+"else 0 end as 期末借方,case when 余額方向='貸方' then 期初余額 else 0 end as 期末貸方 "
+"from 帳簿初始化表 where 累計(jì)借方<>0 or 累計(jì)貸方<>0 or 期初余額<>0";
}
else
{
sqlStr="select a.科目代碼, b.科目名稱,(case when a.余額方向='借方' then 期初余額 else 0 end )"
+" as 期初借方,(case when a.余額方向='貸方' then 期初余額 else 0 end) as 期初貸方,"
+" 本期借方合計(jì) as 本期發(fā)生借方, 本期貸方合計(jì) as 本期發(fā)生貸方,"
+"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 (本期借方合計(jì)<> 0"
+" or 本期貸方合計(jì)<>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 窗體設(shè)計(jì)器生成的代碼
/// <summary>
/// 設(shè)計(jì)器支持所需的方法 - 不要使用代碼編輯器修改
/// 此方法的內(nèi)容。
/// </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 = "試算平衡結(jié)果";
//
// 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
//-------------創(chuàng)建窗體時(shí)顯示數(shù)據(jù)-----------
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);
}
//----------------統(tǒng)計(jì)數(shù)據(jù),判斷是否平衡--------------------
private void sumTable(DataTable tbl)
{
decimal iniDebit=0;//期初借方
decimal iniLoan=0;//期初貸方
decimal thisDebit=0;//本期發(fā)生借方
decimal thisLoan=0;//本期發(fā)生貸方
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["本期發(fā)生借方"]);
thisLoan+=Convert.ToDecimal(aRow["本期發(fā)生貸方"]);
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("本期發(fā)生借方",typeof(decimal));
sumTable.Columns.Add("本期發(fā)生貸方",typeof(decimal));
sumTable.Columns.Add("期末借方",typeof(decimal));
sumTable.Columns.Add("期末貸方",typeof(decimal));
this.dataGrid2.DataSource = sumTable;
sumTable.Rows.Add(sumTable.NewRow()); //向表中添加一行
//設(shè)置表格格式
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"; //設(shè)置為數(shù)字格式顯示
ts.GridColumnStyles.Add(aColumnTextColumn);
}
dataGrid2.TableStyles.Add(ts);
//將結(jié)果顯示在表格中
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=="不平衡")//如果試算結(jié)果不平衡,則用紅色來(lái)提醒用戶
{
groupBox1.Text="試算結(jié)果不平衡!";
groupBox1.BackColor=Color.Red;
}
else
{
groupBox1.Text="試算結(jié)果平衡";
}
}
}
}
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -