📄 cd.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 + -