📄 prechcancel.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "PrechCancel.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ListBaseForm"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmPrechCancel *frmPrechCancel;
//---------------------------------------------------------------------------
__fastcall TfrmPrechCancel::TfrmPrechCancel(TComponent* Owner)
: TListBaseForm(Owner,euSdPrech_G_I,"")
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::ChangeToBrowseState(bool Browse)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::FillHeadObjToGrid()
{
AnsiString ItemStr;
AnsiString TypeStr;
try
{
StartWaitForm("正在获取数据...");
comServer->FilterString=WideString(WhereStr);
comServer->Query();
sgPrechCancel->RowCount=1;
sgPrecdCancel->RowCount=1;
if(comServer->RecordCount>0)
{
for(int i=0;i<comServer->RecordCount;i++)
{
comServer->LocateByIndex(i);
if(GetHeadValue(fiPrechType)=='P')
TypeStr="按采购单";
else
if(GetHeadValue(fiPrechType)=='G')
TypeStr="按物料";
else
TypeStr="非计划";
ItemStr="\t\t"+ GetHeadValue(fiPrechCode)
+ "\t"+ GetHeadValue(fiPrechDate)
+ "\t"+ GetHeadValue(fiPrechSupply)
+ "\t"+ GetHeadValue(fiPrechCurrency)
+ "\t"+ GetHeadValue(fiPrechTransCode)
+ "\t"+ GetHeadValue(fiPrechPsite)
+ "\t"+ GetHeadValue(fiPrechDeliver)
+ "\t"+ TypeStr;
sgPrechCancel->AddItem(ItemStr);
}
}
else
{
ShowMessage("没有满足条件并且可以取消的单据");
}
}
__finally
{
EndWaitForm();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::GetWhereStrToSQL()
{
WhereStr="PrechCheck=0 and PrechCancel=0 and PrechClose=0 ";
// WhereStr = "1=1 "; // for debugging
if(!(Trim(sePrechCodeF->Text)).IsEmpty())
WhereStr=WhereStr+ " and PrechCode>='"+Trim(sePrechCodeF->Text)+"'";
if(!(Trim(sePrechCodeT->Text)).IsEmpty())
WhereStr=WhereStr+ " and PrechCode<='"+Trim(sePrechCodeT->Text)+"'";
if(!(Trim(dePrechDateF->Text)).IsEmpty())
WhereStr=WhereStr+ " and PrechDate>='"+FormatDateTime("yyyy-mm-dd",dePrechDateF->Text)+"'";
if(!(Trim(dePrechDateT->Text)).IsEmpty())
WhereStr=WhereStr+ " and PrechDate<='"+FormatDateTime("yyyy-mm-dd",dePrechDateT->Text)+"'";
if(!(Trim(scPrechSupplyCode->Text)).IsEmpty())
WhereStr=WhereStr+" and PrechSupply='"+Trim(scPrechSupplyCode->ItemData[cbItem2])+"'";
if(!(Trim(scPrechCurrency->Text)).IsEmpty())
WhereStr=WhereStr+ " and PrechCurrency='"+Trim(scPrechCurrency->Text)+"'";
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::InitEditControl()
{
FillComboBox(scPrechSupplyCode,"select SupplyCode,SupplyName from sdSupply order By SupplyCode","SupplyName","SupplyCode");
FillComboBox(scPrechCurrency,"select CurrencyCode from sdCurrency order By CurrencyCode","CurrencyCode");
sgPrechCancel->RowCount=1;
sgPrecdCancel->RowCount=1;
btnCancel->Enabled=false;
sePrechCodeF->Text="";
sePrechCodeT->Text="";
dePrechDateF->Text="";
dePrechDateT->Text=dePrechDateT->InitDate;
scPrechCurrency->Text="";
scPrechSupplyCode->Text="";
sbBar->Panels->Items[1]->Text="操作员:"+g_sdUserCode;
sbBar->Panels->Items[2]->Text=g_sdCompanyName;
sbBar->Panels->Items[3]->Text=g_sdCurDate;
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPrechCancel::GetHeadValue(int Index)
{
return ReadFieldValue(comServer,Index);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPrechCancel::GetDetailValue(int Index)
{
return ReadItemValue(comServer,Index);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::AddDetailObjToGrid(AnsiString s_Code)
{
AnsiString ItemStr;
sgPrecdCancel->RowCount=1;
comServer->LocateByKey(WideString(s_Code));
if(comServer->RecordCount>0)
{
for (int i=0;i<comServer->ItemCount;i++)
{
comServer->LocateItemByIndex(i);
ItemStr="\t"+GetDetailValue(fiPrecdCode)
+"\t"+GetDetailValue(fiPrecdLine)
+"\t"+GetDetailValue(fiPrecdPo)
+"\t"+GetDetailValue(fiPrecdPodLine)
+"\t"+GetDetailValue(fiPrecdGoods)
+"\t"+GetDetailValue(fiPrecdUnit)
+"\t"+GetDetailValue(fiPrecdQty)
+"\t"+GetDetailValue(fiPrecdDQty)
+"\t"+GetDetailValue(fiPrecdLoc)
+"\t"+GetDetailValue(fiPrecdBatch);
sgPrecdCancel->AddItem(ItemStr,i+1);
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::btnClearClick(TObject *Sender)
{
InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::btnQueryClick(TObject *Sender)
{
HavingRight();
GetWhereStrToSQL();
FillHeadObjToGrid();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::FormShow(TObject *Sender)
{
InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::BitExitClick(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::btnCancelClick(TObject *Sender)
{
for(int i=sgPrechCancel->RowCount-1; i>0; i--)
{
if(sgPrechCancel->Cells[1][i]=="√")
{
comServer->LocateByKey(WideString(sgPrechCancel->Cells[2][i]));
if(!comServer->Eof)
{
comServer->Revoke(1);
}
sgPrechCancel->RemoveItem(i);
} // if "√"
} // for
sgPrecdCancel->RowCount=1;
btnCancel->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::sgPrechCancelDblClick(TObject *Sender)
{
int i;
i = sgPrechCancel->Row;
if(i > 0)
{
if(sgPrechCancel->Cells[1][i]!="√")
{
btnCancel->Enabled=true;
sgPrechCancel->Cells[1][i]="√";
}
else
{
sgPrechCancel->Cells[1][i]="";
//找到有没有需要审核的
for (int i=1;i<sgPrechCancel->RowCount;i++)
{
if(sgPrechCancel->Cells[1][i]=="√")
{
btnCancel->Enabled=true;
break;
}
else
btnCancel->Enabled=false;
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::sgPrechCancelSelectCell(TObject *Sender,
int ACol, int ARow, bool &CanSelect)
{
if(sgPrechCancel->RowCount>1 && ARow > 0)
{
AddDetailObjToGrid(sgPrechCancel->Cells[2][ARow]);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCancel::HavingRight()
{
TComResultSet *RsTemp;
AnsiString sSQL;
sSQL=" select buyercode from sdbuyer where buyercancel=1 and buyercode='"
+g_sdUserCode+"'";
RsTemp=NewResultSet();
RsTemp->Open(sSQL,"");
if(RsTemp->RecordCount <= 0)
{
RsTemp->Close();
throw Exception("当前用户没有取消/反取消权限");
}
else
RsTemp->Close();
delete RsTemp;
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -