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

📄 sogh_n_o.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Sogh_N_O.h"
#include "func.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "BillBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmSogh_N_O *frmSogh_N_O;
//---------------------------------------------------------------------------
__fastcall TfrmSogh_N_O::TfrmSogh_N_O(TComponent* Owner)
        : TBillBaseForm(Owner,euSdSogh,"SoghType=2")
{
    AutoCtl=seSoghCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_N_O::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,true,true,true,FloatPanel3,FloatPanel3->Name);
    ClientGroup->AddComponent(1,true,true,false,sgSogd,sgSogd->Name);
    ClientGroup->AddComponent(1,false,true,false,seSoghCode,seSoghCode->Name);
    ClientGroup->AddComponent(1,false,true,true,seSoghClient,seSoghClient->Name);
    ClientGroup->AddComponent(1,true,true,true,scSoghType,scSoghType->Name);
    ClientGroup->AddComponent(1,true,true,true,scSoghState,scSoghState->Name);
    ClientGroup->AddComponent(1,false,true,true,scSoghTaxCode,scSoghTaxCode->Name);
    ClientGroup->AddComponent(1,true,true,true,scSoghFmonth,scSoghFmonth->Name);
//    ClientGroup->AddComponent(1,false,true,true,scSoghSaler,scSoghSaler->Name);

    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,false,true,seSogdGoods,seSogdGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,seSogdGoodsName,seSogdGoodsName->Name);
    ClientGroup->AddComponent(2,false,false,true,seSogdUnit,seSogdUnit->Name);
    ClientGroup->AddComponent(2,true,true,true,seSogdConv,seSogdConv->Name);
    ClientGroup->AddComponent(2,true,true,true,seSogdAmt,seSogdAmt->Name);
    ClientGroup->AddComponent(2,true,true,true,seSogdDAmt,seSogdDAmt->Name);
    ClientGroup->AddComponent(2,true,true,true,seSogdTaxAmt,seSogdTaxAmt->Name);
    ClientGroup->AddComponent(2,false,false,true,deSogdRecDate,deSogdRecDate->Name);
    ClientGroup->AddComponent(2,true,true,true,GroupBox4,GroupBox4->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);

    //Sogh
    FillComboBox(scSoghFmonth,"SELECT FcMonth FROM sdFc","FcMonth");
    FillComboBox(scSoghPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType where postypeflg=2 order by PosTypeCode","PosTypeName","PosTypeCode");
    FillEdit(seSoghClient,"SELECT ClientName,ClientCode,ClientCurrency,ClientTaxCode FROM sdClient where ClientCancel=0","ClientName","ClientCode","ClientCurrency","ClientTaxCode");
    FillComboBox(scSoghDeliver,"SELECT DeliverName,DeliverCode FROM sdDeliver order by DeliverCode","DeliverName","DeliverCode");
    FillComboBox(scSoghTaxCode,"SELECT TaxName,TaxCode,TaxRate FROM sdTax order by TaxCode","TaxName","TaxCode","TaxRate");
    FillEdit(scSoghUser,"select UserName,UserCode from sdUser  order by usercode","UserName","UserCode");
    FillEdit(seSoghChecker,"select UserName,UserCode from sdUser  order by usercode","UserName","UserCode");
    AnsiString sSql;
    sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
    sSql+=" where currencycode*=ratecurrency and ";
    sSql+=" ratefmonth='"+g_sdSMonth+"'";
    FillEdit(seSoghCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");

    FillEdit(seSoghSsite,"SELECT SsiteName,SsiteCode FROM sdSsite","SSiteName","SsiteCode");

    FillComboBox(scSoghTransMode,"SELECT TransModeName,TransModeCode FROM sdTransMode order by TransModeCode","TransModeName","TransModeCode");
    FillComboBox(scSoghSettleMode,"select settlemodename,settlemodecode from sdsettlemode order by settlemodename","settleModeName","SettleModeCode");
    FillComboBox(scSoghSaler,"select UserName,UserCode from sdUser where UserCode in (select salerCode from sdSaler) order by usercode","UserName","UserCode");


    //Sogd
    FillEdit(seSogdLoc,"select LocCode,LocName from sdLoc where Loctype=1 or loctype=4 order by LocCode","LocName","LocCode");
    FillEdit(seSogdUnit,"SELECT UnitCode,UnitName FROM sdUnit ","UnitName","UnitCode");
    FillEdit(seSogdBatch,"SELECT BatchCode,BatchDesc FROM sdBatch ","BatchDesc","BatchCode");
    scSoghType->ClearAll();
    scSoghType->AddItems("据订单发货","1");
    scSoghType->AddItems("非订单发货","2");
    scSoghState->ClearAll();
    scSoghState->AddItems("预备","1");
    scSoghState->AddItems("确认","2");
    scSoghState->AddItems("待下达","3");
    scSoghState->AddItems("已下达","4");
    scSoghState->AddItems("已完成","5");
    scSogdState->ClearAll();
    scSogdState->AddItems("预备","1");
    scSogdState->AddItems("确认","2");
    scSogdState->AddItems("待下达","3");
    scSogdState->AddItems("已下达","4");
    scSogdState->AddItems("已完成","5");
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_N_O::ClearControl(int Section,bool BringToNext)
{
    if(Section == 1)
    {
       if(!BringToNext)
       {
         seSoghCode->Text = "";
         scSoghType->LocateKey("2");
         scSoghFmonth->Text = g_sdSMonth;
         scSoghPosType->ItemIndex = -1;
         deSoghDate->Text=g_sdCurDate;
         seSoghClient->ItemIndex = -1;
         scSoghDeliver->ItemIndex = -1;
         seSoghSsite->ItemIndex = -1;
         seSoghCurrency->ItemIndex=-1;
         seSoghEnrate->Text ="1";
         scSoghTransMode->ItemIndex = -1;
         seSoghTransCode->Text = "";
         scSoghTaxCode->ItemIndex=-1;
         seSoghDesc->Text ="";
         scSoghSettleMode->ItemIndex=-1;
         scSoghSaler->ItemIndex=-1;
         scSoghUser->Text = g_sdUserCode;
         cheSoghCheck->Checked = false;
         seSoghChecker->ItemIndex =-1;
         cheSoghCancel->Checked = false;
         cheSoghClose->Checked = false;
         lbSoghSysDate->Caption = "";
         scSoghState->ItemIndex=0;
       }
       sgSogd->RowCount=1;
    }
    else if(Section==2)
    {
        if(!BringToNext)
        {
          if(comServer->ItemCount==0)
             seSogdLine->Text ="1";
          else
          {
             comServer->LocateItemByIndex(comServer->ItemCount-1);
             seSogdLine->Text=AnsiString(StrToInt(GetDetailValue(fiSogdLine))+1);
          }
          seSogdGoods->Text="";
          seSogdGoodsName->Text ="";
          seSogdUnit->ItemIndex=-1;
          seSogdConv->Text="1";
          seSogdPrice->Text="0";
          seSogdQty->Text="0";
          seSogdAmt->Text="0.00";
          seSogdTaxAmt->Text="0.00";
          seSogdDisc->Text="0.00";
          seSogdDAmt->Text="0.00";
          labSogdOQty->Caption="0";
          labSogdBQty->Caption="0";
          labSogdVQty->Caption="0";
          labSogdFQty->Caption="0";
          labSogdEQty->Caption="0";
          cheSogdClose->Checked = false;
          seSogdCloseDate->Text ="";
          scSogdState->ItemIndex=1;
          deSogdRecDate->Text="";
          seSogdLoc->ItemIndex=-1;
          seSogdBatch->Text="";
          memSogdDesc->Text="";
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_N_O::GetDataFromComObject(int Section)
{
    if(Section==1)
    {
      seSoghCode->Text = GetHeadValue(fiSoghCode);
      scSoghType->LocateKey(GetHeadValue(fiSoghType));
      scSoghFmonth->Text = GetHeadValue(fiSoghFmonth);
      scSoghPosType->LocateKey(GetHeadValue(fiSoghPosType));
      deSoghDate->Text= GetHeadValue(fiSoghDate);
      seSoghClient->LocateKey(GetHeadValue(fiSoghClient));
      seSoghCurrency->LocateKey(GetHeadValue(fiSoghCurrency));
      if(seSoghCurrency->ItemData[cbItem4]=="1")
          seSoghEnrate->Enabled=false;
      seSoghEnrate->Text = GetHeadValue(fiSoghEnrate);
      scSoghTaxCode->LocateKey(GetHeadValue(fiSoghTaxCode));
      scSoghDeliver->LocateKey(GetHeadValue(fiSoghDeliver));
      seSoghSsite->LocateKey(GetHeadValue(fiSoghSsite));
      scSoghTransMode->LocateKey(GetHeadValue(fiSoghTransMode));
      seSoghTransCode->Text = GetHeadValue(fiSoghTransCode);
      scSoghUser->LocateKey(GetHeadValue(fiSoghUser));
      scSoghState->LocateKey(GetHeadValue(fiSoghState));
      scSoghSaler->LocateKey(GetHeadValue(fiSoghSaler));
      scSoghSettleMode->LocateKey(GetHeadValue(fiSoghSettleMode));
      cheSoghCheck->Checked = GetHeadValue(fiSoghCheck)=="1";
      seSoghChecker->LocateKey(GetHeadValue(fiSoghChecker));
      cheSoghCancel->Checked = GetHeadValue(fiSoghCancel)=="1";
      cheSoghClose->Checked=GetHeadValue(fiSoghClose)=="1";
      lbSoghSysDate->Caption = GetHeadValue(fiSoghSysDate);
      seSoghDesc->Text = GetHeadValue(fiSoghDesc);
      SetCheckToolbarStatus(cheSoghCheck->Checked);
      SetCancelToolbarStatus(cheSoghCancel->Checked);
      SetCloseToolbarStatus(cheSoghClose->Checked);
    }
    else
    {
      seSogdLine->Text = GetDetailValue(fiSogdLine);
      seSogdGoods->Text=GetDetailValue(fiSogdGoods);
      SetRelativeState(GetDetailValue(fiSogdGoods));
      seSogdUnit->LocateKey(GetDetailValue(fiSogdUnit));
      seSogdConv->Text = GetDetailValue(fiSogdConv);
      seSogdQty->Text = GetDetailValue(fiSogdQty);
      seSogdPrice->Text=GetDetailValue(fiSogdPrice);
      seSogdAmt->Text=GetDetailValue(fiSogdAmt);
      seSogdTaxAmt->Text=GetDetailValue(fiSogdTaxAmt);
      seSogdDisc->Text=GetDetailValue(fiSogdDisc);
      seSogdDAmt->Text=GetDetailValue(fiSogdDAmt);
      labSogdOQty->Caption=GetDetailValue(fiSogdOQty);
      labSogdBQty->Caption=GetDetailValue(fiSogdBQty);
      labSogdVQty->Caption=GetDetailValue(fiSogdVQty);
      labSogdFQty->Caption=GetDetailValue(fiSogdFQty);
      labSogdEQty->Caption=GetDetailValue(fiSogdEQty);
      seSogdLoc->LocateKey(GetDetailValue(fiSogdLoc));
      seSogdBatch->Text=GetDetailValue(fiSogdBatch);
      deSogdRecDate->Text = GetDetailValue(fiSogdRecDate);
      memSogdDesc->Text=GetDetailValue(fiSogdDesc);
      cheSogdClose->Checked = GetDetailValue(fiSogdClose)=="1";
      seSogdCloseDate->Text = GetDetailValue(fiSogdCloseDate);
      scSogdState->LocateKey(GetDetailValue(fiSogdState));
      SetCloseDetailStatus(cheSogdClose->Checked);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_N_O::SendDataToComObject(int Section)
{
    AnsiString s;
    if(Section==1)
    {
      SetHeadValue(fiSoghCode,seSoghCode->Text);
      SetHeadValue(fiSoghType,"2"/*scSoghType->ItemData[cbItem2]*/);
      SetHeadValue(fiSoghPosType,scSoghPosType->ItemData[cbItem2]);
      SetHeadValue(fiSoghFmonth,scSoghFmonth->Text);
      SetHeadValue(fiSoghDate,deSoghDate->Text);
      SetHeadValue(fiSoghClient,seSoghClient->ItemData[cbItem2]);
      SetHeadValue(fiSoghCurrency,seSoghCurrency->ItemData[cbItem2]);
      SetHeadValue(fiSoghEnrate,seSoghEnrate->Text);
      SetHeadValue(fiSoghTaxCode,scSoghTaxCode->ItemData[cbItem2]);
      SetHeadValue(fiSoghTransCode,seSoghTransCode->Text);
      SetHeadValue(fiSoghDeliver,scSoghDeliver->ItemData[cbItem2]);
      SetHeadValue(fiSoghSsite,seSoghSsite->ItemData[cbItem2]);
      SetHeadValue(fiSoghTransMode,scSoghTransMode->ItemData[cbItem2]);
      SetHeadValue(fiSoghSettleMode,scSoghSettleMode->ItemData[cbItem2]);
      SetHeadValue(fiSoghSaler,scSoghSaler->ItemData[cbItem2]);
      SetHeadValue(fiSoghDesc,seSoghDesc->Text);
      SetHeadValue(fiSoghUser,g_sdUserCode);
      SetHeadValue(fiSoghState,scSoghState->ItemData[cbItem2]);
    }
    else
    {
      g_sdRsGoods->LocateByKey(WideString(seSogdGoods->Text));
      if(GetGoodsValue("GoodsBatch")=="1"&&seSogdBatch->Text.IsEmpty())
        throw Exception("该物料需要批次管理");
      CalculateAmt();
      SetDetailValue(fiSogdCode,seSoghCode->Text);
      SetDetailValue(fiSogdLine,seSogdLine->Text);
      SetDetailValue(fiSogdGoods,seSogdGoods->Text);
      SetDetailValue(fiSogdUnit,seSogdUnit->ItemData[cbItem2]);
      SetDetailValue(fiSogdConv,seSogdConv->Text);
      SetDetailValue(fiSogdQty,seSogdQty->Text);
      SetDetailValue(fiSogdPrice,seSogdPrice->Text);
      SetDetailValue(fiSogdAmt,seSogdAmt->Text);
      SetDetailValue(fiSogdTaxAmt,seSogdTaxAmt->Text);
      SetDetailValue(fiSogdDisc,seSogdDisc->Text);
      SetDetailValue(fiSogdDAmt,seSogdDAmt->Text);
      SetDetailValue(fiSogdLoc,seSogdLoc->ItemData[cbItem2]);
      SetDetailValue(fiSogdRecDate,deSogdRecDate->Text);
      SetDetailValue(fiSogdBatch,seSogdBatch->ItemData[cbItem2]);
      SetDetailValue(fiSogdDesc,memSogdDesc->Text);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_N_O::WaitUserInput(int Section)
{
    if(Section ==1){
      if(seSoghCode->Enabled)
         seSoghCode->SetFocus();
    }
    else{
      ChangeToBrowseState(false);
      if(seSogdLine->Enabled)
         seSogdLine->SetFocus();
    }
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmSogh_N_O::GetItemString()
{
    AnsiString ItemStr;
    ItemStr = "\t"+GetDetailValue(fiSogdLine)+
              "\t"+GetDetailValue(fiSogdGoods)+
              "\t"+GetDetailValue(fiSogdUnit)+
              "\t"+GetDetailValue(fiSogdPrice)+
              "\t"+GetDetailValue(fiSogdQty)+
              "\t"+GetDetailValue(fiSogdAmt)+

⌨️ 快捷键说明

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