熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Delphi編程 >> 正文

經典案例 財務管理系統(15)[2]

2013-11-23 17:39:25  來源: Delphi編程 

  //為憑證錄入分錄表

  procedure TDocuInputBitBtnClick(Sender: TObject);

  begin

  datasourceDataSetDelete;

  end;

  //統計分錄表中的各項信息以儲存到數據庫

  procedure TDocuInputSumAccount;

  var

  sumoutputsuminput:double;

  i:integer;

  begin

  suminput:=;

  sumoutput:=;

  //統計借貸雙方的數額

  for i:= to do

  if (stringgridCells[i]<>)and(stringgridCells[i]<>) then

  begin

  suminput:=suminput+strtofloat(stringgridCells[i]);

  sumoutput:=sumoutput+strtofloat(stringgridCells[i]);

  end;

  dbeditText:=floattostr(suminput);

  dbeditText:=floattostr(sumoutput);

  end;

  procedure TDocuInputDBEditExit(Sender: TObject);

  begin

  SumAccount;

  end;

  //設置分錄表表頭

  procedure TDocuInputFormShow(Sender: TObject);

  begin

  stringgridCells[]:=科目編碼;

  stringgridCells[]:=科目名稱(雙擊選擇);

  stringgridCells[]:=借方;

  stringgridCells[]:=貸方;

  stringgridCells[]:=摘要;

  end;

  //當在分錄表中輸入時不允許在上面有空行的情況下輸入一行新的數據

  procedure TDocuInputStringGridSelectCell(Sender: TObject; ACol

  ARow: Integer; var CanSelect: Boolean);

  begin

  //防止在輸入數據時上面有空行

  if stringgridCells[Arow]= then

  begin

  showmessage(請先完成上行中空的項目);

  exit;

  end;

  //保存選取的單元行列值

  curRow:=ARow;

  curCol:=ACol;

  if (curCol<=)and(curCol>=) then

  stringgridOptions:=stringgridOptions+[goEditing];

  //防止選中標題欄

  if ARow= then curRow:=ARow+;

  //統計借貸雙方信息

  sumAccount();

  end;

  //在輸入分錄表時調用DLL中的表格選擇科目名稱和號碼

  procedure TDocuInputStringGridDblClick(Sender: TObject);

  var

  showForm:TShowDllForm;

  module:Thandle;

  begin

  //只有雙擊指定列才有效

  if curCol<> then exit;

  //讀入DLL

  module:=loadlibrary(secdll);

  //如果讀入錯誤module會是一個小於的錯誤代碼

  //由此可以判斷是否讀入成功

  if module< then exit;

  @showForm:=getprocaddress(modulepchar());

  if @showForm=nil then exit;

  //通過DLL傳遞參數

  stringgridCells[curRow]:=showForm(applicationHandle選擇科目名稱科目表);

  //為科目代碼添加科目名稱

  adoqueryClose;

  adoquerySQLClear;

  adoquerySQLAdd(select 科目名稱 from 科目表 where 科目代碼

  =+stringgridCells[curRow]+);

  adoqueryOpen;

  stringgridCells[curRow]:=adoqueryfieldbyname(科目名稱)AsString;

  end;

[]  []  []  


From:http://tw.wingwit.com/Article/program/Delphi/201311/24841.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.