wogen.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 240 行

CPP
240
字号
//--------------------------------------------------------------------------
#include <vcl.h>
#include "WoGen.h"
#include "Wo.h"
//--------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma link "DateEdit"
#pragma resource "*.dfm"

TfrmWoGen  *frmWoGen;
//--------------------------------------------------------------------------
__fastcall TfrmWoGen::TfrmWoGen(TComponent* Owner)
        : TStdBaseForm(Owner)
{
  InitControlGroup();
  dFrom="Mrp";
}
//--------------------------------------------------------------------------

void __fastcall TfrmWoGen::btnOKClick(TObject *Sender)
{
  int ErrNum;
  try
  {
    StartWaitForm("正在生成工单,请稍候...");
    if(sgWo->RowCount>1)
    {
      try
      {
        for(int i=1;i<sgWo->RowCount;i++)
        {
          if(sgWo->Cells[0][i]=="√")
          {
            comServer->AddNew();
            SetFieldValue("WoCode","$frmWo");
            SetFieldValue("WoStatus","2");
            SetFieldValue("WoType","1");
            SetFieldValue("WoConsume","1");
            SetFieldValue("WoTrace","2");
            if(dFrom=="Mrp")
                SetFieldValue("WoFrom","2");
            else
                SetFieldValue("WoFrom","3");
            SetFieldValue("WoGoods",sgWo->Cells[1][i]);
            SetFieldValue("WoRoute","");
            SetFieldValue("WoBatch","");
            SetFieldValue("WoProducter",g_sdUserCode);
            SetFieldValue("WoUser",g_sdUserCode);
            SetFieldValue("WoProducter","rhdcS2");  ////------/////
            SetFieldValue("WoUser","rhdcS2");     ////------/////
            SetFieldValue("WoChkFlg","0");
            if(sgWo->Cells[6][i].IsEmpty())
              throw Exception("加工数量不能为空");
            SetFieldValue("WoQty",sgWo->Cells[6][i]);
            SetFieldValue("WoDate",g_sdCurDate);
            SetFieldValue("WoDate",sgWo->Cells[7][i]); ////------///////
            SetFieldValue("WoRdate",sgWo->Cells[7][i]);
            SetFieldValue("WoMDate",sgWo->Cells[7][i]);
            SetFieldValue("WoSdate",sgWo->Cells[7][i]);
            SetFieldValue("WoDesc","");
            comServer->Post();
            frmWo->RefreshGridData(0);
          }
        }
      }
      catch(Exception &e)
      {
        comServer->Cancel();
        this->ModalResult=0;
        throw Exception(e.Message);
      }
    }
  }
  __finally
  {
    EndWaitForm();
  }
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWoGen::btnCancelClick(TObject *Sender)
{
  Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWoGen::InitControlGroup()
{
  sgWo->RowCount = 1;
  deBegin->Text=g_sdCurDate;
  deEnd->Text="";
  chkList->Checked=false;
  btnOK->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWoGen::FillGridWithData()
{
    AnsiString  ItemStr,SqlStr;
    if(dFrom=="Mrp")
    {
        SqlStr="Select mrpdgoods,goodsname,goodsunitcode,mrpdqty,mrpdgqty,mrpdcqty=mrpdqty-mrpdgqty,mrpdrdate from sdmrpd,sdgoods,sdmrp";
        SqlStr+=" where mrpgoods=mrpdgoods and mrpdgoods=goodscode and mrpfrom=2 and convert(varchar(10),mrpdtype)='"+mType+"' and mrpdqty>mrpdgqty ";
        if(!chkList->Checked)
          SqlStr+=" and mrpdrdate>convert(varchar(10),getdate(),21)";
        if(deBegin->Text!="")
          SqlStr+=" and mrpdrdate>='"+deBegin->Text+"'";
        if(deEnd->Text!="")
          SqlStr+=" and mrpdrdate<='"+deEnd->Text+"'";
        SqlStr+=" order by mrpdrdate,mrpdgoods";
    }
    else
    {
        SqlStr="Select Srewdgoods,goodsname,goodsunitcode,Srewdqty,Srewdgqty=0,Srewdcqty=0,Srewhdate from sdSrewh,sdSrewd,sdgoods";
        SqlStr+=" where Srewhcode=Srewdcode and Srewdgoods=goodscode ";
        if(!chkList->Checked)
          SqlStr+=" and Srewhdate>convert(varchar(10),getdate(),21)";
        if(deBegin->Text!="")
          SqlStr+=" and Srewhdate>='"+deBegin->Text+"'";
        if(deEnd->Text!="")
          SqlStr+=" and Srewhdate<='"+deEnd->Text+"'";
        SqlStr+=" order by Srewhdate,Srewdgoods";
    }

    sgWo->RowCount=1;
    TComResultSet *RsWo;
    try
    {
      StartWaitForm("正在查询数据,请稍候......");
      RsWo=new  TComResultSet(Handle,g_ClientHandle);
      RsWo->Open(SqlStr,"");
      sgWo->RowCount=1;
      while(RsWo->Eof == 0)
      {
        if(dFrom=="Mrp")
        {
            ItemStr=AnsiString("√") +
                 "\t"+RsWo->FieldByName("mrpdgoods")+
                 "\t"+RsWo->FieldByName("goodsname")+
                 "\t"+RsWo->FieldByName("goodsunitcode")+
                 "\t"+RsWo->FieldByName("mrpdqty")+
                 "\t"+RsWo->FieldByName("mrpdgqty")+
                 "\t"+RsWo->FieldByName("mrpdcQty")+
                 "\t"+RsWo->FieldByName("mrpdrdate");
        }
        else
        {
            ItemStr=AnsiString("√") +
                 "\t"+RsWo->FieldByName("Srewdgoods")+
                 "\t"+RsWo->FieldByName("goodsname")+
                 "\t"+RsWo->FieldByName("goodsunitcode")+
                 "\t"+RsWo->FieldByName("Srewdqty")+
                 "\t"+RsWo->FieldByName("Srewdgqty")+
                 "\t"+RsWo->FieldByName("SrewdcQty")+
                 "\t"+RsWo->FieldByName("Srewhdate");
        }
        sgWo->AddItem(ItemStr);
        RsWo->MoveNext();
      }
      RsWo->Close();
      delete RsWo;
    }
    __finally
    {
      if(sgWo->RowCount>1)
         btnOK->Enabled=true;
      else
         btnOK->Enabled=false;
      EndWaitForm();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmWoGen::GetComObject(TComServer *comServerPtr)
{
    comServer = comServerPtr;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWoGen::sgWoDblClick(TObject *Sender)
{
    AnsiString SqlStr;
    int ARow=sgWo->Row;
    if (ARow >0)
    {
      if(sgWo->Col==0)
      {
        if (sgWo->Cells[0][ARow] == "√")
          sgWo->Cells[0][ARow] =  "";
        else
          sgWo->Cells[0][ARow] =  "√";
      }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmWoGen::bbSelAllClick(TObject *Sender)
{
    for(int i=1;i<sgWo->RowCount;i++)
      sgWo->Cells[0][i] = "√";
}
//---------------------------------------------------------------------------
void __fastcall TfrmWoGen::bbSelNoneClick(TObject *Sender)
{
    for(int i=1;i<sgWo->RowCount;i++)
      sgWo->Cells[0][i] = "";
}
//---------------------------------------------------------------------------
void __fastcall TfrmWoGen::btnQueryClick(TObject *Sender)
{
  if(RadioPln->Checked==true)
     mType='6';
  if(RadioGQty->Checked==true)
       mType='1';
  FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWoGen::SetFieldValue(AnsiString FieldName,Variant Value)
{
  comServer->DataSet->SetMasterValue(FieldName,Value);
}
//---------------------------------------------------------------------------

void __fastcall TfrmWoGen::RadioSrewClick(TObject *Sender)
{
    GroupBox1->Enabled=false;
    sgWo->Cells[4][0] = "返修数";
    dFrom="Srew";
}
//---------------------------------------------------------------------------

void __fastcall TfrmWoGen::RadioMrpClick(TObject *Sender)
{
    GroupBox1->Enabled=true;
    sgWo->Cells[4][0] = "MRP需求数";
    dFrom="Mrp";
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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