?? unit2.~cpp
字號:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TFormClassDishMan *FormClassDishMan;
//---------------------------------------------------------------------------
__fastcall TFormClassDishMan::TFormClassDishMan(TComponent* Owner)
: TForm(Owner)
{
TableDish->Open();
TableClass->Open();
RefreshTreeView();
RefreshDBComboBoxDishClass();
TreeView1->OnClick=MyTreeViewClick;
}
//---------------------------------------------------------------------------
void __fastcall TFormClassDishMan::RefreshDBComboBoxDishClass(void)
{
TableClass->First();
for(int i=0;i<TableClass->RecordCount;i++)
{
//將菜品加入下拉菜單
DBComboBoxDishClass->Items->Add(
TableClass->FieldByName("ClassNum")->AsString );
TableClass->Next();
}
}
//---------------------------------------------------------------------------
void __fastcall TFormClassDishMan::RefreshTreeView(void)
{
TTreeNode *rNode,*mNode;
AnsiString DishClass;
int i,j;
TreeView1->Items->Clear();
TreeView1->ReadOnly=true;
TableClass->First();
TableDish->First();
rNode=TreeView1->Items->Add(NULL,"菜品/菜譜");
for(i=0;i<TableClass->RecordCount;i++)
{
AnsiString Num=TableClass->FieldByName("ClassNum")->AsString;
//將菜品加入樹視圖
DishClass=TableClass->FieldByName("ClassNum")->AsString +
TableClass->FieldByName("ClassName")->AsString;
mNode=TreeView1->Items->AddChild(rNode,DishClass);
//將Table2中對應此菜品的菜譜加入為該菜品的字節點
TableDish->First();
for(j=0;j<TableDish->RecordCount;j++)
{
if(TableDish->FieldByName("ClassNum")->AsString == Num)
{
TreeView1->Items->AddChild(mNode,
TableDish->FieldByName("DishName")->AsString);
}
TableDish->Next();
}
TableClass->Next();
}
//展開根節點的一級子目錄
rNode->Expand(false);
}
//---------------------------------------------------------------------------
void __fastcall TFormClassDishMan::MyTreeViewClick(TObject *Sender)
{
TTreeView *tmpTree=(TTreeView *)Sender;
if(tmpTree->Selected->Level == 1) //菜品
{
//尋找Table1中的相應紀錄
TableClass->FindKey(ARRAYOFCONST((tmpTree->Selected->Text[1])));
}
else if(tmpTree->Selected->Level == 2)//菜譜
{
//根據樹視圖中的Text屬性在Table2中查找對應紀錄
TableDish->IndexFieldNames = "DishName";
TableDish->SetKey();
TableDish->FieldByName("DishName")->Value=tmpTree->Selected->Text;
if(!TableDish->GotoKey())
{
MessageDlg("找不到該紀錄,,建議重新載入數據庫",
mtError, TMsgDlgButtons() << mbOK, 0);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TFormClassDishMan::BitBtnReloadClick(TObject *Sender)
{
RefreshDBComboBoxDishClass();
RefreshTreeView();
}
//---------------------------------------------------------------------------
void __fastcall TFormClassDishMan::BitBtnModifyClick(TObject *Sender)
{
if(BitBtnModify->Caption == "切換至修改模式")
{
DBEditClassNum->ReadOnly=false;
DBEditClassName->ReadOnly=false;
DBEditDishNum->ReadOnly=false;
DBEditDishName->ReadOnly=false;
DBEditDisCount->ReadOnly=false;
DBEditUnitName->ReadOnly=false;
DBEditDishPrice->ReadOnly=false;
DBMemoDishDescription->ReadOnly=false;
DBComboBoxDishClass->ReadOnly=false;
DBComboBoxDishClass->Enabled=true;
BitBtnModify->Caption="切換至瀏覽模式";
}
else
{
DBEditClassNum->ReadOnly=true;
DBEditClassName->ReadOnly=true;
DBEditDishNum->ReadOnly=true;
DBEditDishName->ReadOnly=true;
DBEditDisCount->ReadOnly=true;
DBEditUnitName->ReadOnly=true;
DBEditDishPrice->ReadOnly=true;
DBMemoDishDescription->ReadOnly=true;
DBComboBoxDishClass->ReadOnly=true;
DBComboBoxDishClass->Enabled=false;
BitBtnModify->Caption="切換至修改模式";
}
}
//---------------------------------------------------------------------------
void __fastcall TFormClassDishMan::BitBtnDeleteClick(TObject *Sender)
{
if(!TreeView1->Selected)
{
MessageDlg("請先選中樹視圖中要刪除的項!",
mtInformation, TMsgDlgButtons() << mbOK, 0);
return;
}
if(TreeView1->Selected->Level == 1) //菜品
{
//尋找TableClass中的相應紀錄
if(MessageDlg("確認刪除菜品:"+TreeView1->Selected->Text+"?",
mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0)
==mrYes)
{
TableClass->FindKey(ARRAYOFCONST((TreeView1->Selected->Text[1])));
TableClass->Delete();
TreeView1->Selected->Delete();
}
}
else if(TreeView1->Selected->Level == 2)//菜譜
{
//根據樹視圖中的Text屬性在TableDish中查找對應紀錄
if(MessageDlg("確認刪除菜譜:"+TreeView1->Selected->Text+"?",
mtConfirmation, TMsgDlgButtons() << mbYes << mbNo, 0)
==mrYes)
{
TableDish->FindKey(ARRAYOFCONST((TreeView1->Selected->Text)));
TableDish->Delete();
TreeView1->Selected->Delete();
}
}
//焦點返回目錄樹
TreeView1->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TFormClassDishMan::BitBtnAddClick(TObject *Sender)
{
if(!TreeView1->Selected)
{
MessageDlg("請選中根節點添加菜品,選中菜品添加菜譜!",
mtInformation, TMsgDlgButtons() << mbOK, 0);
return;
}
if(TreeView1->Selected->Level == 0) //根節點,添加菜品
{
//在Table1中添加紀錄
char clsNum=TreeView1->Selected->GetLastChild()->Text[1];
TableClass->Append();
TableClass->FieldValues["ClassNum"] =AnsiString(char(clsNum+1));
TableClass->FieldValues["ClassName"] = "未定菜名";
TableClass->Post();
TreeView1->Items->AddChild(TreeView1->Items->GetFirstNode(),
TableClass->FieldByName("ClassNum")->AsString +
TableClass->FieldByName("ClassName")->AsString);
TreeView1->Items->GetFirstNode()->GetLastChild()->Selected=true;
TreeView1->SetFocus();
}
else if(TreeView1->Selected->Level == 1)//菜品節點,添加菜譜
{
//在Table2中添加紀錄
AnsiString NewDishName;
if (InputQuery("新增菜譜", "輸入新增菜品的菜名", NewDishName))
{
TTreeNode *rNode;
TableDish->Append();
TableDish->FieldValues["ClassNum"] = AnsiString(TreeView1->Selected->Text[1]);
TableDish->FieldValues["DishName"] = NewDishName;
//DishNum自增型
TableDish->Post();
rNode=TreeView1->Items->AddChild(TreeView1->Selected,
TableDish->FieldByName("DishName")->AsString);
rNode->Selected=true;
TreeView1->SetFocus();
}
}
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -