📄 qrycenter.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "QryCenter.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma resource "*.dfm"
#define ParaCurCount "11601" //最近使用查询的个数参数代码
#define ParaTimes "11602" //频繁使用查询的个数参数代码
TfrmQryCenter *frmQryCenter;
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmQryCenter::GetFieldValue(int FieldIndex)
{
AnsiString S;
S = ReadFieldValue(comServer,FieldIndex);
return(S);
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::ClearControl(bool BringToNext)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::GetDataFromComObject()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::SendDataToComObject()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::WaitUserInput()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::RefreshGridData(int mAction)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::FillTreeWithType()
{
return;
/*
TComResultSet *RsQuery=NewResultSet();
TTreeNode *TempNode[7],*TempNode2;
int mLevel;
AnsiString sSQL;
tvQuery->Items->Clear();
TempNode[0]=tvQuery->Items->Add(NULL,"最近使用的查询");
sSQL="select QueryCode,QueryName from sdQuery ";
sSQL=sSQL+" where QueryNearNo > 0 and QueryNearNo <="+IntToStr(pv_iCurCount);
sSQL=sSQL+" order by QueryNearNo ";
RsQuery->Open(sSQL,"");
RsQuery->MoveFirst();
while( RsQuery->Eof == 0 )
{
TempNode2=tvQuery->Items->AddChild(TempNode[0],"(" + ReadColumnValueByName(RsQuery,"QueryCode") + ")" +ReadColumnValueByName(RsQuery,"QueryName"));
TempNode2->StateIndex = 1;
TempNode2->Text= "(" + ReadColumnValueByName(RsQuery,"QueryCode") + ")"+ReadColumnValueByName(RsQuery,"QueryName");
RsQuery->MoveNext();
}
RsQuery->Close();
TempNode[0]=tvQuery->Items->Add(NULL,"频繁使用的查询");
sSQL="select top "+IntToStr(pv_iTimes)+" QueryCode,QueryName from sdQuery ";
sSQL=sSQL+"order by QueryTimes";
RsQuery->Open(sSQL,"");
RsQuery->MoveFirst();
while( RsQuery->Eof == 0 )
{
TempNode2=tvQuery->Items->AddChild(TempNode[0],"(" + ReadColumnValueByName(RsQuery,"QueryCode") + ")" +ReadColumnValueByName(RsQuery,"QueryName"));
TempNode2->StateIndex = 1;
TempNode2->Text= "(" + ReadColumnValueByName(RsQuery,"QueryCode") + ")"+ReadColumnValueByName(RsQuery,"QueryName");
RsQuery->MoveNext();
}
RsQuery->Close();
// TempNode[0]=tvQuery->Items->Add(NULL,"所有查询");
TempNode[0]=Null;
RsQuery->Open(WideString("select QuTypeCode,QuTypeName,QuTypeLevel from sdQuType order by QuTypeCode,QuTypeLevel"),WideString(""));
RsQuery->MoveFirst();
while( RsQuery->Eof == 0 )
{
mLevel=ReadColumnValueByName(RsQuery,"QuTypeLevel").ToInt();
TempNode[mLevel] = tvQuery->Items->AddChild(TempNode[mLevel-1],"(" + ReadColumnValueByName(RsQuery,"QuTypeCode") + ")" +ReadColumnValueByName(RsQuery,"QuTypeName"));
TempNode[mLevel]->StateIndex = 0;
TempNode[mLevel]->Text= "(" + ReadColumnValueByName(RsQuery,"QuTypeCode") + ")"+ReadColumnValueByName(RsQuery,"QuTypeName");
RsQuery->MoveNext();
}
RsQuery->Close();
if (tvQuery->Items->Count > 0)
tvQuery->Items->Item[0]->Expand(false);
delete RsQuery;
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::FillGridWithData()
{
TComResultSet *RsQuery=NewResultSet();
TTreeNode *TempNode[7];
int mLevel;
AnsiString sSQL;
tvQuery->Items->Clear();
TempNode[0]=tvQuery->Items->Add(NULL,"最近使用的查询");
TempNode[0]->StateIndex = 0;
TempNode[0]=tvQuery->Items->Add(NULL,"频繁使用的查询");
TempNode[0]->StateIndex = 1;
RsQuery->Open("select QuTypeCode,QuTypeName,QuTypeLevel,QuTypeEnd from sdQuType order by QuTypeCode,QuTypeLevel","");
RsQuery->MoveFirst();
while( RsQuery->Eof == 0 )
{
mLevel=RsQuery->FieldByName("QuTypeLevel").ToInt();
if(mLevel == 1)
TempNode[mLevel] = tvQuery->Items->AddChild(NULL,"(" + RsQuery->FieldByName("QuTypeCode") + ")" +RsQuery->FieldByName("QuTypeName"));
else
TempNode[mLevel] = tvQuery->Items->AddChild(TempNode[mLevel-1],"(" + RsQuery->FieldByName("QuTypeCode") + ")" +RsQuery->FieldByName("QuTypeName"));
if(RsQuery->FieldByName("QuTypeEnd")=="1")
TempNode[mLevel]->StateIndex = 2;
else
TempNode[mLevel]->StateIndex = -1;
TempNode[mLevel]->Text= "(" + RsQuery->FieldByName("QuTypeCode") + ")"+RsQuery->FieldByName("QuTypeName");
RsQuery->MoveNext();
}
RsQuery->Close();
if (tvQuery->Items->Count > 0)
tvQuery->Items->Item[0]->Expand(false);
delete RsQuery;
/*
FillTreeWithType();
TTreeNode *TempNode;
comServer->MoveFirst();
while (comServer->Eof == 0)
{
AnsiString s,m;
s = GetFieldValue(fiQueryType);
for(int i = 1 ; i < tvQuery->Items->Count ; i ++)
{
if(tvQuery->Items->Item[i]->StateIndex!=0)
continue;
m = tvQuery->Items->Item[i]->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
if(s == m)
{
TempNode = tvQuery->Items->Item[i];
break;
}
}
TempNode= tvQuery->Items->AddChild(TempNode,"(" + GetFieldValue(fiQueryCode) + ")" +GetFieldValue(fiQueryName));
TempNode->StateIndex = 1;
TempNode->SelectedIndex = 1;
TempNode->Text="(" + GetFieldValue(fiQueryCode) + ")" + GetFieldValue(fiQueryName);
comServer->MoveNext();
}
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::InitEditControl()
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::TreeViewLocation()
{
/*
AnsiString s,m;
s = GetFieldValue(fiQueryCode);
for(int i = 1 ; i < tvQuery->Items->Count ; i ++)
{
m = tvQuery->Items->Item[i]->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
if((tvQuery->Items->Item[i]->Text) == s)
{
tvQuery->Selected = tvQuery->Items->Item[i];
break;
}
}
*/
}
//---------------------------------------------------------------------------
__fastcall TfrmQryCenter::TfrmQryCenter(TComponent* Owner)
: TRecBaseForm(Owner,euSdQuery,"")
{
InitParameter();
FillGridWithData();
comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::FormClose(TObject *Sender,
TCloseAction &Action)
{
TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::FormCreate(TObject *Sender)
{
// FillGridWithData();
// ClearControl(false);
// comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::InitParameter()
{
//从参数表sdparameter中获取最近使用和频繁使用的查询个数
TComResultSet *pResultSet=NewResultSet();
AnsiString strSQL,strCode;
strSQL=" select parametercode,parametervalue from sdparameter ";
strSQL=strSQL+" where parametercode = '"+ParaCurCount+"' or parametercode = '"+ParaTimes+"'";
pResultSet->Open(strSQL,"");
pResultSet->MoveFirst();
while(!pResultSet->Eof)
{
strCode=pResultSet->FieldByName("parametercode");
if(strCode==ParaCurCount)
pv_iCurCount=StrToIntDef(pResultSet->FieldByName("parametervalue"),10); //默认值为10
else
pv_iTimes=StrToIntDef(pResultSet->FieldByName("parametervalue"),10); //默认值为10
pResultSet->MoveNext();
}
pResultSet->Close();
delete pResultSet;
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::lvwQueryDblClick(TObject *Sender)
{
AnsiString m,sSQL;
AnsiString sQueryFormName,sQueryFormID,sQueryName,sQueryCode;
int iQueryLib;
TComResultSet *RsQuery=NewResultSet();
if(lvwQuery->Selected==NULL)
return;
m = lvwQuery->Selected->Caption;
comServer->LocateByKey(WideString(m));
if (comServer->Eof == 0)
{
sQueryCode=GetFieldValue(fiQueryCode);
sQueryFormName=GetFieldValue(fiQueryFormName);
sQueryFormID=GetFieldValue(fiQueryFormID);
sQueryName=GetFieldValue(fiQueryName);
sSQL=" select modulelib from sdmodule where modulecode='"+sQueryFormID+"'";
RsQuery->Open(sSQL,"");
if(RsQuery->RecordCount <= 0)
return;
iQueryLib=StrToInt(RsQuery->FieldByName("modulelib"));
g_ClientComm->ShowForm(sQueryFormID);
RsQuery->Close();
sSQL=" EXEC sdQuery_writeback '"+sQueryCode+"',"+pv_iCurCount;
RsQuery->Execute(sSQL);
}
delete RsQuery;
}
//---------------------------------------------------------------------------
void __fastcall TfrmQryCenter::tvQueryChange(TObject *Sender,
TTreeNode *Node)
{
TComResultSet *RsQuery=NewResultSet();
AnsiString sSQL;
TListItem *ListItem;
if(tvQuery->Selected==NULL)
return;
if(tvQuery->Selected->StateIndex == -1 )
return;
if(tvQuery->Selected->StateIndex == 0) //最近使用查询
{
lvwQuery->Items->Clear();
sSQL="select QueryCode,QueryName,QueryDesc from sdQuery ";
sSQL=sSQL+" where QueryNearNo > 0 and QueryNearNo <="+IntToStr(pv_iCurCount);
sSQL=sSQL+" order by QueryNearNo ";
RsQuery->Open(sSQL,"");
RsQuery->MoveFirst();
while( RsQuery->Eof == 0 )
{
ListItem = lvwQuery->Items->Add();
ListItem->Caption = RsQuery->FieldByName("QueryCode");
ListItem->SubItems->Add(RsQuery->FieldByName("QueryName"));
ListItem->SubItems->Add(RsQuery->FieldByName("QueryDesc"));
RsQuery->MoveNext();
}
RsQuery->Close();
delete RsQuery;
return;
}
if(tvQuery->Selected->StateIndex == 1) //频繁使用查询
{
lvwQuery->Items->Clear();
sSQL="select top "+IntToStr(pv_iTimes)+" QueryCode,QueryName,QueryDesc from sdQuery ";
sSQL=sSQL+"order by QueryTimes desc";
RsQuery->Open(sSQL,"");
RsQuery->MoveFirst();
while( RsQuery->Eof == 0 )
{
ListItem = lvwQuery->Items->Add();
ListItem->Caption = RsQuery->FieldByName("QueryCode");
ListItem->SubItems->Add(RsQuery->FieldByName("QueryName"));
ListItem->SubItems->Add(RsQuery->FieldByName("QueryDesc"));
RsQuery->MoveNext();
}
RsQuery->Close();
delete RsQuery;
return;
}
if(tvQuery->Selected->StateIndex == 2) //分类码查询
{
lvwQuery->Items->Clear();
AnsiString m = tvQuery->Selected->Text;
m = m.SubString(2,m.AnsiPos(")")-2);
sSQL="select QueryCode,QueryName,QueryDesc from sdQuery ";
sSQL=sSQL+"where QueryType='"+m+"' ";
sSQL=sSQL+"order by QueryCode ";
RsQuery->Open(sSQL,"");
RsQuery->MoveFirst();
while( RsQuery->Eof == 0 )
{
ListItem = lvwQuery->Items->Add();
ListItem->Caption = RsQuery->FieldByName("QueryCode");
ListItem->SubItems->Add(RsQuery->FieldByName("QueryName"));
ListItem->SubItems->Add(RsQuery->FieldByName("QueryDesc"));
RsQuery->MoveNext();
}
RsQuery->Close();
delete RsQuery;
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -