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

📄 prechcancel.cpp

📁 速达开源ERP系统
💻 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 + -