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

📄 dml.cpp

📁 科思ERP部分源码及控件
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Dml.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmDml *frmDml;
//---------------------------------------------------------------------------
__fastcall TfrmDml::TfrmDml(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
    : TRecBaseForm(Owner,chWnd,MidCode,"")
{
}
//---------------------------------------------------------------------------
__fastcall TfrmDml::TfrmDml(TComponent* Owner, HWND chWnd, AnsiString MidCode,
           AnsiString WhereStr,AnsiString ParamString)
    : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
    int iPos;
    iPos=ParamString.Pos("\t");
    FDmlGmthCode=ParamString.SubString(1,iPos-1);
    ParamString=ParamString.SubString(iPos+1,ParamString.Length());

    iPos=ParamString.Pos("\t");
    FDmlGmthCheck=ParamString.SubString(1,iPos-1);
    ParamString=ParamString.SubString(iPos+1,ParamString.Length());

    iPos=ParamString.Pos("\t");
    FDmlGmtdLine=ParamString.SubString(1,iPos-1);
    ParamString=ParamString.SubString(iPos+1,ParamString.Length());

    iPos=ParamString.Pos("\t");
    FDmlGmtdWo=ParamString.SubString(1,iPos-1);
    ParamString=ParamString.SubString(iPos+1,ParamString.Length());

    iPos=ParamString.Pos("\t");
    FDmlGmtdGoods=ParamString.SubString(1,iPos-1);
    FDmlGmtdQty=ParamString.SubString(iPos+1,ParamString.Length());

    SetCheckToolbarStatus(FDmlGmthCheck.ToInt());
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::ClearControl(bool BringToNext)
{
    if(!BringToNext){
      scDmlProcess->ItemIndex=-1;
      scDmlProcess->Text="";
      scDmlLoc->ItemIndex=-1;
      scDmlLoc->Text="";
      seDmlQty->Text="0.00";
      tbQuery->Visible=false;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::GetDataFromComObject()
{
    scDmlProcess->LocateKey(GetFieldValue("DmlProcess"));
    //MoveFirst,MovePrority,MoveNext,MoveLast
    sgDml->LocateGrid(0,GetFieldValue("DmlProcess"));
    scDmlLoc->LocateKey(GetFieldValue("DmlLoc"));
    seDmlQty->Text=GetFieldValue("DmlQty");
    //当定额领料和工单领料已经审核时,不能做任何的操作。
    if(FDmlGmthCheck==1)
    {
       SetCheckToolbarStatus(true);
       tbAddHead->Enabled=false;
    }
    else
    {
       SetCheckToolbarStatus(false);
       tbAddHead->Enabled=true;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::SendDataToComObject()
{
    SetFieldValue("DmlGmtCode",seDmlGmtCode->Text);
    SetFieldValue("DmlGmtdLine",seDmlGmtdLine->Text);
    SetFieldValue("DmlWoCode",seDmlWoCode->Text);
    SetFieldValue("DmlProcess",scDmlProcess->ItemData[1]);
    SetFieldValue("DmlLoc",scDmlLoc->ItemData[1]);
    SetFieldValue("DmlGoods",scDmlGoods->Text);
    SetFieldValue("DmlUnit",scDmlGoodsUnit->ItemData[1]);
    SetFieldValue("DmlQty",seDmlQty->Text);
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::WaitUserInput()
{
    scDmlProcess->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmDml::GetDataToGrid()
{
    AnsiString tempS;
    tempS=GetFieldValue("DmlProcess")+
          "\t" + GetFieldValue("DmlGoods")+
          "\t" + GetFieldValue("DmlQty");
    return(tempS);
}
//---------------------------------------------------------------------------

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

void __fastcall TfrmDml::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgDml->RowCount = 1;
    while(comServer->Eof == 0)
    {
       ItemStr = GetDataToGrid();
       sgDml->AddItem(ItemStr);
       comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmDml::InitEditControl()
{
    ClientGroup->AddComponent(2,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,true,seDmlGmtCode,seDmlGmtCode->Name);
    ClientGroup->AddComponent(2,true,true,true,seDmlGmtdLine,seDmlGmtdLine->Name);
    ClientGroup->AddComponent(2,true,true,true,seDmlWoCode,seDmlWoCode->Name);
    ClientGroup->AddComponent(2,true,true,true,scDmlGoods,scDmlGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,scDmlLoc,scDmlLoc->Name);
    ClientGroup->AddComponent(2,true,true,false,sgDml,sgDml->Name);
    ClientGroup->AddComponent(2,true,true,true,seDmlGmtdQty,seDmlGmtdQty->Name);
    ClientGroup->AddComponent(2,true,true,true,Panel1,Panel1->Name);
    FillComboBox(Handle,scDmlLoc,"select LocCode+ space(1)+'('+LocName+')' memo,LocCode from sdLoc where LocType=2 Order by LocCode","memo","LocCode");
    FillComboBox(Handle,scDmlGoodsUnit,"select UnitName,UnitCode from sdUnit Order by UnitCode","UnitName","UnitCode");
}
//---------------------------------------------------------------------------

void __fastcall TfrmDml::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
    try
    {
       switch (MsgSrc)
       {
         case euSdLoc:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(Handle,scDmlLoc,"select LocCode+ space(1)+'('+LocName+')' memo,LocCode from sdLoc Order by LocCode","memo","LocCode");
	           EndWaitForm();
	           break;
           }
         case euSdUnit:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(Handle,scDmlGoodsUnit,"select UnitName,UnitCode from sdUnit Order by UnitCode","UnitName","UnitCode");
	           EndWaitForm();
	           break;
           }
         default:
           break;
       }
    }
    __finally
    {
        //AddCode;
    }
*/
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::FormClose(TObject *Sender, TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::FormShow(TObject *Sender)
{
    ClearControl(false);
    seDmlGmtCode->Text=FDmlGmthCode;
    seDmlGmtdLine->Text=FDmlGmtdLine;
    seDmlGmtdQty->Text=FDmlGmtdQty;
    seDmlWoCode->Text=FDmlGmtdWo;
    FillComboBox(Handle,scDmlProcess,"select WrgProcess+space(1)+'('+WrgName+')' memo,WrgProcess,WrgLoc from sdWrg Where WrgWo='"+FDmlGmtdWo+"' Order by WrgProcess","memo","WrgProcess","WrgLoc");
    scDmlGoods->Text=FDmlGmtdGoods;
//    l_RsGoods->LocateByKey(FDmlGmtdGoods);
    InitRsGoods(FDmlGmtdGoods);
    seDmlGoodsName->Text=GetGoodsValue(gtInitRs,"GoodsName");
    scDmlGoodsUnit->LocateKey(GetGoodsValue(gtInitRs,"GoodsUnitCode"));
    scDmlGoodsType->ItemIndex= StrToInt(GetGoodsValue(gtInitRs,"GoodsType"));
    scDmlGoodsFrom->ItemIndex= StrToInt(GetGoodsValue(gtInitRs,"GoodsFrom"));
    sgDml->RowCount=1;
    comServer->FilterString=" DmlGmtCode ='" +FDmlGmthCode +"' and DmlGmtdLine ='"+FDmlGmtdLine+"'" ;
    comServer->Query();
    if(comServer->RecordCount>0)
    {
       FillGridWithData();
       GetDataFromComObject();
    }
    else
    {
       ClearControl(false);
       sgDml->RowCount=1;
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::scDmlProcessClick(TObject *Sender)
{
    AnsiString asTemp,asLocCode;
    asTemp=scDmlProcess->ItemData[cbItem2];
    if(!asTemp.IsEmpty())
    {
       asLocCode=scDmlProcess->ItemData[cbItem3];
       scDmlLoc->LocateKey(asLocCode);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmDml::sgDmlClick(TObject *Sender)
{
    int ARow;
    ARow=sgDml->Row;
    if(ARow > 0)
    {
      //comServer->LocateByKey(seDmlGmtCode->Text+"\t"+seDmlGmtdLine->Text+"\t"+sgDml->TextMatrix[ARow][0]);
      comServer->LocateByKey(FDmlGmthCode+"\t"+FDmlGmtdLine+"\t"+sgDml->TextMatrix[ARow][0]);
      GetDataFromComObject();
    }
}
//---------------------------------------------------------------------------




⌨️ 快捷键说明

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