loc.cpp

来自「科思ERP部分源码及控件」· C++ 代码 · 共 290 行

CPP
290
字号
//---------------------------------------------------------------------------
#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;
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
        seLocCode->Text     =   "";
        seLocName->Text     =   "";
        memLocDesc->Text    =   "";
        scLocType->ItemIndex=   0;
        scLocStkCode->ItemIndex=0;

        seLong->Text        =   "0.00";/////
        seWidth->Text        =   "0.00";/////
        seHeight->Text        =   "0.00";/////
        seCubag->Text        =   "0.00";/////
        chFreez->Checked=false;


        cheLocVirtual->Checked=false;
        cheLocPlnflg->Checked =false;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::GetDataFromComObject()
{
    seLocCode->Text     =   GetFieldValue("LocCode");
    sgLoc->LocateGrid(1,GetFieldValue("LocCode"));
    seLocName->Text     =   GetFieldValue("LocName");
    memLocDesc->Text    =   GetFieldValue("LocDesc");
    scLocType->LocateKey(GetFieldValue("LocType"));
    scLocStkCode->LocateKey(GetFieldValue("LocStkCode"));
    cheLocVirtual->Checked= GetFieldValue("LocVirtual")=="1";
    cheLocPlnflg->Checked =  GetFieldValue("LocPlnflg")=="1";
    seLong->Text        =   GetFieldValue("LocLength");
    seWidth->Text       =   GetFieldValue("LocWidth");
    seHeight->Text      =   GetFieldValue("LocHeigh");
    seCubag->Text       =   GetFieldValue("LocCubage");
    chFreez->Checked=GetFieldValue("LocRgate")=="1";



}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::SendDataToComObject()
{
    SetFieldValue("LocSthCode", scLocSthCode->ItemData[1]);
    SetFieldValue("LocCode", seLocCode->Text);
    SetFieldValue("LocName", seLocName->Text);
    SetFieldValue("LocDesc", memLocDesc->Text);
    if(scLocType->ItemData[1] == "")
     throw Exception("请选择货位类型");
    SetFieldValue("LocType", scLocType->ItemData[1]);
    if(scLocStkCode->ItemData[1] == "")
     throw Exception("请选择盘点方法");
    SetFieldValue("LocStkCode", scLocStkCode->ItemData[1]);
    SetFieldValue("LocVirtual", cheLocVirtual->Checked ? "1":"0");
    SetFieldValue("LocPlnflg", cheLocPlnflg->Checked ? "1":"0");
    AnsiString ll;

    ll= seLong->Text;
    if(ll.IsEmpty())
    ll=0 ;
    SetFieldValue("LocLength", ll);
    if(Trim(seWidth->Text)=="")
    seWidth->Text=0.00;
    SetFieldValue("LocWidth",seWidth->Text);
    if(Trim(seHeight->Text)=="")
    seHeight->Text="0.00";
    SetFieldValue("LocHeigh",seHeight->Text);
    if(Trim(seCubag->Text)=="")
    seCubag->Text="0.00";
    SetFieldValue("LocCubage",seCubag->Text);
    SetFieldValue("LocRgate",chFreez->Checked ? "1":"0");





}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::WaitUserInput()
{
    seLocCode->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmLoc::GetDataToGrid()
{
    AnsiString  s;
    s = "\t" + GetFieldValue("LocCode") +
        "\t" + GetFieldValue("LocName") ;
    if (GetFieldValue("LocVirtual")=="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(Handle,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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
    : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
 OldLocCode="";
}
//---------------------------------------------------------------------------

void __fastcall TfrmLoc::FormClose(TObject *Sender, TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
/*
    AnsiString FormIniFile = "D:\Test.Ini";
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::FormCreate(TObject *Sender)
{
/*
    AnsiString FormIniFile="D:\Test.Ini";
*/
}
//---------------------------------------------------------------------------
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;
    AnsiString sKeyValue;
    if (ARow > 0)
    {
       sKeyValue=sgLoc->Cells[1][ARow]+"\t"+scLocSthCode->ItemData[1]+"\t";
       ARow=comServer->LocateByKey(sKeyValue);
    }
    if (!comServer->Eof)
       GetDataFromComObject();
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
  switch(MsgSrc)
  {
   case euSdSth:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(Handle,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();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmLoc::BackDisp()
{
  double dLong,dWidth,dHeight,dCubag;
  if(seLong->Text != "" && seWidth->Text != ""&& seHeight->Text != "")
  {
   dLong=StrToFloat(seLong->Text);
   dWidth=StrToFloat(seWidth->Text);
   dHeight=StrToFloat(seHeight->Text);
   dCubag=dLong*dWidth*dHeight;
   seCubag->Text=DataCarry(dCubag,2,0);
  }
}
//---------------------------------------------------------------------------


void __fastcall TfrmLoc::seHeightExit(TObject *Sender)
{
 BackDisp();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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