📄 balanceofpayment.cpp
字号:
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0}};*/
int iaEYe[4][12] = {{ 0,-1, -2, -3,-4,-5,-6,-7 ,-8,-9, -10, -11},
{ 0,-1, -2, -3,-4,-5,-6,-7 ,-8,-9, -10, -11},
{ 0,-1, -2, -3,-4,-5,-6,-7 ,-8,-9, -10, -11},
{ 0,-1, -2, -3,-4,-5,-6,-7 ,-8,-9, -10, -11}};
//********end******** //change by DongZhaoLiang in 2006/4/27
int iaSMo[4][12] = {{12,12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{12, 6, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{12, 3, 6, 9, 1, 1, 1, 1, 1, 1, 1, 1},
{12, 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11}};
int iaEMo[4][12] = {{12,12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{ 6,12, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1},
{ 3, 6, 9,12, 1, 1, 1, 1, 1, 1, 1, 1},
{ 1, 2, 3, 4, 5, 6, 7, 8, 9,10,11,12}};
//String* iaSMo[4][12];
//iaSMo=new String * [4][12];
////saG_SellingPrice = new String * [3];
////String * saG_SellingPrice[];
//iaSMo[4][12] = {{S"12",S"12",S"01",S"01",S"01",S"01",S"01",S"01",S"01",S"01",S"01",S"01"},
// {S"12", S"06", S"01",S"01", S"01", S"01", S"01", S"01", S"01", S"01", S"01", S"01"},
// {S"12", S"03", S"06", S"09", S"01", S"01", S"01", S"01", S"01", S"01", S"01", S"01"},
// {12", S"01", S"02", S"03", S"04", S"05",S"06", S"07", S"08", S"09",S"10",S"11"}};
/*String* iaEMo[4][12] = {{12,12, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01},
{ 06,12, 01, 01, 01, 01, 01, 01, 01, 01, 01, 01},
{ 03, 06, 09,12, 01, 01, 01, 01, 01, 01, 01, 01},
{ 01, 02, 03, 04, 05, 06, 07, 08, 09,10,11,12}};*/
//********end******** //change by DongZhaoLiang in 2006/4/27
int iPT, iPe;
DateTime dtNow;
dtNow = DateTime::Now;
iPT = comboBoxPType->SelectedIndex;
//begin //change by DongZhaoLiang in 2006/4/27
//iPe = comboBoxPeriod->SelectedIndex;
//sSYear =String::Format("{0}", __box(dtNow.Year + iaSYe[iPT][iPe]));
//sEYear =String::Format("{0}", __box(dtNow.Year + iaEYe[iPT][iPe]));
iPe = comboBoxYear->SelectedIndex;
if(comboBoxPeriod->SelectedIndex==0)//if the condition is true ,starting year should be little than ending year about 1 year ;note added by DongZhaoLiang in 2006/4/27
{
sSYear =String::Format("{0}", __box(dtNow.Year + iaSYe[iPT][iPe]));
sEYear =String::Format("{0}", __box(dtNow.Year + iaEYe[iPT][iPe]));
}
else
{
sSYear =String::Format("{0}", __box(dtNow.Year + iaSYe[iPT][iPe]+1));
sEYear =String::Format("{0}", __box(dtNow.Year + iaEYe[iPT][iPe]));
}
//end //change by DongZhaoLiang in 2006/4/27.
//begin //add by DongZhaoLiang in 2006/4/27
iPe = comboBoxPeriod->SelectedIndex;
//end//add by DongZhaoLiang in 2006/4/27
sSMonth =String::Format("{0}", __box(iaSMo[iPT][iPe]));
sEMonth =String::Format("{0}", __box(iaEMo[iPT][iPe]));
//***** begin **************************//
//* add by DongZhaoLiang in 2006/4/27 *//
//***** begin **************************//
/*if(sSMonth->Length==1)
{
sTemp=sSMonth;
sSMonth=S"0";
sSMonth = String::Concat(sSMonth,sTemp);
}
if(sEMonth->Length==1)
{
sTemp=sEMonth;
sEMonth=S"0";
sEMonth = String::Concat(sEMonth,sTemp);
}*/
//sSMonth=sSMonth->PadLeft(2, L'0');
//sEMonth=sEMonth->PadLeft(2, L'0');
//***** end ***************************//
//* add by DongZhaoLiang in 2006/4/27 *//
//***** end ***************************//
sSQL = String::Concat(sSQL, S"select" );
sSQL = String::Concat(sSQL, S" CMST3.NAME_", saLang[iLanguage], S" as DIVISION," );
sSQL = String::Concat(sSQL, S" CMST2.NAME_", saLang[iLanguage], S" as SECTION," );
sSQL = String::Concat(sSQL, S" CMST1.NAME_", saLang[iLanguage], S" as PROCESS," );
sSQL = String::Concat(sSQL, S" CMST1.PROCESS_NO," );
sSQL = String::Concat(sSQL, S" nvl(S_DAT.SELLING_PRICE, 0) as SELLING_PRICE," );
sSQL = String::Concat(sSQL, S" nvl(S_DAT.PRICE_COST, 0) as PRICE_COST," );
sSQL = String::Concat(sSQL, S" nvl(S_DAT.QUANTITY, 0) as QUANTITY," );
sSQL = String::Concat(sSQL, S" nvl(S_DAT.TOTAL_MAN_DAY, 0) as TOTAL_MAN_DAY," );
sSQL = String::Concat(sSQL, S" nvl(S_DAT.MAN_COST, 0) as MAN_COST," );
sSQL = String::Concat(sSQL, S" nvl(S_DAT.LOSS_COST, 0) as LOSS_COST " );
sSQL = String::Concat(sSQL, S"from" );
sSQL = String::Concat(sSQL, S" COST_MST CMST1," );
sSQL = String::Concat(sSQL, S" COST_MST CMST2," );
sSQL = String::Concat(sSQL, S" COST_COMPOSITION CCOM2," );
sSQL = String::Concat(sSQL, S" COST_MST CMST3," );
sSQL = String::Concat(sSQL, S" (" );
sSQL = String::Concat(sSQL, S" select" );
sSQL = String::Concat(sSQL, S" S_DAT.PROCESS_NO," );
sSQL = String::Concat(sSQL, S" sum(S_DAT.TOTAL_PRICE) SELLING_PRICE," );
sSQL = String::Concat(sSQL, S" sum(S_DAT.TOTAL_RMB) PRICE_COST," );
sSQL = String::Concat(sSQL, S" sum(S_DAT.TOTAL_QTY) QUANTITY," );
sSQL = String::Concat(sSQL, S" sum(S_DAT.TOTAL_NUMBER) TOTAL_MAN_DAY," );
sSQL = String::Concat(sSQL, S" sum(S_DAT.TOTAL_COST) MAN_COST," );
sSQL = String::Concat(sSQL, S" sum(S_DAT.TOTAL_LOST) LOSS_COST" );
sSQL = String::Concat(sSQL, S" from" );
sSQL = String::Concat(sSQL, S" (" );
sSQL = String::Concat(sSQL, S" select" );
sSQL = String::Concat(sSQL, S" PR.PROCESS_NO," );
sSQL = String::Concat(sSQL, S" (to_char(PR.YMD, 'YYYYMMDD') || decode(PR.SHIFT, 'A', '1200', '0000')) as YMD," );
sSQL = String::Concat(sSQL, S" (PR.PRODUCT_QTY * SP.PRICE1_RMB) as TOTAL_PRICE," );
sSQL = String::Concat(sSQL, S" (PR.PRODUCT_QTY * SP.RMB) as TOTAL_RMB," );
sSQL = String::Concat(sSQL, S" (PR.PRODUCT_QTY) as TOTAL_QTY," );
sSQL = String::Concat(sSQL, S" 0 as TOTAL_NUMBER," );
sSQL = String::Concat(sSQL, S" 0 as TOTAL_COST," );
sSQL = String::Concat(sSQL, S" 0 as TOTAL_LOST" );
sSQL = String::Concat(sSQL, S" from" );
sSQL = String::Concat(sSQL, S" PRODUCT_RESULT_DATA PR," );
sSQL = String::Concat(sSQL, S" SALE_PRICE_MST SP" );
sSQL = String::Concat(sSQL, S" where" );
sSQL = String::Concat(sSQL, S" PR.FACTORY_CODE = '", sFactory, S"' and" );
sSQL = String::Concat(sSQL, S" PR.PRODUCT_CODE = SP.PRODUCT_CODE(+)" );
sSQL = String::Concat(sSQL, S" union" );
sSQL = String::Concat(sSQL, S" select" );
sSQL = String::Concat(sSQL, S" PROCESS_NO," );
sSQL = String::Concat(sSQL, S" to_char(YMD, 'YYYYMMDD') || decode(SHIFT, 'A', '1200', '0000') YMD," );
sSQL = String::Concat(sSQL, S" 0 TOTAL_PRICE," );
sSQL = String::Concat(sSQL, S" 0 TOTAL_RMB," );
sSQL = String::Concat(sSQL, S" 0 TOTAL_QTY," );
sSQL = String::Concat(sSQL, S" sum(TOTAL_NUMBER) TOTAL_NUMBER," );
sSQL = String::Concat(sSQL, S" sum(TOTAL_COST) TOTAL_COST," );
sSQL = String::Concat(sSQL, S" 0 TOTAL_LOST" );
sSQL = String::Concat(sSQL, S" from" );
sSQL = String::Concat(sSQL, S" (" );
sSQL = String::Concat(sSQL, S" select" );
sSQL = String::Concat(sSQL, S" LC.PROCESS_NO," );
sSQL = String::Concat(sSQL, S" LC.WORK_YMD YMD," );
sSQL = String::Concat(sSQL, S" decode(LC.TEAM, WC.DAY_SHIFT, 'A', 'B') SHIFT," );
sSQL = String::Concat(sSQL, S" (LC.TOTAL_NUMBER) TOTAL_NUMBER," );
sSQL = String::Concat(sSQL, S" (LC.TOTAL_NUMBER * LR.COST) TOTAL_COST" );
sSQL = String::Concat(sSQL, S" from" );
sSQL = String::Concat(sSQL, S" LABOR_COST LC," );
sSQL = String::Concat(sSQL, S" LABOR_COST_RANK LR," );
sSQL = String::Concat(sSQL, S" WORK_CALENDER WC" );
sSQL = String::Concat(sSQL, S" where" );
sSQL = String::Concat(sSQL, S" LC.RANK = LR.RANK(+) and" );
sSQL = String::Concat(sSQL, S" LC.WORK_YMD = WC.WORK_YMD(+)" );
sSQL = String::Concat(sSQL, S" )" );
sSQL = String::Concat(sSQL, S" group by" );
sSQL = String::Concat(sSQL, S" PROCESS_NO, YMD, SHIFT" );
sSQL = String::Concat(sSQL, S" union" );
sSQL = String::Concat(sSQL, S" select" );
sSQL = String::Concat(sSQL, S" QC.PROCESS_NO," );
sSQL = String::Concat(sSQL, S" to_char(QC.MANUFACT_YMD, 'YYYYMMDD') || decode(QC.SHIFT, 'A', '1200', '0000') YMD," );
sSQL = String::Concat(sSQL, S" 0 TOTAL_PRICE," );
sSQL = String::Concat(sSQL, S" 0 TOTAL_RMB," );
sSQL = String::Concat(sSQL, S" 0 TOTAL_QTY," );
sSQL = String::Concat(sSQL, S" 0 TOTAL_NUMBER," );
sSQL = String::Concat(sSQL, S" 0 TOTAL_COST," );
sSQL = String::Concat(sSQL, S" sum(QC.QUANTITY * SP.RMB) TOTAL_LOST" );
sSQL = String::Concat(sSQL, S" from" );
sSQL = String::Concat(sSQL, S" QUALITY_CONTROL_DATA QC," );
sSQL = String::Concat(sSQL, S" SALE_PRICE_MST SP" );
sSQL = String::Concat(sSQL, S" where" );
sSQL = String::Concat(sSQL, S" QC.FACTORY_CODE = '", sFactory, S"' and" );
sSQL = String::Concat(sSQL, S" QC.PRODUCT_CODE = SP.PRODUCT_CODE(+) and" );
sSQL = String::Concat(sSQL, S" QC.REASON_DIV = 0" );
sSQL = String::Concat(sSQL, S" group by" );
sSQL = String::Concat(sSQL, S" QC.PROCESS_NO, QC.MANUFACT_YMD, QC.SHIFT" );
sSQL = String::Concat(sSQL, S" ) S_DAT," );
sSQL = String::Concat(sSQL, S" (" );
sSQL = String::Concat(sSQL, S" select" );
sSQL = String::Concat(sSQL, S" CM.PROCESS_NO," );
//***** begin **************************//
//* change by DongZhaoLiang in 2006/4/27 *//
//***** begin **************************//
/*sSQL = String::Concat(sSQL, S" nvl(CD.START_YMD, '", sSYear, sSMonth, S"990000') START_YMD," );
sSQL = String::Concat(sSQL, S" nvl(CD.END_YMD, '", sEYear, sEMonth, S"990000') END_YMD" );*/
sSQL = String::Concat(sSQL, S" nvl(CD.START_YMD, '", sSYear, sSMonth->PadLeft(2, L'0'), S"990000') START_YMD," );
sSQL = String::Concat(sSQL, S" nvl(CD.END_YMD, '", sEYear, sEMonth->PadLeft(2, L'0'), S"990000') END_YMD" );
//***** end ***************************//
//* change by DongZhaoLiang in 2006/4/27 *//
//***** end ***************************//
sSQL = String::Concat(sSQL, S" from" );
sSQL = String::Concat(sSQL, S" (" );
sSQL = String::Concat(sSQL, S" select" );
sSQL = String::Concat(sSQL, S" CDS.PROCESS_NO," );
sSQL = String::Concat(sSQL, S" to_char(CDS.MONTH_", sSMonth, S", 'YYYYMMDD') ||" );
sSQL = String::Concat(sSQL, S" decode(CDS.SHIFT_", sSMonth, S", 'A', '1200', 'B', '0000') START_YMD," );
sSQL = String::Concat(sSQL, S" to_char(CDE.MONTH_", sEMonth, S", 'YYYYMMDD') ||" );
sSQL = String::Concat(sSQL, S" decode(CDE.SHIFT_", sEMonth, S", 'A', '1200', 'B', '0000') END_YMD" );
sSQL = String::Concat(sSQL, S" from" );
sSQL = String::Concat(sSQL, S" CUTOFF_DATE_MST CDS," );
sSQL = String::Concat(sSQL, S" CUTOFF_DATE_MST CDE" );
sSQL = String::Concat(sSQL, S" where" );
sSQL = String::Concat(sSQL, S" CDS.PROCESS_NO = CDE.PROCESS_NO and" );
sSQL = String::Concat(sSQL, S" CDS.YEAR = ", sSYear, S" and" );
sSQL = String::Concat(sSQL, S" CDE.YEAR = ", sEYear );
sSQL = String::Concat(sSQL, S" ) CD," );
sSQL = String::Concat(sSQL, S" COST_MST CM" );
sSQL = String::Concat(sSQL, S" where" );
sSQL = String::Concat(sSQL, S" CM.PROCESS_NO = CD.PROCESS_NO(+) and" );
sSQL = String::Concat(sSQL, S" CM.COST_DIVISION = 3" );
sSQL = String::Concat(sSQL, S" ) C_DAT" );
sSQL = String::Concat(sSQL, S" where" );
sSQL = String::Concat(sSQL, S" S_DAT.PROCESS_NO = C_DAT.PROCESS_NO and" );
sSQL = String::Concat(sSQL, S" S_DAT.YMD between C_DAT.START_YMD and C_DAT.END_YMD" );
sSQL = String::Concat(sSQL, S" group by" );
sSQL = String::Concat(sSQL, S" S_DAT.PROCESS_NO" );
sSQL = String::Concat(sSQL, S" )S_DAT " );
sSQL = String::Concat(sSQL, S"where" );
sSQL = String::Concat(sSQL, S" CMST1.FACTORY_CODE = '", sFactory, S"' and" );
sSQL = String::Concat(sSQL, S" CMST1.COST_DIVISION = 3 and" );
sSQL = String::Concat(sSQL, S" CMST2.COST_DIVISION = 2 and" );
sSQL = String::Concat(sSQL, S" CMST1.COST_NO = CMST2.COST_NO(+) and" );
sSQL = String::Concat(sSQL, S" CMST2.COST_NO = CCOM2.C_COST_NO(+) and" );
sSQL = String::Concat(sSQL, S" CCOM2.P_COST_NO = CMST3.COST_NO(+) and" );
sSQL = String::Concat(sSQL, S" CMST1.PROCESS_NO = S_DAT.PROCESS_NO(+) " );
sSQL = String::Concat(sSQL, S"order by" );
sSQL = String::Concat(sSQL, S" CCOM2.P_COST_NO DESC, CMST1.COST_NO, CMST1.PROCESS_NO, CMST1.NAME_J, CMST1.PROCESS_NO" );
oDataSet = oDB->dSetSQL_Select(sSQL, S"GridData", 0);
oDataTable = oDataSet->Tables->Item["GridData"];
dataGridBalance->DataSource = oDataTable;
iRecCnt = oDataTable->Rows->Count;
for(i = 0; i < iRecCnt; i++){
dSumSellingPrice += Convert::ToDouble(oDataTable->Rows->get_Item(i)->get_Item(S"SELLING_PRICE")->ToString());
dSumPriceCost += Convert::ToDouble(oDataTable->Rows->get_Item(i)->get_Item(S"PRICE_COST")->ToString());
dSumQuantity += Convert::ToDouble(oDataTable->Rows->get_Item(i)->get_Item(S"QUANTITY")->ToString());
dSumTotalManDay += Convert::ToDouble(oDataTable->Rows->get_Item(i)->get_Item(S"TOTAL_MAN_DAY")->ToString());
dSumManCost += Convert::ToDouble(oDataTable->Rows->get_Item(i)->get_Item(S"MAN_COST")->ToString());
dSumLossCost += Convert::ToDouble(oDataTable->Rows->get_Item(i)->get_Item(S"LOSS_COST")->ToString());
}
//Disp
textBoxSellingPrice ->Text = dSumSellingPrice.ToString("N");
textBoxPriceCost ->Text = dSumPriceCost.ToString("N");
textBoxQuantity ->Text = dSumQuantity.ToString("N");
textBoxTotalManDay ->Text = dSumTotalManDay.ToString("N");
textBoxManCost ->Text = dSumManCost.ToString("N");
textBoxLossCost ->Text = dSumLossCost.ToString("N");
}
void BalanceOfPayment::DispBalance(void)
{
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -