📄 wrgcopy.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Wrg.h"
#include "WrgCopy.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma resource "*.dfm"
TfrmWrgCopy *frmWrgCopy;
//---------------------------------------------------------------------------
__fastcall TfrmWrgCopy::TfrmWrgCopy(TComponent* Owner)
: TStdBaseForm(Owner)
{
sgWrg->RowCount=1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::FillGridWithData(AnsiString pRouteFrom)
{
AnsiString tempSQL,ItemStr;
Rst=new TComResultSet(Handle,g_ClientHandle);
if(rbtRouted->Checked) //按工艺路线生成
{
tempSQL=AnsiString("Select RoutedSn,RoutedProcess,RoutedName,RoutedWc,RoutedLoc,")+
AnsiString("RoutedType,RoutedState,RoutehEdate,RoutehIdate,RoutedChkFlg,")+
AnsiString("RoutedWxFlg,RoutedWxAmt,RoutedQlt,RoutedSlt,RoutedRlt,RoutedWlt,")+
AnsiString("RoutedMlt from sdRouted,sdRouteh ")+
AnsiString("Where RoutehCode=RoutedCode and RoutedCode='"+pRouteFrom+"' Order By RoutedSn");
Rst->Open(tempSQL,"RoutedSn");
Rst->MoveFirst();
while( Rst->Eof == 0 )
{
ItemStr=AnsiString("√")+
"\t"+ Rst->FieldByName("RoutedSn")+
"\t"+ Rst->FieldByName("RoutedProcess")+
"\t"+ Rst->FieldByName("RoutedName");
sgWrg->AddItem(ItemStr);
Rst->MoveNext();
}
}
else
{
tempSQL=AnsiString("Select WrgNo,WrgProcess,WrgName,WrgWc,WrgLoc,")+
AnsiString("WrgType,WrgState,WrgEdate,WrgIdate,WrgChkFlg,")+
AnsiString("WrgWxFlg,WrgWxAmt,WrgQlt,WrgSlt,WrgRlt,WrgWlt,")+
AnsiString("WrgMlt from sdWrg ")+
AnsiString("Where WrgWo='"+pRouteFrom+"' Order By WrgNo");
Rst->Open(tempSQL,"WrgNo");
Rst->MoveFirst();
while(Rst->Eof == 0 )
{
ItemStr=AnsiString("√")+
"\t"+ Rst->FieldByName("WrgNo")+
"\t"+ Rst->FieldByName("WrgProcess")+
"\t"+ Rst->FieldByName("WrgName");
sgWrg->AddItem(ItemStr);
Rst->MoveNext();
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::sgWrgSelectCell(TObject *Sender, int ACol,
int ARow, bool &CanSelect)
{
if(ARow==0)
return;
if(ARow>0 && ACol==0)
{
if(sgWrg->Cells[0][ARow]=="")
sgWrg->Cells[0][ARow]="√";
else
sgWrg->Cells[0][ARow]="";
}
AnsiString m_Key;
m_Key=sgWrg->Cells[1][ARow];
Rst->LocateByKey(m_Key);
SetValueToControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::SetValueToControl()
{
if(rbtRouted->Checked)
{
scWrgWc->LocateKey(Rst->FieldByName("RoutedWc"));
scWrgWc->Text = scWrgWc->ItemData[cbItem1];
scWrgLoc->LocateKey(Rst->FieldByName("RoutedLoc"));
scWrgLoc->Text=scWrgLoc->ItemData[cbItem1];
deWrgEdate->Text=Rst->FieldByName("RoutehEdate");
deWrgIdate->Text=Rst->FieldByName("RoutehIdate");
scWrgState->ItemIndex=StrToInt(Rst->FieldByName("RoutedState"))-1;
scWrgType->ItemIndex=StrToInt(Rst->FieldByName("RoutedType"))-1;
cheChkFlg->Checked=Rst->FieldByName("RoutedChkFlg")=="1";
cheWxFlg->Checked=Rst->FieldByName("RoutedWxFlg")=="1";
seWrgWxAmt->Text=Rst->FieldByName("RoutedWxAmt");
seWrgQlt->Text=Rst->FieldByName("RoutedQlt");
seWrgSlt->Text=Rst->FieldByName("RoutedSlt");
seWrgRlt->Text=Rst->FieldByName("RoutedRlt");
seWrgWlt->Text=Rst->FieldByName("RoutedWlt");
seWrgMlt->Text=Rst->FieldByName("RoutedMlt");
seWrgPQty->Text=0;
}
else
{
scWrgWc->LocateKey(Rst->FieldByName("WrgWc"));
scWrgWc->Text = scWrgWc->ItemData[cbItem1];
scWrgLoc->LocateKey(Rst->FieldByName("WrgLoc"));
scWrgLoc->Text=scWrgLoc->ItemData[cbItem1];
deWrgEdate->Text=Rst->FieldByName("WrgEdate");
deWrgIdate->Text=Rst->FieldByName("WrgIdate");
scWrgState->ItemIndex=StrToInt(Rst->FieldByName("WrgState"))-1;
scWrgType->ItemIndex=StrToInt(Rst->FieldByName("WrgType"))-1;
cheChkFlg->Checked=Rst->FieldByName("WrgChkFlg")=="1";
cheWxFlg->Checked=Rst->FieldByName("WrgWxFlg")=="1";
seWrgWxAmt->Text=Rst->FieldByName("WrgWxAmt");
seWrgQlt->Text=Rst->FieldByName("WrgQlt");
seWrgSlt->Text=Rst->FieldByName("WrgSlt");
seWrgRlt->Text=Rst->FieldByName("WrgRlt");
seWrgWlt->Text=Rst->FieldByName("WrgWlt");
seWrgMlt->Text=Rst->FieldByName("WrgMlt");
seWrgPQty->Text=0;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::btnCancelClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::SetcomServer(TComServer *value)
{
comServer=value;
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::FormShow(TObject *Sender)
{
seWrgWo->Text=WrgWoCode;
seWrgWo->Enabled=false;
Panel1->Enabled=false;
rbtRouted->Checked=true;
scWrgWoF->Visible =false;
FillComboBox(Handle,scWrgRoute,"Select RoutehCode from sdRouteh where RoutehCancel=0 order by RoutehCode","RoutehCode");
FillComboBox(Handle,scWrgWoF,"Select WoCode,memo=WoCode+space(1)+'('+WoGoods+')' from sdWo where WoCheck=1 and WoCancel=0 order by WoCode","memo","WoCode");
FillComboBox(Handle,scWrgWc,"Select WcCode,WcName FROM sdWc order by WcCode","WcName","WcCode");
FillComboBox(Handle,scWrgLoc,"Select LocCode,LocName from sdLoc where LocType=2 order by LocCode","LocName","LocCode");
InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::InitEditControl()
{
scWrgRoute->ItemIndex=-1;
scWrgRoute->Text = "";
scWrgWoF->ItemIndex=-1;
scWrgWoF->Text="";
scWrgWc->ItemIndex=-1;
scWrgWc->Text = "";
scWrgLoc->ItemIndex=-1;
scWrgLoc->Text = "";
deWrgEdate->Text="";
deWrgIdate->Text="";
scWrgType->ItemIndex=-1;
scWrgType->Text="";
scWrgState->ItemIndex=-1;
scWrgState->Text="";
seWrgQlt->Text ="";
seWrgSlt->Text ="";
seWrgRlt->Text ="";
seWrgWlt->Text ="";
seWrgMlt->Text ="";
seWrgPQty->Text ="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::btnOKClick(TObject *Sender)
{
AnsiString m_Keystr;
if(sgWrg->RowCount>0){
for(int i=1;i<sgWrg->RowCount;i++){
int j;
if(rbtRouted->Checked){
if(sgWrg->Cells[0][i]=="√"){
j=comServer->RecordCount-1;
if(j>=0)
{
comServer->LocateByIndex(j);
j=GetFieldValue("WrgNo").ToInt();
j=j+1;
}
else
j=1;
m_Keystr=sgWrg->Cells[1][i];
Rst->LocateByKey(m_Keystr);
comServer->AddNew();
SetFieldValue("WrgWo",WrgWoCode);
SetFieldValue("WrgNo",AnsiString(j));
SetFieldValue("WrgProcess",Rst->FieldByName("RoutedProcess"));
SetFieldValue("WrgName",Rst->FieldByName("RoutedName"));
SetFieldValue("WrgWc",Rst->FieldByName("RoutedWc"));
SetFieldValue("WrgLoc",Rst->FieldByName("RoutedLoc"));
SetFieldValue("WrgFrom","2"); //1-工艺路线表 2-工单路线表
SetFieldValue("WrgType",Rst->FieldByName("RoutedType"));
SetFieldValue("WrgState",Rst->FieldByName("RoutedState"));
SetFieldValue("WrgEdate",Rst->FieldByName("RoutehEdate"));
SetFieldValue("WrgIdate",Rst->FieldByName("RoutehIdate"));
SetFieldValue("WrgChkFlg",Rst->FieldByName("RoutedChkFlg"));
SetFieldValue("WrgWxFlg",Rst->FieldByName("RoutedWxFlg"));
SetFieldValue("WrgWxAmt",Rst->FieldByName("RoutedWxAmt"));
SetFieldValue("WrgQlt",Rst->FieldByName("RoutedQlt"));
SetFieldValue("WrgSlt",Rst->FieldByName("RoutedSlt"));
SetFieldValue("WrgRlt",Rst->FieldByName("RoutedRlt"));
SetFieldValue("WrgWlt",Rst->FieldByName("RoutedWlt"));
SetFieldValue("WrgMlt",Rst->FieldByName("RoutedMlt"));
SetFieldValue("WrgPQty",0);
SetFieldValue("WrgUser",g_sdUserCode);
try
{
comServer->Post();
}
catch(Exception &e)
{
comServer->Cancel();
this->ModalResult=0;
throw Exception(e.Message);
}
j=j+1;
}
}
else{
if(sgWrg->Cells[0][i]=="√")
{
j=comServer->RecordCount-1;
if(j>=0)
{
comServer->LocateByIndex(j);
j=StrToInt(GetFieldValue("WrgNo"));
j=j+1;
}
else
j=1;
m_Keystr=sgWrg->Cells[1][i];
Rst->LocateByKey(WideString(m_Keystr));
comServer->AddNew();
SetFieldValue("WrgWo",WrgWoCode);
SetFieldValue("WrgNo",AnsiString(j));
SetFieldValue("WrgProcess",Rst->FieldByName("WrgProcess"));
SetFieldValue("WrgName",Rst->FieldByName("WrgName"));
SetFieldValue("WrgWc",Rst->FieldByName("WrgWc"));
SetFieldValue("WrgLoc",Rst->FieldByName("WrgLoc"));
SetFieldValue("WrgFrom","2"); //1-工艺路线表 2-工单路线表
SetFieldValue("WrgType",Rst->FieldByName("WrgType"));
SetFieldValue("WrgState",Rst->FieldByName("WrgState"));
SetFieldValue("WrgEdate",Rst->FieldByName("WrgEdate"));
SetFieldValue("WrgIdate",Rst->FieldByName("WrgIdate"));
SetFieldValue("WrgChkFlg",Rst->FieldByName("WrgChkFlg"));
SetFieldValue("WrgWxFlg",Rst->FieldByName("WrgWxFlg"));
SetFieldValue("WrgWxAmt",Rst->FieldByName("WrgWxAmt"));
SetFieldValue("WrgQlt",Rst->FieldByName("WrgQlt"));
SetFieldValue("WrgSlt",Rst->FieldByName("WrgSlt"));
SetFieldValue("WrgRlt",Rst->FieldByName("WrgRlt"));
SetFieldValue("WrgWlt",Rst->FieldByName("WrgWlt"));
SetFieldValue("WrgMlt",Rst->FieldByName("WrgMlt"));
SetFieldValue("WrgPQty",0);
SetFieldValue("WrgUser",g_sdUserCode);
try
{
comServer->Post();
}
catch(Exception &e)
{
comServer->Cancel();
this->ModalResult=0;
throw Exception(e.Message);
}
j=j+1;
}
}
}
}
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::FormClose(TObject *Sender,
TCloseAction &Action)
{
delete Rst;
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::scWrgRouteClick(TObject *Sender)
{
AnsiString s_RouteF;
s_RouteF=Trim(scWrgRoute->Text);
if(s_RouteF.IsEmpty())
{
::MessageBox(Handle,"复制时的来源工艺路线码不能为空!","错误",MB_OK|MB_ICONSTOP);
return;
}
else
{
sgWrg->RowCount=1;
FillGridWithData(s_RouteF);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::scWrgWoFClick(TObject *Sender)
{
AnsiString s_WrgWoF;
if(scWrgWoF->ItemIndex==-1)
{
::MessageBox(Handle,"复制时的来源工单编号不能为空!","错误",MB_OK|MB_ICONSTOP);
return;
}
else
{
sgWrg->RowCount=1;
s_WrgWoF=Trim(scWrgWoF->ItemData[1]);
FillGridWithData(s_WrgWoF);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::rbtWrgClick(TObject *Sender)
{
if(rbtWrg->Checked)
{
scWrgRoute->Visible=false;
scWrgWoF->Visible=true;
}
else
{
scWrgRoute->Visible=true;
scWrgWoF->Visible=false;
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmWrgCopy::rbtRoutedClick(TObject *Sender)
{
if(rbtRouted->Checked)
{
scWrgRoute->Visible=true;
scWrgWoF->Visible=false;
}
else
{
scWrgRoute->Visible=false;
scWrgWoF->Visible=true;
}
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -