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

📄 prech_p_i.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Prech_P_I.h"
#include "Precd_P_I.h"
#include "func.h"

//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmPrech_P_I *frmPrech_P_I;
//---------------------------------------------------------------------------
__fastcall TfrmPrech_P_I::TfrmPrech_P_I(TComponent* Owner)
        : TGenBaseForm(Owner,euSdPrech_P_I,"")
{
  pv_GoodsCode="";
  AutoCtl=sePrechCode;
}
//---------------------------------------------------------------------------

void __fastcall TfrmPrech_P_I::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,false,sePrechCode,sePrechCode->Name);
    ClientGroup->AddComponent(1,true,true,true,scPrechFmonth,scPrechFmonth->Name);
    ClientGroup->AddComponent(1,false,true,true,scPrechSupply,scPrechSupply->Name);
    ClientGroup->AddComponent(1,false,true,true,sePrechCurrency,sePrechCurrency->Name);
    ClientGroup->AddComponent(1,false,true,true,sePrechEnrate,sePrechEnrate->Name);
    ClientGroup->AddComponent(1,false,true,true,sePrechEnrate,sePrechEnrate->Name);
    ClientGroup->AddComponent(1,false,true,true,scPrechTaxCode,scPrechTaxCode->Name);

    ClientGroup->AddComponent(2,true,true,false,sgPrech_P_I,sgPrech_P_I->Name);
    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,true,true,sePrecdPo,sePrecdPo->Name);
    ClientGroup->AddComponent(2,true,true,true,sePrecdPodLine,sePrecdPodLine->Name);
    ClientGroup->AddComponent(2,true,true,true,GroupBox5,GroupBox5->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,sePrecdGoods,sePrecdGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,sePrecdGoodsName,sePrecdGoodsName->Name);
    ClientGroup->AddComponent(2,true,true,true,scPrecdUnit,scPrecdUnit->Name);
    ClientGroup->AddComponent(2,true,true,true,sePrecdConv,sePrecdConv->Name);
    ClientGroup->AddComponent(2,true,true,true,sePrecdTAmt,sePrecdTAmt->Name);
    ClientGroup->AddComponent(2,true,true,true,sePrecdSodLine,sePrecdSodLine->Name);

    FillComboBox(scPrechPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType where postypeflg=1 order by PosTypeCode",
                 "PosTypeName","PosTypeCode");
    FillComboBox(scPrechSupply,"SELECT SupplyCode,SupplyName FROM sdSupply  where supplycancel=0  order by SupplyCode",
                 "SupplyName","SupplyCode");
    FillComboBox(scPrechTaxCode,"SELECT TaxCode,TaxName,TaxRate FROM sdTax order by TaxCode","TaxName","TaxCode","TaxRate");

    FillComboBox(scPrechSettleMode,"SELECT SettleModeCode,SettleModeName FROM sdSettleMode order by SettleModeCode",
                 "SettleModeName","SettleModeCode");
    FillComboBox(scPrechDeliver,"SELECT DeliverCode,DeliverName FROM sdDeliver order by DeliverCode",
                 "DeliverName","DeliverCode");
    FillComboBox(scPrechTransMode,"SELECT TransModeCode,TransModeName FROM sdTransMode order by TransModeCode",
                 "TransModeName","TransModeCode");

    FillComboBox(scPrecdUnit,"SELECT UnitName memo,UnitCode,UnitRate FROM sdUnit Order by UnitCode","Memo","UnitCode","UnitRate");
    FillComboBox(scPrecdBatch,"SELECT BatchCode FROM sdBatch order by BatchCode","BatchCode");
    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(sePrechCurrency,sSql,"CurrencyName","CurrencyCode","currencyrate","currencylocal");
    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(sePrecdLoc,sSql,"LocName","LocCode");

    FillEdit(sePrechPsite,"select PsiteCode,PsiteName from sdpsite ","psitename","psitecode");
    scPrecdState->ClearAll();
    scPrecdState->AddItems("1-未检","1");
    scPrecdState->AddItems("2-已检","2");
}
//---------------------------------------------------------------------------

void __fastcall TfrmPrech_P_I::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
      if (! BringToNext)
      {
        sePrechCode->Text = "";
        scPrechFmonth->Text = g_sdPMonth;
        dePrechDate->Text = g_sdCurDate;
        scPrechPosType->ItemIndex=0;
        dePrechSendDate->Text=g_sdCurDate;
        sePrechTransCode->Text = "";
        scPrechSupply->ItemIndex=-1;
        sePrechCurrency->ItemIndex=-1;
        sePrechEnrate->Text = "1";
        scPrechTaxCode->Text = "";
        scPrechTaxCode->ItemIndex=-1;
        scPrechSettleMode->Text = "";
        scPrechSettleMode->ItemIndex=-1;
        scPrechDeliver->Text = "";
        scPrechDeliver->ItemIndex=-1;
        scPrechTransMode->Text = "";
        scPrechTransMode->ItemIndex=-1;
        sePrechPsite->ItemIndex=-1;
        labUserCode->Caption=g_sdUserCode;
        cbPrechCheck->Checked=false;
        labChecker->Caption="";
        cbPrechCancel->Checked=false;
        cbPrechClose->Checked =false;
        labSystemDate->Caption  = "";
        //新增单据,工具栏使能
        SetCheckToolbarStatus(false);
      }
      sgPrech_P_I->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
          sePrecdLine->Text=AnsiString(comServer->ItemCount+1);
          sePrecdPo->Text="";
          sePrecdPodLine->Text="";
          sePrecdGoods->Text="";
          sePrecdGoodsName->Text="";
          scPrecdUnit->Text="";
          scPrecdUnit->ItemIndex=-1;
          sePrecdConv->Text="1";
          sePrecdQty->Text="0";
          sePrecdPrice->Text="0.00";
          sePrecdAmt->Text="0";
          sePrecdTAmt->Text="0";
          sePrecdDQty->Text="0";
          sePrecdKAmt->Text="0";

          sePrecdLoc->ItemIndex=-1;
          scPrecdBatch->Text="";
          scPrecdBatch->ItemIndex=-1;
          sePrecdSo->Text="";
          sePrecdSodLine->Text="0";
          sePrecdIQty->Text="0";
          sePrecdBQty->Text="0";
          sePrecdEQty->Text="0";
          sePrecdVQty->Text="0";
          scPrecdState->ItemIndex=0;
          chkPrecdClose->Checked=false;
          dePrecdCloseDate->Text="";
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrech_P_I::GetDataFromComObject(int Section)
{
    if (Section==1)
    {
       sePrechCode->Text  =GetHeadValue(fiPrechCode);
       scPrechFmonth->Text=GetHeadValue(fiPrechFmonth);
       dePrechDate->Text=GetHeadValue(fiPrechDate);
       scPrechPosType->LocateKey(GetHeadValue(fiPrechPosType));

       scPrechSupply->LocateKey(GetHeadValue(fiPrechSupply));
       sePrechCurrency->LocateKey(GetHeadValue(fiPrechCurrency));
       sePrechEnrate->Text=GetHeadValue(fiPrechEnrate);
       scPrechTaxCode->LocateKey(GetHeadValue(fiPrechTaxCode));
       scPrechSettleMode->LocateKey(GetHeadValue(fiPrechSettleMode));
       scPrechSettleMode->Text=scPrechSettleMode->ItemData[0];
       scPrechDeliver->LocateKey(GetHeadValue(fiPrechDeliver));
       scPrechTransMode->LocateKey(GetHeadValue(fiPrechTransMode));
       sePrechPsite->LocateKey(GetHeadValue(fiPrechPsite));
       dePrechSendDate->Text=GetHeadValue(fiPrechSendDate);
       sePrechTransCode->Text=GetHeadValue(fiPrechTransCode);

       labUserCode->Caption=GetHeadValue(fiPrechUser);
       cbPrechCheck->Checked=GetHeadValue(fiPrechCheck)=="1";
       labChecker->Caption=GetHeadValue(fiPrechChecker);
       cbPrechCancel->Checked=GetHeadValue(fiPrechCancel)=="1";
       cbPrechClose->Checked=GetHeadValue(fiPrechClose)=="1";
       labSystemDate->Caption=GetHeadValue(fiPrechSysDate);
       //根据采购订单,填充行号
//       FillLineData();
       //根据审核、取消状态,设置工具栏
       if(GetHeadValue(fiPrechCheck)=="1")
        SetCheckToolbarStatus(true);
       else
        SetCheckToolbarStatus(false);
       if(GetHeadValue(fiPrechCancel)=="1")
        SetCancelToolbarStatus(true);
       else
        SetCancelToolbarStatus(false);
       if(GetHeadValue(fiPrechClose)=="1")
        SetCloseToolbarStatus(true);
       else
        SetCloseToolbarStatus(false);

    }
    else
    {
      sePrecdPo->Text=GetDetailValue(fiPrecdPo);
      sePrecdLine->Text=GetDetailValue(fiPrecdLine);
      sePrecdPodLine->Text=GetDetailValue(fiPrecdPodLine);
      g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiPrecdGoods)));
      sePrecdGoods->Text=GetGoodsValue("GoodsCode");
      sePrecdGoodsName->Text=GetGoodsValue("GoodsName");
      scPrecdUnit->LocateKey(GetDetailValue(fiPrecdUnit));
      sePrecdConv->Text=GetDetailValue(fiPrecdConv);
      sePrecdQty->Text=GetDetailValue(fiPrecdQty);
      sePrecdPrice->Text=GetDetailValue(fiPrecdPrice);
      sePrecdAmt->Text=GetDetailValue(fiPrecdAmt);
      sePrecdTAmt->Text=GetDetailValue(fiPrecdTAmt);
      sePrecdDQty->Text=GetDetailValue(fiPrecdDQty);
      sePrecdKAmt->Text=GetDetailValue(fiPrecdKAmt);

      sePrecdLoc->LocateKey(GetDetailValue(fiPrecdLoc));
      scPrecdBatch->LocateKey(GetDetailValue(fiPrecdBatch));
      sePrecdSo->Text=GetDetailValue(fiPrecdSo);
      sePrecdSodLine->Text=GetDetailValue(fiPrecdSodLine);

      sePrecdIQty->Text=GetDetailValue(fiPrecdIQty);
      sePrecdBQty->Text=GetDetailValue(fiPrecdBQty);
      sePrecdEQty->Text=GetDetailValue(fiPrecdEQty);
      sePrecdVQty->Text=GetDetailValue(fiPrecdVQty);

      scPrecdState->LocateKey(GetDetailValue(fiPrecdState));
      chkPrecdClose->Checked=(GetDetailValue(fiPrecdClose)=="1");
      dePrecdCloseDate->Text=GetDetailValue(fiPrecdCloseDate);
      //根据结清状态,设置工具栏
      if(GetDetailValue(fiPrecdClose)=="1")
       SetCloseDetailStatus(true);
      else
       SetCloseDetailStatus(false);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPrech_P_I::SendDataToComObject(int Section)
{
    int iRow;
    if (Section==1)
    {
        SetHeadValue(fiPrechCode,sePrechCode->Text );
        SetHeadValue(fiPrechFmonth,scPrechFmonth->Text);
        SetHeadValue(fiPrechDate,dePrechDate->Text);
        SetHeadValue(fiPrechPosType,scPrechPosType->ItemData[cbItem2]);
        SetHeadValue(fiPrechSendDate,dePrechSendDate->Text);
        SetHeadValue(fiPrechTransCode,sePrechTransCode->Text);
        SetHeadValue(fiPrechUser,labUserCode->Caption);
        SetHeadValue(fiPrechSupply,scPrechSupply->ItemData[cbItem2]);
        SetHeadValue(fiPrechCurrency,sePrechCurrency->ItemData[cbItem2]);
        if(sePrechEnrate->Text=="")
         throw Exception("请输入汇率");
        SetHeadValue(fiPrechEnrate,sePrechEnrate->Text);
        SetHeadValue(fiPrechSettleMode,scPrechSettleMode->ItemData[cbItem2]);
        SetHeadValue(fiPrechDeliver,scPrechDeliver->ItemData[cbItem2]);
        SetHeadValue(fiPrechTransMode,scPrechTransMode->ItemData[cbItem2]);
        SetHeadValue(fiPrechTaxCode,scPrechTaxCode->ItemData[cbItem2]);
        SetHeadValue(fiPrechPsite,sePrechPsite->ItemData[cbItem2]);
    }
    else
    {
        SetDetailValue(fiPrecdCode,sePrechCode->Text);
        if(sePrecdLine->Text.IsEmpty())
          throw Exception("请输入行号");
        SetDetailValue(fiPrecdLine,sePrecdLine->Text);
        SetDetailValue(fiPrecdPo,sePrecdPo->Text);
        SetDetailValue(fiPrecdPodLine,sePrecdPodLine->Text);
        SetDetailValue(fiPrecdGoods,sePrecdGoods->Text);
        SetDetailValue(fiPrecdUnit,scPrecdUnit->ItemData[cbItem2]);
        if(sePrecdConv->Text == "")
         sePrecdConv->Text="1";
        SetDetailValue(fiPrecdConv,sePrecdConv->Text);
        if(sePrecdQty->Text == "")
          throw Exception("请输入收货数量");
        SetDetailValue(fiPrecdQty,sePrecdQty->Text);
        if(sePrecdPrice->Text == "")
          throw Exception("请输入收货单价");
        SetDetailValue(fiPrecdPrice,sePrecdPrice->Text);
        if(sePrecdAmt->Text == "")
          throw Exception("请输入金额");
        SetDetailValue(fiPrecdAmt,sePrecdAmt->Text);
        if(sePrecdTAmt->Text == "")
          sePrecdTAmt->Text ="0";
        SetDetailValue(fiPrecdTAmt,sePrecdTAmt->Text);
        if(sePrecdDQty->Text == "")
         throw Exception("请输入送货数量");
        SetDetailValue(fiPrecdDQty,sePrecdDQty->Text);
        if(sePrecdKAmt->Text == "")
          sePrecdTAmt->Text ="0";
//        SetDetailValue(fiPrecdKAmt,sePrecdKAmt->Text);
//这里需计算税
        SetDetailValue(fiPrecdLoc,sePrecdLoc->ItemData[cbItem2]);
        SetDetailValue(fiPrecdBatch,scPrecdBatch->Text);
        SetDetailValue(fiPrecdSo,sePrecdSo->Text);
        if(Trim(sePrecdSodLine->Text)!="")
         SetDetailValue(fiPrecdSodLine,sePrecdSodLine->Text);
        else
         SetDetailValue(fiPrecdSodLine,"0");
        SetDetailValue(fiPrecdRDate,dePrecdRDate->Text);
        SetDetailValue(fiPrecdCDate,dePrecdCDate->Text);         
//        SetDetailValue(fiPrecdState,scPrecdState->ItemData[1]);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPrech_P_I::WaitUserInput(int Section)

⌨️ 快捷键说明

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