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

📄 mps.cpp

📁 C++Builder6下的一个生产管理系统
💻 CPP
字号:
//-------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "mps.h"
#include "selectmaterial.h"

//-------------------------------------------------------
#pragma package(smart_init)
#pragma link "Parent"
#pragma resource "*.dfm"
TfmMPS *fmMPS;
//-------------------------------------------------------
__fastcall TfmMPS::TfmMPS(TComponent* Owner)
    : TfmParent(Owner)
{
    // 设置按钮状态
    this->SetButtonEnable(0);
    BitBtn2->Enabled = false;
}
//-------------------------------------------------------
void __fastcall TfmMPS::btNewClick(TObject *Sender)
{
    // 设置按钮状态
    BitBtn2->Enabled = true;
    EditDBEdit->SetFocus();
    // 注意如何调用父类窗体的方法
    TfmParent::btNewClick(NULL);
}
//-------------------------------------------------------
void __fastcall TfmMPS::btEditClick(TObject *Sender)
{
    // 设置按钮状态
    BitBtn2->Enabled = true;
    // 注意如何调用父类窗体的方法
    TfmParent::btEditClick(NULL);
}
//-------------------------------------------------------
void __fastcall TfmMPS::btSaveClick(TObject *Sender)
{
    // 设置按钮状态
    BitBtn2->Enabled = false;
    // 注意如何调用父类窗体的方法
    TfmParent::btSaveClick(NULL);
}
//-------------------------------------------------------
void __fastcall TfmMPS::btCancelClick(TObject *Sender)
{
    // 设置按钮状态
    BitBtn2->Enabled = false;
    // 注意如何调用父类窗体的方法
    TfmParent::btCancelClick(NULL);
}
//-------------------------------------------------------
void __fastcall TfmMPS::BitBtn2Click(TObject *Sender)
{
    TfmSelectMat* pFm = new TfmSelectMat(NULL);
    pFm->ShowModal();
    if(pFm->Table1->FieldByName("物料编号"))
    {
        EditDBEdit->SetFocus();
        EditDBEdit->Text = pFm->Table1->FieldByName("物料编号")->AsString;
    }
    delete pFm;    
}
//-------------------------------------------------------
void __fastcall TfmMPS::EditDBEditChange(TObject *Sender)
{
    TQuery* pQuery = new TQuery(NULL);
    pQuery->DatabaseName = "db";
    AnsiString sql;
    sql = "select 物料名称 from 物料主文件 where 物料编号 = '";
    sql += EditDBEdit->Text + "'";
    pQuery->SQL->Add(sql);
    pQuery->Open();
    Edit4->Text = pQuery->FieldByName("物料名称")->AsString;
    pQuery->Close();
    delete pQuery;
}
//-------------------------------------------------------
void __fastcall TfmMPS::EditDBEdit3Change(TObject *Sender)
{
    // 根据年份和计划期设置开始日期和结束日期
    if(!EditDBEdit2->Text.IsEmpty() && !EditDBEdit3->Text.IsEmpty())
    {
        TQuery* pQuery = new TQuery(NULL);
        pQuery->DatabaseName = "db";
        AnsiString sql;
        sql = "select 开始日期,结束日期 from 工厂日历 where 年份 = ";
        sql += EditDBEdit2->Text + "and 计划期 = " + EditDBEdit3->Text;
        pQuery->SQL->Add(sql);
        pQuery->Open();
        EditDBEdit4->Text = pQuery->FieldByName("开始日期")->AsString;
        EditDBEdit5->Text = pQuery->FieldByName("结束日期")->AsString;
        pQuery->Close();
        delete pQuery;
    }    
}
//-------------------------------------------------------
void __fastcall TfmMPS::BitBtn1Click(TObject *Sender)
{
    Table1->Filter = "";
    AnsiString szFilter;
    // 设置条件
    if(!Edit1->Text.IsEmpty())
        szFilter = "物料编号 = '" + Edit1->Text + "*' and ";
    if(!Edit2->Text.IsEmpty())
        szFilter += "年份 = " + Edit2->Text + " and ";
    if(!Edit3->Text.IsEmpty())
        szFilter += "计划期 = " + Edit3->Text + " and ";
    // 清除最后多余的and
    szFilter = szFilter.SubString(1,szFilter.Length()-5);
    Table1->Filtered = false;
    Table1->Filter = szFilter;
    Table1->Filtered = true;
}
//-------------------------------------------------------
void __fastcall TfmMPS::Edit1KeyUp(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    // 回车查询
    if(Key == 13)
    {
        BitBtn1Click(NULL);
    }
}
//-------------------------------------------------------
void __fastcall TfmMPS::btCopyFormNeedClick(TObject *Sender)
{
    // 获取当前选择的记录
    AnsiString szCode, nYear, nNum;
    szCode = Query1->FieldByName("物料编号")->AsString;
    nYear = Query1->FieldByName("年份")->AsString;
    nNum = Query1->FieldByName("计划期")->AsString;
    // 导入主生产计划
    AnsiString sql;
    sql = "insert into 主生产计划(物料编号,年份,计划期,开始日期,结束日期";
    sql += ",需求数量,MPS数量,状态) select 物料编号," ;
	sql += "年份,计划期,开始日期,结束日期,需求数量,需求数量,状态 from 主需求计划";
    AnsiString szcon;
    szcon = " where 物料编号='" + szCode + "' and 年份=" + nYear;
    szcon += " and 计划期=" + nNum;
    sql += szcon;
    TQuery* pQuery = new TQuery(NULL);
    pQuery->DatabaseName = "db";
    pQuery->SQL->Add(sql);
    pQuery->ExecSQL();
    pQuery->SQL->Clear();
    // 放入历史
    sql = "insert into 主需求计划历史(物料编号,年份,计划期,开始日期,结束日期";
    sql += ",需求数量,状态) select 物料编号," ;
	sql += "年份,计划期,开始日期,结束日期,需求数量,状态 from 主需求计划";
    sql += szcon;
    pQuery->SQL->Add(sql);
    pQuery->ExecSQL();
    pQuery->SQL->Clear();
    // 删除需求计划
    sql = "delete from 主需求计划";
    sql += szcon;
    pQuery->SQL->Add(sql);
    pQuery->ExecSQL();
    pQuery->Close();
    delete pQuery;
    // 刷新显示
    Query1->Active = false;
    Query1->Active = true;
    Table1->Active = false;
    Table1->Active = true;
}
//-------------------------------------------------------

⌨️ 快捷键说明

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