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

📄 tsh.cpp

📁 一个以前收集的基于C/S架构的ERP客户端源代码
💻 CPP
📖 第 1 页 / 共 2 页
字号:
void __fastcall TfrmTsh::FormCreate(TObject *Sender)
{
//    FormIniFile="D:\Test.Ini";
//    SetGridWidth(Name,sgTsd,FormIniFile);
}
//---------------------------------------------------------------------------
void __fastcall TfrmTsh::FormClose(TObject *Sender,
      TCloseAction &Action)
{
    TGenBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmTsh::FormShow(TObject *Sender)
{
    ClearControl(1,false);
    ClearControl(2,false);
    TGenBaseForm::MoveToFirst();
    ChangeToBrowseState();
}
//---------------------------------------------------------------------------

void __fastcall TfrmTsh::sgTsdDblClick(TObject *Sender)
{
    int iRow;
    iRow=sgTsd->Row;
    if (iRow == 0)
    {
       return;
    }
    sgTsd->Visible=false;
    FloatPanel2->Visible=true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmTsh::ChangeToBrowseState(bool Browse)
{
     FloatPanel2->Visible=false;
     sgTsd->Visible=true;
     if(Browse==false)
      sgTsd->SetFocus();
}
//---------------------------------------------------------------------------

void __fastcall TfrmTsh::btnOKClick(TObject *Sender)
{
  try
  {
    if (CurrentState==caAddDetail||CurrentState==caAddBill)
    {
      SendDataToComObject(2);
      comServer->AddToObject();
      if(DetailState==caAddDetail)
        comServer->AddItem();
      ClearControl(2,false);
      scTsdLoc->SetFocus();
    }
    else
      ChangeToBrowseState();
  }
  catch(Exception &e)
  {
   throw Exception(e.Message);
  }
}
//---------------------------------------------------------------------------

void __fastcall TfrmTsh::btnCancelClick(TObject *Sender)
{
    CancelChange();
}
//---------------------------------------------------------------------------

void __fastcall TfrmTsh::BackDisp()
{
  try
  {
    double dTQty,dTPrice,dTAmt,dAQty,dDQty;
    dTQty=StrToFloat(seTsdTQty->Text);
    dTAmt=StrToFloat(seTsdTAmt->Text);
    dAQty=StrToFloat(seTsdAQty->Text);
    if(dTQty < 0 || dTAmt < 0)
     throw Exception("实盘数量、金额不能小于0");
    if(dTQty == 0)
     dTPrice=0;
    else
     dTPrice=DataCarry(dTAmt/dTQty,2,0);
    seTsdTPrice->Text   =FloatToStr(dTPrice);
    if(dTQty > dAQty) //盘盈
    {
     chkTsdFlg1->Checked=true;
     chkTsdFlg2->Checked=false;
     dDQty=dTQty-dAQty;
    }
    else if(dTQty == dAQty) //盘平
    {
     chkTsdFlg1->Checked=false;
     chkTsdFlg2->Checked=false;
     dDQty=0;
    }
    else //盘亏
    {
     chkTsdFlg1->Checked=false;
     chkTsdFlg2->Checked=true;
     dDQty=dAQty-dTQty;
    }
    seTsdDQty->Text     =FloatToStr(dDQty);
    seTsdIOQty->Text    ="0";
  }
  catch(Exception &e)
  {
   throw Exception("数值计算错误:"+e.Message);
  }
}
//---------------------------------------------------------------------------

void __fastcall TfrmTsh::seTsdTQtyExit(TObject *Sender)
{
  BackDisp();
}
//---------------------------------------------------------------------------

void __fastcall TfrmTsh::seTsdGoodsButtonClick(TObject *Sender)
{
  AnsiString SqlStr;
  double dQty,dPrice,dAmt;
  if(scTsdLoc->ItemData[1] == "")
   return;
  SqlStr="008[物料编码][物料名称][计量单位][多计量单位][批次管理][订单管理][库存数量][单价]";
  SqlStr+=" select GoodsCode,GoodsName,GoodsUnitCode,GoodsMUnit,GoodsBatch,GoodsTrackSo,MaccAoyQty,CdNopPrice ";
  SqlStr+=" from sdgoods,sdLg,sdMacc,sdCd ";
  SqlStr+=" where MaccLoc=LgLocCode and MaccGoods=GoodsCode and MaccInitFlg=1 and maccfmonth=cdfmonth and maccgoods=cdgoods and ";
  SqlStr+=" LgGoodsCode=goodscode and lgstate=1 ";
  SqlStr+=" and LgLocCode = '"+scTsdLoc->ItemData[1]+"' order by GoodsCode";
  TfrmWnQuery *p;
  try
  {
    StartWaitForm("正在查询,请稍候...");
    p=new TfrmWnQuery(this,"货位物料查询",SqlStr);
  }
  __finally
  {
    EndWaitForm();
  }
  if(p->ShowModal()==mrOk)
  {
    seTsdGoods->Text=p->ColData[1];
    seTsdAQty->Text=p->ColData[7];
    dQty=StrToFloat(p->ColData[7]);
    seTsdAPrice->Text=p->ColData[8];
    dPrice=StrToFloat(p->ColData[8]);
    dAmt=DataCarry(dQty*dPrice,2,0);
    seTsdAAmt->Text=FloatToStr(dAmt);
    SetDetail(seTsdGoods->Text);
  }
  delete p;
}
//---------------------------------------------------------------------------


void __fastcall TfrmTsh::seTsdGoodsExit(TObject *Sender)
{
 SetDetail(Trim(seTsdGoods->Text));
}
//---------------------------------------------------------------------------
void __fastcall TfrmTsh::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
  switch(MsgSrc)
  {
   case euSdFc:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(Handle,scTshFmonth,"Select FcMonth from sdFc order by fcmonth","FcMonth");
    }
    break;
   case euSdDept:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(Handle,scTshDept,"select DeptName memo,DeptCode from sdDept where DeptEnd=1 order by deptcode","memo","DeptCode");
    }
    break;
   case euSdPosType:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(Handle,scTshPosType,"select postypename memo,postypecode from sdPosType where PosTypeFlg=6 order by PosTypeCode","memo","PosTypeCode");
    }
    break;
   case euSdKeeper:
    if(ShowUpdateMessage(MsgSrc,MsgType))
     FillComboBox(Handle,scTshKeeper,"select UserCode,UserName from sdKeeper,sduser where UserCode=KeeperCode order by UserCode","UserName","UserCode");
    break;
   case euSdUnit:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(Handle,scTsdUnit,"select unitname memo,unitcode from sdunit order by UnitCode","memo","UnitCode");
    }
    break;
   case euSdBatch:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(Handle,scTsdBatch,"Select BatchCode from sdBatch order by BatchCode","BatchCode");
    }
    break;
   case euSdLoc:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(Handle,scTsdLoc,"select locname memo,loccode from sdloc order by LocCode","memo","LocCode");
    }
    break;
   default:
    break;
  }
*/
}
//---------------------------------------------------------------------------



void __fastcall TfrmTsh::seTsdTAmtExit(TObject *Sender)
{
  BackDisp();
}
//---------------------------------------------------------------------------
void __fastcall TfrmTsh::SetDetail(AnsiString gc)
{
  try
  {

     if(!InitRsGoods(WideString(gc)))
    {
     seTsdGoods->Text=pv_GoodsCode;
     return;
    }
    seTsdGoods->Text=GetGoodsValue(gtInitRs,"GoodsCode");
    pv_GoodsCode=GetGoodsValue(gtInitRs,"GoodsCode");
    labTsdGoodsName->Caption=GetGoodsValue(gtInitRs,"GoodsName");
    labTsdGoodsSpec->Caption=GetGoodsValue(gtInitRs,"GoodsSpec");
    scTsdUnit->LocateKey(GetGoodsValue(gtInitRs,"GoodsUnitCode"));
    if(GetGoodsValue(gtInitRs,"GoodsTrackSo")=="0")
    {//该物料不跟踪订单,则锁定销售单号和行号
      seTsdSod->Enabled=false;
      seTsdSodLine->Enabled=false;
      seTsdSod->Text="";
      seTsdSodLine->ItemIndex=-1;
    }
    else
    {
      seTsdSod->Enabled=true;
      seTsdSodLine->Enabled=true;
    }
    if(GetGoodsValue(gtInitRs,"GoodsBatch")=="0")
    {//该物料不采用批次管理,则锁定批号
      scTsdBatch->Enabled=false;
      scTsdBatch->ItemIndex=-1;
    }
    else
    {
      scTsdBatch->Enabled=true;
    }
    BackDisp();
   }
   catch(Exception &e)
   {
    throw Exception(e.Message);
   }
}

void __fastcall TfrmTsh::seTsdSodButtonClick(TObject *Sender)
{
  AnsiString SqlStr;
  SqlStr="005[订单号][订单行号][客户名称][物料编码][物料名称]select sohcode,sodline,ClientName,sodgoods,goodsname from sdsoh,sdclient,sdsod,sdgoods";
  SqlStr+=" where sohcheck=1 and sohclient=clientcode  and sohcode=sodcode and sodgoods=goodscode and sodgoods='"+seTsdGoods->Text+"' order by sohcode";
  TfrmWnQuery *p;
  try
  {
    StartWaitForm("正在查询,请稍候...");
    p=new TfrmWnQuery(this,"订单查询",SqlStr);
  }
  __finally
  {
    EndWaitForm();
  }
  if(p->ShowModal()==mrOk)
  {
    seTsdSod->Text=p->ColData[1];
    seTsdSodLine->Text=p->ColData[2];
  }
  delete p;
}
//---------------------------------------------------------------------------

void __fastcall TfrmTsh::scTsdLocChange(TObject *Sender)
{
 seTsdGoods->Text="";
}
//---------------------------------------------------------------------------

void __fastcall TfrmTsh::seTshCodeExit(TObject *Sender)
{
    if(CurrentState==caNormal && seTshCode->Text != GetHeadValue("TshCode"))
    {
      comServer->LocateByKey(WideString(seTshCode->Text));
      DisplayBill();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmTsh::GenrateBill()
{
    int TempCount;
    TempCount = comServer->ItemCount;
    StartWaitForm("正在启动生成界面");
    TfrmTsd *p=new TfrmTsd(this);
    try
    {
      p->GetComObject(comServer);
      EndWaitForm();
      p->ShowModal();
      if (TempCount < comServer->ItemCount)
        TGenBaseForm::SaveRecord();
      else
        CancelChange();
    }
    __finally
    {
      ;//delete p;
    }
}
//---------------------------------------------------------------------------


void __fastcall TfrmTsh::tbGenDetailClick(TObject *Sender)
{
  AnsiString m_Sql;
  TComResultSet *pRst;
  if(CurrentState == caNormal)
  {
   try
   {
     m_Sql=" select parametervalue from sdparameter where parametercode='10508' ";
     pRst=new  TComResultSet(Handle,g_ClientHandle);
     try
     {
      pRst->Open(m_Sql,"");
      if(pRst->RecordCount<1)
      {
        CancelRecord();
        throw Exception("系统库存状态参数被破坏");
      }
      pRst->MoveFirst();
      m_InvState = pRst->FieldByName("parametervalue");
      if(m_InvState!="2")
      {
        if(Application->MessageBox("系统尚未进入盘点状态,是否自动进入盘点状态?","确认盘点对话框",+MB_ICONQUESTION+MB_OKCANCEL)==IDOK)
        {
          m_Sql="update sdparameter set parametervalue='2' where ParameterCode='10508'";
          pRst->Execute(m_Sql);
        }
        else
        {
          delete pRst;
          return;
        }
      }
     }
     catch(Exception &e)
     {
      throw Exception(e.Message);
     }
   }
   __finally
   {
     delete pRst;
   }
  }
  TGenBaseForm::tbGenDetailClick(Sender);
}
//---------------------------------------------------------------------------
bool __fastcall TfrmTsh::BeforeCheck()
{
    SetHeadValue("TshCheck","1");
    SetHeadValue("TshChecker",g_sdUserCode);
    SetHeadValue("TshCheckDate",g_sdCurDate);
    return true;
}
//---------------------------------------------------------------------------
bool __fastcall TfrmTsh::BeforeUnCheck()
{
    SetHeadValue("TshCheck","0");
    SetHeadValue("TshChecker","");
    SetHeadValue("TshCheckDate",g_sdCurDate);
    return true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmTsh::sgTsdClick(TObject *Sender)
{
   if (sgTsd->Row == 0)
    {
       return;
    }
    comServer->LocateItemByKey(GetHeadValue("TshCode")+"\t"+sgTsd->TextMatrix[sgTsd->Row][1]+"\t");
    GetDataFromComObject(2);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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