qcshw.cpp

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

CPP
534
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#include "QcshW.h"

//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmQcshW *frmQcshW;
//---------------------------------------------------------------------------
__fastcall TfrmQcshW::TfrmQcshW(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TGenBaseForm(Owner,chWnd,MidCode,WhereStr)
{
 AutoCtl=seQcshCode;  
}
//---------------------------------------------------------------------------

void __fastcall TfrmQcshW::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true,fpQcshHead,fpQcshHead->Name);
    ClientGroup->AddComponent(1,false,true,false,seQcshCode,seQcshCode->Name);

    
    ClientGroup->AddComponent(1,true,true,true,scQcshUser,scQcshUser->Name);
    ClientGroup->AddComponent(1,false,true,true,scQcshType,scQcshType->Name);
    ClientGroup->AddComponent(1,false,true,true,seQcshDocCode,seQcshDocCode->Name);

    ClientGroup->AddComponent(2,false,false,true,fpQcsdDetail,fpQcsdDetail->Name);
    ClientGroup->AddComponent(2,true,true,true,seQcsdFLine,seQcsdFLine->Name);
    ClientGroup->AddComponent(2,true,true,true,seQcsdDQty,seQcsdDQty->Name);

    ClientGroup->AddComponent(2,true,true,true,seQcsdGoodsName,seQcsdGoodsName->Name);
    ClientGroup->AddComponent(2,true,true,true,seQcsdGoodsSpec,seQcsdGoodsSpec->Name);

    ClientGroup->AddComponent(2,true,true,true,scQcsdState,scQcsdState->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
    //Qcsh
    FillComboBox(Handle,scQcshUser,"SELECT UserName memo,QcmCode FROM sdQcm,sdUser where QcmCode=UserCode order by QcmCode","memo","QcmCode");

    scQcshType->ClearAll();
    scQcshType->AddItems("1-采购收货质检","1");
    scQcshType->AddItems("2-完成品质检","2");
    scQcshType->AddItems("3-工序质检","3");
    //Qcsd
    FillComboBox(Handle,scQcsdTrd,"select TrdName memo,TrdCode from sdTrd order by TrdCode","memo","TrdCode");

    scQcsdState->ClearAll();
    scQcsdState->AddItems("1-未确认","1");
    scQcsdState->AddItems("2-确认","2");

    scQcsdMode->ClearAll();
    scQcsdMode->AddItems("1-退货","1");
    scQcsdMode->AddItems("2-全检","2");
    scQcsdMode->AddItems("3-回用","3");
    scQcsdMode->AddItems("4-换货","4");
    scQcsdMode->AddItems("5-返工/修","5");
}
//---------------------------------------------------------------------------
void __fastcall TfrmQcshW::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
        seQcshCode->Text="";              //质检单号
        deQcshDate->Text=g_sdCurDate;    //质检日期
        scQcshType->ItemIndex=0;        //质检类型
        seQcshDocCode->Text="";              //送检单号
        scQcshUser->LocateKey(g_sdUserCode);//质检员
        cbxQcshCheck->Checked=false;       //审核标志
        labQcshChecker->Caption="";       //审核人
        labSysDate->Caption="";          //系统日期
                                        //新增单据,工具栏使能
        labQcshCheckDate->Caption="";    //审核日期
        SetCheckToolbarStatus(false);
       }
       sgQcsh->RowCount=1;
    }
    else if (Section==2)
    {
       if (!BringToNext)
       {
        seQcsdLine->Text="";              //行号
        seQcsdFLine->Text="";            //来源行号
        seQcsdGoods->Text="";           //物料编码
        seQcsdGoodsName->Text="";    //物料名称
        seQcsdGoodsSpec->Text="";    //物料规格
        
        scQcsdTrd->Text="";              //技术要求
        scQcsdTrd->ItemIndex=-1;        //技术要求
        seQcsdDQty->Text="";           //送检数量
        seQcsdCQty->Text="";          //实检数量
        seQcsdYQty->Text="";             //合格数
        seQcsdNQty->Text="";            //不合格数
        scQcsdMode->ItemIndex=0;       //不合格处理方式
        scQcsdState->ItemIndex=0;     //行状态
        memQcsdDesc->Text="";        //备注
       }
    }
}
//-------------------------------------------------------------

void __fastcall TfrmQcshW::GetDataFromComObject(int Section)
{
    AnsiString s;
    if (Section==1)  //head
    {
        seQcshCode->Text=GetHeadValue("QcshCode"); //质检单号
        deQcshDate->Text=GetHeadValue("QcshDate");             //质检日期
        scQcshType->LocateKey(GetHeadValue("QcshType"));        //质检类型
        seQcshDocCode->Text=GetHeadValue("QcshDocCode");        //送检单号
        scQcshUser->LocateKey(GetHeadValue("QcshUser"));        //质检员
        cbxQcshCheck->Checked=(GetHeadValue("QcshCheck")=="1");         //审核标志
        labQcshChecker->Caption=GetHeadValue("QcshChecker");    //审核人

        labQcshCheckDate->Caption=GetHeadValue("QcshCheckDate");   //??审核日期,要改为字符型!!

        labSysDate->Caption=GetHeadValue("QcshSysDate");        //系统日期
        //根据审核、取消状态,设置工具栏
        if(GetHeadValue("QcshCheck")=="1")
         SetCheckToolbarStatus(true);
        else
         SetCheckToolbarStatus(false);
    }
    else  //details
    {
        seQcsdLine->Text=   GetDetailValue("QcsdLine");            //行号
        seQcsdFLine->Text=  GetDetailValue("QcsdFLine");        //来源行号
        seQcsdGoods->Text=  GetDetailValue("QcsdGoods");         //物料编码
        seQcsdGoodsName->Text=GetDetailValue("QcsdGoodsName");       //物料名称
        seQcsdGoodsSpec->Text=GetDetailValue("QcsdGoodsSpec");       //物料规格

        scQcsdTrd->LocateKey(GetDetailValue("QcsdTrd"));        //技术要求
        seQcsdDQty->Text=   GetDetailValue("QcsdDQty");            //送检数量
        seQcsdCQty->Text=   GetDetailValue("QcsdCQty");            //实检数量
        seQcsdYQty->Text=   GetDetailValue("QcsdYQty");            //合格数
        seQcsdNQty->Text=   GetDetailValue("QcsdNQty");           //不合格数
        scQcsdMode->LocateKey(GetDetailValue("QcsdMode"));      //不合格处理方式
        scQcsdState->LocateKey(GetDetailValue("QcsdState"));    //行状态
        memQcsdDesc->Text=  GetDetailValue("QcsdDesc");           //备注
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmQcshW::SendDataToComObject(int Section)
{
    if (Section==1)  // Head
    {
        SetHeadValue("QcshCode",seQcshCode->Text);
        SetHeadValue("QcshDate",deQcshDate->Text);
        SetHeadValue("QcshType",scQcshType->ItemData[1]);
        SetHeadValue("QcshDocCode", seQcshDocCode->Text);
        SetHeadValue("QcshUser",scQcshUser->ItemData[1]);
    }
    else
    {
        SetDetailValue("QcsdLine",seQcsdLine->Text);
        SetDetailValue("QcsdFLine",seQcsdFLine->Text);
        SetDetailValue("QcsdGoods",seQcsdGoods->Text);
        SetDetailValue("QcsdGoodsName",seQcsdFLine->Text); //不可修改当前物料名
        SetDetailValue("QcsdGoodsSpec",seQcsdGoods->Text); //
        SetDetailValue("QcsdTrd",scQcsdTrd->ItemData[1]);
        if(seQcsdDQty->Text == "")
            throw Exception("请输入送检数量");
        SetDetailValue("QcsdDQty",seQcsdDQty->Text);
        if(seQcsdCQty->Text == "")
            throw Exception("请输入实检数量");
        SetDetailValue("QcsdCQty",seQcsdCQty->Text);
        if(seQcsdYQty->Text == "")
            throw Exception("请输入合格数量");
        SetDetailValue("QcsdYQty",seQcsdYQty->Text);
        if(seQcsdNQty->Text == "")
            throw Exception("请输入不合格数量");
        SetDetailValue("QcsdNQty",seQcsdNQty->Text);
        SetDetailValue("QcsdMode", scQcsdMode->ItemData[1]);
        SetDetailValue("QcsdState", scQcsdState->ItemData[1]);
        SetDetailValue("QcsdDesc", memQcsdDesc->Text);
   }
}
//---------------------------------------------------------------------------

void __fastcall TfrmQcshW::WaitUserInput(int Section)
{
   if (Section ==1) //head
   {
    if(seQcshCode->Enabled)
      seQcshCode->SetFocus();
    else
      deQcshDate->SetFocus();
   }
   else //details
   {
      sgQcsh->Visible=false;
      fpQcsdDetail->Visible=true;
      scQcsdTrd->SetFocus();
   }
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmQcshW::GetDataToGrid()
{
    //返回明细表查询结果当前记录行
    AnsiString ItemStr;
    ItemStr="\t"+GetDetailValue("QcsdLine")+
            "\t"+GetDetailValue("QcsdFLine")+
            "\t"+GetDetailValue("QcsdGoods")+
            "\t"+GetDetailValue("QcsdGoodsName")+
            "\t"+GetDetailValue("QcsdGoodsSpec")+
            "\t"+GetDetailValue("QcsdDQty")+
            "\t"+GetDetailValue("QcsdCQty")+
            "\t"+GetDetailValue("QcsdYQty")+
            "\t"+GetDetailValue("QcsdNQty");
    return ItemStr;
}

//---------------------------------------------------------------------------
void __fastcall TfrmQcshW::RefreshGridData(int mAction)
{
    int i;
    AnsiString ItemStr=GetDataToGrid();
    switch(mAction)
    {
       case 0: // Append
         sgQcsh->AddItem(ItemStr);
         break;
       case 1: // Modify
         i=sgQcsh->Row;
         sgQcsh->ChangeItem(ItemStr,i);
         break;
       case 2: // Delete
         sgQcsh->RemoveItem(sgQcsh->Row);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmQcshW::FillGridWithData()
{
    int i;
    AnsiString ItemStr;
    sgQcsh->RowCount=1;
    if(comServer->RecordCount > 0)
      for (i=0;i<comServer->ItemCount;i++)
      {
          comServer->LocateItemByIndex(i);
          RefreshGridData(0); // Append
      }
}
//---------------------------------------------------------------------------
void __fastcall TfrmQcshW::DisplayBill()
{
      if(comServer->RecordCount<1)
         return;
      GetDataFromComObject(1);  // Head
      ChangeToBrowseState(true);
      FillGridWithData();
}
//---------------------------------------------------------------------------

void __fastcall TfrmQcshW::GetBill(AnsiString BillID)

⌨️ 快捷键说明

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