📄 glkmquery.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "GlkmQuery.h"
#include "commfunction.h"
#include "gvar.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDComboBox"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmGlkmQuery *frmGlkmQuery;
//---------------------------------------------------------------------------
__fastcall TfrmGlkmQuery::TfrmGlkmQuery(TComponent* Owner,int &QueryStatus)
: TForm(Owner)
{
FQueryStatus=&QueryStatus;
FillGridWithData();
btnOK->Enabled=false;
PageControl1->ActivePage=TabSheet1;
sGlkmCode="";
}
//---------------------------------------------------------------------------
//获取查询语句
void __fastcall TfrmGlkmQuery::FillGridWithData()
{
AnsiString tempText;
bool bIsDetail;
TTreeNode* TempNode[10];
TTreeNode* TempNode2[10];
int mLevel;
int iType;
try
{
StartWaitForm("正在执行查询...");
tvGlkm->Items->Clear();
g_sdRsGlkm->MoveFirst();
iType=0;
while(g_sdRsGlkm->Eof==0)
{
if(iType != StrToInt(GetGlkmValue("GlkmType")))
{
iType=StrToInt(GetGlkmValue("GlkmType"));
switch(iType)
{
case 1:
TempNode[0]=tvGlkm1->Items->Add(NULL,"资产");
TempNode2[0]=tvGlkm->Items->Add(NULL,"资产");
break;
case 2:
TempNode[0]=tvGlkm2->Items->Add(NULL,"负债");
TempNode2[0]=tvGlkm->Items->Add(NULL,"负债");
break;
case 3:
TempNode[0]=tvGlkm3->Items->Add(NULL,"权益");
TempNode2[0]=tvGlkm->Items->Add(NULL,"权益");
break;
case 4:
TempNode[0]=tvGlkm4->Items->Add(NULL,"成本");
TempNode2[0]=tvGlkm->Items->Add(NULL,"成本");
break;
case 5:
TempNode[0]=tvGlkm5->Items->Add(NULL,"损益");
TempNode2[0]=tvGlkm->Items->Add(NULL,"损益");
break;
default:
break;
}
TempNode[0]->StateIndex=-1;
TempNode[0]->SelectedIndex=-1;
TempNode2[0]->StateIndex=-1;
TempNode2[0]->SelectedIndex=-1;
}
mLevel = StrToInt(GetGlkmValue("GlkmLevel"));
bIsDetail=GetGlkmValue("GlkmMx")=="1";
tempText = "(" + GetGlkmValue("GlkmCode") + ")" + GetGlkmValue("GlkmName");
switch(iType)
{
case 1:
TempNode[mLevel] = tvGlkm1->Items->AddChild(TempNode[mLevel-1],tempText);
TempNode2[mLevel] = tvGlkm->Items->AddChild(TempNode2[mLevel-1],tempText);
break;
case 2:
TempNode[mLevel] = tvGlkm2->Items->AddChild(TempNode[mLevel-1],tempText);
TempNode2[mLevel] = tvGlkm->Items->AddChild(TempNode2[mLevel-1],tempText);
break;
case 3:
TempNode[mLevel] = tvGlkm3->Items->AddChild(TempNode[mLevel-1],tempText);
TempNode2[mLevel] = tvGlkm->Items->AddChild(TempNode2[mLevel-1],tempText);
break;
case 4:
TempNode[mLevel] = tvGlkm4->Items->AddChild(TempNode[mLevel-1],tempText);
TempNode2[mLevel] = tvGlkm->Items->AddChild(TempNode2[mLevel-1],tempText);
break;
case 5:
TempNode[mLevel] = tvGlkm5->Items->AddChild(TempNode[mLevel-1],tempText);
TempNode2[mLevel] = tvGlkm->Items->AddChild(TempNode2[mLevel-1],tempText);
break;
default:
break;
}
if(bIsDetail)
{
TempNode[mLevel]->StateIndex=1;
TempNode[mLevel]->SelectedIndex=1;
TempNode2[mLevel]->StateIndex=1;
TempNode2[mLevel]->SelectedIndex=1;
}
else
{
TempNode[mLevel]->StateIndex=-1;
TempNode[mLevel]->SelectedIndex=-1;
TempNode2[mLevel]->StateIndex=-1;
TempNode2[mLevel]->SelectedIndex=-1;
}
g_sdRsGlkm->MoveNext();
}// end of while
for(int i = 0 ; i < tvGlkm1->Items->Count ; i++)
if(tvGlkm1->Items->Item[i]->Level==0)
tvGlkm1->Items->Item[i]->Expand(false);
for(int i = 0 ; i < tvGlkm2->Items->Count ; i++)
if(tvGlkm2->Items->Item[i]->Level==0)
tvGlkm2->Items->Item[i]->Expand(false);
for(int i = 0 ; i < tvGlkm3->Items->Count ; i++)
if(tvGlkm3->Items->Item[i]->Level==0)
tvGlkm3->Items->Item[i]->Expand(false);
for(int i = 0 ; i < tvGlkm4->Items->Count ; i++)
if(tvGlkm4->Items->Item[i]->Level==0)
tvGlkm4->Items->Item[i]->Expand(false);
for(int i = 0 ; i < tvGlkm5->Items->Count ; i++)
if(tvGlkm5->Items->Item[i]->Level==0)
tvGlkm5->Items->Item[i]->Expand(false);
for(int i = 0 ; i < tvGlkm->Items->Count ; i++)
if(tvGlkm->Items->Item[i]->Level==0)
tvGlkm->Items->Item[i]->Expand(false);
}
__finally
{
EndWaitForm();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkmQuery::edtCodeChange(TObject *Sender)
{
AnsiString s,c;
s = edtCode->Text;
if(PageControl1->ActivePage!=TabSheet6)
PageControl1->ActivePage=TabSheet6;
for(int i = 0 ; i < tvGlkm->Items->Count ; i++)
{
c = tvGlkm->Items->Item[i]->Text; //取关键字
c = c.SubString(2,c.AnsiPos(")")-2);
if(s <= c)
{
tvGlkm->Selected = tvGlkm->Items->Item[i];
if(tvGlkm->Selected != NULL && tvGlkm->Selected->Level >0 && tvGlkm->Selected->StateIndex==1)
{
btnOK->Enabled=true;
sGlkmCode=c;
}
else
{
btnOK->Enabled=false;
sGlkmCode="";
}
break;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkmQuery::btnOKClick(TObject *Sender)
{
AnsiString c;
long RsErrNum;
if(sGlkmCode == "")
return;
RsErrNum=g_sdRsGlkm->LocateByKey(WideString(sGlkmCode));
if(RsErrNum!=0)
{
*FQueryStatus=0;
throw Exception(AnsiString(g_sdRsGoods->ErrorMessage));
}
*FQueryStatus=1;
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkmQuery::btnCancelClick(TObject *Sender)
{
*FQueryStatus=0;
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkmQuery::FormClose(TObject *Sender,
TCloseAction &Action)
{
Action=caFree;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkmQuery::tvGlkmClick(TObject *Sender)
{
TTreeView* tvTemp;
tvTemp=(TTreeView*)Sender;
AnsiString c;
if(tvTemp->Selected != NULL && tvTemp->Selected->Level >0 && tvTemp->Selected->StateIndex==1)
{
btnOK->Enabled=true;
c = tvTemp->Selected->Text; //取关键字
c = c.SubString(2,c.AnsiPos(")")-2);
sGlkmCode=c;
}
else
{
btnOK->Enabled=false;
sGlkmCode="";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkmQuery::edtCodeKeyPress(TObject *Sender, char &Key)
{
if(Key == 13)
{
btnOKClick(NULL);
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -