cd.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 228 行

CPP
228
字号
//---------------------------------------------------------------------------

#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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
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("CdFmonth");
    seCdGoods->Text=GetFieldValue("CdGoods");
    seCdGoodsName->Text=GetFieldValue("CdGoodsName");
    seCdBopPrice->Text=GetFieldValue("CdBopPrice");
    seCdBopQty->Text=GetFieldValue("CdBopQty");
    seCdBopAmt->Text=GetFieldValue("CdBopAmt");
    scCdChk->Checked=(GetFieldValue("CdInitFlg")=="1"?true :false);
}
//---------------------------------------------------------------------------
void __fastcall TfrmCd::SendDataToComObject()
{
   SetFieldValue("CdFmonth",seCdFmonth->Text);
   SetFieldValue("CdGoods",seCdGoods->Text);
   SetFieldValue("CdBopPrice",seCdBopPrice->Text);
   SetFieldValue("CdBopAmt",seCdBopAmt->Text);
   SetFieldValue("CdInitFlg",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=new  TComResultSet(Handle,g_ClientHandle);
     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("CdPmpcCode");
        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("CdGoods") + ")" +GetFieldValue("CdGoodsName"));
        if(GetFieldValue("CdInitFlg")=="1")
            TempNode->StateIndex = 1;
        else
            TempNode->StateIndex = 2;
        TempNode->Text="(" + GetFieldValue("CdGoods") + ")" + GetFieldValue("CdGoodsName");
        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("CdGoods");
    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 l_BopPrice;
    TemQty=seCdBopQty->Text.ToDouble();
    if(TemQty==0)
      TemQty=1;
    if(seCdBopAmt->Text.IsEmpty())
     TempPrice=0;
    else
     TempPrice=seCdBopAmt->Text.ToDouble();
     l_BopPrice=DataCarry(TempPrice/TemQty,2,0);
     seCdBopPrice->Text=AnsiString(l_BopPrice);

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

⌨️ 快捷键说明

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