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

📄 srewh.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Srewh.h"
#include "Srewd.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"

TfrmSrewh *frmSrewh;
//---------------------------------------------------------------------------
__fastcall TfrmSrewh::TfrmSrewh(TComponent* Owner)
        : TGenBaseForm(Owner,euSdSrewh,"")
{
  AutoCtl=seSrewhCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::InitEditControl()
{
    ClientGroup->AddComponent(1,true,true,true, FloatPanel3,FloatPanel3->Name);
    ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,true,true,false, sgSrewd,sgSrewd->Name);
    ClientGroup->AddComponent(1,false,true,true,seSrewhClient,seSrewhClient->Name);
    ClientGroup->AddComponent(1,false,true,false,seSrewhCode,seSrewhCode->Name);
    ClientGroup->AddComponent(1,true,true,true,scSrewhFmonth,scSrewhFmonth->Name);
    ClientGroup->AddComponent(1,false,false,true,seSrewhCurrency,seSrewhCurrency->Name);
    ClientGroup->AddComponent(1,false,false,true,seSrewhEnrate,seSrewhEnrate->Name);

    ClientGroup->AddComponent(2,false,false,true, FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,true,true, seSrewdSretCode,seSrewdSretCode->Name);
    ClientGroup->AddComponent(2,true,true,true,seSrewdSretdLine,seSrewdSretdLine->Name);
    ClientGroup->AddComponent(2,true,true,true,seSrewdGoods,seSrewdGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,seSrewdGoodsName,seSrewdGoodsName->Name);
    ClientGroup->AddComponent(2,true,true,true,seSrewdUnit,seSrewdUnit->Name);
    ClientGroup->AddComponent(2,true,true,true,seSrewdConv,seSrewdConv->Name);
    ClientGroup->AddComponent(2,true,true,true,seSrewdAmt,seSrewdAmt->Name);
    ClientGroup->AddComponent(2,true,true,true,seSrewdBatch,seSrewdBatch->Name);
    ClientGroup->AddComponent(2,true,true,true,seSrewdLoc,seSrewdLoc->Name);
    ClientGroup->AddComponent(2,true,true,true,scSrewdState,scSrewdState->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);

    //Srewh
    FillComboBox(scSrewhFmonth,"SELECT FcMonth FROM sdFc","FcMonth");
    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(seSrewhCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
    FillEdit(seSrewhClient,"SELECT ClientCode,ClientName FROM sdClient where ClientCancel=0","ClientName","ClientCode");
    FillComboBox(scSrewhRr,"SELECT SrewRrCode FROM sdSrewRr","SrewRrCode");
    FillEdit(seSrewhUser,"select UserName,UserCode from sdUser  order by usercode","UserName","UserCode");
    FillEdit(seSrewhChecker,"select UserName,UserCode from sdUser  order by usercode","UserName","UserCode");
    //Srewd
    FillEdit(seSrewdUnit,"SELECT UnitCode,UnitName FROM sdUnit","UnitName","UnitCode");
    FillEdit(seSrewdLoc,"SELECT LocCode,LocName FROM sdLoc","Locname","LocCode");
    FillEdit(seSrewdBatch,"SELECT BatchCode,BatchDesc FROM sdBatch where BatchEffectDate<='"+g_sdCurDate+"' and (BatchAbateDate>='"+g_sdCurDate+"' or BatchAbateDate='') ","BatchDesc","BatchCode");
    scSrewdState->ClearAll();
    scSrewdState->AddItems("预备","1");
    scSrewdState->AddItems("确认","2");
    scSrewdState->AddItems("待下达","3");
    scSrewdState->AddItems("已下达","4");
    scSrewdState->AddItems("已完成","5");

}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
         seSrewhCode->Text        ="";
         deSrewhDate->Text        =g_sdCurDate;
         seSrewhClient->ItemIndex      =-1;
         seSrewhCurrency->ItemIndex    =-1;
         seSrewhDesc->Text       ="";
         cheSrewhCheck->Checked   =false;
         seSrewhChecker->ItemIndex  =-1;
         cheSrewhCancel->Checked  =false;
         seSrewhUser->LocateKey(g_sdUserCode);
         seSrewhEnrate->Text      ="1";
         scSrewhFmonth->Text      =g_sdSMonth;
         scSrewhRr->Text          ="";
         lbSrewhSysDate->Caption="";
       }
       sgSrewd->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
          if(comServer->ItemCount==0)
               seSrewdLine->Text ="1";
             else
             {
             comServer->LocateItemByIndex(comServer->ItemCount-1);
             seSrewdLine->Text=AnsiString(StrToInt(GetDetailValue(fiSrewdLine))+1);
             }
          seSrewdSretdLine->Text   ="";
          seSrewdSretCode->Text   ="";
          seSrewdGoods->Text       ="";
          seSrewdGoodsName->Text   ="";
          seSrewdUnit->ItemIndex   =-1;
          seSrewdConv->Text        ="1";
          seSrewdQty->Text         ="0";
          seSrewdExes->Text        ="0.00";
          scSrewdState->ItemIndex  =1;
          seSrewdBatch->ItemIndex  =-1;
          memSrewdDesc->Text       ="";
          seSrewdLoc->ItemIndex    =-1;
          seSrewdAmt->Text         ="0.00";
          seSrewdPrice->Text       ="0";
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::GetDataFromComObject(int Section)
{
      if (Section==1)
      {
        seSrewhCode->Text      =GetHeadValue(fiSrewhCode);
        deSrewhDate->Text      =GetHeadValue(fiSrewhDate);
        seSrewhClient->LocateKey(GetHeadValue(fiSrewhClient));
        seSrewhCurrency->LocateKey(GetHeadValue(fiSrewhCurrency));
        if(seSrewhCurrency->ItemData[cbItem4]=="1")
          seSrewhEnrate->Enabled=false;
        seSrewhDesc->Text     =GetHeadValue(fiSrewhDesc);
        cheSrewhCheck->Checked =GetHeadValue(fiSrewhCheck)=="1";
        seSrewhChecker->LocateKey(GetHeadValue(fiSrewhChecker));
        cheSrewhCancel->Checked=GetHeadValue(fiSrewhCancel)=="1";
        seSrewhUser->LocateKey(GetHeadValue(fiSrewhUser));
        seSrewhEnrate->Text    =GetHeadValue(fiSrewhEnrate);
        scSrewhFmonth->Text    =GetHeadValue(fiSrewhFmonth);
        scSrewhRr->Text        =GetHeadValue(fiSrewhRr);
        lbSrewhSysDate->Caption=GetHeadValue(fiSrewhSysDate);
        SetCheckToolbarStatus(cheSrewhCheck->Checked);
        SetCancelToolbarStatus(cheSrewhCancel->Checked);
      }
      else
      {
        seSrewdLine->Text      =GetDetailValue(fiSrewdLine);
        seSrewdSretCode->Text  =GetDetailValue(fiSrewdSretCode);
        seSrewdSretdLine->Text =GetDetailValue(fiSrewdSretdLine);
        seSrewdGoods->Text     =GetDetailValue(fiSrewdGoods);
        if(g_sdRsGoods->LocateByKey(WideString(seSrewdGoods->Text))==0)
          seSrewdGoodsName->Text =GetGoodsValue("GoodsName");
        seSrewdUnit->LocateKey(GetDetailValue(fiSrewdUnit));
        seSrewdConv->Text      =GetDetailValue(fiSrewdConv);
        seSrewdQty->Text       =GetDetailValue(fiSrewdQty);
        seSrewdPrice->Text     =GetDetailValue(fiSrewdPrice);
        seSrewdAmt->Text       =GetDetailValue(fiSrewdAmt);
        seSrewdExes->Text      =GetDetailValue(fiSrewdExes);
        scSrewdState->LocateKey(GetDetailValue(fiSrewdState));
        seSrewdBatch->LocateKey(GetDetailValue(fiSrewdBatch));
        memSrewdDesc->Text     =GetDetailValue(fiSrewdDesc);
        seSrewdLoc->LocateKey(GetDetailValue(fiSrewdLoc));
      }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSrewh::SendDataToComObject(int Section)
{
       AnsiString s;
        if (Section==1)
        {
            SetHeadValue(fiSrewhCode,        seSrewhCode->Text       );
            SetHeadValue(fiSrewhDate,        deSrewhDate->Text);
            SetHeadValue(fiSrewhClient,      seSrewhClient->ItemData[cbItem2]     );
            SetHeadValue(fiSrewhCurrency,    seSrewhCurrency->ItemData[cbItem2]   );
            SetHeadValue(fiSrewhDesc,        seSrewhDesc->Text      );
            SetHeadValue(fiSrewhUser,        g_sdUserCode/*scSrewhUser->Text*/);
            SetHeadValue(fiSrewhEnrate,      seSrewhEnrate->Text     );
            SetHeadValue(fiSrewhFmonth,      scSrewhFmonth->Text     );
            SetHeadValue(fiSrewhRr,          scSrewhRr->Text         );
         }
        else
        {
            CalculateAmt();
            SetDetailValue(fiSrewdCode,seSrewhCode->Text);
            SetDetailValue(fiSrewdLine,      seSrewdLine->Text       );
            SetDetailValue(fiSrewdSretCode,  seSrewdSretCode->Text   );
            SetDetailValue(fiSrewdSretdLine, seSrewdSretdLine->Text  );
            SetDetailValue(fiSrewdUnit,      seSrewdUnit->ItemData[cbItem2] );
            SetDetailValue(fiSrewdConv,      seSrewdConv->Text       );
            SetDetailValue(fiSrewdGoods,     seSrewdGoods->Text      );
            SetDetailValue(fiSrewdLoc,       seSrewdLoc->ItemData[cbItem2]);
            SetDetailValue(fiSrewdQty,       seSrewdQty->Text        );
            SetDetailValue(fiSrewdPrice,     seSrewdPrice->Text      );
            SetDetailValue(fiSrewdAmt,       seSrewdAmt->Text        );
            SetDetailValue(fiSrewdExes,      seSrewdExes->Text       );
            SetDetailValue(fiSrewdBatch,     seSrewdBatch->ItemData[cbItem2]);
            SetDetailValue(fiSrewdDesc,      memSrewdDesc->Text      );
        }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::WaitUserInput(int Section)
{
       if (Section ==1)
       {
//        FloatPanel1->Enabled=true;
       if(seSrewhCode->Enabled)
          seSrewhCode->SetFocus();
        }
       else
       {
//          FloatPanel1->Enabled=false;
          sgSrewd->Visible=false;
          sgSrewd->Align=alNone;
          FloatPanel2->Visible=true;
          FloatPanel2->Align=alClient;
          if(seSrewdLine->Enabled)
            seSrewdLine->SetFocus();
       }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::RefreshGridData(int mAction)
{
        AnsiString ItemStr;
        switch(mAction)
        {
           case 0:
              ItemStr="\t"+GetDetailValue(fiSrewdLine)+"\t"+GetDetailValue(fiSrewdSretCode)+"\t"+
                  GetDetailValue(fiSrewdSretdLine)+"\t"+GetDetailValue(fiSrewdGoods)+"\t"+
                  GetDetailValue(fiSrewdUnit)+"\t"+GetDetailValue(fiSrewdQty)+"\t"+
                  GetDetailValue(fiSrewdAmt)+"\t"+GetDetailValue(fiSrewdExes);
              sgSrewd->AddItem(ItemStr);
              break;
           case 1:
              ItemStr="\t"+GetDetailValue(fiSrewdLine)+"\t"+GetDetailValue(fiSrewdSretCode)+"\t"+
                  GetDetailValue(fiSrewdSretdLine)+"\t"+GetDetailValue(fiSrewdGoods)+"\t"+
                  GetDetailValue(fiSrewdUnit)+"\t"+GetDetailValue(fiSrewdQty)+"\t"+
                  GetDetailValue(fiSrewdExes)+"\t"+GetDetailValue(fiSrewdExes);
                  sgSrewd->ChangeItem(ItemStr,sgSrewd->Row);
                 break;
           case 2:
                sgSrewd->RemoveItem(sgSrewd->Row);
        }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::DisplayBill()
{

       if(comServer->RecordCount<1)
         return;
       GetDataFromComObject(1);
       ChangeToBrowseState(true);
       FillGridWithData();
/*       if (sgSrewd->RowCount >1)
        {
           AnsiString Keystr;
           Keystr=sgSrewd->Cells[1][sgSrewd->Row];
           comServer->LocateItemByKey(WideString(Keystr));
           GetDataFromComObject(2);
        }*/
}
//---------------------------------------------------------------------------

void __fastcall TfrmSrewh::GetBill(AnsiString BillID)
{
       if(comServer->Find("SrewhCode='"+BillID+"'"))
       {
           DisplayBill();
       }
       else
           if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
           {
               AddHeadRecord();
           }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::FillGridWithData()
{
      int i;
      AnsiString ItemStr;
      sgSrewd->RowCount=1;
      for (i=0;i<comServer->ItemCount;i++)
      {
          comServer->LocateItemByIndex(i);
          RefreshGridData(0);
      }
      comServer->LocateItemByIndex(0);
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmSrewh::GetHeadValue(int Index)
{
        WideString S;
        S = ReadFieldValue(comServer,Index);
        return S;
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmSrewh::GetDetailValue(int Index)
{
        WideString S;
        S = ReadItemValue(comServer,Index);
        return S;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSrewh::SetHeadValue(int Index,AnsiString Value)

⌨️ 快捷键说明

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