prech_n_i.cpp

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

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

{
 pv_GoodsCode="";
 SetAutoCodeString(sePrechCode,"Acm-020");
}
//---------------------------------------------------------------------------

void __fastcall TfrmPrech_N_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_N_I,sgPrech_N_I->Name);
    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->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,sePrecdSodLine,sePrecdSodLine->Name);
    ClientGroup->AddComponent(2,true,true,true,sePrecdTAmt,sePrecdTAmt->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");

    FillEdit(Handle,sePrecdUnit,"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_N_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_N_I->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
          sePrecdLine->Text=AnsiString(comServer->ItemCount+1);
          sePrecdGoods->Text="";
          sePrecdGoodsName->Text="";
          sePrecdUnit->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_N_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");
       //根据审核、取消状态,设置工具栏
       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
    {
      sePrecdLine->Text=GetDetailValue("PrecdLine");
      sePrecdGoods->Text=GetDetailValue("PrecdGoods");
      sePrecdGoodsName->Text=GetDetailValue("Goodsname");
      GoodsSpec->Text=GetDetailValue("GoodsSpec");
      sePrecdUnit->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");
      //根据结清状态,设置工具栏
      if(GetDetailValue("PrecdClose")=="1")
       SetCloseItemStatus(true);
      else
       SetCloseItemStatus(false);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPrech_N_I::SendDataToComObject(int Section)
{
    int iRow;
    if (Section==1)
    {
        if(scPrechSupply->ItemData[cbItem2]=="")
         throw Exception("请输入供应商");
        if(sePrechCurrency->ItemData[cbItem2]=="")
         throw Exception("请输入币种");
        if(scPrechTaxCode->ItemData[cbItem2]=="")
         throw Exception("请输入税码");
        if(sePrechEnrate->Text=="")
         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
    {
        if(sePrecdLine->Text.IsEmpty())
          throw Exception("请输入行号");
        if(sePrecdGoods->Text.IsEmpty())
          throw Exception("请输入物料编码");
         if(sePrecdConv->Text == ""||sePrecdConv->Text == "0")
         throw Exception("请输入单位转换系数");
         if(sePrecdQty->Text == "0")
          throw Exception("请输入收货数量");
         if(sePrecdPrice->Text == "0")
          throw Exception("请输入收货单价");
        if(sePrecdAmt->Text == "0")
          throw Exception("请输入金额");
        if(sePrecdTAmt->Text == "")
          sePrecdTAmt->Text ="0";
        if(sePrecdDQty->Text == "0")
         throw Exception("请输入送货数量");
        if(sePrecdKAmt->Text == "")
        sePrecdTAmt->Text ="0";
        SetDetailValue("PrecdCode",sePrechCode->Text);
        SetDetailValue("PrecdLine",sePrecdLine->Text);
        SetDetailValue("PrecdGoods",sePrecdGoods->Text);
        SetDetailValue("Goodsname",sePrecdGoodsName->Text);
        SetDetailValue("Goodsspec",GoodsSpec->Text);
        SetDetailValue("PrecdUnit",sePrecdUnit->ItemData[cbItem2]);
        SetDetailValue("PrecdConv",sePrecdConv->Text);
        SetDetailValue("PrecdQty",sePrecdQty->Text);
        SetDetailValue("PrecdPrice",sePrecdPrice->Text);
        SetDetailValue("PrecdAmt",sePrecdAmt->Text);
        SetDetailValue("PrecdTAmt",sePrecdTAmt->Text);
        SetDetailValue("PrecdDQty",sePrecdDQty->Text);

//        SetDetailValue("PrecdKAmt",sePrecdKAmt->Text);
//这里需计算税
        SetDetailValue("PrecdLoc",sePrecdLoc->ItemData[cbItem2]);
        SetDetailValue("PrecdBatch",scPrecdBatch->Text);
        SetDetailValue("PrecdSo",sePrecdSo->Text);
        if(Trim(sePrecdSodLine->Text)!="")
         SetDetailValue("PrecdSodLine",sePrecdSodLine->Text);
        else
         SetDetailValue("PrecdSodLine","0");
        SetDetailValue("PrecdRDate",dePrecdRDate->Text);
        SetDetailValue("PrecdCDate",dePrecdCDate->Text);
        SetDetailValue("PrecdOAmt",0);
        SetDetailValue("PrecdRAmt",0);
        SetDetailValue("PrecdKAmt",0);
        SetDetailValue("PrecdDesc","");
        SetDetailValue("PrecdClose",0);
        SetDetailValue("PrecdCloseDate",TDateTime().CurrentDate().DateString());
        SetDetailValue("PrecdState",scPrecdState->ItemData[1]);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPrech_N_I::WaitUserInput(int Section)
{
    if (Section ==1)
    {
     if(sePrechCode->Enabled)
      sePrechCode->SetFocus();
    }
    else

⌨️ 快捷键说明

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