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

📄 sogh_s_o.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Sogh_S_O.h"
#include "Sogd_S_O.h"
#include "func.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#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"

TfrmSogh_S_O *frmSogh_S_O;
//---------------------------------------------------------------------------
__fastcall TfrmSogh_S_O::TfrmSogh_S_O(TComponent* Owner)
        : TGenBaseForm(Owner,euSdSogh,"SoghType=1")
{
 AutoCtl=seSoghCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_S_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,true,true,seSogdSoCode,seSogdSoCode->Name);
    ClientGroup->AddComponent(2,true,true,true,seSogdSodLine,seSogdSodLine->Name);
    ClientGroup->AddComponent(2,true,true,true,seSogdGoods,seSogdGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,seSogdGoodsName,seSogdGoodsName->Name);
    ClientGroup->AddComponent(2,true,true,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,true,true,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 sdSaler,sdUser where UserCode=SalerCode 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_S_O::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
         seSoghCode->Text = "";
         scSoghType->LocateKey("1");
         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->LocateKey(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);
          }
          seSogdSoCode->Text="";
          seSogdSodLine->Text="0";
          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->ItemIndex=-1;
          memSogdDesc->Text="";
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_S_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);
            seSogdSoCode->Text=GetDetailValue(fiSogdSoCode);
            seSogdSodLine->Text=GetDetailValue(fiSogdSodLine);
            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->LocateKey(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_S_O::SendDataToComObject(int Section)
{
       AnsiString s;
        if (Section==1)
        {
            SetHeadValue(fiSoghCode,seSoghCode->Text);
            SetHeadValue(fiSoghType,"1"/*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(fiSogdSoCode,seSogdSoCode->Text);
            SetDetailValue(fiSogdSodLine,seSogdSodLine->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_S_O::WaitUserInput(int Section)
{
       if (Section ==1)
         {
//          FloatPanel1->Enabled=true;
         if(seSoghCode->Enabled)
            seSoghCode->SetFocus();
         }
       else
       {
//          FloatPanel1->Enabled=false;
          sgSogd->Visible=false;
          sgSogd->Align=alNone;
          FloatPanel2->Visible=true;
          FloatPanel2->Align=alClient;
         if(CurrentState==caAddDetail||CurrentState==caAddBill)
            btnOK->Enabled=true;
           else
            btnOK->Enabled=false;
          btnCancel->Enabled=true;
          if(seSogdLine->Enabled)
            seSogdLine->SetFocus();
       }
}

⌨️ 快捷键说明

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