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

📄 cts.cpp

📁 速达开源ERP系统
💻 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 + -