📄 cts.cpp
字号:
#pragma link "DateEdit"
#pragma link "SDComboBox"
#include <vcl.h>
#pragma hdrstop
#include "Cts.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmCts *frmCts;
//---------------------------------------------------------------------------
__fastcall TfrmCts::TfrmCts(TComponent* Owner)
: TRecBaseForm(Owner,euSdCts,"")
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmCts::GetFieldValue(int iFieldIndex)
{
AnsiString S;
S=ReadFieldValue(comServer,iFieldIndex);
return S;
}
AnsiString __fastcall TfrmCts::GetDataToGrid()
{
AnsiString s;
s = "\t" +GetFieldValue(fiCtsCode)+
"\t" +GetFieldValue(fiCtsCac)+
"\t" +GetFieldValue(fiCtsTAmt)+
"\t" +GetFieldValue(fiCtsAAmt);
return (s);
}
//------------------------------------------------------------------------------
void __fastcall TfrmCts::InitEditControl()
{
ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
ClientGroup->AddComponent(2,false,false,false, seCtsCode,seCtsCode->Name);
ClientGroup->AddComponent(2,true,true,false, sgCts,sgCts->Name);
FillComboBox(scCtsCac,"select cacbankname+'('+caccode+')' memo,caccode from sdcac order by memo","memo","caccode");
FillComboBox(scCtsUser,"select username memo,usercode from sduser,sdcashier where cashiercode=usercode order by usercode","memo","usercode");
}
//------------------------------------------------------------------------------
void __fastcall TfrmCts::ClearControl(bool BringToNext)
{
if (!BringToNext)
{
seCtsCode->Text = ""; //现金盘点表号
deCtsDate->Text = g_sdCurDate;//日期
scCtsCac->Text = ""; //帐号
scCtsCac->ItemIndex=-1;
seCts100yQty->Text = "0"; //100元数量
seCts50yQty->Text = "0"; //50元数量
seCts20yQty->Text = "0"; //20元数量
seCts10yQty->Text = "0"; //10元数量
seCts5yQty->Text = "0"; //5元数量
seCts2yQty->Text = "0"; //2元数量
seCts1yQty->Text = "0"; //1元数量
seCts5jQty->Text = "0"; //5角数量
seCts2jQty->Text = "0"; //2角数量
seCts1jQty->Text = "0"; //1角数量
seCts5fQty->Text = "0"; //5分数量
seCts2fQty->Text = "0"; //2分数量
seCts1fQty->Text = "0"; //1分数量
seCtsTAmt->Text = "0"; //盘点金额
seCtsAAmt->Text = "0"; //帐面金额
scCtsUser->LocateKey(g_sdUserCode);//操作员
scCtsCac->ItemIndex = -1;
}
}
//------------------------------------------------------------------------------
void __fastcall TfrmCts::WaitUserInput()
{
seCtsCode->SetFocus();
}
//------------------------------------------------------------------------------
void __fastcall TfrmCts::GetDataFromComObject()
{
seCtsCode->Text = GetFieldValue(fiCtsCode); //现金盘点表号
sgCts->LocateGrid(1,GetFieldValue(fiCtsCode));
deCtsDate->Text = GetFieldValue(fiCtsDate); //日期
scCtsCac->LocateKey(GetFieldValue(fiCtsCac)); //帐号
seCts100yQty->Text = GetFieldValue(fiCts100yQty); //100元数量
seCts50yQty->Text = GetFieldValue(fiCts50yQty); //50元数量
seCts20yQty->Text = GetFieldValue(fiCts20yQty); //20元数量
seCts10yQty->Text = GetFieldValue(fiCts10yQty); //10元数量
seCts5yQty->Text = GetFieldValue(fiCts5yQty); //5元数量
seCts2yQty->Text = GetFieldValue(fiCts2yQty); //2元数量
seCts1yQty->Text = GetFieldValue(fiCts1yQty); //1元数量
seCts5jQty->Text = GetFieldValue(fiCts5jQty); //5角数量
seCts2jQty->Text = GetFieldValue(fiCts2jQty); //2角数量
seCts1jQty->Text = GetFieldValue(fiCts1jQty); //1角数量
seCts5fQty->Text = GetFieldValue(fiCts5fQty); //5分数量
seCts2fQty->Text = GetFieldValue(fiCts2fQty); //2分数量
seCts1fQty->Text = GetFieldValue(fiCts1fQty); //1分数量
seCtsTAmt->Text = GetFieldValue(fiCtsTAmt); //盘点金额
seCtsAAmt->Text = GetFieldValue(fiCtsAAmt); //帐面金额
scCtsUser->LocateKey(GetFieldValue(fiCtsUser)); //操作员
}
//------------------------------------------------------------------------------
void __fastcall TfrmCts::SendDataToComObject()
{
//计算实盘金额
AutoCalculation();
WriteFieldValue(comServer,fiCtsCode,seCtsCode->Text); //现金盘点表号
WriteFieldValue(comServer,fiCtsDate,deCtsDate->Text); //日期
WriteFieldValue(comServer,fiCtsCac,scCtsCac->ItemData[1]); //帐号
WriteFieldValue(comServer,fiCts100yQty,seCts100yQty->Text); //100元数量
WriteFieldValue(comServer,fiCts50yQty,seCts50yQty->Text); //50元数量
WriteFieldValue(comServer,fiCts20yQty,seCts20yQty->Text); //20元数量
WriteFieldValue(comServer,fiCts10yQty,seCts10yQty->Text); //10元数量
WriteFieldValue(comServer,fiCts5yQty,seCts5yQty->Text); //5元数量
WriteFieldValue(comServer,fiCts2yQty,seCts2yQty->Text); //2元数量
WriteFieldValue(comServer,fiCts1yQty,seCts1yQty->Text); //1元数量
WriteFieldValue(comServer,fiCts5jQty,seCts5jQty->Text); //5角数量
WriteFieldValue(comServer,fiCts2jQty,seCts2jQty->Text); //2角数量
WriteFieldValue(comServer,fiCts1jQty,seCts1jQty->Text); //1角数量
WriteFieldValue(comServer,fiCts5fQty,seCts5fQty->Text); //5分数量
WriteFieldValue(comServer,fiCts2fQty,seCts2fQty->Text); //2分数量
WriteFieldValue(comServer,fiCts1fQty,seCts1fQty->Text); //1分数量
WriteFieldValue(comServer,fiCtsTAmt,seCtsTAmt->Text); //盘点金额
WriteFieldValue(comServer,fiCtsAAmt,seCtsAAmt->Text); //帐面金额
WriteFieldValue(comServer,fiCtsUser,scCtsUser->ItemData[1]); //操作员
}
//------------------------------------------------------------------------------
void __fastcall TfrmCts::RefreshGridData(int mAction)
{
AnsiString sGridItem;
sGridItem=GetDataToGrid();
int i;
switch(mAction)
{
case 0: //新增
sgCts->AddItem(sGridItem);
break;
case 1: //修改
i = sgCts->Row;
sgCts->ChangeItem(sGridItem,i);
break;
case 2: //删除
sgCts->RemoveItem(sgCts->Row);
} ;
}
//-------------------------------------------------------
void __fastcall TfrmCts::FillGridWithData()
{
AnsiString ItemStr;
comServer->MoveFirst();
sgCts->RowCount = 1;
while (comServer->Eof == 0)
{
ItemStr = GetDataToGrid();
sgCts->AddItem(ItemStr);
comServer->MoveNext();
}
}
void __fastcall TfrmCts::FormShow(TObject *Sender)
{
FillGridWithData();
comServer->MoveFirst();
GetDataFromComObject();
}
//---------------------------------------------------------------------------
//计算实盘金额
void __fastcall TfrmCts::AutoCalculation()
{
double dAccumulate;
dAccumulate=0;
if(seCts100yQty->Text!= "")
dAccumulate+=StrToIntDef(seCts100yQty->Text,0)*100; //100元数量
if(seCts50yQty->Text!= "")
dAccumulate+=StrToIntDef(seCts50yQty->Text,0)*50; //50元数量
if(seCts20yQty->Text!= "")
dAccumulate+=StrToIntDef(seCts20yQty->Text,0)*20; //20元数量
if(seCts10yQty->Text!= "")
dAccumulate+=StrToIntDef(seCts10yQty->Text,0)*10; //10元数量
if(seCts5yQty->Text!= "")
dAccumulate+=StrToIntDef(seCts5yQty->Text,0)*5; //5元数量
if(seCts2yQty->Text!= "")
dAccumulate+=StrToIntDef(seCts2yQty->Text,0)*2; //2元数量
if(seCts1yQty->Text!= "")
dAccumulate+=StrToIntDef(seCts1yQty->Text,0)*1; //1元数量
if(seCts5jQty->Text!= "")
dAccumulate+=StrToIntDef(seCts5jQty->Text,0)*0.5; //5角数量
if(seCts2jQty->Text!= "")
dAccumulate+=StrToIntDef(seCts2jQty->Text,0)*0.2; //2角数量
if(seCts1jQty->Text!= "")
dAccumulate+=StrToIntDef(seCts1jQty->Text,0)*0.1; //1角数量
if(seCts5fQty->Text!= "")
dAccumulate+=StrToIntDef(seCts5fQty->Text,0)*0.05; //5分数量
if(seCts2fQty->Text!= "")
dAccumulate+=StrToIntDef(seCts2fQty->Text,0)*0.02; //2分数量
if(seCts1fQty->Text!= "")
dAccumulate+=StrToIntDef(seCts1fQty->Text,0)*0.01; //1分数量
seCtsTAmt->Text=FloatToStr(dAccumulate);
}
void __fastcall TfrmCts::seCts100yQtyExit(TObject *Sender)
{
AutoCalculation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::sgCtsClick(TObject *Sender)
{
int ARow=sgCts->Row;
if (ARow > 0)
comServer->LocateByKey(sgCts->TextMatrix[ARow][1]);
if (!comServer->Eof)
GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::RefreshUpdateData(int MsgSrc,int MsgType)
{
switch(MsgSrc)
{
case euSdCac:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scCtsCac,"select cacbankname+'('+caccode+')' memo,caccode from sdcac order by memo","memo","caccode");
}
break;
case euSdUser:
if(ShowUpdateMessage(MsgSrc,MsgType))
{
FillComboBox(scCtsUser,"select username memo,usercode from sduser,sdcashier where cashiercode=usercode order by usercode","memo","usercode");
}
break;
default:
break;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::seCtsCodeKeyDown(TObject *Sender, WORD &Key,
TShiftState Shift)
{
if(Key==13 && CurrentState==caNormal)
{
comServer->LocateByKey(seCtsCode->Text);
GetDataFromComObject();
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -