prech_p_i.cpp

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

CPP
907
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Prech_P_I.h"
#include "Precd_P_I.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, HWND chWnd, AnsiString ClassCode,AnsiString WhereStr)
        : TGenBaseForm(Owner,chWnd,ClassCode,WhereStr)

{
 pv_GoodsCode="";
 SetAutoCodeString(sePrechCode,"Acm-019");

}
//---------------------------------------------------------------------------

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(Handle,scPrechPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType where postypeflg=1 order by PosTypeCode",
                 "PosTypeName","PosTypeCode");
     FillComboBox(Handle,scPrechSupply,"SELECT SupplyCode,SupplyName FROM sdSupply  where supplycancel=0  order by SupplyCode",
                 "SupplyName","SupplyCode");
     FillComboBox(Handle,scPrechTaxCode,"SELECT TaxCode,TaxName,TaxRate FROM sdTax order by TaxCode","TaxName","TaxCode","TaxRate");

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

     FillComboBox(Handle,scPrecdUnit,"SELECT UnitName memo,UnitCode,UnitRate FROM sdUnit Order by UnitCode","Memo","UnitCode","UnitRate");
     FillComboBox(Handle,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(Handle,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(Handle,sePrecdLoc,sSql,"LocName","LocCode");

    FillEdit(Handle,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("PrechCode");
       scPrechFmonth->Text=GetHeadValue("PrechFmonth");
       dePrechDate->Text=GetHeadValue("PrechDate");
       scPrechPosType->LocateKey(GetHeadValue("PrechPosType"));

       scPrechSupply->LocateKey(GetHeadValue("PrechSupply"));
       sePrechCurrency->LocateKey(GetHeadValue("PrechCurrency"));
       sePrechEnrate->Text=GetHeadValue("PrechEnrate");
       scPrechTaxCode->LocateKey(GetHeadValue("PrechTaxCode"));
       scPrechSettleMode->LocateKey(GetHeadValue("PrechSettleMode"));
       scPrechSettleMode->Text=scPrechSettleMode->ItemData[0];
       scPrechDeliver->LocateKey(GetHeadValue("PrechDeliver"));
       scPrechTransMode->LocateKey(GetHeadValue("PrechTransMode"));
       sePrechPsite->LocateKey(GetHeadValue("PrechPsite"));
       dePrechSendDate->Text=GetHeadValue("PrechSendDate");
       sePrechTransCode->Text=GetHeadValue("PrechTransCode");

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

    }
    else
    {
      sePrecdPo->Text=GetDetailValue("PrecdPo");
      sePrecdLine->Text=GetDetailValue("PrecdLine");
      sePrecdPodLine->Text=GetDetailValue("PrecdPodLine");
      sePrecdGoods->Text =GetDetailValue("PrecdGoods");
      sePrecdGoodsName->Text=GetDetailValue("GoodsName");
      GoodsSpec->Text =GetDetailValue("goodsSpec");

      scPrecdUnit->LocateKey(GetDetailValue("PrecdUnit"));
      sePrecdConv->Text=GetDetailValue("PrecdConv");
      sePrecdQty->Text=GetDetailValue("PrecdQty");
      sePrecdPrice->Text=GetDetailValue("PrecdPrice");
      sePrecdAmt->Text=GetDetailValue("PrecdAmt");
      sePrecdTAmt->Text=GetDetailValue("PrecdTAmt");
      sePrecdDQty->Text=GetDetailValue("PrecdDQty");
      sePrecdKAmt->Text=GetDetailValue("PrecdKAmt");

      sePrecdLoc->LocateKey(GetDetailValue("PrecdLoc"));
      scPrecdBatch->LocateKey(GetDetailValue("PrecdBatch"));
      sePrecdSo->Text=GetDetailValue("PrecdSo");
      sePrecdSodLine->Text=GetDetailValue("PrecdSodLine");

      sePrecdIQty->Text=GetDetailValue("PrecdIQty");
      sePrecdBQty->Text=GetDetailValue("PrecdBQty");
      sePrecdEQty->Text=GetDetailValue("PrecdEQty");
      sePrecdVQty->Text=GetDetailValue("PrecdVQty");

      scPrecdState->LocateKey(GetDetailValue("PrecdState"));
      chkPrecdClose->Checked=(GetDetailValue("PrecdClose")=="1");
      dePrecdCloseDate->Text=GetDetailValue("PrecdCloseDate");
      //DONE:BUG NO.527 FIXED 2001-8-27
      dePrecdRDate->Text=GetDetailValue("PrecdRDate");
      dePrecdCDate->Text=GetDetailValue("PrecdCDate");
      //============END OF FIX=======================
      //根据结清状态,设置工具栏
      if(GetDetailValue("PrecdClose")=="1")
       SetCloseItemStatus(true);
      else
      SetCloseItemStatus(false);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPrech_P_I::SendDataToComObject(int Section)
{
    int iRow;
    if (Section==1)
    {
        if(sePrechEnrate->Text=="")
           throw Exception("请输入汇率");
        if(scPrechSupply->ItemData[cbItem2]=="")
           throw Exception("请输入供应商代码");
        if(sePrechCurrency->ItemData[cbItem2]=="")
           throw Exception("请输入币种");
        if(scPrechTaxCode->ItemData[cbItem2]=="")
           throw Exception("请输入税码");
        SetHeadValue("PrechCode",sePrechCode->Text );
        SetHeadValue("PrechFmonth",scPrechFmonth->Text);
        SetHeadValue("PrechDate",dePrechDate->Text);
        SetHeadValue("PrechPosType",scPrechPosType->ItemData[cbItem2]);
        SetHeadValue("PrechSendDate",dePrechSendDate->Text);
        SetHeadValue("PrechTransCode",sePrechTransCode->Text);
        SetHeadValue("PrechUser",labUserCode->Caption);
        SetHeadValue("PrechSupply",scPrechSupply->ItemData[cbItem2]);
        SetHeadValue("PrechCurrency",sePrechCurrency->ItemData[cbItem2]);
        SetHeadValue("PrechEnrate",sePrechEnrate->Text);
        SetHeadValue("PrechSettleMode",scPrechSettleMode->ItemData[cbItem2]);
        SetHeadValue("PrechDeliver",scPrechDeliver->ItemData[cbItem2]);
        SetHeadValue("PrechTransMode",scPrechTransMode->ItemData[cbItem2]);
        SetHeadValue("PrechTaxCode",scPrechTaxCode->ItemData[cbItem2]);
        SetHeadValue("PrechPsite",sePrechPsite->ItemData[cbItem2]);
    }
    else
    {
        //default value
        if(sePrecdLine->Text=="")
          throw Exception("请输入行号");
        if(sePrecdPo->Text=="")
          throw Exception("请输入采购单号");
               SetDetailValue("PrecdRAmt",0);
               SetDetailValue("PrecdKAmt",0);
               SetDetailValue("PrecdOAmt",0);
               SetDetailValue("PrecdEQty",0);
               SetDetailValue("PrecdIQty",0);
               SetDetailValue("PrecdVQty",0);
               SetDetailValue("PrecdBQty",0);
        SetDetailValue("PrecdCode",sePrechCode->Text);
        SetDetailValue("PrecdLine",sePrecdLine->Text);
        SetDetailValue("PrecdPo",sePrecdPo->Text);
        SetDetailValue("PrecdPodLine",sePrecdPodLine->Text);
        SetDetailValue("PrecdGoods",sePrecdGoods->Text);
        SetDetailValue("PrecdUnit",scPrecdUnit->ItemData[cbItem2]);
        if(sePrecdConv->Text == "")
         sePrecdConv->Text="1";
        SetDetailValue("PrecdConv",sePrecdConv->Text);
        if(sePrecdQty->Text == "0")
          throw Exception("请输入收货数量");
        SetDetailValue("PrecdQty",sePrecdQty->Text);
        if(sePrecdPrice->Text == "0")
          throw Exception("请输入收货单价");
        SetDetailValue("PrecdPrice",sePrecdPrice->Text);
        if(sePrecdAmt->Text == "0")
          throw Exception("请输入金额");
        SetDetailValue("PrecdAmt",sePrecdAmt->Text);

⌨️ 快捷键说明

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