glkm.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 543 行 · 第 1/2 页
CPP
543 行
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Glkm.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
#define ParaCode "10701" //分类码各层字符长度参数代码头
TfrmGlkm *frmGlkm;
//---------------------------------------------------------------------------
void __fastcall TfrmGlkm::ClearControl(bool BringToNext)
{
if(!BringToNext)
{
memGlkmUpper->Text ="";
memGlkmItem->Text ="";
seGlkmName->Text ="";
seGlkmShortCut->Text ="";
chkGlkmMx->Checked =false;
chkGlkmWb->Checked =false;
scGlkmCurrency->Enabled =false;
scGlkmCurrency->Text ="";
scGlkmCurrency->ItemIndex =-1;
chkGlkmSl->Checked =false;
scGlkmUnit->Enabled =false;
scGlkmUnit->Text ="";
scGlkmUnit->ItemIndex =-1;
scGlkmBookType->ItemIndex =0;
chkGlkmCash->Checked =false;
chkGlkmBank->Checked =false;
chkGlkmDept->Checked =false;
chkGlkmHuman->Checked =false;
chkGlkmClient->Checked =false;
chkGlkmSupply->Checked =false;
chkGlkmProject->Checked =false;
chkGlkmCc->Checked =false;
chkGlkmAer->Checked =false;
chkGlkmNoUse->Checked =false;
rbGlkmDir1->Checked=true;
rbGlkmDir2->Checked=false;
lbGlkmDir1->Font->Color=clRed;
lbGlkmDir2->ParentFont=true;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkm::GetDataFromComObject()
{
if(GetFieldValue("GlkmUpperCode")!="")
memGlkmUpper->Text =GetFieldValue("GlkmUpperCode");
else
memGlkmUpper->Text ="";
memGlkmItem->Text =GetFieldValue("GlkmItem");
seGlkmName->Text =GetFieldValue("GlkmName");
seGlkmShortCut->Text =GetFieldValue("GlkmShortCut");
chkGlkmMx->Checked =GetFieldValue("GlkmMx")=="1";
if(chkGlkmMx->Checked)
gbGlkmMx->Enabled=true;
else
gbGlkmMx->Enabled=false;
chkGlkmWb->Checked =GetFieldValue("GlkmWb")=="1";
scGlkmCurrency->Enabled=false;
if(chkGlkmWb->Checked)
scGlkmCurrency->LocateKey(GetFieldValue("GlkmCurrency"));
else
scGlkmCurrency->ItemIndex =-1;
chkGlkmSl->Checked =GetFieldValue("GlkmSl")=="1";
scGlkmUnit->Enabled =false;
if(chkGlkmSl->Checked)
scGlkmUnit->LocateKey(GetFieldValue("GlkmUnit"));
else
scGlkmUnit->ItemIndex=-1;
if(GetFieldValue("GlkmDir")=="1")
{
rbGlkmDir1->Checked=true;
rbGlkmDir2->Checked=false;
lbGlkmDir1->Font->Color=clRed;
lbGlkmDir2->ParentFont=true;
}
else
{
rbGlkmDir2->Checked=true;
rbGlkmDir1->Checked=false;
lbGlkmDir2->Font->Color=clRed;
lbGlkmDir1->ParentFont=true;
}
scGlkmBookType->ItemIndex =StrToInt(GetFieldValue("GlkmBookType"))-1;
chkGlkmCash->Checked =GetFieldValue("GlkmCash")=="1";
chkGlkmBank->Checked =GetFieldValue("GlkmBank")=="1";
chkGlkmDept->Checked =GetFieldValue("GlkmDept")=="1";
chkGlkmHuman->Checked =GetFieldValue("GlkmHuman")=="1";
chkGlkmClient->Checked =GetFieldValue("GlkmClient")=="1";
chkGlkmSupply->Checked =GetFieldValue("GlkmSupply")=="1";
chkGlkmProject->Checked =GetFieldValue("GlkmProject")=="1";
chkGlkmCc->Checked =GetFieldValue("GlkmCc")=="1";
chkGlkmAer->Checked =GetFieldValue("GlkmAer")=="1";
chkGlkmNoUse->Checked =GetFieldValue("GlkmNoUse")=="1";
TreeViewLocation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkm::SendDataToComObject()
{
// set GlkmUpperCode
WriteUpperCode();
SetFieldValue("GlkmItem",memGlkmItem->Text);
SetFieldValue("GlkmCode",memGlkmUpper->Text+memGlkmItem->Text);
SetFieldValue("GlkmName",seGlkmName->Text);
SetFieldValue("GlkmShortCut",seGlkmShortCut->Text);
SetFieldValue("GlkmMx",chkGlkmMx->Checked?"1":"0");
SetFieldValue("GlkmWb",chkGlkmWb->Checked?"1":"0");
SetFieldValue("GlkmCurrency",scGlkmCurrency->ItemData[1]);
SetFieldValue("GlkmSl",chkGlkmSl->Checked?"1":"0");
SetFieldValue("GlkmUnit",scGlkmUnit->ItemData[1]);
SetFieldValue("GlkmBookType",IntToStr(scGlkmBookType->ItemIndex+1));
SetFieldValue("GlkmDir",rbGlkmDir1->Checked?"1":"-1");
SetFieldValue("GlkmCash",chkGlkmCash->Checked?"1":"0");
SetFieldValue("GlkmBank",chkGlkmBank->Checked?"1":"0");
SetFieldValue("GlkmDept",chkGlkmDept->Checked?"1":"0");
SetFieldValue("GlkmHuman",chkGlkmHuman->Checked?"1":"0");
SetFieldValue("GlkmClient",chkGlkmClient->Checked?"1":"0");
SetFieldValue("GlkmSupply",chkGlkmSupply->Checked?"1":"0");
SetFieldValue("GlkmProject",chkGlkmProject->Checked?"1":"0");
SetFieldValue("GlkmCc",chkGlkmCc->Checked?"1":"0");
SetFieldValue("GlkmAer",chkGlkmAer->Checked?"1":"0");
SetFieldValue("GlkmNoUse",chkGlkmNoUse->Checked?"1":"0");
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkm::WaitUserInput()
{
memGlkmItem->SetFocus();
scGlkmCurrency->Enabled=chkGlkmWb->Checked;
scGlkmUnit->Enabled=chkGlkmSl->Checked;
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkm::RefreshGridData(int mAction)
{
AnsiString tempText;
TTreeNode *TempNode;
if (mAction == 0)
{
if(tvGlkm->Selected)
{
tempText = "(" + GetFieldValue("GlkmCode") + ")" + GetFieldValue("GlkmName");
TempNode=tvGlkm->Items->AddChild(tvGlkm->Selected,tempText);
tvGlkm->Selected=TempNode;
if(GetFieldValue("GlkmMx")=="1")
{
TempNode->StateIndex=1;
}
else
{
TempNode->StateIndex=2;
}
// int pIndex=tvGlkm->Items->Count;
// tvGlkm->Items->Item[pIndex-1]->Selected=true;
// tvGlkm->Selected->Expanded = true;
}
}
else if(mAction == 1)
{
if(tvGlkm->Selected->HasChildren)
{ //如果有子节点,则刷新一次.
AnsiString tempS;
tempS=tvGlkm->Selected->Text;
tempS = tempS.SubString(2,tempS.AnsiPos(")")-2);
comServer->Query();
FillGridWithData();
comServer->LocateByKey(tempS);
TreeViewLocation();
}
else
{
tvGlkm->Selected->Text = "(" + GetFieldValue("GlkmCode") + ")"
+ GetFieldValue("GlkmName");
if(GetFieldValue("GlkmMx")=="1")
{
tvGlkm->Selected->StateIndex=1;
}
else
{
tvGlkm->Selected->StateIndex=2;
}
}
}
else if(mAction == 2)
{
tvGlkm->Items->Delete(tvGlkm->Selected);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmGlkm::FillGridWithData()
{
AnsiString tempText;
TTreeNode* TempNode[10];
int mLevel;
tvGlkm->Items->Clear();
for(int i=1;i<6;i++)
{
switch(i)
{
case 1:
TempNode[0]=tvGlkm->Items->Add(NULL,"资产");
comServer->FilterString=WideString("GlkmType = 1");
comServer->Query();
TempNode[0]->StateIndex=5;
break;
case 2:
TempNode[0]=tvGlkm->Items->Add(NULL,"负债");
comServer->FilterString=WideString("GlkmType = 2");
comServer->Query();
TempNode[0]->StateIndex=6;
break;
case 3:
TempNode[0]=tvGlkm->Items->Add(NULL,"权益");
comServer->FilterString=WideString("GlkmType = 3");
comServer->Query();
TempNode[0]->StateIndex=7;
break;
case 4:
TempNode[0]=tvGlkm->Items->Add(NULL,"成本");
comServer->FilterString=WideString("GlkmType = 4");
comServer->Query();
TempNode[0]->StateIndex=8;
break;
case 5:
TempNode[0]=tvGlkm->Items->Add(NULL,"损益");
comServer->FilterString=WideString("GlkmType = 5");
comServer->Query();
TempNode[0]->StateIndex=9;//
break;
default:
break;
}
//TempNode[0]->StateIndex=0;
comServer->MoveFirst();
while (comServer->Eof == 0)
{
mLevel = StrToInt(GetFieldValue("GlkmLevel"));
if((mLevel <= 0)||(mLevel > 18))
{
::MessageBox(Handle,"科目表层次级别必须在1和18之间。","错误",MB_OK|MB_ICONSTOP);
comServer->MoveNext();
continue;
}
tempText = "(" + GetFieldValue("GlkmCode") + ")" + GetFieldValue("GlkmName");
TempNode[mLevel] = tvGlkm->Items->AddChild(TempNode[mLevel-1],tempText);
if(GetFieldValue("GlkmMx")=="1")
{
TempNode[mLevel]->StateIndex=1;
}
else
{
TempNode[mLevel]->StateIndex=2;
}
comServer->MoveNext();
} // end of while
} // end of for
if (tvGlkm->Items->Count > 0)
{
for(int j=0;j<tvGlkm->Items->Count;j++)
if(tvGlkm->Items->Item[j]->Level==0)
tvGlkm->Items->Item[j]->Expand(false);
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?