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 + -
显示快捷键?