📄 report.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Report.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmReport *frmReport;
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmReport::GetFieldValue(int FieldIndex)
{
WideString S;
S = ReadFieldValue(comServer,FieldIndex);
return(S);
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
seReportCode->Text="";
seReportDesc->Text="";
scReportTemplet->ItemIndex=-1;
scReportType->ItemIndex=-1;
seReportCaption->Text="";
lbReportTimes->Caption="";
lbReportNearNo->Caption="";
seReportName->Text="";
scReportFile->ItemIndex=-1;
seReportUser->LocateKey(g_sdUserCode);
lbReportSysDate->Caption="";
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::GetDataFromComObject()
{
seReportCode->Text=GetFieldValue(fiReportCode);
seReportDesc->Text=GetFieldValue(fiReportDesc);
scReportTemplet->LocateKey(GetFieldValue(fiReportTemplet));
scReportType->LocateKey(GetFieldValue(fiReportType));
seReportCaption->Text=GetFieldValue(fiReportCaption);
lbReportTimes->Caption=GetFieldValue(fiReportTimes);
lbReportNearNo->Caption=GetFieldValue(fiReportNearNo);
seReportName->Text=GetFieldValue(fiReportName);
scReportFile->LocateKey(GetFieldValue(fiReportFile));
seReportUser->LocateKey(GetFieldValue(fiReportUser));
lbReportSysDate->Caption=GetFieldValue(fiReportSysDate);
sgReport->LocateGrid(1,seReportCode->Text);
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::SendDataToComObject()
{
WriteFieldValue(comServer,fiReportCode,WideString(seReportCode->Text));
WriteFieldValue(comServer,fiReportName,WideString(seReportName->Text));
WriteFieldValue(comServer,fiReportCaption,WideString(seReportCaption->Text));
WriteFieldValue(comServer,fiReportTemplet,WideString(scReportTemplet->ItemData[cbItem2]));
WriteFieldValue(comServer,fiReportType,WideString(scReportType->ItemData[cbItem2]));
WriteFieldValue(comServer,fiReportFile,WideString(scReportFile->ItemData[cbItem1]));
WriteFieldValue(comServer,fiReportUser,WideString(g_sdUserCode/*lbReportUser->Caption*/));
WriteFieldValue(comServer,fiReportDesc,WideString(seReportDesc->Text));
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::WaitUserInput()
{
if(seReportCode->Enabled)
seReportCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmReport::GetDataToGrid()
{
AnsiString s;
s = "\t" + GetFieldValue(fiReportCode)+
"\t" + GetFieldValue(fiReportName)+
"\t" + GetFieldValue(fiReportTemplet)+
"\t" + GetFieldValue(fiReportFile);
return(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::RefreshGridData(int mAction)
{
AnsiString ItemStr;
ItemStr = GetDataToGrid();
// 新增
if (mAction == 0)
{
sgReport->AddItem(ItemStr);
sgReport->Row=sgReport->RowCount-1;
}
// 修改
else if(mAction == 1)
{
sgReport->ChangeItem(ItemStr,sgReport->Row);
}
// 删除
else if(mAction == 2)
{
sgReport->RemoveItem(sgReport->Row);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgReport->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr =GetDataToGrid();
sgReport->AddItem(ItemStr);
comServer->MoveNext();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::InitEditControl()
{
ClientGroup->AddComponent(2,true,true,false, sgReport,sgReport->Name);
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,false,true,false, seReportCode,seReportCode->Name);
FillComboBox(scReportTemplet,"select RptTemplet=RptTemplethCode+space(18-len(RptTemplethCode))+'|'+RptTemplethName,RptTemplethCode from sdRptTempleth","RptTemplet","RptTemplethCode");
FillComboBox(scReportFile,"select RptFileName from sdRptFile order by RptFileName","RptFileName");
FillComboBox(scReportType,"select RptType=RptTypeCode+space(18-len(RptTypeCode))+'|'+RptTypeName,RptTypeCode from sdRptType where RptTypeEnd=1 order by RptTypeCode","RptType","RptTypeCode");
FillEdit(seReportUser,"select UserCode,UserName from SdUser","UserName","UserCode");
}
//---------------------------------------------------------------------------
__fastcall TfrmReport::TfrmReport(TComponent* Owner)
: TRecBaseForm(Owner,euSdReport,"")
{
AutoCtl=seReportCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::FormShow(TObject *Sender)
{
FillGridWithData();
ClearControl(false);
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::sgReportClick(TObject *Sender)
{
if (sgReport->Row > 0)
comServer->LocateByKey(WideString(sgReport->TextMatrix[sgReport->Row][1]));
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::RefreshUpdateData(int MsgSrc,int MsgType)
{
switch(MsgSrc)
{
case euSdRptTempleth:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=scReportTemplet->ItemData[1];
FillComboBox(scReportTemplet,"select RptTemplet=RptTemplethCode+space(18-len(RptTemplethCode))+'|'+RptTemplethName,RptTemplethCode from sdRptTempleth","RptTemplet","RptTemplethCode");
scReportTemplet->LocateKey(KeyCode);
}
break;
case euSdRptFile:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=scReportFile->ItemData[0];
FillComboBox(scReportFile,"select RptFileName from sdRptFile order by RptFileName","RptFileName");
scReportFile->LocateKey(KeyCode);
}
break;
case euSdRptType:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
KeyCode=scReportType->ItemData[1];
FillComboBox(scReportType,"select RptType=RptTypeCode+space(18-len(RptTypeCode))+'|'+RptTypeName,RptTypeCode from sdRptType where RptTypeEnd=1 order by RptTypeCode","RptType","RptTypeCode");
scReportType->LocateKey(KeyCode);
}
break;
}
}
void __fastcall TfrmReport::seReportCodeKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13 && CurrentState==caNormal)
{
comServer->LocateByKey(WideString(seReportCode->Text));
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -