prechcheck.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 241 行

CPP
241
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "PrechCheck.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ListBaseForm"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmPrechCheck *frmPrechCheck;
//---------------------------------------------------------------------------
__fastcall TfrmPrechCheck::TfrmPrechCheck(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
    : TListBaseForm(Owner,chWnd,MidCode,WhereStr)

{
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCheck::ChangeToBrowseState(bool Browse)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCheck::FillHeadObjToGrid()
{
   AnsiString ItemStr;
   AnsiString TypeStr;
   try
   {
    StartWaitForm("正在获取数据...");

    comServer->FilterString=WideString(WhereStr);

    comServer->Query();
    sgPrechCheck->RowCount=1;
    sgPrecdCheck->RowCount=1;
    if(comServer->RecordCount>0)
    {
        for(int i=0;i<comServer->RecordCount;i++)
        {
            comServer->LocateByIndex(i);
            if(GetHeadValue("PrechType")=='P')
             TypeStr="按采购单";
            else
             if(GetHeadValue("PrechType")=='G')
              TypeStr="按物料";
             else
              TypeStr="非计划";
            ItemStr="\t\t"+ GetHeadValue("PrechCode")
                    + "\t"+ GetHeadValue("PrechDate")
                    + "\t"+ GetHeadValue("PrechSupply")
                    + "\t"+ GetHeadValue("PrechCurrency")
                    + "\t"+ GetHeadValue("PrechTransCode")
                    + "\t"+ GetHeadValue("PrechPsite")
                    + "\t"+ GetHeadValue("PrechDeliver")
                    + "\t"+ TypeStr;
            sgPrechCheck->AddItem(ItemStr);
        }
    }
    else
    {
        ShowMessage("没有满足条件并且可以审核的单据");
    }
   }
   __finally
   {
    EndWaitForm();
   }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCheck::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 TfrmPrechCheck::InitEditControl()
{
     FillComboBox(Handle,scPrechSupplyCode,"select SupplyName,SupplyCode from sdSupply where supplycancel =0 order By SupplyCode","SupplyName","SupplyCode");
     FillComboBox(Handle,scPrechCurrency,"select CurrencyCode from sdCurrency order By CurrencyCode","CurrencyCode");

    sgPrechCheck->RowCount=1;
    sgPrecdCheck->RowCount=1;
    btnCheck->Enabled=false;
    sePrechCodeF->Text="";
    sePrechCodeT->Text="";
    dePrechDateF->Text="";
    dePrechDateT->Text=dePrechDateT->InitDate;
    scPrechCurrency->Text="";
    scPrechSupplyCode->Text="";
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCheck::AddDetailObjToGrid(AnsiString s_Code)
{
    AnsiString ItemStr;
    sgPrecdCheck->RowCount=1;
    comServer->LocateByKey(WideString(s_Code));
     if(comServer->RecordCount>0)
    {
      for (int i=0;i<comServer->ItemCount;i++)
      {
          comServer->LocateItemByIndex(i);
          l_Query->LocateByKey(GetDetailValue("PrecdGoods"));
          ItemStr="\t"+GetDetailValue("PrecdCode")
                  +"\t"+GetDetailValue("PrecdLine")
                  +"\t"+GetDetailValue("PrecdPo")
                  +"\t"+GetDetailValue("PrecdPodLine")
                  +"\t"+GetDetailValue("PrecdGoods")
                  +"\t"+l_Query->FieldByName("goodsname")
                  +"\t"+l_Query->FieldByName("goodsspec")
                  +"\t"+GetDetailValue("PrecdUnit")
                  +"\t"+GetDetailValue("PrecdQty")
                  +"\t"+GetDetailValue("PrecdDQty")
                  +"\t"+GetDetailValue("PrecdLoc")
                  +"\t"+GetDetailValue("PrecdBatch");
          sgPrecdCheck->AddItem(ItemStr,i+1);
      }
    }

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

void __fastcall TfrmPrechCheck::btnClearClick(TObject *Sender)
{
    InitEditControl();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCheck::btnQueryClick(TObject *Sender)
{
    HavingRight();
    GetWhereStrToSQL();
    FillHeadObjToGrid();
}
//---------------------------------------------------------------------------

void __fastcall TfrmPrechCheck::FormShow(TObject *Sender)
{
    InitEditControl();
    l_Query->Close();
    l_Query->Open("select goodsname,goodscode,goodsspec from sdgoods","goodscode");

}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCheck::BitExitClick(TObject *Sender)
{
    Close();
}
//---------------------------------------------------------------------------


void __fastcall TfrmPrechCheck::btnCheckClick(TObject *Sender)
{
    AnsiString sBillCode;
    for(int i=sgPrechCheck->RowCount-1; i>0; i--)
    {
      if(sgPrechCheck->Cells[1][i]=="√")
      {
         sBillCode=sgPrechCheck->Cells[2][i];
         comServer->LocateByKey(WideString(sBillCode));
         if(!comServer->Eof)
         {
          try
          {
            comServer->Edit();
            SetHeadValue("PrechCheck",1);
            SetHeadValue("PrechChecker",g_sdUserCode);
            SetHeadValue("PrechCheckDate",g_sdCurDate);
            comServer->Check(1);
          }
          catch(Exception &e)
          {
           throw Exception("审核收货单<"+sBillCode+">出现错误!\n"+e.Message);
          }
         }
         sgPrechCheck->RemoveItem(i);
      }
    }
    sgPrecdCheck->RowCount=1;
    btnCheck->Enabled=false;
}
//---------------------------------------------------------------------------




void __fastcall TfrmPrechCheck::sgPrechCheckDblClick(TObject *Sender)
{
    int i;
    i = sgPrechCheck->Row;
    if(i > 0)
    {
      if(sgPrechCheck->Cells[1][i]!="√")
      {
         btnCheck->Enabled=true;
         sgPrechCheck->Cells[1][i]="√";
      }
      else
      {
         sgPrechCheck->Cells[1][i]="";
         //找到有没有需要审核的
         for (int i=1;i<sgPrechCheck->RowCount;i++)
         {
            if(sgPrechCheck->Cells[1][i]=="√")
            {
               btnCheck->Enabled=true;
               break;
            }
            else
               btnCheck->Enabled=false;
         }
      }
    }

}
//---------------------------------------------------------------------------
void __fastcall TfrmPrechCheck::HavingRight()
{
}
//-----------------------------------------
void __fastcall TfrmPrechCheck::sgPrechCheckClick(TObject *Sender)
{
 if(sgPrechCheck->RowCount>1 && sgPrechCheck->Row > 0)
   AddDetailObjToGrid(sgPrechCheck->Cells[2][sgPrechCheck->Row]);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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