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 + -
显示快捷键?