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

📄 cd.cpp

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

#include <vcl.h>
#pragma hdrstop

#include "Cd.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmCd *frmCd;
//---------------------------------------------------------------------------
__fastcall TfrmCd::TfrmCd(TComponent* Owner)
        : TRecBaseForm(Owner,euSdCd,"")
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmCd::GetFieldValue(int FieldIndex)
{
   return ReadFieldValue(comServer,FieldIndex);
}
//---------------------------------------------------------------------------

void __fastcall TfrmCd::ClearControl(bool BringToNext)
{
    if (!BringToNext)
    {
      seCdGoods->Text    ="";
      seCdGoodsName->Text="";
      seCdFmonth->Text   ="";
      seCdBopQty->Text   =0.0;
      seCdBopPrice->Text =0.0;
      seCdBopAmt->Text   =0.0;
      scCdChk->Checked   =false;
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmCd::GetDataFromComObject()
{
    seCdFmonth->Text=GetFieldValue(fiCdFmonth);
    seCdGoods->Text=GetFieldValue(fiCdGoods);
    seCdGoodsName->Text=GetFieldValue(fiCdGoodsName);
    seCdBopPrice->Text=GetFieldValue(fiCdBopPrice);
    seCdBopQty->Text=GetFieldValue(fiCdBopQty);
    seCdBopAmt->Text=GetFieldValue(fiCdBopAmt);
    scCdChk->Checked=(GetFieldValue(fiCdInitFlg)=="1"?true :false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::SendDataToComObject()
{
   WriteFieldValue(comServer,fiCdFmonth,seCdFmonth->Text);
   WriteFieldValue(comServer,fiCdGoods,seCdGoods->Text);
   WriteFieldValue(comServer,fiCdBopPrice,seCdBopPrice->Text);
   WriteFieldValue(comServer,fiCdBopAmt,seCdBopAmt->Text);
   WriteFieldValue(comServer,fiCdInitFlg,scCdChk->Checked? "1":"0");
}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::WaitUserInput()
{
    seCdBopAmt->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::RefreshGridData(int mAction)
{
    tvCd->Selected->StateIndex=1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::FillTreeWithPmpc()
{

     TTreeNode *TempNode[7];
     int mLevel;
     TComResultSet *RsPmpc=NewResultSet();
     tvCd->Items->Clear();
     RsPmpc->Open("select PmpcCode,PmpcName,PmpcLevel from sdPmpc order by PmpcCode,PmPcLevel","");
     RsPmpc->MoveFirst();
     while( RsPmpc->Eof == 0 )
     {
        mLevel=RsPmpc->FieldByName("PmpcLevel").ToInt();
        if(mLevel==1)
           TempNode[mLevel] = tvCd->Items->Add(NULL,"(" + RsPmpc->FieldByName("PmpcCode") + ")" +RsPmpc->FieldByName("PmpcName"));
        else
           TempNode[mLevel] = tvCd->Items->AddChild(TempNode[mLevel-1],"(" + RsPmpc->FieldByName("PmpcCode") + ")" +RsPmpc->FieldByName("PmpcName"));
        TempNode[mLevel]->StateIndex = 0;
        TempNode[mLevel]->Text= "(" + RsPmpc->FieldByName("PmpcCode") + ")"+RsPmpc->FieldByName("PmpcName");
        RsPmpc->MoveNext();
     }
     RsPmpc->Close();
     delete RsPmpc;
     if (tvCd->Items->Count > 0)
      tvCd->FullCollapse();
}

//---------------------------------------------------------------------------
void __fastcall TfrmCd::FillGridWithData()
{
     FillTreeWithPmpc();
     comServer->MoveFirst();
     TTreeNode *TempNode;
     while (comServer->Eof == 0)
     {
         AnsiString s,m;
        s = GetFieldValue(fiCdPmpcCode);
        for(int i = 0 ; i < tvCd->Items->Count ; i ++)
        {
            m = tvCd->Items->Item[i]->Text;

            m = m.SubString(2,m.AnsiPos(")")-2);
            if(s == m)
            {
                TempNode = tvCd->Items->Item[i];
                break;
            }
        }
        TempNode= tvCd->Items->AddChild(TempNode,"(" + GetFieldValue(fiCdGoods) + ")" +GetFieldValue(fiCdGoodsName));
        if(GetFieldValue(fiCdInitFlg)=="1")
            TempNode->StateIndex = 1;
        else
            TempNode->StateIndex = 2;
        TempNode->Text="(" + GetFieldValue(fiCdGoods) + ")" + GetFieldValue(fiCdGoodsName);
        comServer->MoveNext();
     }

}

//---------------------------------------------------------------------------
void __fastcall TfrmCd::InitEditControl()
{
   ClientGroup->AddComponent(2,true,true,false,Panel1,Panel1->Name);
   ClientGroup->AddComponent(2,false,false,true,FloatPanel1,FloatPanel1->Name);
   ClientGroup->AddComponent(2,true,true,true,Panel2,Panel2->Name);
   ClientGroup->AddComponent(2,true,true,true,scCdChk,scCdChk->Name);
}
//---------------------------------------------------------------------------
 void __fastcall TfrmCd::FormShow(TObject *Sender)
{
    FillGridWithData();
    ClearControl(false);
    comServer->MoveFirst();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::tvCdChange(TObject *Sender,
      TTreeNode *Node)
{
    AnsiString m;
    if(tvCd->Selected->StateIndex==1|| tvCd->Selected->StateIndex==2)
    {
      m = Node->Text;
      m = m.SubString(2,m.AnsiPos(")")-2);
      comServer->LocateByKey(m);
      GetDataFromComObject();
    }
}

//---------------------------------------------------------------------------
void __fastcall TfrmCd::muEditDetailClick(TObject *Sender)
{
   if(tvCd->Selected==NULL||tvCd->Selected->StateIndex==0 )
    {
        ::MessageBox(Handle,"该节点是分类节点,不能初始化.","操作错误",MB_OK|MB_ICONSTOP);
        return;
    }
   if(tvCd->Selected->StateIndex==1 )
    {
        ::MessageBox(Handle,"该物料已初始化.","操作错误",MB_OK|MB_ICONSTOP);
        return;
    }
   TRecBaseForm::muEditDetailClick(Sender);
   scCdChk->Checked=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::TreeViewLocation()
{
    AnsiString s,m;
    s = GetFieldValue(fiCdGoods);
    for(int i = 1 ; i < tvCd->Items->Count ; i ++)
    {
        m = tvCd->Items->Item[i]->Text;
        m = m.SubString(2,m.AnsiPos(")")-2);
        if(m == s)
        {
            tvCd->Selected = tvCd->Items->Item[i];
            break;
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::muFirstClick(TObject *Sender)
{

      TRecBaseForm::muFirstClick(Sender);
      TreeViewLocation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::muPreviousClick(TObject *Sender)
{
      TRecBaseForm::muPreviousClick(Sender);
      TreeViewLocation();

}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::muNextClick(TObject *Sender)
{
      TRecBaseForm::muNextClick(Sender);
      TreeViewLocation();

}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::muLastClick(TObject *Sender)
{
     TRecBaseForm::muLastClick(Sender);
     TreeViewLocation();

}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::seCdBopAmtKeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    double TemQty,TempPrice;
    AnsiString m_BopPrice;
    TemQty=seCdBopQty->Text.ToDouble();
    if(TemQty==0)
      TemQty=1;
    if(seCdBopAmt->Text.IsEmpty())
     TempPrice=0;
    else
     TempPrice=seCdBopAmt->Text.ToDouble();
     m_BopPrice=DataCarry(TempPrice/TemQty,2,0);
     seCdBopPrice->Text=AnsiString(m_BopPrice);

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

⌨️ 快捷键说明

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