📄 wageitemf.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "WageItemF.h"
#include "Calc.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "StdBaseForm"
#pragma resource "*.dfm"
TfrmWageItemF *frmWageItemF;
//---------------------------------------------------------------------------
__fastcall TfrmWageItemF::TfrmWageItemF(TComponent* Owner,AnsiString WageItemFC,AnsiString WageItemFN )
: TStdBaseForm(Owner)
{
m_WageItemFResultName="";
m_WageItemFResultCode="";
TComResultSet *RsQuery;
AnsiString ItemStr,sSql;
sSql="select WageItemCode,WageItemName,WageItemFormula from kswageitem order by wageitemcode"; //取Head查询的SQL语句
RsQuery=new TComResultSet(Handle,g_ClientHandle);
RsQuery->Open(sSql,"");
RsQuery->MoveFirst();
fi_count = RsQuery->RecordCount ;
Name_n="";
for (i=0;i<fi_count;i++)
{
m_WItem[i].Code=RsQuery->FieldByName("WageItemCode");
ItemStr=RsQuery->FieldByName("WageItemName");
m_WItem[i].Name=ItemStr ;
Name_n=Name_n+ItemStr+",";
ListItem->Items->Add(ItemStr);
RsQuery->MoveNext();
}
RsQuery->Close();
delete RsQuery;
/* m_FiItem[0].Name="原值";
m_FiItem[1].Name="总工作量";
m_FiItem[2].Name="本期工作量";
m_FiItem[3].Name="使用期限";
m_FiItem[4].Name="累计使用期限";
m_FiItem[5].Name="预计净残值";
m_FiItem[6].Name="清理费用";
m_FiItem[7].Name="入帐前累计折旧";
m_FiItem[8].Name="入帐前累计工作量";
m_FiItem[9].Name="入帐前累计使用期限"; */
// for(int i=0;i<=30;i++)
// {
// m_FiItem[i].Code="";
// ListItem->Items->Strings[i]=m_FiItem[i].Name;
// ListItem->Items->Add(m_FiItem[i].Name);
// }
memFormula->Text=WageItemFN;
memFormulaCode->Text=WageItemFC;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItemF::btOkClick(TObject *Sender)
{
Expression = new TExpression();
Expression->OnIsVariable = IsVariable;
Expression->OnGetValue = GetValue;
double r;
int i=Expression->ChangeExpression(memFormula->Text);
if(i!=-1 && memFormula->Text!="")
{
m_WageItemFSure=false;
throw Exception("公式定义错误,请重新定义!");
}
else
{
m_WageItemFSure=true;
m_WageItemFResultCode=memFormulaCode->Text;
m_WageItemFResultName=memFormula->Text;
}
delete Expression;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItemF::btCacelClick(TObject *Sender)
{
m_WageItemFSure=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItemF::ListItemDblClick(TObject *Sender)
{
AnsiString ItemStr;
ItemStr=ListItem->Items->Strings[ListItem->ItemIndex];
seTempUse->Text=ItemStr;
for (i=0;i<fi_count;i++)
{
if (m_WItem[i].Name==ItemStr) break;
}
seTempUse->SelectAll();
seTempUse->CopyToClipboard();
memFormula->PasteFromClipboard();
seTempUse->Text=m_WItem[i].Code;
seTempUse->SelectAll();
seTempUse->CopyToClipboard();
memFormulaCode->PasteFromClipboard();
memFormula->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItemF::btReSetClick(TObject *Sender)
{
memFormula->Text="";
memFormulaCode->Text="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItemF::SpeedButtonClick(TObject *Sender)
{
TSpeedButton *SpeedButton;
SpeedButton=(TSpeedButton*)Sender;
seTempUse->Text=SpeedButton->Caption;
seTempUse->SelectAll();
seTempUse->CopyToClipboard();
memFormula->PasteFromClipboard();
memFormulaCode->PasteFromClipboard();
memFormula->SetFocus();
}
//---------------------------------------------------------------------------
bool __fastcall TfrmWageItemF::IsVariable(AnsiString Variable)
{
if(Name_n.Pos(Variable)>0)
return true;
else
return false;
}
//---------------------------------------------------------------------------
double __fastcall TfrmWageItemF::GetValue(AnsiString Variable)
{
/* for(int i=0;i<=6;i++)
{
if(m_FiItem[i].Name==Variable)
return m_FiItem[i].Code;
}*/
return 0.00;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -