rpoh.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 904 行 · 第 1/3 页

CPP
904
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Rpoh.h"
#include "Rpod.h"
#include "KSPurFuc.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
//-------------------------------------------------------------------------------
TfrmRpoh *frmRpoh;
//---------------------------------------------------------------------------
__fastcall TfrmRpoh::TfrmRpoh(TComponent* Owner, HWND chWnd, AnsiString ClassCode,
AnsiString WhereStr)
        : TGenBaseForm(Owner,chWnd,ClassCode,WhereStr)

{
 SetAutoCodeString(seRpohCode,"Acm-001");
}
//---------------------------------------------------------------------------
void __fastcall TfrmRpoh::InitEditControl()
{
    ClientGroup->AddComponent(1,true,true,false,sgRpoh,sgRpoh->Name);
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,true,scRpohSupplyCode,scRpohSupplyCode->Name);
    ClientGroup->AddComponent(1,false,true,true,SupplyCodeButton,SupplyCodeButton->Name);
    ClientGroup->AddComponent(1,false,true,true,seRpohCode,seRpohCode->Name);
    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,true,true,true,GroupBox2,GroupBox2->Name);
    ClientGroup->AddComponent(2,true,true,true,scRpodStatus,scRpodStatus->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,true,true,true,scRpodFrom,scRpodFrom->Name);
    ClientGroup->AddComponent(2,false,false,true,seRpodQty,seRpodQty->Name);
    ClientGroup->AddComponent(2,true,true,true,seRpodAmt,seRpodAmt->Name);
    ClientGroup->AddComponent(2,false,false,true,seRpodGoodsCode,seRpodGoodsCode->Name);
    ClientGroup->AddComponent(2,false,false,true,seRpodUnitCode,seRpodUnitCode->Name);
    //Rpoh
    FillEdit(Handle,seRpohCurrencyCode,"SELECT CurrencyCode,CurrencyName FROM sdCurrency order by CurrencyCode","CurrencyName","CurrencyCode");
    FillComboBox(Handle,scRpohTaxCode,"SELECT TaxCode,TaxName FROM sdTax order by TaxCode","TaxName","TaxCode");
    FillEdit(Handle,seRpohPsiteCode,"SELECT distinct PsiteCode,PsiteName FROM sdPsite Order by PsiteCode","PsiteName","PsiteCode");
    FillComboBox(Handle,scRpohSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by SettleModeCode",
                 "SettleModeName","SettleModeCode");
    FillComboBox(Handle,scRpohSupplyCode,"SELECT SupplyCode,SupplyName,SupplyTaxCode FROM sdSupply  where supplycancel=0  order by SupplyCode",
                 "SupplyName","SupplyCode","SupplyTaxCode","SupplyCode");
    FillComboBox(Handle,scRpohDeliver,"SELECT DeliverCode,DeliverName FROM sdDeliver  order by DeliverCode","DeliverName","DeliverCode");
    FillComboBox(Handle,scRpohTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode order by TransModeCode","TransModeName","TransModeCode");
    FillComboBox(Handle,scRpohBuyerCode,"select UserCode,UserName from sdBuyer,sduser where UserCode=BuyerCode order by UserCode","UserName","UserCode");
    //Rpod
    FillEdit(Handle,seRpodUnitCode,"SELECT UnitCode,UnitName,UnitRate FROM sdUnit order by UnitCode","UnitName","UnitCode","UnitRate");
    FillComboBox(Handle,scRpodDeptCode,"SELECT DeptCode,DeptName FROM sdDept order by DeptCode","DeptName","DeptCode");
    AnsiString sSql;
//    if(g_sdQuality == false) //无需质量管理
    sSql = "select LocCode,LocName from sdLoc where LocType=1 order by locCode";
//    else                    //需要质量管理
//     sSql = "select LocCode,LocName from sdLoc where LocType=3 order by loccode";
    FillEdit(Handle,seRpodLocCode,sSql,"LocName","LocCode");
    scRpodStatus->ClearAll();
    scRpodStatus->AddItems("1-手工","1");
    scRpodStatus->AddItems("2-生成","2");
    scRpodStatus->AddItems("3-完毕","3");
    scRpodFrom->ClearAll();
    scRpodFrom->AddItems("1-常规需求","1");
    scRpodFrom->AddItems("2-MRP需求","2");
    scRpodFrom->AddItems("3-库存需求","3");
}
//---------------------------------------------------------------------------
void __fastcall TfrmRpoh::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (!BringToNext)
       {
           seRpohCode->Text ="";
           scRpohSupplyCode->Text ="";
           scRpohSupplyCode->ItemIndex=-1;
           deRpohDate->Text=g_sdCurDate;
           scRpohBuyerCode->LocateKey(g_sdUserCode);
           scRpohTaxCode->Text = "";
           scRpohTaxCode->ItemIndex=-1;
           scRpohSettleMode->Text = "";
           scRpohSettleMode->ItemIndex=-1;
           seRpohPsiteCode->Text="";
           seRpohPsiteCode->ItemIndex=-1;
           scRpohTransMode->Text="";
           scRpohTransMode->ItemIndex=-1;
           scRpohDeliver->Text="";
           scRpohDeliver->ItemIndex=-1;
           seRpohCurrencyCode->ItemIndex=-1;
           cbxRpohCheck->Checked =false;
           labRpohChecker->Caption   ="";
           cbxRpohCancel->Checked=false;
           cbxRpohClose->Checked=false;
           labRpohSysDate->Caption = "";

           //新增单据,工具栏使能
           SetCheckToolbarStatus(false);
       }
       sgRpoh->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
           seRpodLine->Text =AnsiString(comServer->ItemCount+1);
           seRpodGoodsCode->Text="";
           pv_GoodsCode="";
           labRpodGoodsName->Caption ="";
           GoodsSpec->Caption="";//goodsspec clear
           seRpodUnitCode->Text ="";
           seRpodUnitCode->ItemIndex=-1;
           seRpodConvRate->Text="1";
           labRpodPQty->Caption="0.00";
           seRpodQty->Text="0.00";
           seRpodPrice->Text="0.00";
           seRpodAmt->Text="0.00";
           deRpodRecDate->Text="";
           scRpodFrom->ItemIndex=0;
           scRpodStatus->ItemIndex=0;
           ChkRpodClose->Checked = false;
           seRpodCloseDate->Text="";
           deRpodReqDate->Text="";
           scRpodDeptCode->Text="";
           scRpodDeptCode->ItemIndex=-1;
           seRpodLocCode->Text="";
           seRpodLocCode->ItemIndex=-1;
           memRpodDesc->Text="";
        }
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmRpoh::GetDataFromComObject(int Section)
{
    if (Section==1)
    {
       seRpohCode->Text=GetHeadValue("RpohCode");
       AnsiString s= GetHeadValue("RpohSupplyCode");
       scRpohSupplyCode->LocateKey(GetHeadValue("RpohSupplyCode"));
       AnsiString y = scRpohSupplyCode->Text ;
       deRpohDate->Text=GetHeadValue("RpohDate");
       scRpohBuyerCode->LocateKey(GetHeadValue("RpohBuyerCode"));
       scRpohTaxCode->LocateKey(GetHeadValue("RpohTaxCode"));
       scRpohSettleMode->LocateKey(GetHeadValue("RpohSettleMode"));
       scRpohDeliver->LocateKey(GetHeadValue("RpohDeliver"));
       scRpohTransMode->LocateKey(GetHeadValue("RpohTransMode"));
       seRpohPsiteCode->LocateKey(GetHeadValue("RpohPsite"));
       seRpohCurrencyCode->LocateKey(GetHeadValue("RpohCurrencyCode"));
       labRpohSysDate->Caption =GetHeadValue("RpohSysDate");
       cbxRpohCheck->Checked  =GetHeadValue("RpohCheck")=="1";
       labRpohChecker->Caption=GetHeadValue("RpohChecker");
       cbxRpohCancel->Checked =GetHeadValue("RpohCancel")=="1";
       cbxRpohClose->Checked =GetHeadValue("RpohClose")=="1";
       //根据审核、取消状态,设置工具栏
       if((GetHeadValue("RpohCheck")=="1"))
        SetCheckToolbarStatus(true);
       else
        SetCheckToolbarStatus(false);

      if(GetHeadValue("RpohCancel")=="1")
       SetCancelToolbarStatus(true);
      else
       SetCancelToolbarStatus(false);

      if(GetHeadValue("RpohClose")=="1")
       SetCloseToolbarStatus(true);
      else
       SetCloseToolbarStatus(false);
    }
    else
    {
       seRpodLine->Text=GetDetailValue("RpodLine");
       seRpodGoodsCode->Text = GetDetailValue("RpodGoodsCode");
       labRpodGoodsName->Caption = GetDetailValue("GoodsName");
       GoodsSpec->Caption= GetDetailValue("GoodsSpec");
       SetDetail(seRpodGoodsCode->Text);
       seRpodUnitCode->LocateKey(GetDetailValue("RpodUnitCode"));
       seRpodConvRate->Text=GetDetailValue("RpodConvRate");
       seRpodQty->Text=GetDetailValue("RpodQty");
       seRpodPrice->Text=GetDetailValue("RpodPrice");
       seRpodAmt->Text=GetDetailValue("RpodAmt");
       deRpodRecDate->Text=GetDetailValue("RpodRecDate");
       scRpodFrom->LocateKey(GetDetailValue("RpodFrom"));
       scRpodStatus->LocateKey(GetDetailValue("RpodStatus"));
       ChkRpodClose->Checked=GetDetailValue("RpodClose")=="1";
       seRpodCloseDate->Text=GetDetailValue("RpodCloseDate");
       deRpodReqDate->Text=GetDetailValue("RpodReqDate");
       scRpodDeptCode->LocateKey(GetDetailValue("RpodDept"));
       seRpodLocCode->LocateKey(GetDetailValue("RpodLocCode"));
       labRpodPQty->Caption=GetDetailValue("RpodPQty");
       memRpodDesc->Text=GetDetailValue("RpodDesc");
       if(GetDetailValue("RpodClose")=="1")
        SetCloseItemStatus(true);
       else
        SetCloseItemStatus(false);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmRpoh::SendDataToComObject(int Section)
{
    if (Section==1)
    {
        if(seRpohCode->Text=="")
            throw Exception("请购单单号不能为空");
        if(scRpohSupplyCode->ItemData[cbItem2]=="")
            throw Exception("供应商不能为空");
        if(seRpohCurrencyCode->ItemData[cbItem2]=="")
            throw Exception("币种不能为空");
        if(scRpohTaxCode->ItemData[cbItem2]=="")
            throw Exception("税码不能为空");
        SetHeadValue("RpohCode",seRpohCode->Text );
        SetHeadValue("RpohSupplyCode",scRpohSupplyCode->ItemData[cbItem2]);
        SetHeadValue("RpohDate",deRpohDate->Text);
        SetHeadValue("RpohBuyerCode",scRpohBuyerCode->ItemData[1]);
        SetHeadValue("RpohTaxCode",scRpohTaxCode->ItemData[cbItem2]);
        SetHeadValue("RpohSettleMode",scRpohSettleMode->ItemData[cbItem2]);
        SetHeadValue("RpohPsite",seRpohPsiteCode->ItemData[cbItem2]);
        SetHeadValue("RpohDeliver",scRpohDeliver->ItemData[cbItem2]);
        SetHeadValue("RpohTransMode",scRpohTransMode->ItemData[cbItem2]);
        SetHeadValue("RpohCurrencyCode",seRpohCurrencyCode->ItemData[cbItem2]);
        SetHeadValue("RpohSysDate",TDateTime().CurrentDate().DateString());

    }
    else
    {
        if(seRpodLine->Text == "")
         throw Exception("请输入请购单行号");
        if(seRpodGoodsCode->Text=="")
        throw Exception("请输入物料编码");
        if(seRpodConvRate->Text == "")
         throw Exception("请输入单位转换系数");
        if(seRpodQty->Text=="0.00" )
         throw Exception("请输入请购数量");
        if(seRpodPrice->Text == "0.00")
         throw Exception("请输入请购单价");
        if(int(deRpodRecDate->Date) >int(deRpodReqDate->Date))
          throw Exception("停用日期不能早于启用日期");
         //自动计算行金额
        AutoCalculation();
        //给请购单号(RpodCode)赋值
        //2001.12.23 lu set default value
        SetDetailValue("RpodPQty","0");
        //over
        SetDetailValue("RpodCode",seRpohCode->Text);
        //----------
        SetDetailValue("RpodQty",seRpodQty->Text);
        SetDetailValue("RpodLine",seRpodLine->Text);
        SetDetailValue("RpodGoodsCode",seRpodGoodsCode->Text);
        SetDetailValue("RpodUnitCode",seRpodUnitCode->ItemData[cbItem2]);
        SetDetailValue("RpodConvRate",seRpodConvRate->Text);
        SetDetailValue("RpodPrice",seRpodPrice->Text);
        if(seRpodAmt->Text == "")
         seRpodAmt->Text ="0.00";
        SetDetailValue("RpodAmt",seRpodAmt->Text);
        SetDetailValue("RpodRecDate",deRpodRecDate->Text);
        SetDetailValue("RpodFrom",scRpodFrom->ItemData[cbItem2]);
        SetDetailValue("RpodStatus",scRpodStatus->ItemData[cbItem2]);
        SetDetailValue("RpodReqDate",deRpodReqDate->Text);
        SetDetailValue("RpodDept",scRpodDeptCode->ItemData[cbItem2]);
        SetDetailValue("RpodLocCode",seRpodLocCode->ItemData[cbItem2]);
        SetDetailValue("RpodDesc",memRpodDesc->Text);
        SetDetailValue("GoodsName",labRpodGoodsName->Caption);
        SetDetailValue("GoodsSpec",GoodsSpec->Caption);
        }
}
//---------------------------------------------------------------------------

void __fastcall TfrmRpoh::WaitUserInput(int Section)
{
    if (Section ==1)
    {
     if(seRpohCode->Enabled)
      seRpohCode->SetFocus();
    }
    else
    {
      sgRpoh->Visible=false;
      FloatPanel2->Visible=true;
      pv_GoodsCode=Trim(seRpodGoodsCode->Text);
      SetDetail(Trim(seRpodGoodsCode->Text+"\t"));
      if(scRpodStatus->ItemData[1] == "2")
      {
       seRpodGoodsCode->Enabled=false;
       seRpodUnitCode->Enabled=false;
       seRpodQty->Enabled=false;
       deRpodReqDate->Enabled=false;
      }
      if(seRpodGoodsCode->Enabled)
        seRpodGoodsCode->SetFocus();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmRpoh::RefreshGridData(int mAction)
{
    int i;

⌨️ 快捷键说明

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