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

📄 wo.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Wo.h"
#include "Wrg.h"
#include "Wsgm.h"
#include "Wn.h"
#include "WoGen.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma resource "*.dfm"

TfrmWo *frmWo;
//---------------------------------------------------------------------------
__fastcall TfrmWo::TfrmWo(TComponent* Owner)
        : TRecBaseForm(Owner,euSdWo,"")
{
    AutoCtl=seWoCode;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmWo::GetFieldValue(int FieldIndex)
{
    return ReadFieldValue(comServer,FieldIndex);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::SetFieldValue(int iFieldIndex,AnsiString sFieldValue)
{
    WriteFieldValue(comServer,iFieldIndex,sFieldValue);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
      seWoCode->Text        =   "";
      scWoStatus->ItemIndex =   0;
      scWoType->ItemIndex   =   0;
      scWoConsume->ItemIndex=   0;
      scWoTrace->ItemIndex  =   1;
      seWoGoods->Text       =   "";
      seWoGoodsName->Text   =   "";
      scWoUnit->ItemIndex   =   -1;
      seWoSoCode->Text      =   "";
      seWoSodLine->Text     =   "";
      seWoRoute->ItemIndex  =   -1;
      scWoFrom->ItemIndex   =   0;
      scWoProducter->ItemIndex= -1;
      scWoBatch->ItemIndex  =   -1;
      labUserCode->Caption  =   g_sdUserCode;
      cheWoChkFlg->Checked  =   false;
      cheWoCheck->Checked   =   false;
      labChecker->Caption   =   "";
      labCheckDate->Caption =   "";
      cheWoCancel->Checked  =   false;
      labCancelDate->Caption=   "";
      cheWoClose->Checked   =   false;
      labCloseDate->Caption =   "";
      seWoQty->Text         =   "0";
      labWoCqty->Caption    =   "0";
      labWoEqty->Caption    =   "0";
      labWoWqty->Caption    =   "0";
      labWoRqty->Caption    =   "0";
      labWoSqty->Caption    =   "0";
      deWoDate->Text        =   g_sdCurDate ;
      deWoRdate->Text       =   "" ;
      deWoSdate->Text       =   "";
      labWoMdate->Caption   =   "" ;
      labWoSysDate->Caption =   "" ;
      labWoTwt->Caption     =   "0.00";
      labWoPamt->Caption    =   "0.00";
      labWoMamt->Caption    =   "0.00";
      memWoDesc->Text       =   "" ;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::GetDataFromComObject()
{
    seWoCode->Text         =  GetFieldValue(fiWoCode);
    //MoveFirst,MovePrority,MoveNext,MoveLast
    sgWo->LocateGrid(0,seWoCode->Text);
    scWoStatus->ItemIndex  =  StrToInt(GetFieldValue(fiWoStatus))-1;
    scWoType->ItemIndex    =  StrToInt(GetFieldValue(fiWoType))-1;
    scWoConsume->ItemIndex =  StrToInt(GetFieldValue(fiWoConsume))-1;
    scWoTrace->ItemIndex   =  StrToInt(GetFieldValue(fiWoTrace))-1;
    if(scWoTrace->ItemIndex==1)
      seWoRoute->Enabled=false;
    seWoGoods->Text        =  GetFieldValue(fiWoGoods);
    //取货物编码的名称
    if(g_sdRsGoods->LocateByKey(WideString(seWoGoods->Text))==0)
    {
      seWoGoodsName->Text =  GetGoodsValue("GoodsName");
      if(GetGoodsValue("GoodsBatch")=="0")
      {
        scWoBatch->ItemIndex=-1;
        scWoBatch->Enabled=false;
      }
      if(GetGoodsValue("GoodsTrackSo")=="0")
        seWoSoCode->Enabled=false;
    }

    scWoUnit->LocateKey(GetFieldValue(fiWoUnit));
    seWoSoCode->Text   =  GetFieldValue(fiWoSoCode);
    if(!seWoSoCode->Text.IsEmpty())
       seWoSodLine->Text=GetFieldValue(fiWoSodLine);
    else
       seWoSodLine->Text="";
    seWoRoute->LocateKey(GetFieldValue(fiWoRoute));
    scWoFrom->ItemIndex =  StrToInt(GetFieldValue(fiWoFrom))-1;
    scWoProducter->LocateKey(GetFieldValue(fiWoProducter));
    scWoBatch->LocateKey(GetFieldValue(fiWoBatch));
    labUserCode->Caption   =  GetFieldValue(fiWoUser);
    //质检标志
    cheWoChkFlg->Checked   =  GetFieldValue(fiWoChkFlg)=="1";
    cheWoCheck->Checked    =  GetFieldValue(fiWoCheck)=="1";
    //设置Check时的状态
    if(cheWoCheck->Checked)
       SetCheckToolbarStatus(true);
    else
       SetCheckToolbarStatus(false);
    labChecker->Caption    =  GetFieldValue(fiWoChecker);
    labCheckDate->Caption  =  GetFieldValue(fiWoCheckDate);
    cheWoCancel->Checked   =  GetFieldValue(fiWoCancel)=="1";
    //设置Cancel时的状态
    if(cheWoCancel->Checked)
       SetCancelToolbarStatus(true);
    else
       SetCancelToolbarStatus(false);
    labCancelDate->Caption =  GetFieldValue(fiWoCancelDate);
    cheWoClose->Checked    =  GetFieldValue(fiWoClose)=="1";
    //设置Close时的状态
    if(cheWoClose->Checked)
       SetCloseToolbarStatus(true);
    else
       SetCloseToolbarStatus(false);
    labCloseDate->Caption =  GetFieldValue(fiWoCloseDate);
    seWoQty->Text         =  GetFieldValue(fiWoQty);
    labWoCqty->Caption    =  GetFieldValue(fiWoCQty);
    labWoEqty->Caption    =  GetFieldValue(fiWoEQty);
    labWoWqty->Caption    =  GetFieldValue(fiWoWQty);
    labWoRqty->Caption    =  GetFieldValue(fiWoRQty);
    labWoSqty->Caption    =  GetFieldValue(fiWoSQty);
    deWoDate->Text        =  GetFieldValue(fiWoDate);
    deWoRdate->Text       =  GetFieldValue(fiWoRdate);
    deWoSdate->Text       =  GetFieldValue(fiWoSdate);
    labWoMdate->Caption   =  GetFieldValue(fiWoMDate);
    labWoSysDate->Caption =  GetFieldValue(fiWoSysDate);
    labWoTwt->Caption     =  GetFieldValue(fiWoTwt);
    labWoMamt->Caption    =  GetFieldValue(fiWoMamt);
    labWoPamt->Caption    =  GetFieldValue(fiWoPamt);
    memWoDesc->Text       =  GetFieldValue(fiWoDesc);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::SendDataToComObject()
{
    SetFieldValue(fiWoCode,seWoCode->Text);
    SetFieldValue(fiWoStatus,IntToStr(scWoStatus->ItemIndex+1));
    SetFieldValue(fiWoType,IntToStr(scWoType->ItemIndex+1));
    SetFieldValue(fiWoConsume,IntToStr(scWoConsume->ItemIndex+1));
    SetFieldValue(fiWoTrace,IntToStr(scWoTrace->ItemIndex+1));
    SetFieldValue(fiWoFrom,IntToStr(scWoFrom->ItemIndex+1));
    SetFieldValue(fiWoGoods,seWoGoods->Text);
    SetFieldValue(fiWoRoute,seWoRoute->ItemData[1]);
    SetFieldValue(fiWoBatch,scWoBatch->ItemData[1]);
    SetFieldValue(fiWoProducter,scWoProducter->ItemData[1]);
    SetFieldValue(fiWoUser,labUserCode->Caption);
    SetFieldValue(fiWoChkFlg,cheWoChkFlg->Checked ? "1":"0");
    SetFieldValue(fiWoCheck,cheWoCheck->Checked ? "1":"0");
    if(cheWoCheck->Checked)  //当审核时
    {
       SetFieldValue(fiWoCheckDate,labCheckDate->Caption);
       SetFieldValue(fiWoChecker,labChecker->Caption);
    }
    SetFieldValue(fiWoCancel,cheWoCancel->Checked ? "1":"0");
    if(cheWoCancel->Checked) //当作废时
       SetFieldValue(fiWoCancelDate,labCancelDate->Caption);
    SetFieldValue(fiWoClose,cheWoClose->Checked ? "1":"0");
    if(cheWoClose->Checked)  //当结清时
       SetFieldValue(fiWoCloseDate,labCloseDate->Caption);
    SetFieldValue(fiWoQty,seWoQty->Text);
    SetFieldValue(fiWoSoCode,seWoSoCode->Text);
    if(!seWoSoCode->Text.IsEmpty()) //当订单不为空时
       SetFieldValue(fiWoSodLine,seWoSodLine->Text);
    SetFieldValue(fiWoDate,deWoDate->Text);
    SetFieldValue(fiWoRdate,deWoRdate->Text);
    SetFieldValue(fiWoSdate,deWoSdate->Text);
    SetFieldValue(fiWoDesc,memWoDesc->Text);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::WaitUserInput()
{
    PageControl1->ActivePage=BaseInfo;
    if(seWoCode->Enabled)
      seWoCode->SetFocus();
    if(CurrentState==caEditDetail)
    {
      g_sdRsGoods->LocateByKey(WideString(GetFieldValue(fiWoGoods)));
      //货物编码需要批号处理
      if(GetGoodsValue("GoodsBatch")=="1")
        scWoBatch->Enabled=true;
      else
        scWoBatch->Enabled=false;
      //货物编码需要订单跟踪
      if(GetGoodsValue("GoodsTrackSo")=="1")
        seWoSoCode->Enabled=true;
      else
        seWoSoCode->Enabled=false;
      //如果跟踪方式为工艺路线时
      if(GetFieldValue(fiWoTrace)=="1")
        seWoRoute->Enabled=true;
      else
        seWoRoute->Enabled=false;
    }
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmWo::GetDataToGrid()
{
    AnsiString  s,tempS;
    s = GetFieldValue(fiWoUnit);
    scWoUnit->LocateKey(s);
    tempS = GetFieldValue(fiWoCode)+
            "\t" + GetFieldValue(fiWoGoods)+
            "\t" + scWoUnit->ItemData[0]+
            "\t" + GetFieldValue(fiWoQty)+
            "\t" + GetFieldValue(fiWoRdate);
    return(tempS);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::RefreshGridData(int mAction)
{
    AnsiString ItemStr;
    ItemStr = GetDataToGrid();
    if(mAction == 0)     //Add
    {
        sgWo->AddItem(ItemStr);
        sgWo->Row = sgWo->RowCount-1;
    }
    else if(mAction == 1)//Chg
    {
        int i= sgWo->Row;
        sgWo->ChangeItem(ItemStr,i);
    }
    else if(mAction == 2)//Del
    {
        sgWo->RemoveItem(sgWo->Row);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgWo->RowCount = 1;
    while(comServer->Eof == 0)
    {
        ItemStr = GetDataToGrid();
        sgWo->AddItem(ItemStr);
        comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::InitEditControl()
{
    ClientGroup->AddComponent(2,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,true,GroupBox1,GroupBox1->Name);
    ClientGroup->AddComponent(2,true,true,true,GroupBox2,GroupBox2->Name);
    ClientGroup->AddComponent(2,true,true,true,GroupBox3,GroupBox3->Name);
    ClientGroup->AddComponent(2,true,true,false,sgWo,sgWo->Name);
    ClientGroup->AddComponent(2,false,true,false,seWoCode,seWoCode->Name);
    ClientGroup->AddComponent(2,false,false,true,memWoDesc,memWoDesc->Name);
    ClientGroup->AddComponent(2,true,true,false,sbtWrg,sbtWrg->Name);
    ClientGroup->AddComponent(2,true,true,false,sbtWsgm,sbtWsgm->Name);
    ClientGroup->AddComponent(2,true,true,false,sbtWn,sbtWn->Name);
    ClientGroup->AddComponent(2,true,true,true,scWoStatus,scWoStatus->Name);
    ClientGroup->AddComponent(2,true,true,true,scWoFrom,scWoFrom->Name);
    ClientGroup->AddComponent(2,true,true,true,cheWoChkFlg,cheWoChkFlg->Name);
    ClientGroup->AddComponent(2,true,true,true,scWoBatch,scWoBatch->Name);
    ClientGroup->AddComponent(2,true,true,true,seWoSoCode,seWoSoCode->Name);
    ClientGroup->AddComponent(2,true,true,true,seWoSodLine,seWoSodLine->Name);
    ClientGroup->AddComponent(2,true,true,true,seWoRoute,seWoRoute->Name);
    ClientGroup->AddComponent(2,true,true,true,seWoGoodsName,seWoGoodsName->Name);
    ClientGroup->AddComponent(2,true,true,true,scWoUnit,scWoUnit->Name);
    ClientGroup->AddComponent(2,false,true,true,seWoGoods,seWoGoods->Name);

    //Wo
    FillEdit(seWoRoute,"select RoutehCode,RoutehName=RoutehCode+space(1)+'('+RoutehName+')' from sdRouteh where RoutehCancel=0 order by RoutehCode","RoutehName","RoutehCode");
    FillComboBox(scWoUnit,"select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
    FillComboBox(scWoProducter,"select ProducterCode,memo=ProducterCode+space(1)+'('+UserName+')' from sdProducter,sdUser where ProducterCode=UserCode Order by ProducterCode",
                 "memo","ProducterCode");
    AnsiString mSql=AnsiString("Select BatchCode,BatchCode+space(1)+'('+BatchDesc+')' memo from sdBatch ")+
                    AnsiString("where '"+g_sdCurDate+"'>=BatchEffectdate and '"+g_sdCurDate+"'<=(case BatchAbatedate when '' then '9999-99-99' else BatchAbatedate end) ")+
                    AnsiString("order by BatchCode");
    FillComboBox(scWoBatch,mSql,"memo","BatchCode");
    PageControl1->ActivePage=BaseInfo;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::RefreshUpdateData(int MsgSrc,int MsgType)
{
    try{
       switch (MsgSrc){
         case euSdUnit:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");

⌨️ 快捷键说明

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