⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 glkmquery.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "GlkmQuery.h"
#include "commfunction.h"
#include "gvar.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDComboBox"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmGlkmQuery *frmGlkmQuery;
//---------------------------------------------------------------------------
__fastcall TfrmGlkmQuery::TfrmGlkmQuery(TComponent* Owner,int &QueryStatus)
        : TForm(Owner)
{
 FQueryStatus=&QueryStatus;
 FillGridWithData();
 btnOK->Enabled=false;
 PageControl1->ActivePage=TabSheet1;
 sGlkmCode="";

}
//---------------------------------------------------------------------------

//获取查询语句
void __fastcall TfrmGlkmQuery::FillGridWithData()
{
  AnsiString  tempText;
  bool    bIsDetail;
  TTreeNode* TempNode[10];
  TTreeNode* TempNode2[10];
  int mLevel;
  int iType;
  try
  {
    StartWaitForm("正在执行查询...");
    tvGlkm->Items->Clear();
    g_sdRsGlkm->MoveFirst();
    iType=0;
    while(g_sdRsGlkm->Eof==0)
    {
     if(iType != StrToInt(GetGlkmValue("GlkmType")))
     {
      iType=StrToInt(GetGlkmValue("GlkmType"));
      switch(iType)
      {
       case 1:
        TempNode[0]=tvGlkm1->Items->Add(NULL,"资产");
        TempNode2[0]=tvGlkm->Items->Add(NULL,"资产");
       break;
       case 2:
        TempNode[0]=tvGlkm2->Items->Add(NULL,"负债");
        TempNode2[0]=tvGlkm->Items->Add(NULL,"负债");
        break;
       case 3:
        TempNode[0]=tvGlkm3->Items->Add(NULL,"权益");
        TempNode2[0]=tvGlkm->Items->Add(NULL,"权益");
         break;
       case 4:
        TempNode[0]=tvGlkm4->Items->Add(NULL,"成本");
        TempNode2[0]=tvGlkm->Items->Add(NULL,"成本");
         break;
       case 5:
        TempNode[0]=tvGlkm5->Items->Add(NULL,"损益");
        TempNode2[0]=tvGlkm->Items->Add(NULL,"损益");
         break;
        default:
         break;
      }
      TempNode[0]->StateIndex=-1;
      TempNode[0]->SelectedIndex=-1;
      TempNode2[0]->StateIndex=-1;
      TempNode2[0]->SelectedIndex=-1;
     }
     mLevel  = StrToInt(GetGlkmValue("GlkmLevel"));
     bIsDetail=GetGlkmValue("GlkmMx")=="1";
     tempText = "(" + GetGlkmValue("GlkmCode") + ")" + GetGlkmValue("GlkmName");
     switch(iType)
     {
      case 1:
       TempNode[mLevel] = tvGlkm1->Items->AddChild(TempNode[mLevel-1],tempText);
       TempNode2[mLevel] = tvGlkm->Items->AddChild(TempNode2[mLevel-1],tempText);
       break;
      case 2:
       TempNode[mLevel] = tvGlkm2->Items->AddChild(TempNode[mLevel-1],tempText);
       TempNode2[mLevel] = tvGlkm->Items->AddChild(TempNode2[mLevel-1],tempText);
       break;
      case 3:
       TempNode[mLevel] = tvGlkm3->Items->AddChild(TempNode[mLevel-1],tempText);
       TempNode2[mLevel] = tvGlkm->Items->AddChild(TempNode2[mLevel-1],tempText);
       break;
      case 4:
       TempNode[mLevel] = tvGlkm4->Items->AddChild(TempNode[mLevel-1],tempText);
       TempNode2[mLevel] = tvGlkm->Items->AddChild(TempNode2[mLevel-1],tempText);
       break;
      case 5:
       TempNode[mLevel] = tvGlkm5->Items->AddChild(TempNode[mLevel-1],tempText);
       TempNode2[mLevel] = tvGlkm->Items->AddChild(TempNode2[mLevel-1],tempText);
       break;
      default:
       break;
     }
      if(bIsDetail)
      {
       TempNode[mLevel]->StateIndex=1;
       TempNode[mLevel]->SelectedIndex=1;
       TempNode2[mLevel]->StateIndex=1;
       TempNode2[mLevel]->SelectedIndex=1;
      }
      else
      {
       TempNode[mLevel]->StateIndex=-1;
       TempNode[mLevel]->SelectedIndex=-1;
       TempNode2[mLevel]->StateIndex=-1;
       TempNode2[mLevel]->SelectedIndex=-1;
      }
     g_sdRsGlkm->MoveNext();
    }// end of while
    for(int i = 0 ; i < tvGlkm1->Items->Count ; i++)
     if(tvGlkm1->Items->Item[i]->Level==0)
      tvGlkm1->Items->Item[i]->Expand(false);

    for(int i = 0 ; i < tvGlkm2->Items->Count ; i++)
     if(tvGlkm2->Items->Item[i]->Level==0)
      tvGlkm2->Items->Item[i]->Expand(false);

    for(int i = 0 ; i < tvGlkm3->Items->Count ; i++)
     if(tvGlkm3->Items->Item[i]->Level==0)
      tvGlkm3->Items->Item[i]->Expand(false);

    for(int i = 0 ; i < tvGlkm4->Items->Count ; i++)
     if(tvGlkm4->Items->Item[i]->Level==0)
      tvGlkm4->Items->Item[i]->Expand(false);

    for(int i = 0 ; i < tvGlkm5->Items->Count ; i++)
     if(tvGlkm5->Items->Item[i]->Level==0)
      tvGlkm5->Items->Item[i]->Expand(false);

    for(int i = 0 ; i < tvGlkm->Items->Count ; i++)
     if(tvGlkm->Items->Item[i]->Level==0)
      tvGlkm->Items->Item[i]->Expand(false);
  }
  __finally
  {
    EndWaitForm();
  }
}

//---------------------------------------------------------------------------
void __fastcall TfrmGlkmQuery::edtCodeChange(TObject *Sender)
{
    AnsiString s,c;
    s = edtCode->Text;
    if(PageControl1->ActivePage!=TabSheet6)
     PageControl1->ActivePage=TabSheet6;
    for(int i = 0 ; i < tvGlkm->Items->Count ; i++)
    {
        c = tvGlkm->Items->Item[i]->Text;    //取关键字
        c = c.SubString(2,c.AnsiPos(")")-2);
        if(s <= c)
        {
          tvGlkm->Selected = tvGlkm->Items->Item[i];
          if(tvGlkm->Selected != NULL && tvGlkm->Selected->Level >0 && tvGlkm->Selected->StateIndex==1)
          {
           btnOK->Enabled=true;
           sGlkmCode=c;
          }
          else
          {
           btnOK->Enabled=false;
           sGlkmCode="";
          }
          break;
        }
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlkmQuery::btnOKClick(TObject *Sender)
{
   AnsiString c;
   long RsErrNum;
   if(sGlkmCode == "")
    return;
   RsErrNum=g_sdRsGlkm->LocateByKey(WideString(sGlkmCode));
   if(RsErrNum!=0)
   {
     *FQueryStatus=0;
     throw Exception(AnsiString(g_sdRsGoods->ErrorMessage));
   }
   *FQueryStatus=1;
   Close();
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlkmQuery::btnCancelClick(TObject *Sender)
{
  *FQueryStatus=0;
  Close();
}
//---------------------------------------------------------------------------


void __fastcall TfrmGlkmQuery::FormClose(TObject *Sender,
      TCloseAction &Action)
{
  Action=caFree;
}
//---------------------------------------------------------------------------

void __fastcall TfrmGlkmQuery::tvGlkmClick(TObject *Sender)
{
 TTreeView* tvTemp;
 tvTemp=(TTreeView*)Sender;
 AnsiString c;
 if(tvTemp->Selected != NULL && tvTemp->Selected->Level >0 && tvTemp->Selected->StateIndex==1)
 {
   btnOK->Enabled=true;
   c = tvTemp->Selected->Text;    //取关键字
   c = c.SubString(2,c.AnsiPos(")")-2);
   sGlkmCode=c;
 }
 else
 {
   btnOK->Enabled=false;
   sGlkmCode="";
 }

}
//---------------------------------------------------------------------------

void __fastcall TfrmGlkmQuery::edtCodeKeyPress(TObject *Sender, char &Key)
{
 if(Key == 13)
 {
  btnOKClick(NULL);
 }
}
//---------------------------------------------------------------------------


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -