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

📄 wo.cpp

📁 科思ERP部分源码及控件
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Wo.h"
#include "WoGen.h"
#include "Wrg.h"
#include "Wsgm.h"
#include "Wn.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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,"")
{
    SetAutoCodeString(seWoCode,"ACM-044");
    IsUserGernerate=true;
    IsUserDelete=true;
    IsUserCheck=true;

}
//---------------------------------------------------------------------------
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;
      scWoShop->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("WoCode");
    //MoveFirst,MovePrority,MoveNext,MoveLast
    sgWo->LocateGrid(0,seWoCode->Text);
    scWoStatus->ItemIndex  =  StrToIntDef(GetFieldValue("WoStatus"),-1);
    scWoType->ItemIndex    =  StrToIntDef(GetFieldValue("WoType"),-1);
    scWoConsume->ItemIndex =  StrToIntDef(GetFieldValue("WoConsume"),-1);
    scWoTrace->ItemIndex   =  StrToIntDef(GetFieldValue("WoTrace"),-1);
    if(scWoTrace->ItemIndex==1)
      seWoRoute->Enabled=false;
    seWoGoods->Text        =  GetFieldValue("WoGoods");
    //取货物编码的名称
    seWoGoodsName->Text =  GetFieldValue("WoGoodsName");
    if(GetFieldValue("WoGoodsBatch")=="0")
    {
        scWoBatch->ItemIndex=-1;
        scWoBatch->Enabled=false;
    }
    if(GetFieldValue("WoGoodsTrackSo")=="0")
        seWoSoCode->Enabled=false;
/*
     if(l_RsGoods->LocateByKey(WideString(seWoGoods->Text))==0)
    {
      seWoGoodsName->Text =  GetGoodsValue(gtInitRs,"GoodsName");
      if(GetGoodsValue(gtInitRs,"GoodsBatch")=="0")
      {
        scWoBatch->ItemIndex=-1;
        scWoBatch->Enabled=false;
      }
      if(GetGoodsValue(gtInitRs,"GoodsTrackSo")=="0")
        seWoSoCode->Enabled=false;
    }
*/
    scWoUnit->LocateKey(GetFieldValue("WoUnit"));
    scWoShop->LocateKey(GetFieldValue("WoShop"));
    seWoSoCode->Text   =  GetFieldValue("WoSoCode");
    if(!seWoSoCode->Text.IsEmpty())
       seWoSodLine->Text=GetFieldValue("WoSodLine");
    else
       seWoSodLine->Text="";
    seWoRoute->LocateKey(GetFieldValue("WoRoute"));
    if (!GetFieldValue("WoFrom").IsEmpty())
       scWoFrom->ItemIndex =  StrToInt(GetFieldValue("WoFrom"))-1;
    scWoProducter->LocateKey(GetFieldValue("WoProducter"));
    scWoBatch->LocateKey(GetFieldValue("WoBatch"));
    labUserCode->Caption   =  GetFieldValue("WoUser");
    //质检标志
    cheWoChkFlg->Checked   =  GetFieldValue("WoChkFlg")=="1";
    cheWoCheck->Checked    =  GetFieldValue("WoCheck")=="1";
    //设置Check时的状态
    if(cheWoCheck->Checked)
       SetCheckToolbarStatus(true);
    else
       SetCheckToolbarStatus(false);
    labChecker->Caption    =  GetFieldValue("WoChecker");
    labCheckDate->Caption  =  GetFieldValue("WoCheckDate");
    cheWoCancel->Checked   =  GetFieldValue("WoCancel")=="1";
    //设置Cancel时的状态
    if(cheWoCancel->Checked)
       SetCancelToolbarStatus(true);
    else
       SetCancelToolbarStatus(false);
    labCancelDate->Caption =  GetFieldValue("WoCancelDate");
    cheWoClose->Checked    =  GetFieldValue("WoClose")=="1";
    //设置Close时的状态
    if(cheWoClose->Checked)
       SetCloseToolbarStatus(true);
    else
       SetCloseToolbarStatus(false);
    labCloseDate->Caption =  GetFieldValue("WoCloseDate");
    seWoQty->Text         =  GetFieldValue("WoQty");
    labWoCqty->Caption    =  GetFieldValue("WoCQty");
    labWoEqty->Caption    =  GetFieldValue("WoEQty");
    labWoWqty->Caption    =  GetFieldValue("WoWQty");
    labWoRqty->Caption    =  GetFieldValue("WoRQty");
    labWoSqty->Caption    =  GetFieldValue("WoSQty");
    deWoDate->Text        =  GetFieldValue("WoDate");
    deWoRdate->Text       =  GetFieldValue("WoRdate");
    deWoSdate->Text       =  GetFieldValue("WoSdate");
    labWoMdate->Caption   =  GetFieldValue("WoMDate");
    labWoSysDate->Caption =  GetFieldValue("WoSysDate");
    labWoTwt->Caption     =  GetFieldValue("WoTwt");
    labWoMamt->Caption    =  GetFieldValue("WoMamt");
    labWoPamt->Caption    =  GetFieldValue("WoPamt");
    memWoDesc->Text       =  GetFieldValue("WoDesc");
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::SendDataToComObject()
{
    SetFieldValue("WoCode",seWoCode->Text);
    SetFieldValue("WoStatus",IntToStr(scWoStatus->ItemIndex+1));
    SetFieldValue("WoType",IntToStr(scWoType->ItemIndex+1));
    SetFieldValue("WoConsume",IntToStr(scWoConsume->ItemIndex+1));
    SetFieldValue("WoTrace",IntToStr(scWoTrace->ItemIndex+1));
    SetFieldValue("WoFrom",IntToStr(scWoFrom->ItemIndex+1));
    SetFieldValue("WoGoods",seWoGoods->Text);
    SetFieldValue("WoGoodsName",seWoGoodsName->Text);
    SetFieldValue("WoUnit",scWoUnit->ItemData[1]);
    SetFieldValue("WoShop",scWoShop->ItemData[1]);
    SetFieldValue("WoRoute",seWoRoute->ItemData[1]);
    SetFieldValue("WoBatch",scWoBatch->ItemData[1]);
    SetFieldValue("WoProducter",scWoProducter->ItemData[1]);
    SetFieldValue("WoUser",labUserCode->Caption);
    SetFieldValue("WoChkFlg",cheWoChkFlg->Checked ? "1":"0");
    SetFieldValue("WoCheck",cheWoCheck->Checked ? "1":"0");
    if(cheWoCheck->Checked)  //当审核时
    {
       SetFieldValue("WoCheckDate",labCheckDate->Caption);
       SetFieldValue("WoChecker",labChecker->Caption);
    }
    SetFieldValue("WoCancel",cheWoCancel->Checked ? "1":"0");
    if(cheWoCancel->Checked) //当作废时
       SetFieldValue("WoCancelDate",labCancelDate->Caption);
    SetFieldValue("WoClose",cheWoClose->Checked ? "1":"0");
    if(cheWoClose->Checked)  //当结清时
       SetFieldValue("WoCloseDate",labCloseDate->Caption);
    SetFieldValue("WoQty",seWoQty->Text);
    SetFieldValue("WoSoCode",seWoSoCode->Text);
    if(!seWoSoCode->Text.IsEmpty()) //当订单不为空时
       SetFieldValue("WoSodLine",seWoSodLine->Text);
    SetFieldValue("WoDate",deWoDate->Text);
    SetFieldValue("WoRdate",deWoRdate->Text);
    SetFieldValue("WoSdate",deWoSdate->Text);
    SetFieldValue("WoDesc",memWoDesc->Text);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWo::WaitUserInput()
{
    PageControl1->ActivePage=BaseInfo;
    if(seWoCode->Enabled)
      seWoCode->SetFocus();
    if(CurrentState==caEditDetail)
    {
//      l_RsGoods->LocateByKey(WideString(GetFieldValue("WoGoods")));
      //货物编码需要批号处理
      if(GetFieldValue("WoGoodsBatch")=="1")
        scWoBatch->Enabled=true;
      else
        scWoBatch->Enabled=false;
      //货物编码需要订单跟踪
      if(GetFieldValue("WoGoodsTrackSo")=="1")
        seWoSoCode->Enabled=true;
      else
        seWoSoCode->Enabled=false;
      //如果跟踪方式为工艺路线时
      if(GetFieldValue("WoTrace")=="1")
        seWoRoute->Enabled=true;
      else
        seWoRoute->Enabled=false;
    }
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmWo::GetDataToGrid()
{
    AnsiString  s,tempS;
    s = GetFieldValue("WoUnit");
    scWoUnit->LocateKey(s);
    tempS = GetFieldValue("WoCode")+
            "\t" + GetFieldValue("WoGoods")+
            "\t" + GetFieldValue("WoGoodsName")+
            "\t" + scWoUnit->ItemData[0]+
            "\t" + GetFieldValue("WoQty")+
            "\t" + GetFieldValue("WoRdate")+
            "\t" + GetFieldValue("WoSoCode");
    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,cheWoCancel,cheWoCancel->Name);
    ClientGroup->AddComponent(2,true,true,true,cheWoCheck,cheWoCheck->Name);
    ClientGroup->AddComponent(2,true,true,true,cheWoClose,cheWoClose->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,true,true,true,scWoShop,scWoShop->Name);
    ClientGroup->AddComponent(2,false,true,true,seWoGoods,seWoGoods->Name);

    //Wo
    FillEdit(Handle,seWoRoute,"select RoutehCode,RoutehName=RoutehCode+space(1)+'('+RoutehName+')' from sdRouteh where RoutehCancel=0 order by RoutehCode","RoutehName","RoutehCode");
    FillComboBox(Handle,scWoUnit,"select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
    FillComboBox(Handle,scWoShop,"select ShopCode,ShopName from sdShop order by ShopCode","ShopName","ShopCode");
    FillComboBox(Handle,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 mSql=AnsiString("Select BatchCode,BatchCode 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(Handle,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("正在刷新引用数据!");
	           FillComboBox(Handle,scWoUnit,"select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
	           EndWaitForm();
	           break;
           }
         case euSdRouteh:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
               FillEdit(Handle,seWoRoute,"select RoutehCode,RoutehName=RoutehCode+space(1)+'('+RoutehName+')' from sdRouteh where RoutehCancel=0 order by RoutehCode","RoutehName","RoutehCode");
	           EndWaitForm();
	           break;
           }
         case euSdBatch:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
               AnsiString m_Sql=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(Handle,scWoBatch,m_Sql,"memo","BatchCode");

⌨️ 快捷键说明

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