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

完成明細帳查詢功能[2]

2013-11-23 17:45:00  來源: Delphi編程 

  //查詢數據並顯示

  procedure TDetailAccountBitBtnClick(Sender: TObject);

  begin

  adoqueryClose;

  adoquerySQLClear;

  adoquerySQLAdd(select a*b科目名稱 from 本期明細帳簿 a科目表 b

  where (a科目代碼 like %+editText+%)and);

  adoquerySQLAdd((a科目代碼=b科目代碼));

  adoqueryOpen;

  //清除設置的數據過濾器並重新設置列表

  datasourceDataSetFiltered:=false;

  setlist();

  end;

  //窗體顯示時向左邊列表框中添加科目名稱

  procedure TDetailAccountFormShow(Sender: TObject);

  begin

  setlist();

  end;

  //將數據集中已有的科目名稱添加到列表中

  procedure TDetailAccountsetlist;

  var

  name:string;

  begin

  listboxClear;

  listboxClear;

  while not adoqueryEof do

  begin

  name:=adoqueryfieldbyname(科目名稱)AsString;

  //如果列表中沒有該名稱則添加若已有則不做任何動作

  if listboxItemsIndexOf(name)= then

  listboxItemsInsert(listboxItemsCountname);

  adoqueryNext;

  end;

  end;

  //選中一個科目名稱並允許將其添加到右邊的列表中

  procedure TDetailAccountListBoxClick(Sender: TObject);

  begin

  if listboxItemsCount<> then

  buttonEnabled:=true;

  end;

  //選中一個科目名稱並允許從右邊的列表中刪除它

  procedure TDetailAccountListBoxClick(Sender: TObject);

  begin

  if listboxItemsCount<> then

  buttonEnabled:=true;

  end;

  //在右邊的列表中添加某一項

  procedure TDetailAccountButtonClick(Sender: TObject);

  var

  name:string;

  begin

  name:=listboxItemsStrings[listboxItemIndex];

  //若右邊的列表框不存在該項再向其中添加

  if listboxItemsIndexOf(name)= then

  listboxItemsInsert(listboxItemsCountname);

  //允許在表中根據選擇的項進行顯示

  bitbtnEnabled:=true;

  end;

  //在右邊的列表中刪除某一項

  procedure TDetailAccountButtonClick(Sender: TObject);

  begin

  //若不為空則可以將名稱項從列表中刪除

  if listboxItemsCount<> then

  listboxItemsDelete(listboxItemIndex);

  //若右邊列表已空則將按鈕變灰(不可用)

  if listboxItemsCount= then

  begin

  buttonEnabled:=false;

  bitbtnEnabled:=false;

  end;

  end;

  //根據選擇的項顯示數據

  procedure TDetailAccountBitBtnClick(Sender: TObject);

  var

  filstr:string;

  i:integer;

  begin

  filstr:=;

  //根據列表中內容設置數據集的過濾項並過濾

  for i:= to listboxCount do

  begin

  filstr:=filstr+科目名稱=+listboxItemsStrings[i]+;

  if i<>listboxCount then

  filstr:=filstr+ OR ;

  end;

  datasourceDataSetFilter:=filstr;

  datasourceDataSetFiltered:=true;

  end;

[]  []  


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