📄 frmdivide.cpp
字号:
#include "stdafx.h"
#include "frmDivide.h"
using namespace FAP;
void frmDivide::begin(void){
abc=new String __gc *[5];
switch(iLanguage){
case 0:abc[0]=S"连接数据库失败!!";
abc[1]=S"操作失败!!";
abc[2]=S"输入的数字大于库存数!!";
abc[3]=S"操作成功!!";
break;
case 1:abc[0]=S"データーベースへの接続が失敗しました!!";
abc[1]=S"操作に失敗しました!!";
abc[2]=S"入力した数量が在庫数より多いです!!";
abc[3]=S"操作に成功しました!!";
break;
case 2:abc[0]=S"Database Connection Fail!!";
abc[1]=S"Operation Fail!!";
abc[2]=S"Inputed Number Is Larger Than Stock Number!!";
abc[3]=S"Operation Success!!";
break;
default:abc[0]=S"连接数据库失败!!";
abc[1]=S"操作失败!!";
abc[2]=S"输入的数字大于库存数!!";
abc[3]=S"操作成功!!";
break;
}
}
void frmDivide::FillGrid(int intLang){
DataGridTextBoxColumn *oProCode;
DataGridTextBoxColumn *oProName;
DataGridTextBoxColumn *oProNum;
DataGridTableStyle *oTableStyle = new DataGridTableStyle();
oTableStyle->MappingName = S"Divide";
//oProCode
oProCode = new DataGridTextBoxColumn();
oProCode->MappingName = S"Procode";
oProCode->HeaderText = infClsDivide->saG_Code[intLang];
oProCode->Alignment = HorizontalAlignment::Center;
oProCode->Width = 250;
oProCode->ReadOnly = true;
oProCode->NullText = S"";
//oProName
oProName = new DataGridTextBoxColumn();
oProName->MappingName = S"Proname";
oProName->HeaderText = infClsDivide->saG_Name[intLang];
oProName->Alignment = HorizontalAlignment::Center;
oProName->Width = 460;
oProName->ReadOnly = true;
oProName->NullText =S"";
//oProNum
oProNum = new DataGridTextBoxColumn();
oProNum->MappingName = S"ProNum";
oProNum->HeaderText = infClsDivide->saG_PerNum[intLang];
oProNum->Alignment = HorizontalAlignment::Center;
oProNum->Width = 200;
oProNum->ReadOnly = true;
oProNum->NullText =S"";
oTableStyle->GridColumnStyles->Add(oProCode);
oTableStyle->GridColumnStyles->Add(oProName);
oTableStyle->GridColumnStyles->Add(oProNum);
dbGridDiv->TableStyles->Add(oTableStyle);
//Set Data
String * strSQL;
DataSet * dSetTmp;
DataTable *dTableTmp;
String * strTmp[] = {S"C", S"J", S"E"};
strSQL = S"select a.PARTS_CODE as Procode, b.PARTS_NAME_";
strSQL = String::Concat(strSQL,strTmp[intLang]);
strSQL = String::Concat(strSQL,S" as Proname, a.PARTS_COUNT ", S" as ProNum from PART_COMPOSITION a,parts_mst b ");
strSQL = String::Concat(strSQL,S" where a.PRODUCT_CODE = b.PRODUCT_CODE");
strSQL = String::Concat(strSQL,S" and a.product_code = '", strProcode ,S"'");
if(!dbDivide->blnCnnOpen()){
MessageBox::Show(abc[0]);
return;
}
dSetTmp = dbDivide->dSetSQL_Select(strSQL,S"Divide",0);
dTableTmp = dSetTmp->Tables->Item[S"Divide"];
dbGridDiv->DataSource = dTableTmp;
}
bool frmDivide::InstDeliver(String * strFactory, String * strOriginCode,
String * strDesCode,String * ProCode,
String * strRank,Single intNum,
int intPartsDiv,String * strDelDate,
String * strShift, String * ingLot){
String * strSQL;
strSQL = S"insert into deliver_data(FACTORY_CODE,ORIGIN_CODE,DESTINATION_CODE,PRODUCT_CODE,RANK,DELIVER_QTY,PARTS_DIV, DELIVER_YMD,SHIFT,LOT) values ";
strSQL = String::Concat(strSQL,S"('",strFactory,S"',");
strSQL = String::Concat(strSQL,S"'",strOriginCode,S"',");
strSQL = String::Concat(strSQL,S"'",strDesCode,S"',");
strSQL = String::Concat(strSQL,S"'",ProCode,S"',");
strSQL = String::Concat(strSQL,S"'",strRank,S"',");
strSQL = String::Concat(strSQL,intNum.ToString(),S",");
strSQL = String::Concat(strSQL,S"(select parts_div from parts_mst where product_code = '",ProCode,S"' and rownum < 2) ,");
strSQL = String::Concat(strSQL,S"to_date('",strDelDate,S"','yyyy-mm-dd hh24-mi-ss'),");
//strSQL = String::Concat(strSQL,S"to_date('",strDelDate,S"','yyyy-mm-dd hh24-mi-ss'),");
strSQL = String::Concat(strSQL,S"'",strShift->Trim(),S"',");
strSQL = String::Concat(strSQL,S"'",ingLot,S"')");
if (!dbDivide->blnSQL_Execute(strSQL)) {
dbDivide->blnRollBack();
dbDivide->blnCnnClose();
MessageBox::Show(abc[1],S"Error");
return false;
}
return true;
}
bool frmDivide::InstStock(String *strProCode,
String *strRank,
String* intNum,
int intMode //intMode 0: Stock increase - child 1: stock reduce - parent
)
{
int intUptRcrds;
String * strSQL;
bool blnInst;
String *strTmp;
//减去半成批次的如果减成功 intUptRcrds为<=0
strSQL = S"update stock_data set stock_qty = stock_qty ";
switch(intMode) {
case intCChild:
strTmp = S"+";
break;
case intCParent:
strTmp = S"-";
break;
default:
strTmp = S"+";
break;
}
strSQL = String::Concat(strSQL,strTmp, intNum);
strSQL = String::Concat( strSQL,S" where PRODUCT_CODE = '");
strSQL = String::Concat(strSQL,strProCode,S"' and STOCK_POS = '",infClsDivide->strProcess,S"'");
strSQL = String::Concat(strSQL,S" and FACTORY_CODE = '",infClsDivide->strFactoryCode,S"'");
if (!(strRank->Trim()->CompareTo(S"")==0))
strSQL = String::Concat(strSQL,S" and rank = '",strRank,S"'" );
switch(intMode) {
case intCChild:
strSQL = String::Concat(strSQL, S" and trim(lot) is null");
break;
case intCParent:
strSQL = String::Concat(strSQL, S" and lot = '", strLot,S"'");
break;
default:
break;
}
strSQL = String::Concat(strSQL, S" and stock_type = 2");
if (!dbDivide->blnSQL_Execute(strSQL,&intUptRcrds))
return false;
if (intMode == intCParent)
return true;
if (intUptRcrds <= 0){
//更新原材料,成功intcatkap<=1
strSQL = S"update stock_data set STOCK_QTY = STOCK_QTY +";
strSQL = String::Concat(strSQL,intNum);
strSQL = String::Concat(strSQL,S" where factory_code = '",infClsDivide->strFactoryCode,S"'");
strSQL = String::Concat(strSQL,S" and STOCK_POS = '",infClsDivide->strProcess,S"'");
strSQL = String::Concat(strSQL,S" and PRODUCT_CODE = '",strProCode,S"'");
strSQL = String::Concat(strSQL,S" and LOT =",S"(select PARTS_NO from f_result_note where order_NO='",strLot,S"' and ORDER_YMD is null and rownum<2 )",S"");
strSQL = String::Concat(strSQL,S" and stock_type = 2");
int intcatkap;
if (!dbDivide->blnSQL_Execute(strSQL,&intcatkap))
{
return false;
}
//否则插入
if (intcatkap <= 0)
{
strSQL = S"insert into stock_data (FACTORY_CODE,STOCK_POS,PRODUCT_CODE,RANK,STOCK_TYPE,STOCK_QTY,LOT) values ";
strSQL = String::Concat(strSQL,S" (");
strSQL = String::Concat(strSQL, S"'",infClsDivide->strFactoryCode,S"',");
strSQL = String::Concat(strSQL, S"'",infClsDivide->strProcess,S"',");
strSQL = String::Concat(strSQL, S"'",strProCode,S"',");
strSQL = String::Concat(strSQL, S"'",strRank,S"',");
strSQL = String::Concat(strSQL, S"2,");
strSQL = String::Concat(strSQL, intNum,S",");
strSQL = String::Concat(strSQL, S"(select PARTS_NO from f_result_note where order_NO='",strLot,S"' and ORDER_YMD is null and rownum<2 ))");
blnInst = dbDivide->blnSQL_Execute(strSQL);
if (!blnInst)
return false;
}
//strSQL = S"";
//strTmp=String::Format("{0:yyyy-MM-dd}",__box(DateTime::Now));
//strSQL =String::Concat(strSQL,S" update F_RESULT_NOTE set ORDER_YMD = to_date('",strTmp,S"','yyyy-mm-dd') where order_no='",strLot,S"'");
//blnInst = dbDivide->blnSQL_Execute(strSQL);
//if (!blnInst)
// return false;
}
return true;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -