📄 rpttempleth.cpp
字号:
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 3:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="5";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 4:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="1";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 5:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="10";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 6:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="1";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 7:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="10";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 8:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="8";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::scRptTempletdTypeExit(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";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 3:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="5";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 4:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="1";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 5:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="10";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 6:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="1";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 7:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="10";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
case 8:
seRptTempletdWidth->Enabled=false;
seRptTempletdWidth->Text="8";
seRptTempletdScale->Enabled=false;
seRptTempletdScale->Text="0";
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::seRptTemplethCodeKeyDown(TObject *Sender,
WORD &Key, TShiftState Shift)
{
if(Key==13 && CurrentState==caNormal)
{
comServer->LocateByKey(WideString(seRptTemplethCode->Text));
DisplayBill();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::scRptTemplethViewClick(TObject *Sender)
{
if(!scRptTemplethView->Text.IsEmpty())
{
SetHeadValue(fiRptTemplethView,scRptTemplethView->ItemData[1]);
scRptTemplethClassID->LocateKey(GetHeadValue(fiRptTemplethClassID));
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::BtnSortClick(TObject *Sender)
{
if(!seRptTemplethCode->Text.IsEmpty())
{
TfrmRptSort *frmSort= new TfrmRptSort(this);
try{
frmSort->SortTemplet=GetHeadValue(fiRptTemplethCode);
frmSort->ShowModal();
}
__finally
{
delete frmSort;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::BtnGroupClick(TObject *Sender)
{
if(!seRptTemplethCode->Text.IsEmpty())
{
TfrmRptGroup *frmGroup= new TfrmRptGroup(this);
try{
frmGroup->GroupTemplet=GetHeadValue(fiRptTemplethCode);
frmGroup->ShowModal();
}
__finally
{
delete frmGroup;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::BtnQueryClick(TObject *Sender)
{
if(!seRptTemplethCode->Text.IsEmpty())
{
TfrmTestQuery *TestQuery= new TfrmTestQuery(this);
TComResultSet *RsQuery;
try{
AnsiString FieldStr,sSql;
sSql="select * from sdRptSort where RptSortTemplet='"+seRptTemplethCode->Text+"'";
RsQuery=NewResultSet();
RsQuery->Open(WideString(sSql),WideString(""));
FieldStr="";
if(RsQuery->RecordCount>0)
{
RsQuery->MoveFirst();
while(RsQuery->Eof==0)
{
FieldStr=FieldStr+RsQuery->FieldByName("RptSortField")+",";
RsQuery->MoveNext();
}
FieldStr=FieldStr.SubString(1,FieldStr.Length()-1);
}
RsQuery->Close();
TestQuery->SortField=FieldStr;
sSql="select * from sdRptGroup where RptGroupTemplet='"+seRptTemplethCode->Text+"'";
RsQuery->Open(WideString(sSql),WideString(""));
FieldStr="";
if(RsQuery->RecordCount>0)
{
RsQuery->MoveFirst();
while(RsQuery->Eof==0)
{
FieldStr=FieldStr+RsQuery->FieldByName("RptGroupField")+",";
RsQuery->MoveNext();
}
FieldStr=FieldStr.SubString(1,FieldStr.Length()-1);
}
TestQuery->GroupField=FieldStr;
TestQuery->RptTemplet=Trim(seRptTemplethCode->Text);
TestQuery->ShowModal();
}
__finally
{
delete TestQuery;
delete RsQuery;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::GenrateBill()
{
if(scRptTemplethView->Text.IsEmpty())
{
ShowMessageWindow("视图名不能为空!",mwsInformation);
CancelChange();
return;
}
TfrmViewList *VFieldList= new TfrmViewList(this);
try{
VFieldList->BillNumID=Trim(scRptTemplethView->ItemData[cbItem2]);
VFieldList->ShowModal();
if(VFieldList->ModalResult==mrOk)
{
int MaxLine=1;
double Amt;
if(comServer->ItemCount>0)
{
comServer->LocateItemByIndex(comServer->ItemCount-1);
MaxLine=StrToInt(GetDetailValue(fiRptTempletdNo))+1;
}
for(int i=1;i<VFieldList->sgVField->RowCount;i++)
{
if(VFieldList->sgVField->TextMatrix[i][1]=="√")
{
VFieldList->comServer->LocateItemByKey(WideString(VFieldList->sgVField->TextMatrix[i][2]));
comServer->AddItem();
//给视图名(VFieldView)赋值
SetDetailValue(fiRptTempletdCode,seRptTemplethCode->Text);
SetDetailValue(fiRptTempletdNo,IntToStr(MaxLine++));
SetDetailValue(fiRptTempletdField,VFieldList->GetDetailValue(fiVFieldName));
SetDetailValue(fiRptTempletdName,VFieldList->GetDetailValue(fiVFieldDesc));
SetDetailValue(fiRptTempletdDesc,VFieldList->GetDetailValue(fiVFieldDesc));
SetDetailValue(fiRptTempletdType,VFieldList->GetDetailValue(fiVFieldType));
SetDetailValue(fiRptTempletdWidth,VFieldList->GetDetailValue(fiVFieldWidth));
SetDetailValue(fiRptTempletdScale,VFieldList->GetDetailValue(fiVFieldScale));
// SetDetailValue(fiRptTempletdFlg,VFieldList->GetDetailValue(fiVFieldFlg));
// SetDetailValue(fiRptTempletdExpr,VFieldList->GetDetailValue(fiVFieldExpr));
comServer->AddToObject();
CheckGroupField(GetDetailValue(fiRptTempletdField),GetDetailValue(fiRptTempletdType));
}
}
FillGridWithData();
}
}
__finally
{
delete VFieldList;
// CancelChange();
}
}
void __fastcall TfrmRptTempleth::sgRptTemplethClick(TObject *Sender)
{
if (sgRptTempleth->Row> 0)
comServer->LocateItemByKey(WideString(sgRptTempleth->TextMatrix[sgRptTempleth->Row][2]));
if (!comServer->Eof)
GetDataFromComObject(2);
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::BtnFilterClick(TObject *Sender)
{
if(!seRptTemplethCode->Text.IsEmpty())
{
TfrmRptFilter *frmFilter= new TfrmRptFilter(this);
try{
frmFilter->FilterTemplet=GetHeadValue(fiRptTemplethCode);
frmFilter->ShowModal();
}
__finally
{
delete frmFilter;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::BtnExprEditClick(TObject *Sender)
{
if(CurrentState!=caNormal&&chkRptTempletdFlg->Checked)
{
TfrmTempletExprEdit *ExprEdit=new TfrmTempletExprEdit(this);
try
{
ExprEdit->BillNumID=scRptTemplethView->ItemData[cbItem2];
ExprEdit->TempletdExpr=GetDetailValue(fiRptTempletdExpr);
if(ExprEdit->ShowModal()==mrOk)
memRptTempletdExpr->Text=ExprEdit->TempletdExpr;
}
__finally
{
delete ExprEdit;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmRptTempleth::CheckGroupField(AnsiString FieldName,AnsiString FieldType)
{
AnsiString TempletName,sSql;
TComResultSet *RsQuery;
RsQuery=NewResultSet();
TempletName=seRptTemplethCode->Text;
sSql="select rptgroupfield from sdrptgroup where rptgrouptemplet='"+TempletName+"'";
RsQuery->Open(WideString(sSql),WideString(""));
if(RsQuery->RecordCount>0)
{
if(FieldType!="F"&&FieldType!="N"&&FieldType!="L")
{
sSql="select rptgroupfield from sdrptgroup where rptgrouptemplet='"+TempletName+"' and rptgroupfield='"+FieldName+"'";
RsQuery->Open(WideString(sSql),WideString(""));
if(RsQuery->RecordCount<1)
ShowMessageWindow("请调整分组定义字段,\n"+FieldName+"该字段未包含在分组里面",mwsWarning);
}
else
{
if(GetDetailValue(fiRptTempletdFlg)=="0")
ShowMessageWindow("该字段"+FieldName+"应是虚构字段,或许是最大MAX()、最小MIN()、\n平均AVG()、计数COUNT()、加和SUM()等的组合表达式",mwsError);
}
}
delete RsQuery;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -