sogh_s_o.~cpp

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

~CPP
968
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Sogh_S_O.h"
#include "Sogd_S_O.h"
#include "KSSaleFuc.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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
		: TGenBaseForm(Owner,chWnd,MidCode,WhereStr)
{
  SetAutoCodeString(seSoghCode,"Acm-012");

}
//---------------------------------------------------------------------------
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(Handle,scSoghFmonth,"SELECT FcMonth FROM sdFc","FcMonth");
    FillComboBox(Handle,scSoghPosType,"SELECT PosTypeCode,PosTypeName FROM sdPosType where postypeflg=2 order by PosTypeCode","PosTypeName","PosTypeCode");
    FillEdit(Query,seSoghClient,"SELECT ClientName,ClientCode,ClientCurrency,ClientTaxCode FROM sdClient where ClientCancel=0","ClientName","ClientCode","ClientCurrency","ClientTaxCode");
    FillComboBox(Handle,scSoghDeliver,"SELECT DeliverName,DeliverCode FROM sdDeliver order by DeliverCode","DeliverName","DeliverCode");
    FillComboBox(Handle,scSoghTaxCode,"SELECT TaxName,TaxCode,TaxRate FROM sdTax order by TaxCode","TaxName","TaxCode","TaxRate");
	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(Query,seSoghCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
	FillEdit(Query,seSoghSsite,"SELECT SsiteName,SsiteCode FROM sdSsite","SSiteName","SsiteCode");
	FillComboBox(Handle,scSoghTransMode,"SELECT TransModeName,TransModeCode FROM sdTransMode order by TransModeCode","TransModeName","TransModeCode");
	FillComboBox(Handle,scSoghSettleMode,"select settlemodename,settlemodecode from sdsettlemode order by settlemodename","settleModeName","SettleModeCode");
	FillComboBox(Handle,scSoghSaler,"Select Salercode,UserName As Salername from sduser,sdsaler where salercode=usercode order by username","SalerName","SalerCode");

	//Sogd
	FillEdit(Query,seSogdLoc,"select LocCode,LocName from sdLoc where Loctype=1 or loctype=4 order by LocCode","LocName","LocCode");
	FillEdit(Query,seSogdUnit,"SELECT UnitCode,UnitName FROM sdUnit ","UnitName","UnitCode");
	FillEdit(Query,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->Text="";
		 scSoghUser->Text=g_sdUserCode;
		 cheSoghCheck->Checked = false;
		 seSoghChecker->Text ="";
		 cheSoghCancel->Checked = false;
		 cheSoghClose->Checked = false;
		 lbSoghSysDate->Caption = "";
		 scSoghState->ItemIndex=0;
	   }
	   sgSogd->RowCount=1;
	}
	else if (Section==2)
	{
		if (!BringToNext)
		{
		  seSogdLine->Text=AnsiString(comServer->ItemCount+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="";
		  deSogdRecDate->Text = DateToStr(Date());
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_S_O::GetDataFromComObject(int Section)
{
        if (Section==1)
        {
          seSoghCode->Text = GetHeadValue("SoghCode");
          scSoghType->LocateKey(GetHeadValue("SoghType"));
          scSoghFmonth->Text = GetHeadValue("SoghFmonth");
          scSoghPosType->LocateKey(GetHeadValue("SoghPosType"));
          deSoghDate->Text= GetHeadValue("SoghDate");
          seSoghClient->LocateKey(GetHeadValue("SoghClient"));
          seSoghCurrency->LocateKey(GetHeadValue("SoghCurrency"));
          if(seSoghCurrency->ItemData[cbItem4]=="1")
            seSoghEnrate->Enabled=false;
          seSoghEnrate->Text = GetHeadValue("SoghEnrate");
          scSoghTaxCode->LocateKey(GetHeadValue("SoghTaxCode"));
          scSoghDeliver->LocateKey(GetHeadValue("SoghDeliver"));
          seSoghSsite->LocateKey(GetHeadValue("SoghSsite"));
          scSoghTransMode->LocateKey(GetHeadValue("SoghTransMode"));
          seSoghTransCode->Text = GetHeadValue("SoghTransCode");
          scSoghUser->Text=GetHeadValue("SoghUser");
          scSoghState->LocateKey(GetHeadValue("SoghState"));
          scSoghSaler->LocateKey(GetHeadValue("SoghSaler"));
          scSoghSettleMode->LocateKey(GetHeadValue("SoghSettleMode"));
          cheSoghCheck->Checked = GetHeadValue("SoghCheck")=="1";
          seSoghChecker->Text=GetHeadValue("SoghChecker");
          cheSoghCancel->Checked = GetHeadValue("SoghCancel")=="1";
          cheSoghClose->Checked=GetHeadValue("SoghClose")=="1";
          lbSoghSysDate->Caption = GetHeadValue("SoghSysDate");
          seSoghDesc->Text = GetHeadValue("SoghDesc");
          SetCheckToolbarStatus(cheSoghCheck->Checked);
          SetCancelToolbarStatus(cheSoghCancel->Checked);
          SetCloseToolbarStatus(cheSoghClose->Checked);
        }
        else
        {
            seSogdLine->Text = GetDetailValue("SogdLine");
            seSogdSoCode->Text=GetDetailValue("SogdSoCode");
            seSogdSodLine->Text=GetDetailValue("SogdSodLine");
            seSogdGoods->Text=GetDetailValue("SogdGoods");
            seSogdGoodsSpec->Text=GetDetailValue("SogdGoodsSpec");;
            seSogdUnit->LocateKey(GetDetailValue("SogdUnit"));
            seSogdConv->Text = GetDetailValue("SogdConv");
            seSogdQty->Text = GetDetailValue("SogdQty");
            seSogdPrice->Text=GetDetailValue("SogdPrice");
            seSogdAmt->Text=GetDetailValue("SogdAmt");
            seSogdTaxAmt->Text=GetDetailValue("SogdTaxAmt");
            seSogdDisc->Text=GetDetailValue("SogdDisc");
            seSogdDAmt->Text=GetDetailValue("SogdDAmt");
            labSogdOQty->Caption=GetDetailValue("SogdOQty");
            labSogdBQty->Caption=GetDetailValue("SogdBQty");
            labSogdVQty->Caption=GetDetailValue("SogdVQty");
            labSogdFQty->Caption=GetDetailValue("SogdFQty");
            labSogdEQty->Caption=GetDetailValue("SogdEQty");
            seSogdLoc->LocateKey(GetDetailValue("SogdLoc"));
            seSogdBatch->LocateKey(GetDetailValue("SogdBatch"));
            deSogdRecDate->Text = GetDetailValue("SogdRecDate");
            memSogdDesc->Text=GetDetailValue("SogdDesc");
            cheSogdClose->Checked = GetDetailValue("SogdClose")=="1";
            seSogdCloseDate->Text = GetDetailValue("SogdCloseDate");
            scSogdState->LocateKey(GetDetailValue("SogdState"));
            SetCloseItemStatus(cheSogdClose->Checked);
        }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSogh_S_O::SendDataToComObject(int Section)
{
       AnsiString s;
        if (Section==1)
        {
			if ( seSoghCode->Text.IsEmpty() )
			  throw Exception("发货单号不能为空!");
			if ( scSoghFmonth->Text.IsEmpty())
			  throw Exception("财务月份不能为空!");
			if ( seSoghClient->ItemData[cbItem2].IsEmpty() )
			  throw Exception("客户不能为空!");
			if ( seSoghCurrency->ItemData[cbItem2].IsEmpty() )
			   throw Exception("币种不能为空!");
			if ( scSoghTaxCode->ItemData[cbItem2].IsEmpty() )
			   throw Exception("税码不能为空!");
			if ( scSoghSaler->Text.IsEmpty() )
			   throw Exception("业务员不能为空!");

			SetHeadValue("SoghCode",seSoghCode->Text);
            SetHeadValue("SoghType","1"/*scSoghType->ItemData[cbItem2]*/);
            SetHeadValue("SoghPosType",scSoghPosType->ItemData[cbItem2]);
            SetHeadValue("SoghFmonth",scSoghFmonth->Text);
            SetHeadValue("SoghDate",deSoghDate->Text);
            SetHeadValue("SoghClient",seSoghClient->ItemData[cbItem2]);
            SetHeadValue("SoghCurrency",seSoghCurrency->ItemData[cbItem2]);
            SetHeadValue("SoghEnrate",seSoghEnrate->Text);
            SetHeadValue("SoghTaxCode",scSoghTaxCode->ItemData[cbItem2]);
            SetHeadValue("SoghTransCode",seSoghTransCode->Text);
            SetHeadValue("SoghDeliver",scSoghDeliver->ItemData[cbItem2]);
            SetHeadValue("SoghSsite",seSoghSsite->ItemData[cbItem2]);
            SetHeadValue("SoghTransMode",scSoghTransMode->ItemData[cbItem2]);
            SetHeadValue("SoghSettleMode",scSoghSettleMode->ItemData[cbItem2]);
            SetHeadValue("SoghSaler",scSoghSaler->ItemData[cbItem2]);
            SetHeadValue("SoghDesc",seSoghDesc->Text);
            SetHeadValue("SoghUser",g_sdUserCode);
            SetHeadValue("SoghState",scSoghState->ItemData[cbItem2]);
        }
        else
        {
			InitRsGoods(seSogdGoods->Text);
			if(seSogdSoCode->Text.IsEmpty())
			   throw Exception("订单号不能为空!");
//			if(seSoghCode->Text.IsEmpty())
//			   throw Exception("货品编码不能为空!");
			if(seSogdUnit->ItemData[cbItem2]=="")
			   throw Exception("计量单位不能为空!");
			if(seSogdPrice->Text.IsEmpty())
			   throw Exception("销售单价不能为空!");
			if(deSogdRecDate->Text.IsEmpty())
			   throw Exception("交货日不能为空");
			if(GetGoodsValue(gtInitRs,"GoodsBatch")=="1"&&seSogdBatch->Text.IsEmpty())
			  throw Exception("该物料需要批次管理");

		   CalculateAmt();
            SetDetailValue("SogdCode",seSoghCode->Text);
            SetDetailValue("SogdLine",seSogdLine->Text);
			SetDetailValue("SogdSoCode",seSogdSoCode->Text);
            SetDetailValue("SogdSodLine",seSogdSodLine->Text);
            SetDetailValue("SogdGoods",seSogdGoods->Text);
            SetDetailValue("SogdGoodsName",seSogdGoodsName->Text);
            SetDetailValue("SogdGoodsSpec",seSogdGoodsSpec->Text);
            SetDetailValue("SogdUnit",seSogdUnit->ItemData[cbItem2]);
            SetDetailValue("SogdConv",seSogdConv->Text);
            SetDetailValue("SogdQty",seSogdQty->Text);
            SetDetailValue("SogdPrice",seSogdPrice->Text);
            SetDetailValue("SogdAmt",seSogdAmt->Text);
            SetDetailValue("SogdTaxAmt",seSogdTaxAmt->Text);
            SetDetailValue("SogdDisc",seSogdDisc->Text);
            SetDetailValue("SogdDAmt",seSogdDAmt->Text);
            SetDetailValue("SogdLoc",seSogdLoc->ItemData[cbItem2]);
            SetDetailValue("SogdRecDate",deSogdRecDate->Text);
            SetDetailValue("SogdBatch",seSogdBatch->ItemData[cbItem2]);
            SetDetailValue("SogdDesc",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();
       }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSogh_S_O::RefreshGridData(int mAction)

⌨️ 快捷键说明

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