poh.cpp

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

CPP
1,098
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "KSPurFuc.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#include "Poh.h"
#include "Pod.h"
#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"
//-------------------------------------------------------------------------------
TfrmPoh *frmPoh;
//---------------------------------------------------------------------------
__fastcall TfrmPoh::TfrmPoh(TComponent* Owner, HWND chWnd, AnsiString ClassCode,AnsiString WhereStr)
    : TGenBaseForm(Owner,chWnd,ClassCode,WhereStr)
{
  SetAutoCodeString(sePohCode,"Acm-004");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,false,sePohCode,sePohCode->Name);
    ClientGroup->AddComponent(1,false,true,true,scPohSupply,scPohSupply->Name);
    ClientGroup->AddComponent(1,false,false,true,scPohTaxCode,scPohTaxCode->Name);
    ClientGroup->AddComponent(1,false,true,true,SupplyCodeButton,SupplyCodeButton->Name);
    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,true,true,true,chkPodClose,chkPodClose->Name);
    ClientGroup->AddComponent(2,true,true,true,scPodStatus,scPodStatus->Name);
    ClientGroup->AddComponent(2,true,true,true,scPodType,scPodType->Name);
    ClientGroup->AddComponent(2,false,true,true,sePodGoods,sePodGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,scPodFrom,scPodFrom->Name);
    ClientGroup->AddComponent(2,true,true,true,sePodAmt,sePodAmt->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
    ClientGroup->AddComponent(2,true,true,true,sePodFromCode,sePodFromCode->Name);
    ClientGroup->AddComponent(2,true,true,true,sePodFromLine,sePodFromLine->Name);
    ClientGroup->AddComponent(2,true,true,true,sePodSodLine,sePodSodLine->Name);
    //poh
     FillComboBox(Handle,scPohPmode,"SELECT PmodeCode,PmodeName FROM sdPmode order by PmodeCode","PmodeName","PmodeCode");
     FillComboBox(Handle,scPohTaxCode,"SELECT TaxCode,TaxName FROM sdTax order by TaxCode","TaxName","TaxCode");
     FillComboBox(Handle,scPohSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by SettleModeCode","SettleModeName","SettleModeCode");

     FillComboBox(Handle,scPohSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo FROM sdSupply  where supplycancel=0  order by SupplyCode",
                 "SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo");
     FillComboBox(Handle,scPohTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode Order by TransModeCode","TransModeName","TransModeCode");
     FillComboBox(Handle,scPohDeliver,"SELECT DeliverCode,DeliverName FROM sdDeliver Order by DeliverCode","DeliverName","DeliverCode");
    FillEdit(Handle,sePohPsite,"SELECT distinct PsiteCode,PsiteName FROM sdPsite Order by PsiteCode","PsiteName","PsiteCode");
    AnsiString sSql;
    sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
    sSql+=" where currencycode*=ratecurrency and ";
    sSql+=" ratefmonth='"+g_sdPMonth+"'";
    FillEdit(Handle,sePohCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
     FillComboBox(Handle,scPohBuyer,"select UserCode,UserName from sdBuyer,sduser where UserCode=BuyerCode order by UserCode","UserName","UserCode");

    //pod
    FillEdit(Handle,sePodUnit,"SELECT UnitName memo,UnitCode,UnitRate FROM sdUnit Order by UnitCode","Memo","UnitCode","UnitRate");
     FillComboBox(Handle,scPodDept,"select deptname memo,deptcode from sddept order by deptCode","Memo","DeptCode");
     FillComboBox(Handle,scPodBatch,"SELECT BatchCode FROM sdBatch Order by BatchCode","BatchCode");
    FillEdit(Handle,sePodLoc,"SELECT LocName,LocCode FROM sdLoc where LocType=1 Order by LocCode","LocName","LocCode");

    scPodType->ClearAll();
    scPodType->AddItems("1-手工录入","1");
    scPodType->AddItems("2-系统生成","2");

    scPodFrom->ClearAll();
    scPodFrom->AddItems("1-常规需求","1");
    scPodFrom->AddItems("2-MRP需求","2");
    scPodFrom->AddItems("3-库存需求","3");

    scPodStatus->ClearAll();
    scPodStatus->AddItems("1-待审核","1");
    scPodStatus->AddItems("2-已确认","2");
    scPodStatus->AddItems("3-已下达","3");
    scPodStatus->AddItems("4-已关闭","4");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
         sePohCode->Text ="";
         dePohDate->Text = g_sdCurDate;
         scPohPmode->Text ="";
         scPohPmode->ItemIndex=-1;
         sePohContract->Text ="";
         scPohSupply->ItemIndex=-1;
         scPohSettleMode->Text = "";
         scPohSettleMode->ItemIndex=-1;
         scPohDeliver->Text="";
         scPohDeliver->ItemIndex=-1;
         sePohPsite->ItemIndex=-1;
         chkPohClose->Checked=false;
         scPohTransMode->Text="";
         scPohTransMode->ItemIndex=-1;
         chkPohStop->Checked=false;
         scPohBuyer->LocateKey(g_sdUserCode);
         dePohSugDate->Text=g_sdCurDate ;
         sePohCurrency->ItemIndex=-1;
         sePohEnrate->Text ="1.00";
         scPohTaxCode->Text = "";
         scPohTaxCode->ItemIndex=-1;
         sePohPrePayAmt->Text="0.00";
         sePohPayTerm->Text ="0";
         sePohCarriage->Text="0.00";
         labPohUser->Caption=g_sdUserCode;
         chkPohCheck->Checked=false;
         labPohChecker->Caption="";
         chkPohCancel->Checked=false;
         labPohCanceler->Caption="";
         memPohDesc->Text="";
         //新增单据,工具栏使能
         SetCheckToolbarStatus(false);

       }
       sgPoh->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
            sePodLine->Text =AnsiString(comServer->ItemCount+1);
            sePodGoods->Text="";
            pv_GoodsCode="";
            sePodGoodsName->Text ="";
            sePodUnit->ItemIndex=-1;
            sePodConvRate->Text="1";
            sePodPrice->Text="0.00";
            sePodQty->Text="0.00";
            sePodAmt->Text="0.00";

            labPodDQty->Caption="0.00";
            labPodRQty->Caption="0.00";
            labPodBQty->Caption="0.00";
            labPodFQty->Caption="0.00";
            labPodEQty->Caption="0.00";
            labPodWQty->Caption="0.00";

            dePodRecDate->Text=g_sdCurDate;
            scPodType->ItemIndex=0;
            scPodFrom->ItemIndex=0;
            scPodStatus->ItemIndex=0;
            sePodFromCode->Text="";
            sePodFromLine->Text="0";
            chkPodClose->Checked = false;

            dePodReqDate->Text=g_sdCurDate;
            dePodSendDate->Text=g_sdCurDate;
            scPodDept->Text="";
            scPodDept->ItemIndex=-1;
            sePodLoc->ItemIndex=-1;
            scPodBatch->Text="";
            scPodBatch->ItemIndex=-1;
            sePodSo->Text="";
            sePodSodLine->Text="";
            memPodDesc->Text="";
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPoh::GetDataFromComObject(int Section)
{
    if (Section==1)
    {
        sePohCode->Text=GetHeadValue("PohCode");
        dePohDate->Text=GetHeadValue("PohDate");
        scPohPmode->LocateKey(GetHeadValue("PohPmode"));
        scPohPmode->Text=scPohPmode->ItemData[cbItem1];
        sePohContract->Text=GetHeadValue("PohContract");
        scPohSupply->LocateKey(GetHeadValue("PohSupply"));
        scPohSupplyClick(this);
        sePohCurrency->LocateKey(GetHeadValue("PohCurrency"));
        scPohSettleMode->LocateKey(GetHeadValue("PohSettleMode"));
        scPohDeliver->LocateKey(GetHeadValue("PohDeliver"));
        scPohTransMode->LocateKey(GetHeadValue("PohTransMode"));
        sePohPsite->LocateKey(GetHeadValue("PohPsite"));

        chkPohClose->Checked=GetHeadValue("PohClose")=="1";
        chkPohStop->Checked=GetHeadValue("PohStop")=="1";

        labPohUser->Caption=GetHeadValue("PohUser");
        dePohSugDate->Text =GetHeadValue("PohSugDate");

        scPohBuyer->LocateKey(GetHeadValue("PohBuyer"));

        sePohEnrate->Text=GetHeadValue("PohEnrate");

        scPohTaxCode->LocateKey(GetHeadValue("PohTaxCode"));

        sePohPrePayAmt->Text=GetHeadValue("PohPrePayAmt");
        sePohPayTerm->Text=GetHeadValue("PohPayTerm");
        sePohCarriage->Text=GetHeadValue("PohCarriage");

        chkPohCheck->Checked=GetHeadValue("PohCheck")=="1";
        labPohChecker->Caption=GetHeadValue("PohChecker");
        chkPohCancel->Checked=GetHeadValue("PohCancel")=="1";
        labPohCanceler->Caption=GetHeadValue("PohCanceler");
        chkPohStop->Checked=GetHeadValue("PohStop")=="1";
        chkPohClose->Checked=GetHeadValue("PohClose")=="1";
        memPohDesc->Text=GetHeadValue("PohDesc");
        //根据审核、取消状态,设置工具栏
        if(GetHeadValue("PohCheck")=="1")
         SetCheckToolbarStatus(true);
        else
         SetCheckToolbarStatus(false);
        if(GetHeadValue("PohCancel")=="1")
         SetCancelToolbarStatus(true);
        else
         SetCancelToolbarStatus(false);
        //根据结清状态,设置工具栏
        if(GetHeadValue("PohClose")=="1")
         SetCloseToolbarStatus(true);
        else
         SetCloseToolbarStatus(false);
    }
    else
    {
        sePodLine->Text=GetDetailValue("PodLine");
        sePodGoods->Text =GetDetailValue("PodGoods");
        sePodGoodsName->Text = GetDetailValue("GoodsName");
        GoodsSpec->Text =  GetDetailValue("Goodsspec");
        sePodUnit->LocateKey(GetDetailValue("PodUnit"));
        sePodConvRate->Text=GetDetailValue("PodConvRate");
        sePodQty->Text=GetDetailValue("PodQty");
        sePodPrice->Text=GetDetailValue("PodPrice");
        sePodAmt->Text=GetDetailValue("PodAmt");
        dePodRecDate->Text=GetDetailValue("PodRecDate");
        scPodType->LocateKey(GetDetailValue("PodType"));
        scPodFrom->LocateKey(GetDetailValue("PodFrom"));
        scPodStatus->LocateKey(GetDetailValue("PodStatus"));
        sePodFromCode->Text=(GetDetailValue("PodFromCode"));
        sePodFromLine->Text=(GetDetailValue("PodFromLine"));
        chkPodClose->Checked=GetDetailValue("PodClose")=="1";
        dePodReqDate->Text=GetDetailValue("PodReqDate");
        dePodSendDate->Text=GetDetailValue("PodSendDate");
        scPodDept->LocateKey(GetDetailValue("PodDept"));
        sePodLoc->LocateKey(GetDetailValue("PodLoc"));
        scPodBatch->LocateKey(GetDetailValue("PodBatch"));
        sePodSo->Text=GetDetailValue("PodSo");
        sePodSodLine->Text=GetDetailValue("PodSodLine");
        labPodDQty->Caption=GetDetailValue("PodDQty");
        labPodRQty->Caption=GetDetailValue("PodRQty");
        labPodBQty->Caption=GetDetailValue("PodBQty");
        labPodFQty->Caption=GetDetailValue("PodFQty");
        labPodEQty->Caption=GetDetailValue("PodEQty");
        labPodWQty->Caption=GetDetailValue("PodWQty");
        memPodDesc->Text=GetDetailValue("PodDesc");
        //根据结清状态,设置工具栏
        if(GetDetailValue("PodClose")=="1")
         SetCloseItemStatus(true);
        else
         SetCloseItemStatus(false);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPoh::SendDataToComObject(int Section)
{
    double DVal=0;
    if (Section==1)
    {
        if(scPohSupply->ItemData[cbItem2]=="")
            throw Exception("请输入供应商代码");
         if(scPohSettleMode->ItemData[cbItem2]=="")
            throw Exception("请输入结算方式");
        if(sePohCurrency->ItemData[cbItem2]=="")
            throw Exception("请输入币种");
        if(scPohTaxCode->ItemData[cbItem2]=="")
            throw Exception("请输入税码");
        if(scPohBuyer->ItemData[1]=="")
            throw Exception("请输入采购员");
        SetHeadValue("PohCode",sePohCode->Text);
        SetHeadValue("PohDate",dePohDate->Text);
        SetHeadValue("PohPmode",scPohPmode->ItemData[cbItem2]);
        SetHeadValue("PohContract",sePohContract->Text);
        SetHeadValue("PohSupply",scPohSupply->ItemData[cbItem2]);
        SetHeadValue("PohSettleMode",scPohSettleMode->ItemData[cbItem2]);
        SetHeadValue("PohDeliver",scPohDeliver->ItemData[cbItem2]);
        SetHeadValue("PohTransMode",scPohTransMode->ItemData[cbItem2]);
        SetHeadValue("PohPsite",sePohPsite->ItemData[cbItem2]);
        SetHeadValue("PohBuyer",scPohBuyer->ItemData[1]);
        SetHeadValue("PohSugDate",dePohSugDate->Text);
        SetHeadValue("PohCurrency",sePohCurrency->ItemData[cbItem2]);
        if(sePohEnrate->Text == "")
         throw Exception("请输入货币汇率");
        SetHeadValue("PohEnrate",sePohEnrate->Text);
        SetHeadValue("PohTaxCode",scPohTaxCode->ItemData[cbItem2]);

        SetHeadValue("PohUser",labPohUser->Caption);
        if(sePohPayTerm->Text == "")
         sePohPayTerm->Text="0";
        SetHeadValue("PohPayTerm",sePohPayTerm->Text);
        if(sePohPrePayAmt->Text == "")
         sePohPrePayAmt->Text="0.00";
        SetHeadValue("PohPrePayAmt",sePohPrePayAmt->Text);
        if(sePohCarriage->Text == "")
         sePohCarriage->Text="0.00";
        SetHeadValue("PohCarriage",sePohCarriage->Text);
        SetHeadValue("PohDesc",memPohDesc->Text);
    }
    else
    {
        if(sePodGoods->Text=="")
            throw Exception("请输入物料编码");
        if(sePodQty->Text.IsEmpty())
          sePodQty->Text="0";
        if(sePodPrice->Text.IsEmpty())
          sePodPrice->Text="0";
        DVal=sePodQty->Text.ToDouble()*sePodPrice->Text.ToDouble();
        sePodAmt->Text=DataCarry(DVal,2,0);
        //给单行的采购单赋值
        SetDetailValue("PodCode",sePohCode->Text);
        if(sePodLine->Text == "")
         throw Exception("请输入采购单行号");
        SetDetailValue("PodLine",sePodLine->Text);
        SetDetailValue("PodGoods",sePodGoods->Text);
        SetDetailValue("PodLoc",sePodLoc->ItemData[cbItem2]);
        SetDetailValue("PodUnit",sePodUnit->ItemData[cbItem2]);
        if(sePodConvRate->Text == ""||sePodConvRate->Text == "0")
         throw Exception("请输入单位转换系数");
        SetDetailValue("PodConvRate",sePodConvRate->Text);
        if(sePodQty->Text == "0.00")
         throw Exception("请输入采购数量");
        SetDetailValue("PodQty",sePodQty->Text);
        if(sePodPrice->Text == "0.00")
         throw Exception("请输入采购单价");
        SetDetailValue("PodPrice",sePodPrice->Text);
        SetDetailValue("PodType",scPodType->ItemData[cbItem2]);
        SetDetailValue("PodFrom",scPodFrom->ItemData[cbItem2]);
        SetDetailValue("PodStatus",scPodStatus->ItemData[cbItem2]);
        SetDetailValue("PodDept",scPodDept->ItemData[cbItem2]);
        SetDetailValue("PodFromCode",sePodFromCode->Text);
        SetDetailValue("PodFromLine",sePodFromLine->Text);
        SetDetailValue("PodBatch",scPodBatch->Text);
        SetDetailValue("PodSendDate",dePodSendDate->Text);
        SetDetailValue("PodRecDate",dePodRecDate->Text);
        SetDetailValue("PodReqDate",dePodReqDate->Text);
        SetDetailValue("PodSo",sePodSo->Text);
        SetDetailValue("PodSodLine",sePodSodLine->Text);
        SetDetailValue("PodDesc",memPodDesc->Text);
        SetDetailValue("PodDesc",memPodDesc->Text);
        SetDetailValue("PodAmt",sePodAmt->Text);
        SetDetailValue("goodsname",sePodGoodsName->Text);
        SetDetailValue("goodsspec",GoodsSpec->Text);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPoh::WaitUserInput(int Section)
{
    if (Section ==1)
    {
     if(sePohCode->Enabled)
        sePohCode->SetFocus();
     sePohCurrencyExit(NULL);
    }
    else
    {
     sgPoh->Visible=false;

⌨️ 快捷键说明

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