📄 rpttempleth.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "RptTempleth.h"
#include "RptGroup.h"
#include "RptSort.h"
#include "TestQuery.h"
#include "VFieldList.h"
#include "RptFilter.h"
#include "TempletExprEdit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmRptTempleth *frmRptTempleth;
//---------------------------------------------------------------------------
__fastcall TfrmRptTempleth::TfrmRptTempleth(TComponent* Owner)
: TGenBaseForm(Owner,euSdRptTempleth,"")
{
AutoCtl=seRptTemplethCode;
}
void __fastcall TfrmRptTempleth::InitEditControl()
{
ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
ClientGroup->AddComponent(1,false,true,false,seRptTemplethCode,seRptTemplethCode->Name);
FillComboBox(scRptTemplethView,"SELECT ViewNameCode=ViewName+Space(18-len(ViewName))+'|'+ViewDesc,ViewName FROM SDView order by Viewname","ViewNameCode","ViewName");
FillComboBox(scRptTemplethClassID,"SELECT ClassName=ClassID+Space(18-len(ClassID))+'|'+ClassName,CLASSID FROM SDCLASS","ClassName","CLASSID");
FillEdit(seRptTemplethUser,"select UserCode,UserName from SdUser","UserName","UserCode");
}
void __fastcall TfrmRptTempleth::ClearControl(int Section,bool BringToNext)
{
if (Section==1)
{
if (! BringToNext)
{
seRptTemplethCode->Text="";
seRptTemplethName->Text="";
memRptTemplethDesc->Text="";
scRptTemplethClassID->ItemIndex=-1;
lbRptTemplethSysDate->Caption=g_sdCurDate;
seRptTemplethUser->LocateKey(g_sdUserCode);
scRptTemplethView->ItemIndex=-1;
}
sgRptTempleth->RowCount=1;
if(seRptTemplethCode->Enabled==true && FloatPanel1->Enabled==true)
seRptTemplethCode->SetFocus();
}
else if (Section==2)
{
if (!BringToNext)
{
// FillComboBox(scRptTempletdField,"select VFieldName,VFieldDesc,VFieldType,VFieldExpr,VFieldFlg from sdVField where VFieldView='"+scRptTemplethView->ItemData[cbItem2]+"' order by VFieldName","VFieldName","VFieldDesc","VFieldType","VFieldExpr","VFieldFlg");
seRptTempletdNo->Text=AnsiString(comServer->ItemCount+1);
seRptTempletdName->ItemIndex=-1;
seRptTempletdDesc->Text="";
scRptTempletdType->ItemIndex=0;
seRptTempletdWidth->Text="18";
seRptTempletdScale->Text="0";
seRptTempletdField->Text="";
memRptTempletdExpr->Text ="";
chkRptTempletdFlg->Checked=false;
// if(scRptTempletdField->Enabled&&FloatPanel2->Visible==true)
// scRptTempletdField->SetFocus();
}
}
}
void __fastcall TfrmRptTempleth::GetDataFromComObject(int Section)
{
AnsiString mStr;
if(Section==1){
seRptTemplethCode->Text=GetHeadValue(fiRptTemplethCode);
seRptTemplethName->Text=GetHeadValue(fiRptTemplethName);
memRptTemplethDesc->Text=GetHeadValue(fiRptTemplethDesc);
scRptTemplethClassID->LocateKey(GetHeadValue(fiRptTemplethClassID));
lbRptTemplethSysDate->Caption=GetHeadValue(fiRptTemplethSysDate);
seRptTemplethUser->LocateKey(GetHeadValue(fiRptTemplethUser));
scRptTemplethView->LocateKey(GetHeadValue(fiRptTemplethView));
}
else{
seRptTempletdNo->Text=GetDetailValue(fiRptTempletdNo);
seRptTempletdName->Text=GetDetailValue(fiRptTempletdName);
seRptTempletdDesc->Text=GetDetailValue(fiRptTempletdDesc);
seRptTempletdWidth->Text=GetDetailValue(fiRptTempletdWidth);
seRptTempletdScale->Text=GetDetailValue(fiRptTempletdScale);
seRptTempletdField->Text=GetDetailValue(fiRptTempletdField);
chkRptTempletdFlg->Checked=GetDetailValue(fiRptTempletdFlg)=="1";
memRptTempletdExpr->Text=GetDetailValue(fiRptTempletdExpr);
scRptTempletdType->LocateKey(GetDetailValue(fiRptTempletdType));
}
}
void __fastcall TfrmRptTempleth::SendDataToComObject(int Section)
{
if (Section==1){
SetHeadValue(fiRptTemplethCode,seRptTemplethCode->Text);
SetHeadValue(fiRptTemplethView,scRptTemplethView->ItemData[1]);
SetHeadValue(fiRptTemplethName,seRptTemplethName->Text );
SetHeadValue(fiRptTemplethDesc,memRptTemplethDesc->Text);
SetHeadValue(fiRptTemplethClassID,scRptTemplethClassID->ItemData[1]);
SetHeadValue(fiRptTemplethUser,g_sdUserCode/*lbRptTemplethUser->Caption*/);
}
else{
SetDetailValue(fiRptTempletdCode,seRptTemplethCode->Text);
SetDetailValue(fiRptTempletdNo,seRptTempletdNo->Text);
SetDetailValue(fiRptTempletdField,seRptTempletdField->Text);
SetDetailValue(fiRptTempletdName,seRptTempletdName->Text);
SetDetailValue(fiRptTempletdDesc,seRptTempletdDesc->Text);
SetDetailValue(fiRptTempletdType,scRptTempletdType->ItemData[1]);
SetDetailValue(fiRptTempletdWidth,seRptTempletdWidth->Text);
SetDetailValue(fiRptTempletdScale,seRptTempletdScale->Text);
SetDetailValue(fiRptTempletdFlg,chkRptTempletdFlg->Checked ? "1":"0");
SetDetailValue(fiRptTempletdExpr,memRptTempletdExpr->Text);
CheckGroupField(seRptTempletdField->Text,scRptTempletdType->ItemData[1]);
}
}
void __fastcall TfrmRptTempleth::WaitUserInput(int Section)
{
if (Section ==1)
{
if(seRptTemplethCode->Enabled)
seRptTemplethCode->SetFocus();
}
else
{
sgRptTempleth->Visible=false;
sgRptTempleth->Align=alNone;
FloatPanel2->Visible=true;
FloatPanel2->Align=alClient;
if(CurrentState==caAddDetail||CurrentState==caAddBill)
btnOK->Enabled=true;
else
btnOK->Enabled=false;
seRptTempletdNo->SetFocus();
BtnExprEdit->Enabled=true;
}
BtnPanel->Enabled=false;
}
void __fastcall TfrmRptTempleth::RefreshGridData(int mAction)
{
AnsiString ItemStr;
int i;
switch(mAction){
case 0:
ItemStr="\t"+GetDetailValue(fiRptTempletdNo)+"\t"+GetDetailValue(fiRptTempletdField)+"\t"+
GetDetailValue(fiRptTempletdName)+"\t"+GetDetailValue(fiRptTempletdType)+"\t"+GetDetailValue(fiRptTempletdWidth)+"\t"+
GetDetailValue(fiRptTempletdScale)+"\t"+((GetDetailValue(fiRptTempletdFlg)=="1")?AnsiString("*"):AnsiString(""));
sgRptTempleth->AddItem(ItemStr);
break;
case 1:
i=sgRptTempleth->Row;
ItemStr="\t"+GetDetailValue(fiRptTempletdNo)+"\t"+GetDetailValue(fiRptTempletdField)+"\t"+
GetDetailValue(fiRptTempletdName)+"\t"+GetDetailValue(fiRptTempletdType)+"\t"+GetDetailValue(fiRptTempletdWidth)+"\t"+
GetDetailValue(fiRptTempletdScale)+"\t"+((GetDetailValue(fiRptTempletdFlg)=="1")?AnsiString("*"):AnsiString(""));
sgRptTempleth->RemoveItem(i);
sgRptTempleth->AddItem(ItemStr,i);
break;
case 2:
sgRptTempleth->RemoveItem(sgRptTempleth->Row);
}
}
void __fastcall TfrmRptTempleth::DisplayBill()
{
GetDataFromComObject(1);
FillGridWithData();
}
void __fastcall TfrmRptTempleth::GetBill(AnsiString BillID)
{
if(comServer->Find("RptTemplethCode='"+BillID+"'"))
{
DisplayBill();
}
else
if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
{
AddHeadRecord();
}
}
void __fastcall TfrmRptTempleth::FillGridWithData()
{
int i;
AnsiString ItemStr;
sgRptTempleth->RowCount=1;
for (i=0;i<comServer->ItemCount;i++)
{
comServer->LocateItemByIndex(i);
RefreshGridData(0);
}
}
AnsiString __fastcall TfrmRptTempleth::GetHeadValue(int Index)
{
return ReadFieldValue(comServer,Index);
}
AnsiString __fastcall TfrmRptTempleth::GetDetailValue(int Index)
{
return ReadItemValue(comServer,Index);
}
void __fastcall TfrmRptTempleth::SetHeadValue(int Index,AnsiString Value)
{
WriteFieldValue(comServer,Index,Value);
}
void __fastcall TfrmRptTempleth::SetDetailValue(int Index,AnsiString Value)
{
WriteItemValue(comServer,Index,Value);
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::btnOKClick(TObject *Sender)
{
if (CurrentState==caAddDetail||CurrentState==caAddBill)
{
try
{
if(DetailState==caAddDetail)
comServer->AddItem();
SendDataToComObject(2);
comServer->AddToObject();
ClearControl(2,false);
}
catch(Exception &e)
{
throw Exception(e.Message);
}
}
else
ChangeToBrowseState(true);
}
void __fastcall TfrmRptTempleth::ChangeToBrowseState(bool Browse)
{
FloatPanel2->Visible=false;
FloatPanel2->Align=alNone;
btnOK->Enabled=false;
btnCancel->Enabled=false;
sgRptTempleth->Visible =true;
sgRptTempleth->Align=alClient;
BtnExprEdit->Enabled=false;
if(CurrentState==caAddDetail)
BtnPanel->Enabled=false;
else
BtnPanel->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::btnCancelClick(TObject *Sender)
{
CancelChange();
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::FormCreate(TObject *Sender)
{
FormIniFile="D:\Test.Ini";
SetGridWidth(Name,sgRptTempleth,FormIniFile);
scRptTempletdType->ClearAll();
scRptTempletdType->AddItems("C-字符型","C");
scRptTempletdType->AddItems("F-浮点型","F");
scRptTempletdType->AddItems("L-长整型","L");
scRptTempletdType->AddItems("N-整型","N");
scRptTempletdType->AddItems("S-短整型","S");
scRptTempletdType->AddItems("D-日期型(字符)","D");
scRptTempletdType->AddItems("B-布尔型","B");
scRptTempletdType->AddItems("M-文本型","M");
scRptTempletdType->AddItems("T-时间型","T");
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::FormClose(TObject *Sender,
TCloseAction &Action)
{
TGenBaseForm::FormClose(Sender,Action);
WriteGridWidth(Name,sgRptTempleth,FormIniFile);
}
void __fastcall TfrmRptTempleth::FormShow(TObject *Sender)
{
TGenBaseForm::MoveToFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::sgRptTemplethDblClick(TObject *Sender)
{
sgRptTempleth->Visible=false;
sgRptTempleth->Align = alNone;
FloatPanel2->Visible=true;
FloatPanel2->Align=alClient;
btnOK->Enabled=false;
btnCancel->Enabled=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::scRptTempletdTypeChange(TObject *Sender)
{
switch(scRptTempletdType->ItemIndex)
{
case 0:
seRptTempletdWidth->Enabled=true;
seRptTempletdWidth->Text="18";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 1:
seRptTempletdWidth->Enabled=true;
seRptTempletdWidth->Text="12";
seRptTempletdScale->Enabled=true;
seRptTempletdScale->Text="0";
break;
case 2:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="10";
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -