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

📄 sexch.cpp

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

TfrmSexch *frmSexch;
//---------------------------------------------------------------------------
__fastcall TfrmSexch::TfrmSexch(TComponent* Owner)
        : TGenBaseForm(Owner,euSdSexch,"")
{
  AutoCtl=seSexchCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSexch::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, sgSexcd,sgSexcd->Name);
    ClientGroup->AddComponent(1,false,true,true,seSexchClient,seSexchClient->Name);
    ClientGroup->AddComponent(1,false,true,false,seSexchCode,seSexchCode->Name);
    ClientGroup->AddComponent(1,true,true,true,scSexchFmonth,scSexchFmonth->Name);
    ClientGroup->AddComponent(1,false,false,true,seSexchCurrency,seSexchCurrency->Name);
    ClientGroup->AddComponent(1,false,false,true,seSexchEnrate,seSexchEnrate->Name);

    ClientGroup->AddComponent(2,false,false,true, FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,true,true, seSexcdSretCode,seSexcdSretCode->Name);
    ClientGroup->AddComponent(2,true,true,true,seSexcdSretdLine,seSexcdSretdLine->Name);
    ClientGroup->AddComponent(2,true,true,true,seSexcdGoods,seSexcdGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,seSexcdGoodsName,seSexcdGoodsName->Name);
    ClientGroup->AddComponent(2,true,true,true,seSexcdUnit,seSexcdUnit->Name);
    ClientGroup->AddComponent(2,true,true,true,seSexcdConv,seSexcdConv->Name);
    ClientGroup->AddComponent(2,true,true,true,seSexcdAmt,seSexcdAmt->Name);
    ClientGroup->AddComponent(2,true,true,true,seSexcdBatch,seSexcdBatch->Name);
    ClientGroup->AddComponent(2,true,true,true,seSexcdLoc,seSexcdLoc->Name);
    ClientGroup->AddComponent(2,true,true,true,scSexcdState,scSexcdState->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);

    //Sexch
    FillComboBox(scSexchFmonth,"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(seSexchCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
    FillEdit(seSexchClient,"SELECT ClientCode,ClientName FROM sdClient where ClientCancel=0","ClientName","ClientCode");
    FillComboBox(scSexchRr,"SELECT SexcRrCode FROM sdSexcRr","SexcRrCode");
    FillEdit(seSexchUser,"select UserName,UserCode from sdUser  order by usercode","UserName","UserCode");
    FillEdit(seSexchChecker,"select UserName,UserCode from sdUser  order by usercode","UserName","UserCode");
    //Sexcd
    FillEdit(seSexcdUnit,"SELECT UnitCode,UnitName FROM sdUnit","UnitName","UnitCode");
    FillEdit(seSexcdLoc,"SELECT LocCode,LocName FROM sdLoc","Locname","LocCode");
    FillEdit(seSexcdBatch,"SELECT BatchCode,BatchDesc FROM sdBatch","BatchDesc","BatchCode");
    scSexcdState->ClearAll();
    scSexcdState->AddItems("预备","1");
    scSexcdState->AddItems("确认","2");
    scSexcdState->AddItems("待下达","3");
    scSexcdState->AddItems("已下达","4");
    scSexcdState->AddItems("已完成","5");

}
//---------------------------------------------------------------------------
void __fastcall TfrmSexch::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
         seSexchCode->Text        ="";
         deSexchDate->Text        =g_sdCurDate;
         seSexchClient->ItemIndex      =-1;
         seSexchCurrency->ItemIndex    =-1;
         seSexchDesc->Text       ="";
         cheSexchCheck->Checked   =false;
         seSexchChecker->ItemIndex  =-1;
         cheSexchCancel->Checked  =false;
         seSexchUser->LocateKey(g_sdUserCode);
         seSexchEnrate->Text      ="1";
         scSexchFmonth->Text      =g_sdSMonth;
         scSexchRr->Text          ="";
         lbSexchSysDate->Caption="";
       }
       sgSexcd->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
          if(comServer->ItemCount==0)
               seSexcdLine->Text ="1";
             else
             {
             comServer->LocateItemByIndex(comServer->ItemCount-1);
             seSexcdLine->Text=AnsiString(StrToInt(GetDetailValue(fiSexcdLine))+1);
             }
          seSexcdSretdLine->Text   ="";
          seSexcdSretCode->Text   ="";
          seSexcdGoods->Text       ="";
          seSexcdGoodsName->Text   ="";
          seSexcdUnit->ItemIndex   =-1;
          seSexcdConv->Text        ="1";
          seSexcdQty->Text         ="0";
          seSexcdExes->Text        ="0.00";
          scSexcdState->ItemIndex  =0;
          seSexcdBatch->ItemIndex  =-1;
          memSexcdDesc->Text       ="";
          seSexcdLoc->ItemIndex    =-1;
          seSexcdAmt->Text         ="0.00";
          seSexcdPrice->Text       ="0";
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSexch::GetDataFromComObject(int Section)
{
      if (Section==1)
      {
        seSexchCode->Text      =GetHeadValue(fiSexchCode);
        deSexchDate->Text      =GetHeadValue(fiSexchDate);
        seSexchClient->LocateKey(GetHeadValue(fiSexchClient));
        seSexchCurrency->LocateKey(GetHeadValue(fiSexchCurrency));
        if(seSexchCurrency->ItemData[cbItem4]=="1")
          seSexchEnrate->Enabled=false;
        seSexchDesc->Text     =GetHeadValue(fiSexchDesc);
        cheSexchCheck->Checked =GetHeadValue(fiSexchCheck)=="1";
        seSexchChecker->LocateKey(GetHeadValue(fiSexchChecker));
        cheSexchCancel->Checked=GetHeadValue(fiSexchCancel)=="1";
        seSexchUser->LocateKey(GetHeadValue(fiSexchUser));
        seSexchEnrate->Text    =GetHeadValue(fiSexchEnrate);
        scSexchFmonth->Text    =GetHeadValue(fiSexchFmonth);
        scSexchRr->Text        =GetHeadValue(fiSexchRr);
        lbSexchSysDate->Caption=GetHeadValue(fiSexchSysDate);
        SetCheckToolbarStatus(cheSexchCheck->Checked);
        SetCancelToolbarStatus(cheSexchCancel->Checked);
      }
      else
      {
        seSexcdLine->Text      =GetDetailValue(fiSexcdLine);
        seSexcdSretCode->Text  =GetDetailValue(fiSexcdSretCode);
        seSexcdSretdLine->Text =GetDetailValue(fiSexcdSretdLine);
        seSexcdGoods->Text     =GetDetailValue(fiSexcdGoods);
        if(g_sdRsGoods->LocateByKey(WideString(seSexcdGoods->Text))==0)
          seSexcdGoodsName->Text =GetGoodsValue("GoodsName");
        seSexcdUnit->LocateKey(GetDetailValue(fiSexcdUnit));
        seSexcdConv->Text      =GetDetailValue(fiSexcdConv);
        seSexcdQty->Text       =GetDetailValue(fiSexcdQty);
        seSexcdPrice->Text     =GetDetailValue(fiSexcdPrice);
        seSexcdAmt->Text       =GetDetailValue(fiSexcdAmt);
        seSexcdExes->Text      =GetDetailValue(fiSexcdExes);
        scSexcdState->LocateKey(GetDetailValue(fiSexcdState));
        seSexcdBatch->LocateKey(GetDetailValue(fiSexcdBatch));
        memSexcdDesc->Text     =GetDetailValue(fiSexcdDesc);
        seSexcdLoc->LocateKey(GetDetailValue(fiSexcdLoc));
      }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSexch::SendDataToComObject(int Section)
{
       AnsiString s;
        if (Section==1)
        {
            SetHeadValue(fiSexchCode,        seSexchCode->Text       );
            SetHeadValue(fiSexchDate,        deSexchDate->Text);
            SetHeadValue(fiSexchClient,      seSexchClient->ItemData[cbItem2]     );
            SetHeadValue(fiSexchCurrency,    seSexchCurrency->ItemData[cbItem2]   );
            SetHeadValue(fiSexchDesc,        seSexchDesc->Text      );
            SetHeadValue(fiSexchUser,        g_sdUserCode/*scSexchUser->Text*/);
            SetHeadValue(fiSexchEnrate,      seSexchEnrate->Text     );
            SetHeadValue(fiSexchFmonth,      scSexchFmonth->Text     );
            SetHeadValue(fiSexchRr,          scSexchRr->Text         );
         }
        else
        {
            CalculateAmt();
            SetDetailValue(fiSexcdCode,seSexchCode->Text);
            SetDetailValue(fiSexcdLine,      seSexcdLine->Text       );
            SetDetailValue(fiSexcdSretCode,  seSexcdSretCode->Text   );
            SetDetailValue(fiSexcdSretdLine, seSexcdSretdLine->Text  );
            SetDetailValue(fiSexcdUnit,      seSexcdUnit->ItemData[cbItem2] );
            SetDetailValue(fiSexcdConv,      seSexcdConv->Text       );
            SetDetailValue(fiSexcdGoods,     seSexcdGoods->Text      );
            SetDetailValue(fiSexcdLoc,       seSexcdLoc->ItemData[cbItem2]);
            SetDetailValue(fiSexcdQty,       seSexcdQty->Text        );
            SetDetailValue(fiSexcdPrice,     seSexcdPrice->Text      );
            SetDetailValue(fiSexcdAmt,       seSexcdAmt->Text        );
            SetDetailValue(fiSexcdExes,      seSexcdExes->Text       );
            SetDetailValue(fiSexcdBatch,     seSexcdBatch->ItemData[cbItem2]);
            SetDetailValue(fiSexcdState,     scSexcdState->ItemData[cbItem2]);
            SetDetailValue(fiSexcdDesc,      memSexcdDesc->Text      );
        }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSexch::WaitUserInput(int Section)
{
       if (Section ==1)
       {
//        FloatPanel1->Enabled=true;
       if(seSexchCode->Enabled)
          seSexchCode->SetFocus();
        }
       else
       {
//          FloatPanel1->Enabled=false;
          sgSexcd->Visible=false;
          sgSexcd->Align=alNone;
          FloatPanel2->Visible=true;
          FloatPanel2->Align=alClient;
          if(seSexcdLine->Enabled)
            seSexcdLine->SetFocus();
       }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSexch::RefreshGridData(int mAction)
{
        AnsiString ItemStr;
        switch(mAction)
        {
           case 0:
              ItemStr="\t"+GetDetailValue(fiSexcdLine)+"\t"+GetDetailValue(fiSexcdSretCode)+"\t"+
                  GetDetailValue(fiSexcdSretdLine)+"\t"+GetDetailValue(fiSexcdGoods)+"\t"+
                  GetDetailValue(fiSexcdUnit)+"\t"+GetDetailValue(fiSexcdQty)+"\t"+
                  GetDetailValue(fiSexcdAmt)+"\t"+GetDetailValue(fiSexcdExes);
              sgSexcd->AddItem(ItemStr);
              break;
           case 1:
              ItemStr="\t"+GetDetailValue(fiSexcdLine)+"\t"+GetDetailValue(fiSexcdSretCode)+"\t"+
                  GetDetailValue(fiSexcdSretdLine)+"\t"+GetDetailValue(fiSexcdGoods)+"\t"+
                  GetDetailValue(fiSexcdUnit)+"\t"+GetDetailValue(fiSexcdQty)+"\t"+
                  GetDetailValue(fiSexcdExes)+"\t"+GetDetailValue(fiSexcdExes);
                  sgSexcd->ChangeItem(ItemStr,sgSexcd->Row);
                 break;
           case 2:
                sgSexcd->RemoveItem(sgSexcd->Row);
        }
}
//---------------------------------------------------------------------------
void __fastcall TfrmSexch::DisplayBill()
{

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

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

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

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

⌨️ 快捷键说明

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