MainForm.cs
上传用户:hjieqiu
上传日期:2013-05-11
资源大小:16494k
文件大小:14k
源码类别:

企业管理

开发平台:

C#

  1. using System;
  2. using System.Drawing;
  3. using System.Collections;
  4. using System.ComponentModel;
  5. using System.Windows.Forms;
  6. using System.Data;
  7. using System.Data.SqlClient;
  8. namespace 财务管理系统
  9. {
  10. /// <summary>
  11. /// Form1 的摘要说明。
  12. /// </summary>
  13. public class mainFrm : System.Windows.Forms.Form
  14. {
  15. private System.Windows.Forms.StatusBar statusBar1;
  16. private System.Windows.Forms.StatusBarPanel statusBarPanel1;
  17. private System.Windows.Forms.StatusBarPanel statusBarPanel2;
  18. private System.Windows.Forms.MainMenu mainMenu1;
  19. private System.Windows.Forms.MenuItem menuItem1;
  20. private System.Windows.Forms.MenuItem menuItem2;
  21. private System.Windows.Forms.MenuItem menuItem3;
  22. private System.Windows.Forms.MenuItem menuItem4;
  23. private System.Windows.Forms.MenuItem menuItem5;
  24. private System.Windows.Forms.MenuItem menuItem6;
  25. private System.Windows.Forms.MenuItem menuItem7;
  26. private System.Windows.Forms.MenuItem menuItem8;
  27. private System.Windows.Forms.MenuItem menuItem9;
  28. private System.Windows.Forms.MenuItem menuItem10;
  29. private System.Windows.Forms.MenuItem menuItem11;
  30. private System.Windows.Forms.MenuItem menuItem12;
  31. private System.Windows.Forms.MenuItem menuItem13;
  32. private System.Windows.Forms.MenuItem menuItem14;
  33. /// <summary>
  34. /// 必需的设计器变量。
  35. /// </summary>
  36. private System.ComponentModel.Container components = null;
  37. public mainFrm()
  38. {
  39. //
  40. // Windows 窗体设计器支持所必需的
  41. //
  42. InitializeComponent();
  43. //
  44. // TODO: 在 InitializeComponent 调用后添加任何构造函数代码
  45. //
  46. }
  47. /// <summary>
  48. /// 清理所有正在使用的资源。
  49. /// </summary>
  50. protected override void Dispose( bool disposing )
  51. {
  52. if( disposing )
  53. {
  54. if (components != null) 
  55. {
  56. components.Dispose();
  57. }
  58. }
  59. base.Dispose( disposing );
  60. }
  61. #region Windows 窗体设计器生成的代码
  62. /// <summary>
  63. /// 设计器支持所需的方法 - 不要使用代码编辑器修改
  64. /// 此方法的内容。
  65. /// </summary>
  66. private void InitializeComponent()
  67. {
  68. System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(mainFrm));
  69. this.statusBar1 = new System.Windows.Forms.StatusBar();
  70. this.statusBarPanel1 = new System.Windows.Forms.StatusBarPanel();
  71. this.statusBarPanel2 = new System.Windows.Forms.StatusBarPanel();
  72. this.mainMenu1 = new System.Windows.Forms.MainMenu();
  73. this.menuItem1 = new System.Windows.Forms.MenuItem();
  74. this.menuItem2 = new System.Windows.Forms.MenuItem();
  75. this.menuItem3 = new System.Windows.Forms.MenuItem();
  76. this.menuItem4 = new System.Windows.Forms.MenuItem();
  77. this.menuItem5 = new System.Windows.Forms.MenuItem();
  78. this.menuItem6 = new System.Windows.Forms.MenuItem();
  79. this.menuItem7 = new System.Windows.Forms.MenuItem();
  80. this.menuItem8 = new System.Windows.Forms.MenuItem();
  81. this.menuItem9 = new System.Windows.Forms.MenuItem();
  82. this.menuItem10 = new System.Windows.Forms.MenuItem();
  83. this.menuItem11 = new System.Windows.Forms.MenuItem();
  84. this.menuItem12 = new System.Windows.Forms.MenuItem();
  85. this.menuItem13 = new System.Windows.Forms.MenuItem();
  86. this.menuItem14 = new System.Windows.Forms.MenuItem();
  87. ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).BeginInit();
  88. ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel2)).BeginInit();
  89. this.SuspendLayout();
  90. // 
  91. // statusBar1
  92. // 
  93. this.statusBar1.Location = new System.Drawing.Point(0, 531);
  94. this.statusBar1.Name = "statusBar1";
  95. this.statusBar1.Panels.AddRange(new System.Windows.Forms.StatusBarPanel[] {
  96.   this.statusBarPanel1,
  97.   this.statusBarPanel2});
  98. this.statusBar1.ShowPanels = true;
  99. this.statusBar1.Size = new System.Drawing.Size(792, 22);
  100. this.statusBar1.TabIndex = 3;
  101. // 
  102. // statusBarPanel1
  103. // 
  104. this.statusBarPanel1.MinWidth = 200;
  105. this.statusBarPanel1.Text = " 数据库开发经典案例解析  清华大学出版社  用户登陆功能和权限管理功能参考进销存实例";
  106. this.statusBarPanel1.Width = 500;
  107. // 
  108. // statusBarPanel2
  109. // 
  110. this.statusBarPanel2.Width = 200;
  111. // 
  112. // mainMenu1
  113. // 
  114. this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  115.   this.menuItem1,
  116.   this.menuItem4,
  117.   this.menuItem7,
  118.   this.menuItem10,
  119.   this.menuItem14});
  120. // 
  121. // menuItem1
  122. // 
  123. this.menuItem1.Index = 0;
  124. this.menuItem1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  125.   this.menuItem2,
  126.   this.menuItem3});
  127. this.menuItem1.Text = "基础数据管理";
  128. // 
  129. // menuItem2
  130. // 
  131. this.menuItem2.Index = 0;
  132. this.menuItem2.Text = "会计科目设置";
  133. this.menuItem2.Click += new System.EventHandler(this.menuItem2_Click);
  134. // 
  135. // menuItem3
  136. // 
  137. this.menuItem3.Index = 1;
  138. this.menuItem3.Text = "帐户设置";
  139. this.menuItem3.Click += new System.EventHandler(this.menuItem3_Click);
  140. // 
  141. // menuItem4
  142. // 
  143. this.menuItem4.Index = 1;
  144. this.menuItem4.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  145.   this.menuItem5,
  146.   this.menuItem6});
  147. this.menuItem4.Text = "凭证管理";
  148. // 
  149. // menuItem5
  150. // 
  151. this.menuItem5.Index = 0;
  152. this.menuItem5.Text = "凭证输入";
  153. this.menuItem5.Click += new System.EventHandler(this.menuItem5_Click);
  154. // 
  155. // menuItem6
  156. // 
  157. this.menuItem6.Index = 1;
  158. this.menuItem6.Text = "凭证过帐";
  159. this.menuItem6.Click += new System.EventHandler(this.menuItem6_Click);
  160. // 
  161. // menuItem7
  162. // 
  163. this.menuItem7.Index = 2;
  164. this.menuItem7.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  165.   this.menuItem8,
  166.   this.menuItem9});
  167. this.menuItem7.Text = "帐簿管理";
  168. // 
  169. // menuItem8
  170. // 
  171. this.menuItem8.Index = 0;
  172. this.menuItem8.Text = "总分类帐";
  173. this.menuItem8.Click += new System.EventHandler(this.menuItem8_Click);
  174. // 
  175. // menuItem9
  176. // 
  177. this.menuItem9.Index = 1;
  178. this.menuItem9.Text = "明细帐";
  179. this.menuItem9.Click += new System.EventHandler(this.menuItem9_Click);
  180. // 
  181. // menuItem10
  182. // 
  183. this.menuItem10.Index = 3;
  184. this.menuItem10.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] {
  185.    this.menuItem11,
  186.    this.menuItem12,
  187.    this.menuItem13});
  188. this.menuItem10.Text = "结帐及报表";
  189. // 
  190. // menuItem11
  191. // 
  192. this.menuItem11.Index = 0;
  193. this.menuItem11.Text = "试算平衡表";
  194. this.menuItem11.Click += new System.EventHandler(this.menuItem11_Click);
  195. // 
  196. // menuItem12
  197. // 
  198. this.menuItem12.Index = 1;
  199. this.menuItem12.Text = "期末结帐";
  200. this.menuItem12.Click += new System.EventHandler(this.menuItem12_Click);
  201. // 
  202. // menuItem13
  203. // 
  204. this.menuItem13.Index = 2;
  205. this.menuItem13.Text = "资产负债表";
  206. this.menuItem13.Click += new System.EventHandler(this.menuItem13_Click);
  207. // 
  208. // menuItem14
  209. // 
  210. this.menuItem14.Index = 4;
  211. this.menuItem14.Text = "退出系统";
  212. this.menuItem14.Click += new System.EventHandler(this.menuItem14_Click);
  213. // 
  214. // mainFrm
  215. // 
  216. this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
  217. this.ClientSize = new System.Drawing.Size(792, 553);
  218. this.Controls.Add(this.statusBar1);
  219. this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));
  220. this.IsMdiContainer = true;
  221. this.Menu = this.mainMenu1;
  222. this.Name = "mainFrm";
  223. this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
  224. this.Text = "【财务管理系统】";
  225. ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel1)).EndInit();
  226. ((System.ComponentModel.ISupportInitialize)(this.statusBarPanel2)).EndInit();
  227. this.ResumeLayout(false);
  228. }
  229. #endregion
  230. /// <summary>
  231. /// 应用程序的主入口点。
  232. /// </summary>
  233. [STAThread]
  234. static void Main() 
  235. {
  236. Application.Run(new mainFrm());
  237. }
  238. //----------------------查询MDI子窗体是否存在-----------------------------
  239. private bool checkChildFrmExist(string childFrmName)
  240. {
  241. foreach(Form childFrm in this.MdiChildren)
  242. {
  243. if(childFrm.Name == childFrmName) //用子窗体的Name进行判断,如果存在则将他激活
  244. {
  245. if(childFrm.WindowState == FormWindowState.Minimized)
  246. childFrm.WindowState = FormWindowState.Normal;
  247. childFrm.Activate();
  248. return true;
  249. }
  250. }
  251. return false;
  252. }
  253. //-----------------显示科目设置窗体-----------------------
  254. private void menuItem2_Click(object sender, System.EventArgs e)
  255. {
  256. //通过窗体名称查询该窗体是否已经存在,如存在则显示,否则就新创建一个
  257. if (this.checkChildFrmExist("SubjectSetting") == true)
  258. {
  259. return;
  260. }
  261. SubjectSetting newFrm=new SubjectSetting();
  262. newFrm.MdiParent = this;
  263. newFrm.Show();
  264. }
  265. //------------------显示帐户设置窗体---------------
  266. private void menuItem3_Click(object sender, System.EventArgs e)
  267. {
  268. //通过窗体名称查询该窗体是否已经存在,如存在则显示,否则就新创建一个
  269. if (this.checkChildFrmExist("AccountSetting") == true)
  270. {
  271. return;
  272. }
  273. AccountSetting newFrm=new AccountSetting();
  274. newFrm.MdiParent = this;
  275. newFrm.Show();
  276. }
  277. //------------------显示凭证输入窗体---------------
  278. private void menuItem5_Click(object sender, System.EventArgs e)
  279. {
  280. //通过窗体名称查询该窗体是否已经存在,如存在则显示,否则就新创建一个
  281. if (this.checkChildFrmExist("WarrentInput") == true)
  282. {
  283. return;
  284. }
  285. WarrentInput newFrm=new WarrentInput();
  286. newFrm.MdiParent = this;
  287. newFrm.Show();
  288. }
  289. //--------------执行凭证过帐功能---------------
  290. private void menuItem6_Click(object sender, System.EventArgs e)
  291. {
  292. DialogResult result=MessageBox.Show("凭证过帐后即不可再修改,是否过帐","确认过帐",MessageBoxButtons.OKCancel,MessageBoxIcon.Warning);
  293. if(result==DialogResult.OK)
  294. {
  295. string strConn = "workstation id=localhost;Integrated Security=SSPI;database=caiwubook";
  296. SqlConnection cn=new SqlConnection(strConn);
  297. cn.Open();
  298. SqlCommand cmd=cn.CreateCommand();
  299. cmd.CommandText="select count(distinct 凭证编号) 凭证数,sum(借方) "
  300. +"借方金额,sum(贷方) 贷方金额 from 分录表";
  301. SqlDataReader dr=cmd.ExecuteReader();
  302. dr.Read();
  303. string warrentCount=dr.GetValue(0).ToString();//读入凭证数
  304. string debit=dr.GetValue(1).ToString();//读入借方金额
  305. string loan=dr.GetValue(2).ToString();//读入贷方金额
  306. string messageStr="过帐成功!n"+"过帐凭证总数为:"+warrentCount.Trim()+"n"
  307. +"借方金额合计:"+debit.Trim()+"n"+"贷方金额合计:"+loan.Trim()+"n";
  308. dr.Close();//准备显示的过帐信息
  309. try
  310. {
  311. cmd.CommandText="exec sf_凭证过帐";
  312. cmd.ExecuteNonQuery();
  313. MessageBox.Show(messageStr,"凭证过帐成功!",MessageBoxButtons.OK,MessageBoxIcon.Information);
  314. cmd.CommandText="delete from 分录表";//删除已经过帐的分录数据
  315. cmd.ExecuteNonQuery();
  316. cmd.CommandText="delete from 凭证表";//删除已经过帐的凭证数据
  317. cmd.ExecuteNonQuery();
  318. }
  319. catch(Exception express)
  320. {
  321. MessageBox.Show(express.ToString(),"凭证过帐失败",MessageBoxButtons.OK,MessageBoxIcon.Error);
  322. return;
  323. }
  324. }
  325. }
  326. //--------------执行总分类帐查询功能---------------
  327. private void menuItem8_Click(object sender, System.EventArgs e)
  328. {
  329. //通过窗体名称查询该窗体是否已经存在,如存在则显示,否则就新创建一个
  330. if (this.checkChildFrmExist("LedgerQuery") == true)
  331. {
  332. return;
  333. }
  334. LedgerQuery newFrm=new LedgerQuery();
  335. newFrm.MdiParent = this;
  336. newFrm.Show();
  337. }
  338. //--------------执行明细帐查询功能---------------
  339. private void menuItem9_Click(object sender, System.EventArgs e)
  340. {
  341. //通过窗体名称查询该窗体是否已经存在,如存在则显示,否则就新创建一个
  342. if (this.checkChildFrmExist("DetailQuery") == true)
  343. {
  344. return;
  345. }
  346. DetailQuery newFrm=new DetailQuery();
  347. newFrm.MdiParent = this;
  348. newFrm.Show();
  349. }
  350. //-------------显示使用试算平衡窗体---------------
  351. private void menuItem11_Click(object sender, System.EventArgs e)
  352. {
  353. //通过窗体名称查询该窗体是否已经存在,如存在则显示,否则就新创建一个
  354. if (this.checkChildFrmExist("TrialBalance") == true)
  355. {
  356. return;
  357. }
  358. TrialBalance newFrm=new TrialBalance(false);
  359. newFrm.Text+="正式使用";
  360. newFrm.MdiParent = this;
  361. newFrm.Show();
  362. }
  363. //------------调用储存过程,实现期末结帐--------------
  364. private void menuItem12_Click(object sender, System.EventArgs e)
  365. {
  366. DialogResult result=MessageBox.Show("结帐后将进入下一会计期间,是否结帐","确认结帐",MessageBoxButtons.OKCancel,MessageBoxIcon.Warning);
  367. if(result==DialogResult.OK)
  368. {
  369. string strConn = "workstation id=localhost;Integrated Security=SSPI;database=caiwubook";
  370. SqlConnection cn=new SqlConnection(strConn);
  371. cn.Open();
  372. try
  373. {
  374. SqlCommand cmd=cn.CreateCommand();
  375. cmd.CommandText="exec sf_期末结帐";
  376. cmd.ExecuteNonQuery();
  377. MessageBox.Show("期末结帐成功!","结帐成功",MessageBoxButtons.OK,MessageBoxIcon.Information);
  378. }
  379. catch(Exception express)
  380. {
  381. MessageBox.Show(express.ToString(),"期末结帐失败",MessageBoxButtons.OK,MessageBoxIcon.Error);
  382. return;
  383. }
  384. }
  385. }
  386. //---------显示资产负债表-----------
  387. private void menuItem13_Click(object sender, System.EventArgs e)
  388. {
  389. //通过窗体名称查询该窗体是否已经存在,如存在则显示,否则就新创建一个
  390. if (this.checkChildFrmExist("FinancialReport") == true)
  391. {
  392. return;
  393. }
  394. FinancialReport newFrm=new FinancialReport();
  395. newFrm.MdiParent = this;
  396. newFrm.Show();
  397. }
  398. //---------关闭窗体------------
  399. private void menuItem14_Click(object sender, System.EventArgs e)
  400. {
  401. this.Close();
  402. }
  403. }
  404. }