📄 tshcheck.cpp
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "TshCheck.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "DateEdit"
#pragma link "ListBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmTshCheck *frmTshCheck;
//---------------------------------------------------------------------------
__fastcall TfrmTshCheck::TfrmTshCheck(TComponent* Owner)
: TListBaseForm(Owner,euSdTsh,"")
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::FillHeadObjToGrid()
{
AnsiString ItemStr;
try
{
StartWaitForm("正在获取数据...");
comServer->FilterString=WideString(WhereStr);
comServer->Query();
if(comServer->RecordCount>0)
{
sgTshCheck->RowCount=1;
for(int i=0;i<comServer->RecordCount;i++)
{
comServer->LocateByIndex(i);
ItemStr="\t"+ AnsiString(" ")+
"\t"+ GetHeadValue(fiTshCode)+
"\t"+ GetHeadValue(fiTshDate)+
"\t"+ GetHeadValue(fiTshPosType)+
"\t"+ GetHeadValue(fiTshType)+
"\t"+ GetHeadValue(fiTshUser)+
"\t"+ GetHeadValue(fiTshKeeper);
sgTshCheck->AddItem(ItemStr);
}
}
else
{
sgTshCheck->RowCount=1;
sgTsdCheck->RowCount=1;
}
}
__finally
{
EndWaitForm();
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::GetWhereStrToSQL()
{
WhereStr="TshCheck=0 and TshCancel=0 and ";
if(Trim(seTshCodeF->Text).IsEmpty()==false)
WhereStr=WhereStr+ "TshCode>='"+Trim(seTshCodeF->Text)+"' and ";
if(Trim(seTshCodeT->Text).IsEmpty()==false)
WhereStr=WhereStr+ "TshCode<='"+Trim(seTshCodeT->Text)+"' and ";
if(Trim(deTshDateF->Text).IsEmpty()==false)
WhereStr=WhereStr+ "TshDate>='"+FormatDateTime("yyyy-mm-dd",deTshDateF->Date)+"' and ";
if(Trim(deTshDateT->Text).IsEmpty()==false)
WhereStr=WhereStr+ "TshDate<='"+FormatDateTime("yyyy-mm-dd",deTshDateT->Date)+"' and ";
if(Trim(scTshUser->Text).IsEmpty()==false)
WhereStr=WhereStr+ "TshUser like '"+Trim(scTshUser->ItemData[cbItem2])+"' and ";
if(Trim(scTshKeeper->Text).IsEmpty()==false)
WhereStr=WhereStr+ "TshKeeper like '"+Trim(scTshKeeper->ItemData[cbItem2])+"' and ";
if (WhereStr.Length() > 5)
WhereStr=WhereStr.SubString(1,WhereStr.Length()-5);
else
WhereStr="";
// ShowMessage(WhereStr);
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::InitEditControl()
{
sgTshCheck->RowCount=1;
sgTsdCheck->RowCount=1;
btnCheck->Enabled=false;
seTshCodeF->Text="";
seTshCodeT->Text="";
deTshDateF->Text="";
deTshDateT->Text=g_sdCurDate;
scTshUser->Text="";
scTshKeeper->Text="";
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmTshCheck::GetHeadValue(int Index)
{
return ReadFieldValue(comServer,Index);
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmTshCheck::GetDetailValue(int Index)
{
return ReadItemValue(comServer,Index);
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::ChangeToBrowseState(bool agree)
{
return;
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::AddDetailObjToGrid(AnsiString s_Code)
{
AnsiString ItemStr,sTemp;
sgTsdCheck->RowCount=1;
comServer->LocateByKey(WideString(s_Code));
if(comServer->RecordCount>0)
{
for (int i=0;i<comServer->ItemCount;i++)
{
comServer->LocateItemByIndex(i);
if(GetDetailValue(fiTsdFlg)=="1")
sTemp="盘盈";
else
if(GetDetailValue(fiTsdFlg)=="-1")
sTemp="盘亏";
else
sTemp="对帐";
ItemStr="\t"+GetDetailValue(fiTsdCode)+
"\t"+GetDetailValue(fiTsdLine)+
"\t"+GetDetailValue(fiTsdLoc)+
"\t"+GetDetailValue(fiTsdGoods)+
"\t"+GetDetailValue(fiTsdAQty)+
"\t"+GetDetailValue(fiTsdTQty)+
"\t"+GetDetailValue(fiTsdDQty)+
"\t"+sTemp+
"\t"+GetDetailValue(fiTsdIoQty);
sgTsdCheck->AddItem(ItemStr,i+1);
}
/*
ItemStr="\t"+AnsiString(" ")+"\t"+AnsiString(" ")+"\t"+AnsiString(" ")+
"\t"+AnsiString(" ")+"\t"+AnsiString(" ")+"\t"+AnsiString(" ")+
"\t"+AnsiString(" ");
sgTsdCheck->AddItem(ItemStr,sgTsdCheck->RowCount);
*/
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::DelDetailObjFromGrid(AnsiString s_Code)
{
AnsiString m;
// for(int i=sgTsdCheck->RowCount;i>0;i--)
for(int i=sgTsdCheck->RowCount-1;i>0;i--)
{
m = Trim(sgTsdCheck->Cells[1][i]);
if(m==s_Code)
sgTsdCheck->RemoveItem(i);
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::btnClearClick(TObject *Sender)
{
InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::btnQueryClick(TObject *Sender)
{
sgTshCheck->RowCount=1;
sgTsdCheck->RowCount=1;
HavingRight();
GetWhereStrToSQL();
FillHeadObjToGrid();
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::FormShow(TObject *Sender)
{
AnsiString sSQL;
sSQL="select '('+usercode+')'+username name,usercode from sduser order by usercode";
FillComboBox(scTshUser,sSQL,"name","usercode");
sSQL="select '('+usercode+')'+username name,usercode from sdkeeper,sduser ";
sSQL=sSQL+" where sdkeeper.keepercode=sduser.usercode ";
sSQL=sSQL+" order by usercode ";
FillComboBox(scTshKeeper,sSQL,"name","usercode");
InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::BitExitClick(TObject *Sender)
{
frmTshCheck->Close();
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::btnCheckClick(TObject *Sender)
{
for(int i=sgTshCheck->RowCount-1; i>0;i--)
{
if(sgTshCheck->Cells[1][i]=="√")
{
comServer->LocateByKey(WideString(sgTshCheck->Cells[2][i]));
if(!comServer->Eof)
{
comServer->Check(1);
}
DelDetailObjFromGrid(sgTshCheck->Cells[2][i]);
sgTshCheck->Cells[1][i]="";
sgTshCheck->RemoveItem(i);
}
}
sgTsdCheck->RowCount=1;
btnCheck->Enabled=false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::HavingRight()
{
TComResultSet *RsTemp;
AnsiString sSQL;
sSQL=" select keepercode from sdKeeper where keepercheck=1 and keepercode='"
+g_sdUserCode+"'";
RsTemp=NewResultSet();
RsTemp->Open(sSQL,"");
if(RsTemp->RecordCount <= 0)
{
RsTemp->Close();
throw Exception("当前用户没有审核/反审核权限");
}
else
RsTemp->Close();
delete RsTemp;
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::sgTshCheckDblClick(TObject *Sender)
{
int ARow=sgTshCheck->Row;
if(ARow>0)
{
if(sgTshCheck->Cells[1][ARow]==" ")
{
btnCheck->Enabled=true;
sgTshCheck->Cells[1][ARow]="√";
}
else
{
sgTshCheck->Cells[1][ARow]=" ";
//找到有没有需要审核的
for (int i=1;i<sgTshCheck->RowCount;i++)
{
if(sgTshCheck->Cells[1][i]=="√")
{
btnCheck->Enabled=true;
break;
}
else
btnCheck->Enabled=false;
}
}
}
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::sgTshCheckSelectCell(TObject *Sender,
int ACol, int ARow, bool &CanSelect)
{
if(sgTshCheck->RowCount>1 && ARow>0)
AddDetailObjToGrid(sgTshCheck->Cells[2][ARow]);
}
//---------------------------------------------------------------------------
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -