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

📄 preth.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Preth.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 link "GenBaseForm"
#pragma resource "*.dfm"
#include "func.h"
#include "Pretd.h"

TfrmPreth *frmPreth;

//---------------------------------------------------------------------------
__fastcall TfrmPreth::TfrmPreth(TComponent* Owner)
        : TGenBaseForm(Owner,euSdPreth,"")
{
  AutoCtl=sePrethCode;
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreth::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,false,sePrethCode,sePrethCode->Name);
    ClientGroup->AddComponent(1,false,true,true,sePrethSupply,sePrethSupply->Name);
    ClientGroup->AddComponent(1,false,true,true,sePrethCurrency,sePrethCurrency->Name);
    ClientGroup->AddComponent(1,false,true,true,sePrethEnrate,sePrethEnrate->Name);
    ClientGroup->AddComponent(1,false,true,true,scPrethTaxCode,scPrethTaxCode->Name);
    ClientGroup->AddComponent(1,true,true,true,scPrethFMonth,scPrethFMonth->Name);
    ClientGroup->AddComponent(1,false,true,true,scPrethType,scPrethType->Name);

    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
//    ClientGroup->AddComponent(2,true,true,true,sePretdPrecCode,sePretdPrecCode->Name);
    ClientGroup->AddComponent(2,true,true,true,sePretdPrecdLine,sePretdPrecdLine->Name);
//    ClientGroup->AddComponent(2,true,true,true,sePretdGoods,sePretdGoods->Name);
//    ClientGroup->AddComponent(2,true,true,true,sePretdUnit,sePretdUnit->Name);
    ClientGroup->AddComponent(2,true,true,true,sePretdTaxAmt,sePretdTaxAmt->Name);
//    ClientGroup->AddComponent(2,true,true,true,sePretdConv,sePretdConv->Name);
//    ClientGroup->AddComponent(2,true,true,true,sePretdBatch,sePretdBatch->Name);
//    ClientGroup->AddComponent(2,true,true,true,sePretdSo,sePretdSo->Name);
    ClientGroup->AddComponent(2,true,true,true,sePretdSodLine,sePretdSodLine->Name);
    ClientGroup->AddComponent(2,true,true,true,chkPretdClose,chkPretdClose->Name);
    ClientGroup->AddComponent(2,true,true,true,dePretdCloseDate,dePretdCloseDate->Name);
    ClientGroup->AddComponent(2,true,true,true,scPretdState,scPretdState->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);

    //Preth
    FillComboBox(scPrethTransMode,"select transmodename memo,transmodecode from sdtransmode order by transmodecode","memo","transmodecode");
    FillComboBox(scPrethSettleMode,"select SettleModeName memo,SettleModeCode from sdSettleMode order by SettleModeCode","memo","SettleModeCode");
    FillComboBox(scPrethRr,"select pretrrdesc memo,pretrrcode from sdpretrr order by pretrrcode","memo","pretrrcode");
    FillEdit(sePrethPsite,"select psitename,psitecode from sdpsite order by psitecode","Psitename","psitecode");
    FillEdit(sePrethSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo FROM sdSupply  where supplycancel=0  order by SupplyCode",
                 "SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo");
    FillComboBox(scPrethPosType,"select PosTypeName memo,PosTypeCode from sdPosType where postypeflg=1 order by PosTypeCode","memo","PosTypeCode");
    FillComboBox(scPrethDeliver,"Select DeliverName memo,DeliverCode from sdDeliver order by DeliverCode","memo","DeliverCode");
    FillComboBox(scPrethTaxCode,"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_sdPMonth+"'";
    FillEdit(sePrethCurrency,sSql,"CurrencyName","CurrencyCode","currencyrate","currencylocal");

    //Pretd
    FillEdit(sePretdUnit,"select unitname,unitcode from sdunit order by UnitCode","UnitName","UnitCode");
    sSql="select loccode,locname from sdloc order by locName";
    FillEdit(sePretdLoc,sSql,"LocName","LocCode");

    scPretdState->ClearAll();
    scPretdState->AddItems("1-准备","1");
    scPretdState->AddItems("2-确认","2");
    scPretdState->AddItems("3-已执行","3");

    scPrethType->ClearAll();
    scPrethType->AddItems("1-据收货单退货","1");
    scPrethType->AddItems("2-据供应商退货","2");
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreth::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
         sePrethCode->Text ="";
         scPrethFMonth->Text =g_sdPMonth;
         scPrethPosType->ItemIndex   =-1;
         scPrethType->ItemIndex=-1;
         DynamicSetControlState();
         scPrethRr->ItemIndex   =-1;
         scPrethRr->Text="";
         sePrethPsite->ItemIndex   =-1;
         scPrethDeliver->ItemIndex   =-1;
         scPrethDeliver->Text="";
         sePrethSupply->ItemIndex   =-1;
         scPrethSettleMode->ItemIndex   =-1;
         sePrethCurrency->ItemIndex   =-1;
         scPrethTaxCode->ItemIndex   =-1;
         sePrethEnrate->Text ="1";
         scPrethTransMode->ItemIndex   =-1;
         scPrethTransMode->Text="";
         dePrethDate->Text=g_sdCurDate;
         labPrethSysDate->Caption="";
         sePrethDesc->Text="";
         cbxPrethCheck->Checked=false;
         cbxPrethCancel->Checked=false;
         labPrethChecker->Caption="";
         labPrethUser->Caption=g_sdUserCode;
         chkPrethClose->Checked=false;
         //新增单据,工具栏使能
         SetCheckToolbarStatus(false);
       }
       sgPreth->RowCount=1;
    }
    else if (Section==2)
     if(!BringToNext)
     {
        sePretdLine->Text=AnsiString(comServer->ItemCount+1);
        sePretdPrecCode->Text="";
        sePretdPrecdLine->Text="";
        sePretdGoods->Text="";
        pv_GoodsCode="";
        labPretdGoodsName->Caption="";
        sePretdUnit->ItemIndex=-1;
        sePretdPrice->Text="0.00";
        sePretdQty->Text="0";
        sePretdAmt->Text="0";
        sePretdTaxAmt->Text="0";
        sePretdExes->Text="0";
        scPretdState->ItemIndex=0;
        sePretdBatch->ItemIndex=-1;
        sePretdSo->Text="";
        sePretdSodLine->Text="";
        sePretdDesc->Text="";
        sePretdLoc->ItemIndex=-1;
        dePretdCloseDate->Text="";
        chkPretdClose->Checked=false;
     }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::GetDataFromComObject(int Section)
{
    if (Section==1)
    {
      sePrethCode->Text 	 =GetHeadValue(fiPrethCode);
      scPrethFMonth->Text 	 =GetHeadValue(fiPrethFmonth);
      dePrethDate->Text	 =GetHeadValue(fiPrethDate);
      scPrethType->LocateKey(GetHeadValue(fiPrethType));
      DynamicSetControlState();
      scPrethPosType->LocateKey(GetHeadValue(fiPrethPosType));
      scPrethRr->LocateKey(GetHeadValue(fiPrethRr));
      sePrethSupply->LocateKey(GetHeadValue(fiPrethSupply));
      sePrethCurrency->LocateKey(GetHeadValue(fiPrethCurrency));
      sePrethEnrate->Text 	 =GetHeadValue(fiPrethEnrate);
      scPrethTaxCode->LocateKey(GetHeadValue(fiPrethTaxCode));
      scPrethSettleMode->LocateKey(GetHeadValue(fiPrethSettleMode));
      sePrethPsite->LocateKey(GetHeadValue(fiPrethPsite));
      scPrethTransMode->LocateKey(GetHeadValue(fiPrethTransMode));
      scPrethDeliver->LocateKey(GetHeadValue(fiPrethDeliver));
      labPrethSysDate->Caption=GetHeadValue(fiPrethSysDate);
      labPrethUser->Caption	 =GetHeadValue(fiPrethUser);
      sePrethDesc->Text	 =GetHeadValue(fiPrethDesc);
      cbxPrethCheck->Checked  =GetHeadValue(fiPrethCheck)=="1";
      cbxPrethCancel->Checked =GetHeadValue(fiPrethCancel)=="1";
      labPrethChecker->Caption=GetHeadValue(fiPrethChecker);
      chkPrethClose->Checked=(GetHeadValue(fiPrethClose)=="1");

      //根据审核、取消状态,设置工具栏
      if(GetHeadValue(fiPrethCheck)=="1")
        SetCheckToolbarStatus(true);
      else
        SetCheckToolbarStatus(false);
      if(GetHeadValue(fiPrethCancel)=="1")
        SetCancelToolbarStatus(true);
      else
        SetCancelToolbarStatus(false);
      if(GetHeadValue(fiPrethClose)=="1")
        SetCloseToolbarStatus(true);
      else
        SetCloseToolbarStatus(false);
    }
    else
    {
      sePretdLine->Text	  =GetDetailValue(fiPretdLine);
      sePretdPrecCode->Text=GetDetailValue(fiPretdPrecCode);
      sePretdPrecdLine->Text=GetDetailValue(fiPretdPrecdLine);
      sePretdGoods->Text=GetDetailValue(fiPretdGoods);
      g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiPretdGoods)));
      labPretdGoodsName->Caption=GetGoodsValue("GoodsName");
      sePretdUnit->LocateKey(GetDetailValue(fiPretdUnit));
      sePretdConv->Text=GetDetailValue(fiPretdConv);
      sePretdPrice->Text=GetDetailValue(fiPretdPrice);
      sePretdQty->Text=GetDetailValue(fiPretdQty);
      sePretdAmt->Text=GetDetailValue(fiPretdAmt);
      sePretdTaxAmt->Text	  =GetDetailValue(fiPretdTaxAmt);
      sePretdExes->Text	  =GetDetailValue(fiPretdExes);
      sePretdLoc->LocateKey(GetDetailValue(fiPretdLoc));
      scPretdState->LocateKey(GetDetailValue(fiPretdState));
      sePretdDesc->Text	  =GetDetailValue(fiPretdDesc);
      sePretdBatch->Text=GetDetailValue(fiPretdBatch);
      sePretdSo->Text=GetDetailValue(fiPretdSo);
      sePretdSodLine->Text=GetDetailValue(fiPretdSodLine);
      chkPretdClose->Checked=(GetDetailValue(fiPretdClose)=="1");
      dePretdCloseDate->Text=GetDetailValue(fiPretdCloseDate);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreth::SendDataToComObject(int Section)
{
        if (Section==1)
        {
          SetHeadValue(fiPrethCode       ,sePrethCode->Text 	 );
          SetHeadValue(fiPrethFmonth     ,scPrethFMonth->Text 	 );
          SetHeadValue(fiPrethType       ,scPrethType->ItemData[cbItem2]);
          SetHeadValue(fiPrethPosType    ,scPrethPosType->ItemData[1]);
          SetHeadValue(fiPrethRr         ,scPrethRr->ItemData[1]);
          SetHeadValue(fiPrethSupply     ,sePrethSupply->ItemData[1]);
          SetHeadValue(fiPrethCurrency   ,sePrethCurrency->ItemData[1]);
          SetHeadValue(fiPrethEnrate     ,sePrethEnrate->Text 	 );
          SetHeadValue(fiPrethTaxCode    ,scPrethTaxCode->ItemData[1]);
          SetHeadValue(fiPrethSettleMode ,scPrethSettleMode->ItemData[1]);
          SetHeadValue(fiPrethPsite      ,sePrethPsite->ItemData[1]);
          SetHeadValue(fiPrethDeliver    ,scPrethDeliver->ItemData[1]);
          SetHeadValue(fiPrethTransMode  ,scPrethTransMode->ItemData[1]);
          SetHeadValue(fiPrethDate       ,dePrethDate->Text	 );
          SetHeadValue(fiPrethUser       ,labPrethUser->Caption	 );
          SetHeadValue(fiPrethDesc       ,sePrethDesc->Text	 );

        }
        else
        {
         //自动计算退货金额
         AutoCalculation();
         SetDetailValue(fiPretdCode,sePrethCode->Text);
         SetDetailValue(fiPretdLine,sePretdLine->Text	  );
         SetDetailValue(fiPretdPrecCode,sePretdPrecCode->Text );
         SetDetailValue(fiPretdPrecdLine,sePretdPrecdLine->Text);
         SetDetailValue(fiPretdGoods,sePretdGoods->Text);
         SetDetailValue(fiPretdUnit,sePretdUnit->ItemData[1]);
         SetDetailValue(fiPretdConv,sePretdConv->Text);
         SetDetailValue(fiPretdQty,sePretdQty->Text);
         SetDetailValue(fiPretdPrice,sePretdPrice->Text);
         SetDetailValue(fiPretdAmt,sePretdAmt->Text);
         SetDetailValue(fiPretdTaxAmt,sePretdTaxAmt->Text);
         SetDetailValue(fiPretdExes,sePretdExes->Text);
         SetDetailValue(fiPretdLoc,sePretdLoc->ItemData[cbItem2]);
         SetDetailValue(fiPretdSo,sePretdSo->Text);
         SetDetailValue(fiPretdSodLine,sePretdSodLine->Text);
         SetDetailValue(fiPretdBatch,sePretdBatch->Text);
         SetDetailValue(fiPretdDesc,sePretdDesc->Text	  );
         SetDetailValue(fiPretdState,scPretdState->ItemData[1]);
         }
      }
//---------------------------------------------------------------------------

void __fastcall TfrmPreth::WaitUserInput(int Section)
{
    if (Section ==1)
    {
     if(sePrethCode->Enabled)
      sePrethCode->SetFocus();
    }
    else
    {
      sgPreth->Visible=false;
      FloatPanel2->Visible=true;
      if(sePretdPrecCode->Enabled)
        sePretdPrecCode->SetFocus();
      pv_GoodsCode=sePretdGoods->Text;
      SetDetail(sePretdGoods->Text);

    }

}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPreth::GetItemStringToGrid()
{
    AnsiString s_ItemStr,str;
    s_ItemStr = "\t"+GetDetailValue(fiPretdLine)+
                "\t"+GetDetailValue(fiPretdPrecCode)+
                "\t"+GetDetailValue(fiPretdPrecdLine)+
                "\t"+GetDetailValue(fiPretdGoods)+
                "\t"+GetDetailValue(fiPretdUnit)+
                "\t"+GetDetailValue(fiPretdQty);
    return(s_ItemStr);

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

void __fastcall TfrmPreth::RefreshGridData(int mAction)
{
    int i;
    AnsiString ItemStr=GetItemStringToGrid();
    switch(mAction)
    {
       case 0:
         sgPreth->AddItem(ItemStr);
         break;
       case 1:
         i=frmPreth->sgPreth->Row;
         sgPreth->ChangeItem(ItemStr,i);
         break;
       case 2:
         sgPreth->RemoveItem(sgPreth->Row);
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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