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

📄 loc.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Loc.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma resource "*.dfm"

TfrmLoc *frmLoc;
AnsiString OldLocCode;
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmLoc::GetFieldValue(int FieldIndex)
{
    AnsiString S;
    S = ReadFieldValue(comServer,FieldIndex);
    return(S);
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
        seLocCode->Text     =   "";
        seLocName->Text     =   "";
        memLocDesc->Text    =   "";
        scLocType->ItemIndex=   0;
        scLocStkCode->ItemIndex=0;
        cheLocVirtual->Checked=false;
        cheLocPlnflg->Checked =false;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::GetDataFromComObject()
{
    seLocCode->Text     =   GetFieldValue(fiLocCode);
    sgLoc->LocateGrid(1,GetFieldValue(fiLocCode));
    seLocName->Text     =   GetFieldValue(fiLocName);
    memLocDesc->Text    =   GetFieldValue(fiLocDesc);
    scLocType->LocateKey(GetFieldValue(fiLocType));
    scLocStkCode->LocateKey(GetFieldValue(fiLocStkCode));
    cheLocVirtual->Checked= GetFieldValue(fiLocVirtual)=="1";
    cheLocPlnflg->Checked =  GetFieldValue(fiLocPlnflg)=="1";
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::SendDataToComObject()
{
    WriteFieldValue(comServer,fiLocSthCode, scLocSthCode->ItemData[1]);
    WriteFieldValue(comServer,fiLocCode, seLocCode->Text);
    WriteFieldValue(comServer,fiLocName, seLocName->Text);
    WriteFieldValue(comServer,fiLocDesc, memLocDesc->Text);
    if(scLocType->ItemData[1] == "")
     throw Exception("请选择货位类型");
    WriteFieldValue(comServer,fiLocType, scLocType->ItemData[1]);
    if(scLocStkCode->ItemData[1] == "")
     throw Exception("请选择盘点方法");
    WriteFieldValue(comServer,fiLocStkCode, scLocStkCode->ItemData[1]);
    WriteFieldValue(comServer,fiLocVirtual, cheLocVirtual->Checked ? "1":"0");
    WriteFieldValue(comServer,fiLocPlnflg, cheLocPlnflg->Checked ? "1":"0");
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::WaitUserInput()
{
    seLocCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmLoc::GetDataToGrid()
{
    AnsiString  s;
    s = "\t" + GetFieldValue(fiLocCode) +
        "\t" + GetFieldValue(fiLocName) ;
    if (GetFieldValue(fiLocVirtual)=="0")
        s = s + "\t" + "否";
    else
        s = s + "\t" + "是";
    return(s);
}
//---------------------------------------------------------------------------

void __fastcall TfrmLoc::RefreshGridData(int mAction)
{
    AnsiString ItemStr;
    ItemStr = GetDataToGrid();
    if (mAction == 0)
    {
        sgLoc->AddItem(ItemStr);
    }
    else if(mAction == 1)
    {
        int i = sgLoc->Row;
        sgLoc->ChangeItem(ItemStr,i);
    }
    else if(mAction == 2)
    {
        sgLoc->RemoveItem(sgLoc->Row);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmLoc::FillGridWithData()
{
    AnsiString ItemStr;

    comServer->MoveFirst();
    sgLoc->RowCount = 1;

    while (comServer->Eof == 0)
    {
        ItemStr = GetDataToGrid();
        sgLoc->AddItem(ItemStr);
        comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmLoc::InitEditControl()
{
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,false, scLocSthCode,scLocSthCode->Name);
//    ClientGroup->AddComponent(2,false,false,false, seLocCode,seLocCode->Name);
    ClientGroup->AddComponent(2,true,true,false, sgLoc,sgLoc->Name);
    FillComboBox(scLocSthCode,"SELECT SthCode,SthName FROM sdSth order by SthCode","SthName","SthCode");

    scLocType->AddItems("1-存储","1");
    scLocType->AddItems("2-在制","2");
    scLocType->AddItems("3-待检","3");
    scLocType->AddItems("4-待发","4");
    scLocType->AddItems("5-在途","5");
    scLocType->AddItems("6-维修","6");
    scLocType->AddItems("7-次品","7");
    scLocType->AddItems("8-废品","8");
    scLocType->AddItems("9-待处理","9");

    scLocStkCode->AddItems("1-一般盘点","1");
    scLocStkCode->AddItems("2-定期盘点","2");
    scLocStkCode->AddItems("3-循环盘点","3");
}
//---------------------------------------------------------------------------

__fastcall TfrmLoc::TfrmLoc(TComponent* Owner)
    : TRecBaseForm(Owner,euSdLoc,"")
{
 OldLocCode="";
}
//---------------------------------------------------------------------------

void __fastcall TfrmLoc::FormClose(TObject *Sender, TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
/*
    AnsiString FormIniFile = "D:\Test.Ini";
    WriteGridWidth(Name,sgLoc,FormIniFile);
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::FormCreate(TObject *Sender)
{
/*
    AnsiString FormIniFile="D:\Test.Ini";
    SetGridWidth(Name,sgLoc,FormIniFile);
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::FormShow(TObject *Sender)
{
    ClearControl(false);
    if(scLocSthCode->Items->Count > 0)
    {
     scLocSthCode->Text=scLocSthCode->Items->Strings[0];
     scLocSthCodeClick(NULL);
    }
    sgLoc->SetFocus();
}
//---------------------------------------------------------------------------


void __fastcall TfrmLoc::scLocSthCodeClick(TObject *Sender)
{
    WideString s;
    s = scLocSthCode->ItemData[1];
    if(s.IsEmpty())
      return;
    if(OldLocCode==s)
      return;
    OldLocCode=scLocSthCode->Text;
    s = "LocSthCode = '" + s + "'";
    comServer->FilterString = s;
    comServer->Query();
    FillGridWithData();
    comServer->MoveFirst();
    GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::sgLocClick(TObject *Sender)
{
    int ARow=sgLoc->Row;
    if (ARow > 0)
       comServer->LocateByKey(WideString(sgLoc->TextMatrix[ARow][1]));
    if (!comServer->Eof)
       GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::RefreshUpdateData(int MsgSrc,int MsgType)
{
  switch(MsgSrc)
  {
   case euSdSth:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(scLocSthCode,"SELECT SthCode,SthName FROM sdSth order by SthCode","SthName","SthCode");
     scLocSthCodeClick(NULL);
    }
    break;
   default:
    break;
  }
}
//---------------------------------------------------------------------------


void __fastcall TfrmLoc::seLocCodeExit(TObject *Sender)
{
    if(CurrentState==caNormal)
    {
      comServer->LocateByKey(WideString(seLocCode->Text));
      GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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