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

📄 wogen.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//--------------------------------------------------------------------------
#include <vcl.h>
#include "WoGen.h"
#include "Wo.h"
#include "wnquery.h"
#include "func.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();
}
//--------------------------------------------------------------------------

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(fiWoCode,"$frmWo");
            SetFieldValue(fiWoStatus,"2");
            SetFieldValue(fiWoType,"1");
            SetFieldValue(fiWoConsume,"1");
            SetFieldValue(fiWoTrace,"2");
            SetFieldValue(fiWoFrom,"2");
            SetFieldValue(fiWoGoods,sgWo->Cells[1][i]);
            SetFieldValue(fiWoRoute,"");
            SetFieldValue(fiWoBatch,"");
            SetFieldValue(fiWoProducter,g_sdUserCode);
            SetFieldValue(fiWoUser,g_sdUserCode);
            SetFieldValue(fiWoChkFlg,"0");
            if(sgWo->Cells[6][i].IsEmpty())
              throw Exception("加工数量不能为空");
            SetFieldValue(fiWoQty,sgWo->Cells[6][i]);
            SetFieldValue(fiWoDate,g_sdCurDate);
            SetFieldValue(fiWoRdate,sgWo->Cells[7][i]);
            SetFieldValue(fiWoMDate,sgWo->Cells[7][i]);
            SetFieldValue(fiWoSdate,sgWo->Cells[7][i]);
            SetFieldValue(fiWoDesc,"");
            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;
    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 mrpdtype=6 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";

    sgWo->RowCount=1;
    TComResultSet *RsWo;
    try
    {
      StartWaitForm("正在查询数据,请稍候......");
      RsWo=NewResultSet();
      RsWo->Open(SqlStr,"");
      sgWo->RowCount=1;
      while(RsWo->Eof == 0)
      {
        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");
        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::SetFieldValue(int Index,AnsiString Value)
{
    WriteFieldValue(comServer,Index,Value);
}
//---------------------------------------------------------------------------

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)
{
    FillGridWithData();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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