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

📄 cts.cpp

📁 科思ERP部分源码及控件
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Cts.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma link "DateEdit"
#pragma link "SDComboBox"
#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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmCts::GetDataToGrid()
{
    AnsiString ItemStr;
    ItemStr = GetFieldValue("CtsCode")+
         "\t" +GetFieldValue("CtsCac")+
         "\t" +GetFieldValue("CtsAAmt")+
         "\t" +GetFieldValue("CtsTAmt");
    return (ItemStr);
}
//---------------------------------------------------------------------------
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,true,seCtsAAmt,seCtsAAmt->Name);
    ClientGroup->AddComponent(2,true,true,false,sgCts,sgCts->Name);
    FillComboBox(Handle,scCtsCac,"select memo=CacCode+space(2)+GlkmName,CacCode from sdcac,sdGlkm where CacGlkm=GlkmCode order by CacCode",
                 "memo","CacCode");
    FillComboBox(Handle,scCtsUser,"select UserName,UserCode from sdUser,sdCashier where CashierCode=UserCode order by UserCode",
                 "UserName","UserCode");
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
    AnsiString KeyCode;
    switch(MsgSrc)
    {
      case euSdCac:
        if(ShowUpdateMessage(MsgSrc,MsgType))
        {
          KeyCode=scCtsCac->ItemData[1];
          FillComboBox(Handle,scCtsCac,"select memo=CacCode+space(2)+GlkmName,CacCode from sdCac,sdGlkm where CacGlkm=GlkmCode order by CacCode",
                 "memo","CacCode");
          scCtsCac->LocateKey(KeyCode);
        }
        break;
      case euSdUser:
        if(ShowUpdateMessage(MsgSrc,MsgType))
        {
          KeyCode=scCtsUser->ItemData[1];
          FillComboBox(Handle,scCtsUser,"select UserName,UserCode from sdUser,sdCashier where CashierCode=UserCode order by UserCode",
                 "UserName","UserCode");
          scCtsUser->LocateKey(KeyCode);
        }
        break;
      default:
        break;
    }
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      seCtsCode->Text = "";
      deCtsDate->Text = g_sdCurDate;
      scCtsCac->ItemIndex=-1;
      seCtsAAmt->Text    = "0";   //帐面金额
      seCtsTAmt->Text    = "0";   //盘点金额
      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分数量
      scCtsUser->LocateKey(g_sdUserCode);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::WaitUserInput()
{
    seCtsCode->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::GetDataFromComObject()
{
    seCtsCode->Text = GetFieldValue("CtsCode");
    sgCts->LocateGrid(0,seCtsCode->Text);
    deCtsDate->Text = GetFieldValue("CtsDate");
    scCtsCac->LocateKey(GetFieldValue("CtsCac"));
    seCtsAAmt->Text   = GetFieldValue("CtsAAmt");
    seCtsTAmt->Text   = GetFieldValue("CtsTAmt");
    seCts100yQty->Text= GetFieldValue("Cts100yQty");
    seCts50yQty->Text = GetFieldValue("Cts50yQty");
    seCts20yQty->Text = GetFieldValue("Cts20yQty");
    seCts10yQty->Text = GetFieldValue("Cts10yQty");
    seCts5yQty->Text  = GetFieldValue("Cts5yQty");
    seCts2yQty->Text  = GetFieldValue("Cts2yQty");
    seCts1yQty->Text  = GetFieldValue("Cts1yQty");
    seCts5jQty->Text  = GetFieldValue("Cts5jQty");
    seCts2jQty->Text  = GetFieldValue("Cts2jQty");
    seCts1jQty->Text  = GetFieldValue("Cts1jQty");
    seCts5fQty->Text  = GetFieldValue("Cts5fQty");
    seCts2fQty->Text  = GetFieldValue("Cts2fQty");
    seCts1fQty->Text  = GetFieldValue("Cts1fQty");
    scCtsUser->LocateKey(GetFieldValue("CtsUser"));
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::SendDataToComObject()
{
    AutoCalculation();
    SetFieldValue("CtsCode",seCtsCode->Text);
    SetFieldValue("CtsDate",deCtsDate->Text);
    SetFieldValue("CtsCac",scCtsCac->ItemData[1]);

    SetFieldValue("CtsAAmt",seCtsAAmt->Text);          //帐面金额
    SetFieldValue("CtsTAmt",seCtsTAmt->Text);          //盘点金额

    SetFieldValue("Cts100yQty",seCts100yQty->Text);    //100元数量
    SetFieldValue("Cts50yQty",seCts50yQty->Text);      //50元数量
    SetFieldValue("Cts20yQty",seCts20yQty->Text);      //20元数量
    SetFieldValue("Cts10yQty",seCts10yQty->Text);      //10元数量
    SetFieldValue("Cts5yQty",seCts5yQty->Text);        //5元数量
    SetFieldValue("Cts2yQty",seCts2yQty->Text);        //2元数量
    SetFieldValue("Cts1yQty",seCts1yQty->Text);        //1元数量
    SetFieldValue("Cts5jQty",seCts5jQty->Text);        //5角数量
    SetFieldValue("Cts2jQty",seCts2jQty->Text);        //2角数量
    SetFieldValue("Cts1jQty",seCts1jQty->Text);        //1角数量
    SetFieldValue("Cts5fQty",seCts5fQty->Text);        //5分数量
    SetFieldValue("Cts2fQty",seCts2fQty->Text);        //2分数量
    SetFieldValue("Cts1fQty",seCts1fQty->Text);        //1分数量
    SetFieldValue("CtsUser",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 CountAmt;
    CountAmt=0;
    if(seCts100yQty->Text!= "")
      CountAmt+=StrToIntDef(seCts100yQty->Text,0)*100;
    if(seCts50yQty->Text!= "")
      CountAmt+=StrToIntDef(seCts50yQty->Text,0)*50;
    if(seCts20yQty->Text!= "")
      CountAmt+=StrToIntDef(seCts20yQty->Text,0)*20;
    if(seCts10yQty->Text!= "")
      CountAmt+=StrToIntDef(seCts10yQty->Text,0)*10;
    if(seCts5yQty->Text!= "")
      CountAmt+=StrToIntDef(seCts5yQty->Text,0)*5;
    if(seCts2yQty->Text!= "")
      CountAmt+=StrToIntDef(seCts2yQty->Text,0)*2;
    if(seCts1yQty->Text!= "")
      CountAmt+=StrToIntDef(seCts1yQty->Text,0)*1;
    if(seCts5jQty->Text!= "")
      CountAmt+=StrToIntDef(seCts5jQty->Text,0)*0.5;
    if(seCts2jQty->Text!= "")
      CountAmt+=StrToIntDef(seCts2jQty->Text,0)*0.2;
    if(seCts1jQty->Text!= "")
      CountAmt+=StrToIntDef(seCts1jQty->Text,0)*0.1;
    if(seCts5fQty->Text!= "")
      CountAmt+=StrToIntDef(seCts5fQty->Text,0)*0.05;
    if(seCts2fQty->Text!= "")
      CountAmt+=StrToIntDef(seCts2fQty->Text,0)*0.02;
    if(seCts1fQty->Text!= "")
      CountAmt+=StrToIntDef(seCts1fQty->Text,0)*0.01;
    seCtsTAmt->Text=FloatToStr(CountAmt);
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::sgCtsClick(TObject *Sender)
{
    int ARow;
    ARow=sgCts->Row;
    if(ARow > 0)
      comServer->LocateByKey(sgCts->TextMatrix[ARow][0]);
    if(!comServer->Eof)
      GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::seCtsCodeKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    if(Key==13 && CurrentState==caNormal)
    {
      comServer->LocateByKey(seCtsCode->Text);
      GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::seCts100yQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts100yQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::seCts50yQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts50yQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::seCts20yQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts20yQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::seCts10yQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts10yQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------
void __fastcall TfrmCts::seCts5yQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts5yQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------

void __fastcall TfrmCts::seCts2yQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts2yQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------

void __fastcall TfrmCts::seCts1yQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts1yQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------

void __fastcall TfrmCts::seCts5jQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts5jQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------

void __fastcall TfrmCts::seCts2jQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts2jQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------

void __fastcall TfrmCts::seCts1jQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts1jQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------

void __fastcall TfrmCts::seCts5fQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts5fQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------

void __fastcall TfrmCts::seCts2fQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts2fQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------

void __fastcall TfrmCts::seCts1fQtyExit(TObject *Sender)
{
    if(CurrentState==caNormal || Trim(seCts1fQty->Text)=="0")
      return;
    AutoCalculation();
}
//---------------------------------------------------------------------------

void __fastcall TfrmCts::scCtsCacClick(TObject *Sender)
{
    if(!CurrentState==caNormal)
    {
       AnsiString tCacCode;
       tCacCode=scCtsCac->ItemData[1];
       if(!tCacCode.IsEmpty())
       {
          TComResultSet *RstCac;
          RstCac=new  TComResultSet(Handle,g_ClientHandle);
          RstCac->Open("select CacBalance from sdCac where CacCode='"+tCacCode+"' order by CacCode","");
          RstCac->MoveFirst();
          if(!RstCac->Eof)
            seCtsAAmt->Text=RstCac->FieldByName("CacBalance");
          RstCac->Close();
          delete RstCac;
       }
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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