formula.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 233 行
CPP
233 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Formula.h"
#include "GlkmQuery.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "SDEdit"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmFormula *frmFormula;
//---------------------------------------------------------------------------
__fastcall TfrmFormula::TfrmFormula(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
: TForm(Owner,chWnd,MidCode,WhereStr)
{
FinReport = (TfrmFinReport*)Owner;
FMoving = false;
FDestroy = false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::tvForChange(TObject *Sender, TTreeNode *Node)
{
HidePanel();
if(Node->Text == "财务数据")
{
seGlkm->Text = "";
seGlkm2->Text = "";
scPeriod->ClearAll();
scType->ClearAll();
scPerInc->ClearAll();
scPeriod->AddItems("年初","NC");
scPeriod->AddItems("期初","QC");
scPeriod->AddItems("借方","JF");
scPeriod->AddItems("贷方","DF");
scPeriod->AddItems("本年","BN");
scPeriod->AddItems("累计","LJ");
scPeriod->ItemIndex = 2;
scType->AddItems("金额","JE");
scType->AddItems("外币金额","WB");
scType->AddItems("数量","SL");
scType->ItemIndex = 0;
scPerInc->AddItems("上月","-1");
scPerInc->AddItems("本月","0");
scPerInc->AddItems("下月","1");
scPerInc->ItemIndex = 1;
pCwsj->Visible = true;
}
if(Node->Text == "科目名称")
{
seKmmcGlkm->Text = "";
pKmmc->Visible = true;
}
}
//---------------------------------------------------------------------------
void TfrmFormula::HidePanel()
{
pCwsj->Visible = false;
pKmmc->Visible = false;
}
void __fastcall TfrmFormula::FormShow(TObject *Sender)
{
HidePanel();
Sheet = FinReport->SelSheet;
Row = FinReport->SelRow;
Col = FinReport->SelCol;
Formula = FinReport->Formula->FormulaSRC[Sheet][Row][Col];
tvFor->Selected = tvFor->Items->Item[0];
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::bbAddClick(TObject *Sender)
{
if(tvFor->Selected->Text == "财务数据")
{
if(seGlkm->Text == "")
throw Exception("科目不能为空!");
if(seGlkm->Text == seGlkm2->Text)
AddFun("财务数据(\"" + seGlkm->Text + "\",\"" +
scPeriod->ItemData[1] + "\",\"" +scType->ItemData[1] + "\"," +
scPerInc->ItemData[1] + ") ");
else
AddFun("财务数据(\"" + seGlkm->Text + ":" + seGlkm2->Text + "\",\"" +
scPeriod->ItemData[1] + "\",\"" +scType->ItemData[1] + "\"," +
scPerInc->ItemData[1] + ") ");
}
if(tvFor->Selected->Text == "科目名称")
{
AddFun("科目名称(\"" + seKmmcGlkm->Text + "\") ");
}
}
//---------------------------------------------------------------------------
void TfrmFormula::AddFun(AnsiString Fun)
{
AnsiString s = Formula;
Formula = s.SubString(1, mFormula->SelStart) + Fun + s.SubString(1+mFormula->SelStart, s.Length() - mFormula->SelStart);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmFormula::GetFormula()
{
return mFormula->Text;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::SetFormula(AnsiString For)
{
mFormula->Text = For;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::seGlkmButtonClick(TObject *Sender)
{
int q;
TfrmGlkmQuery *FGlkmQuery = new TfrmGlkmQuery(this,q);
try{
FGlkmQuery->ShowModal();
if(q==1)
((TSDEdit*)(Sender))->Text = GetGlkmValue(gtOpenForm,"GLKMCODE");
}__finally
{
delete FGlkmQuery;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::SpeedButton1Click(TObject *Sender)
{
AddFun(" + ");
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::SpeedButton2Click(TObject *Sender)
{
AddFun(" - ");
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::SpeedButton3Click(TObject *Sender)
{
AddFun(" * ");
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::SpeedButton4Click(TObject *Sender)
{
AddFun(" / ");
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::SpeedButton5Click(TObject *Sender)
{
AddFun(" (");
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::SpeedButton6Click(TObject *Sender)
{
AddFun(") ");
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::seKmmcGlkmButtonClick(TObject *Sender)
{
int q;
TfrmGlkmQuery *FGlkmQuery = new TfrmGlkmQuery(this,q);
try{
FGlkmQuery->ShowModal();
if(q==1)
seKmmcGlkm->Text = GetGlkmValue(gtOpenForm,"GLKMCODE");
}__finally
{
delete FGlkmQuery;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::FormClose(TObject *Sender,
TCloseAction &Action)
{
if(FDestroy)
Hide();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::bbCancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::bbOkClick(TObject *Sender)
{
FinReport->Formula->FormulaSRC[Sheet][Row][Col] = WideString(Formula);
FinReport->Formula->SSUpdate();
FinReport->Repaint();
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::seGlkmChange(TObject *Sender)
{
if(seGlkm2->Text == FBkValue || seGlkm2->Text == "")
{
seGlkm2->Text = seGlkm->Text;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::seGlkmEnter(TObject *Sender)
{
FBkValue = seGlkm->Text;
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::FormMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y)
{
if(FMoving)
{
Left += X - FMoveStartX;
Top += Y - FMoveStartY;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::FormMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
FMoveStartX = X;
FMoveStartY = Y;
FMoving = true;
SetCapture(this->Handle);
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::FormMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y)
{
FMoving = false;
ReleaseCapture();
}
//---------------------------------------------------------------------------
void __fastcall TfrmFormula::FormKeyUp(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key == VK_ESCAPE)
Hide();
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?