tshcheck.cpp

来自「科思ERP部分源码及控件」· C++ 代码 · 共 273 行

CPP
273
字号
//---------------------------------------------------------------------------
#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, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
    : TListBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
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("TshCode")+
                    "\t"+ GetHeadValue("TshDate")+
                    "\t"+ GetHeadValue("TshPosType")+
                    "\t"+ GetHeadValue("TshType")+
                    "\t"+ GetHeadValue("TshUser")+
                    "\t"+ GetHeadValue("TshKeeper");
            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="";
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

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("TsdFlg")=="1")
           sTemp="盘盈";
          else
           if(GetDetailValue("TsdFlg")=="-1")
            sTemp="盘亏";
           else
            sTemp="对帐";
          ItemStr="\t"+GetDetailValue("TsdCode")+
                  "\t"+GetDetailValue("TsdLine")+
                  "\t"+GetDetailValue("TsdLoc")+
                  "\t"+GetDetailValue("TsdGoods")+
                  "\t"+GetDetailValue("TsdAQty")+
                  "\t"+GetDetailValue("TsdTQty")+
                  "\t"+GetDetailValue("TsdDQty")+
                  "\t"+sTemp+
                  "\t"+GetDetailValue("TsdIoQty");
          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(Handle,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(Handle,scTshKeeper,sSQL,"name","usercode");
    InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmTshCheck::BitExitClick(TObject *Sender)
{
    frmTshCheck->Close();
}
//---------------------------------------------------------------------------


void __fastcall TfrmTshCheck::btnCheckClick(TObject *Sender)
{
    AnsiString sBillCode;
    for(int i=sgTshCheck->RowCount-1; i>0;i--)
    {
      if(sgTshCheck->Cells[1][i]=="√")
      {
         sBillCode=sgTshCheck->Cells[2][i];
         comServer->LocateByKey(WideString(sBillCode));
         if(!comServer->Eof)
         {
           try
           {
            comServer->Check(1);
           }
           catch(Exception &e)
           {
            throw Exception("审核盘点单<"+sBillCode+">出现错误!\n"+e.Message);
           }
         }
         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=new  TComResultSet(Handle,g_ClientHandle);
 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 + =
减小字号Ctrl + -
显示快捷键?