⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 alfhcheck.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "AlfhCheck.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"
TfrmAlfhCheck *frmAlfhCheck;
//---------------------------------------------------------------------------
__fastcall TfrmAlfhCheck::TfrmAlfhCheck(TComponent* Owner)
    : TListBaseForm(Owner,euSdAlfh,"")
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmAlfhCheck::FillHeadObjToGrid()
{
   AnsiString ItemStr;
   try
   {
    StartWaitForm("正在获取数据...");

    comServer->FilterString=WideString(WhereStr);
    comServer->Query();
    if(comServer->RecordCount>0)
    {
        sgAlfhCheck->RowCount=1;
        for(int i=0;i<comServer->RecordCount;i++)
        {
            comServer->LocateByIndex(i);
            ItemStr="\t"+ AnsiString(" ")+
                    "\t"+ GetHeadValue(fiAlfhCode)+
                    "\t"+ GetHeadValue(fiAlfhDate)+
                    "\t"+ GetHeadValue(fiAlfhType)+
                    "\t"+ GetHeadValue(fiAlfhPosType)+
                    "\t"+ GetHeadValue(fiAlfhUser)+
                    "\t"+ GetHeadValue(fiAlfhKeeper);
            sgAlfhCheck->AddItem(ItemStr);
        }
    }
    else
    {
       sgAlfhCheck->RowCount=1;
       sgAlfdCheck->RowCount=1;
    }

   }
   __finally
   {
    EndWaitForm();
   }

}
//---------------------------------------------------------------------------
void __fastcall TfrmAlfhCheck::GetWhereStrToSQL()
{
     WhereStr="AlfhCheck=0 and AlfhCancel=0 and ";

     if(Trim(seAlfhCodeF->Text).IsEmpty()==false)
        WhereStr=WhereStr+ "AlfhCode>='"+Trim(seAlfhCodeF->Text)+"' and ";
     if(Trim(seAlfhCodeT->Text).IsEmpty()==false)
        WhereStr=WhereStr+ "AlfhCode<='"+Trim(seAlfhCodeT->Text)+"' and ";
     if(Trim(deAlfhDateF->Text).IsEmpty()==false)
        WhereStr=WhereStr+ "AlfhDate>='"+FormatDateTime("yyyy-mm-dd",deAlfhDateF->Date)+"' and ";
     if(Trim(deAlfhDateT->Text).IsEmpty()==false)
        WhereStr=WhereStr+ "AlfhDate<='"+FormatDateTime("yyyy-mm-dd",deAlfhDateT->Date)+"' and ";
     if(Trim(scAlfhUser->Text).IsEmpty()==false)
        WhereStr=WhereStr+ "AlfhUser like '"+Trim(scAlfhUser->ItemData[cbItem2])+"' and ";
     if(Trim(scAlfhKeeper->Text).IsEmpty()==false)
        WhereStr=WhereStr+ "AlfhKeeper like '"+Trim(scAlfhKeeper->ItemData[cbItem2])+"' and ";

     if (WhereStr.Length() > 5)
        WhereStr=WhereStr.SubString(1,WhereStr.Length()-5);
     else
        WhereStr="";
//     ShowMessage(WhereStr);
}
//---------------------------------------------------------------------------
void __fastcall TfrmAlfhCheck::InitEditControl()
{
    sgAlfhCheck->RowCount=1;
    sgAlfdCheck->RowCount=1;
    btnCheck->Enabled=false;
    seAlfhCodeF->Text="";
    seAlfhCodeT->Text="";
    deAlfhDateF->Text="";
    deAlfhDateT->Text=g_sdCurDate;
    scAlfhUser->Text="";
    scAlfhKeeper->Text="";
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmAlfhCheck::GetHeadValue(int Index)
{
    return ReadFieldValue(comServer,Index);
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmAlfhCheck::GetDetailValue(int Index)
{
    return ReadItemValue(comServer,Index);
}
//---------------------------------------------------------------------------

void __fastcall  TfrmAlfhCheck::ChangeToBrowseState(bool agree)
{
    return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmAlfhCheck::AddDetailObjToGrid(AnsiString s_Code)
{
    AnsiString ItemStr;
    sgAlfdCheck->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(fiAlfdCode)+
                  "\t"+GetDetailValue(fiAlfdLine)+
                  "\t"+GetDetailValue(fiAlfdILoc)+
                  "\t"+GetDetailValue(fiAlfdOLoc)+
                  "\t"+GetDetailValue(fiAlfdGoods)+
                  "\t"+GetDetailValue(fiAlfdUnit)+
                  "\t"+GetDetailValue(fiAlfdConv)+
                  "\t"+GetDetailValue(fiAlfdQty);
          sgAlfdCheck->AddItem(ItemStr,i+1);
      }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmAlfhCheck::DelDetailObjFromGrid(AnsiString s_Code)
{
    AnsiString m;
    for(int i=sgAlfdCheck->RowCount-1;i>0;i--)
    {
        m = Trim(sgAlfdCheck->Cells[1][i]);
        if(m==s_Code)
           sgAlfdCheck->RemoveItem(i);
    }

}
//---------------------------------------------------------------------------

void __fastcall TfrmAlfhCheck::btnClearClick(TObject *Sender)
{
    InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmAlfhCheck::btnQueryClick(TObject *Sender)
{
    sgAlfhCheck->RowCount=1;
    sgAlfdCheck->RowCount=1;
    HavingRight();
    GetWhereStrToSQL();
    FillHeadObjToGrid();
}
//---------------------------------------------------------------------------

void __fastcall TfrmAlfhCheck::FormShow(TObject *Sender)
{
    AnsiString sSQL;
    sSQL="select '('+usercode+')'+username name,usercode from sduser order by usercode";
    FillComboBox(scAlfhUser,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(scAlfhKeeper,sSQL,"name","usercode");
    InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmAlfhCheck::BitExitClick(TObject *Sender)
{
    frmAlfhCheck->Close();
}
//---------------------------------------------------------------------------

void __fastcall TfrmAlfhCheck::btnCheckClick(TObject *Sender)
{
    for(int i=sgAlfhCheck->RowCount-1; i>0;i--)
    {
      if(sgAlfhCheck->Cells[1][i]=="√")
      {
         comServer->LocateByKey(WideString(sgAlfhCheck->Cells[2][i]));
         if(!comServer->Eof)
         {
            long ErrNum;
            comServer->Check(1);
         }
         DelDetailObjFromGrid(sgAlfhCheck->Cells[2][i]);
         sgAlfhCheck->Cells[1][i]="";
         sgAlfhCheck->RemoveItem(i);
      }
    }
    btnCheck->Enabled=false;
    sgAlfdCheck->RowCount=1;
}
//---------------------------------------------------------------------------
void __fastcall TfrmAlfhCheck::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 TfrmAlfhCheck::sgAlfhCheckDblClick(TObject *Sender)
{
    int ARow=sgAlfhCheck->Row;
    if(ARow>0)
    {
      if(sgAlfhCheck->Cells[1][ARow]==" ")
      {
         btnCheck->Enabled=true;
         sgAlfhCheck->Cells[1][ARow]="√";
//         AddDetailObjToGrid(sgAlfhCheck->Cells[2][ARow]);
      }
      else
      {
         sgAlfhCheck->Cells[1][ARow]=" ";
//         DelDetailObjFromGrid(sgAlfhCheck->Cells[2][ARow]);
         //找到有没有需要审核的
         for (int i=1;i<sgAlfhCheck->RowCount;i++)
         {
            if(sgAlfhCheck->Cells[1][i]=="√")
            {
               btnCheck->Enabled=true;
               break;
            }
            else
               btnCheck->Enabled=false;
         }
      }
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmAlfhCheck::sgAlfhCheckSelectCell(TObject *Sender,
      int ACol, int ARow, bool &CanSelect)
{
  if(sgAlfhCheck->RowCount>1 && ARow>0)
   AddDetailObjToGrid(sgAlfhCheck->Cells[2][ARow]);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -