finreport.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 631 行 · 第 1/2 页
CPP
631 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "FinReport.h"
#include "Formula.h"
#include "Preview.h"
#include "PageSetup.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "TTF160_OCX"
#pragma link "SDComboBox"
#pragma link "StdBaseForm"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmFinReport *frmFinReport;
//---------------------------------------------------------------------------
__fastcall TfrmFinReport::TfrmFinReport(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TStdBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
double __fastcall TfrmFinReport::FinData(AnsiString Glkm,
AnsiString Period,
AnsiString Type,
AnsiString PerInc)
{
AnsiString FMonth = scFMonth->Text;
char * c = Glkm.c_str();
AnsiString Glkm2 = "";
for(int i = 1; i < Glkm.Length(); i++)
{
if(*c == ':')
{
Glkm2 = Glkm.SubString(i + 1, Glkm.Length() - i + 1);
Glkm = Glkm.SubString(1, i - 1);
break;
}
c++;
}
Period = Period.UpperCase();
Type = Type.UpperCase();
if(Period == "NC")
Period = "年初";
else if(Period == "QC")
Period = "期初";
else if(Period == "BN")
Period = "本年";
else if(Period == "JF")
Period = "借方";
else if(Period == "DF")
Period = "贷方";
else if(Period == "LJ")
Period = "累计";
if(Type == "JE")
Type = "金额";
else if(Type == "WB")
Type = "外币金额";
else if(Type == "SL")
Type = "数量";
RsRpod->Close();
if(Glkm2 == "")
RsRpod->Open("exec sdRpt_FinData '" + FMonth + "', '" + Glkm +
"', '" + Period + "', '" + Type + "', " + PerInc, "");
else
RsRpod->Open("exec sdRpt_FinSum '" + FMonth + "', '" + Glkm + "', '" +Glkm2 +
"', '" + Period + "', '" + Type + "', " + PerInc, "");
AnsiString Data = RsRpod->FieldByName("Value").Trim();
return Data.ToDouble();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmFinReport::KmName(AnsiString Glkm)
{
if(!g_sdRsGlkm->LocateByKey(Glkm))
return g_sdRsGlkm->FieldByName("GLKMNAME");
throw Exception("无此科目!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::FormShow(TObject *Sender)
{
FillComboBox(Handle,scFMonth,"select FyYear value from sdfy union select FcMonth value from sdfc order by value","value");
scFMonth->LocateKey(g_sdFMonth);
RsRpod = new TComResultSet(Handle,g_ClientHandle);
Formula->LoadAddIn(WideString("sdFinance.dll"), true);
frmFormula = new TfrmFormula(this);
Formula->SetColWidthAuto(1, 1, 50, 50, false);
Formula->DefaultFontCharSet = F1GB2312CharSet;
Formula->FontCharSet = F1GB2312CharSet;
cbFontName->Items->Assign(Screen->Fonts);
miNewClick(miNew);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::FormClose(TObject *Sender,
TCloseAction &Action)
{
//if(RsRpod!=NULL)
RsRpod->Close();
delete RsRpod;
frmFormula->FDestroy = true;
delete frmFormula;
TStdBaseForm::FormClose(Sender, Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miFCellsClick(TObject *Sender)
{
Formula->FormatCellsDlg(F1AllPages^F1ProtectionPage^F1ValidationPage);
//F1AlignmentPage|
//F1BorderPage|F1FontPage|F1NumberPage|
//F1PatternsPage);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miOpenClick(TObject *Sender)
{
if(od->Execute())
{
ShowFormulas(false);
FFileName = od->FileName;
Formula->ReadEx(WideString(FFileName));
Formula->Visible = true;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miSaveClick(TObject *Sender)
{
if(!FFileName.IsEmpty())
{
F1FileTypeConstants FileType;
AnsiString FileExt = FFileName.SubString(FFileName.Length()-2,3);
bool bk = ShowFormula;
if(FileExt.UpperCase() == "FRP")
{
FileType = F1FileFormulaOne6;
ShowFormulas(false);
}else if(FileExt.UpperCase() == "XLS")
FileType = F1FileExcel97;
else if(FileExt.UpperCase() == "TXT")
FileType = F1FileTabbedText;
else if(FileExt.UpperCase() == "HTM" || FileExt.UpperCase() == "TML")
FileType = F1FileHTML;
else
{
FileType = F1FileFormulaOne6;
ShowFormulas(false);
}
Formula->WriteEx(WideString(FFileName), FileType);
ShowFormula = bk;
}
else
{
miSaveAsClick(Sender);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miSaveAsClick(TObject *Sender)
{
if(sd->Execute())
{
FFileName = sd->FileName;
miSaveClick(Sender);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miCutClick(TObject *Sender)
{
Formula->EditCut();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miCopyClick(TObject *Sender)
{
Formula->EditCopy();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miPasteClick(TObject *Sender)
{
Formula->EditPaste();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miNewClick(TObject *Sender)
{
Formula->EditClear(F1ClearAll);
Formula->Visible = true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miCloseClick(TObject *Sender)
{
Formula->Visible = false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miViewToolBarClick(TObject *Sender)
{
((TMenuItem*)(Sender))->Checked = !((TMenuItem*)(Sender))->Checked;
tbButton->Visible = miViewToolBar->Checked;
sb->Visible = miViewStatus->Checked;
Formula->ShowEditBar = (miViewEditBar->Checked);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miCellsRightClick(TObject *Sender)
{
Formula->EditInsert(F1ShiftHorizontal);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miCellsDownClick(TObject *Sender)
{
Formula->EditInsert(F1ShiftVertical);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miRowsClick(TObject *Sender)
{
Formula->EditInsert(F1ShiftRows);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miColsClick(TObject *Sender)
{
Formula->EditInsert(F1ShiftCols);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miWorkSheetClick(TObject *Sender)
{
for(int i = Formula->NumSheets; i > 0; i--)
{
if(Formula->SheetSelected[i])
{
Formula->InsertSheets(i+1, 1);
return;
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miDeleteCellLeftClick(TObject *Sender)
{
Formula->EditDelete(F1ShiftHorizontal);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miDeleteCellsTopClick(TObject *Sender)
{
Formula->EditDelete(F1ShiftVertical);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miDeleteRowClick(TObject *Sender)
{
Formula->EditDelete(F1ShiftRows);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miDeleteColClick(TObject *Sender)
{
Formula->EditDelete(F1ShiftCols);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miDeleteSheetClick(TObject *Sender)
{
for(int i = Formula->NumSheets; i > 0; i--)
{
if(Formula->SheetSelected[i])
Formula->DeleteSheets(i, 1);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::miFormulaClick(TObject *Sender)
{
frmFormula->Show();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::scFMonthChange(TObject *Sender)
{
Formula->Recalc();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::FormulaStartRecalc(TObject *Sender)
{
StartWaitForm("正在重新生成报表,请稍候......");
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::FormulaEndRecalc(TObject *Sender)
{
EndWaitForm();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::FormDestroy(TObject *Sender)
{
Formula->AddInEnabled[0] = false;
delete frmFormula;
}
//---------------------------------------------------------------------------
int __fastcall TfrmFinReport::GetSelRow()
{
return Formula->SelStartRow;
}
//---------------------------------------------------------------------------
int __fastcall TfrmFinReport::GetSelCol()
{
return Formula->SelStartCol;
}
//---------------------------------------------------------------------------
int __fastcall TfrmFinReport::GetSelSheet()
{
return Formula->Sheet;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::SetSelSheet(int s)
{
Formula->Sheet = s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::SetSelRow(int s)
{
Formula->SelStartRow = s;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFinReport::SetSelCol(int s)
{
Formula->SelStartCol = s;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?