sivoh.cpp

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

CPP
706
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Sivoh.h"
#include "SoghDisp.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmSivoh *frmSivoh;
//---------------------------------------------------------------------------
__fastcall TfrmSivoh::TfrmSivoh(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TGenBaseForm(Owner,chWnd,MidCode,WhereStr)
{
 AutoCtl=seSivohCode;
}
//---------------------------------------------------------------------------

void __fastcall TfrmSivoh::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,false,true,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(1,true,true,true,FloatPanel3,FloatPanel3->Name);
    ClientGroup->AddComponent(1,true,true,true,seSivohSaler,seSivohSaler->Name);
    ClientGroup->AddComponent(2,true,true,true,GoodsDetail,GoodsDetail->Name);
    ClientGroup->AddComponent(1,false,true,true,ClientInfo,ClientInfo->Name);
    ClientGroup->AddComponent(1,false,true,true,seSivohSoCode,seSivohSoCode->Name);
    ClientGroup->AddComponent(1,false,true,true,seSivohTaxCode,seSivohTaxCode->Name);
    ClientGroup->AddComponent(1,true,true,false,sgSivod,sgSivod->Name);
    ClientGroup->AddComponent(1,false,true,false,seSivohCode,seSivohCode->Name);
    ClientGroup->AddComponent(1,false,true,true,seSivohClient,seSivohClient->Name);
    ClientGroup->AddComponent(1,true,true,true,seSivohFmonth,seSivohFmonth->Name);
    ClientGroup->AddComponent(1,false,true,true,scSivohType,scSivohType->Name);
    ClientGroup->AddComponent(1,true,true,true,seSivohCurrency,seSivohCurrency->Name);
    //Sivoh
     FillComboBox(Handle,scSivohDept,"Select DeptCode,DeptName from sdDept","DeptName","DeptCode");
     FillEdit(Query,seSivohSettleMode,"Select SettleModeCode,SettleModeName from sdSettleMode","SettleModeName","SettleModeCode");
     FillEdit(Query,seSivohTaxCode,"Select TaxName,TaxCode,TaxRate from sdTax","TaxName","TaxCode","TaxRate");
     FillEdit(Query,seSivohSaler,"select usercode,username from sduser where usercode in(select salercode from sdsaler) order by usercode","UserName","UserCode");
     FillComboBox(Handle,scSivohCacCode,"Select CacCode,CacBankName from sdCac","CacCode","CacBankName");
     FillEdit(Query,seSivohClient,"Select ClientCode,ClientName from SdClient where ClientCancel=0","ClientName","ClientCode");
     AnsiString sSql;
     sSql =AnsiString("select currencycode,currencyname,currencyrate=coalesce(rateratio,1),currencylocal from sdcurrency,sdrate");
     sSql+=" where currencycode*=ratecurrency and ";
     sSql+=" ratefmonth='"+g_sdSMonth+"'";
     FillEdit(Query,seSivohCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
        //Sivod
     FillEdit(Query,seSivodUnit,"Select UnitCode,UnitName from SdUnit","UnitName","UnitCode");
     FillEdit(Query,seSivodLoc,"Select LocCode,LocName from sdLoc","LocName","LocCode");
     scSivohType->ClearAll();
     scSivohType->AddItems("普通发票","1");
     scSivohType->AddItems("一般增值发票","2");
     scSivohType->AddItems("大额增值发票","3");


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

void __fastcall TfrmSivoh::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
          seSivohCode->Text       ="";
          seSivohFmonth->Text     =g_sdSMonth;
          scSivohType->ItemIndex  =1;
          seSivohSoCode->Text     ="";
          deSivohDate->Text       =g_sdCurDate;
          deSivohArDate->Text     =g_sdCurDate;
          chkSivohCheck->Checked  =false;
          chkSivohCancel->Checked =false;
          lbSivohChecker->Caption  ="";
          scSivohDept->Text       ="";
          scSivohUser->Text       =g_sdUserCode;
          seSivohSaler->Text      ="";
          seSivohClient->ItemIndex=-1;
          seSivohEnrate->Text     ="0";
          chkSivohRed->Checked    =false;
          seSivohSettleMode->ItemIndex=-1;
          seSivohTaxNo->Text      ="";
          seSivohTaxRate->Text    ="0";
          scSivohCacCode->Text    ="";
          lbSivohCacBankName->Caption ="";
          seSivohTel->Text        ="";
          seSivohAddr->Text       ="";
          seSivohBankNo->Text     ="";
          lbSivohBankName->Caption="";
          seSivohCurrency->ItemIndex=-1;
          seSivohDesc->Text       ="";
          seSivohTaxCode->ItemIndex=-1;
          lbSivohSysDate->Caption="";
       }
       sgSivod->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
          seSivodLine->Text=AnsiString(comServer->ItemCount+1);
          seSivodGoods->Text    ="";
          seSivodGoodsName->Text="";
          seSivodUnit->ItemIndex=-1;
          seSivodLoc->ItemIndex =-1;
          seSivodQty->Text      ="0";
          seSivodSumAmt->Text   ="0";
          seSivodSogCode->Text  ="";
          seSivodZkAmt->Text    ="0";
          seSivodAmt->Text      ="0";
          seSivodPrice->Text    ="0";
          seSivodTaxAmt->Text   ="0";
          seSivodTaxPrice->Text ="";
          seSivodDesc->Text     ="";
          seSivodModel->Text    ="";
        }
    }

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

void __fastcall TfrmSivoh::GetDataFromComObject(int Section)
{
        if (Section==1)
        {
          seSivohCode->Text       =GetHeadValue("SivohCode");
          seSivohFmonth->Text     =GetHeadValue("SivohFmonth");
          scSivohType->LocateKey(GetHeadValue("SivohType"));
          seSivohSoCode->Text     =GetHeadValue("SivohSoCode");
          deSivohDate->Text       =GetHeadValue("SivohDate");
          deSivohArDate->Text     =GetHeadValue("SivohArDate");
          chkSivohCheck->Checked  =GetHeadValue("SivohCheck")=="1";
          chkSivohCancel->Checked =GetHeadValue("SivohCancel")=="1";
          lbSivohChecker->Caption =GetHeadValue("SivohChecker");
          scSivohDept->LocateKey(GetHeadValue("SivohDept"));
          scSivohUser->Text       =GetHeadValue("SivohUser");
          seSivohSaler->LocateKey(GetHeadValue("SivohSaler"));
          seSivohClient->LocateKey(GetHeadValue("SivohClient"));
          seSivohEnrate->Text     =GetHeadValue("SivohEnrate");
          chkSivohRed->Checked    =GetHeadValue("SivohRed")=="1";
          seSivohSettleMode->LocateKey(GetHeadValue("SivohSettleMode"));
          seSivohTaxNo->Text      =GetHeadValue("SivohTaxNo");
          seSivohTaxCode->LocateKey(GetHeadValue("SivohTaxCode"));
          seSivohTaxRate->Text    =GetHeadValue("SivohTaxRate");
          scSivohCacCode->Text=(GetHeadValue("SivohCacCode"));
          lbSivohCacBankName->Caption=GetHeadValue("SivohCacBankName");
          seSivohTel->Text        =GetHeadValue("SivohTel");
          seSivohAddr->Text       =GetHeadValue("SivohAddr");
          seSivohBankNo->Text     =GetHeadValue("SivohBankNo");
          lbSivohBankName->Caption   =GetHeadValue("SivohBankName");
          seSivohCurrency->LocateKey(GetHeadValue("SivohCurrency"));
          seSivohDesc->Text       =GetHeadValue("SivohDesc");
          lbSivohSysDate->Caption =GetHeadValue("SivohSysDate");
          SetCheckToolbarStatus(chkSivohCheck->Checked);
          SetCancelToolbarStatus(chkSivohCancel->Checked);
        }
        else
        {
          seSivodLine->Text       =GetDetailValue("SivodLine");
          seSivodGoods->Text      =GetDetailValue("SivodGoods");
          seSivodGoodsName->Text  =GetDetailValue("SivodGoodsName");
          seSivodUnit->LocateKey(GetDetailValue("SivodUnit"));
          seSivodLoc->LocateKey(GetDetailValue("SivodLoc"));
          seSivodQty->Text        =GetDetailValue("SivodQty");
          seSivodSumAmt->Text     =GetDetailValue("SivodSumAmt");
          seSivodSogCode->Text    =GetDetailValue("SivodSogCode");
          seSivodZkAmt->Text      =GetDetailValue("SivodZkAmt");
          seSivodAmt->Text        =GetDetailValue("SivodAmt");
          seSivodPrice->Text      =GetDetailValue("SivodPrice");
          seSivodTaxAmt->Text     =GetDetailValue("SivodTaxAmt");
          seSivodTaxPrice->Text   =GetDetailValue("SivodTaxPrice");
          seSivodDesc->Text       =GetDetailValue("SivodDesc");
          seSivodModel->Text      =GetDetailValue("SivodModel");
         }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSivoh::SendDataToComObject(int Section)
{
       AnsiString s;
        if (Section==1)
        {
        SetHeadValue("SivohCode",       seSivohCode->Text      );
        SetHeadValue("SivohFmonth",     seSivohFmonth->Text    );
        SetHeadValue("SivohType",       scSivohType->ItemData[cbItem2]);
        SetHeadValue("SivohSoCode",     seSivohSoCode->Text    );
        SetHeadValue("SivohDate",       deSivohDate->Text);
        SetHeadValue("SivohArDate",     deSivohArDate->Text);
        SetHeadValue("SivohCheck",      chkSivohCheck->Checked?"1":"0");
        SetHeadValue("SivohCancel",     chkSivohCancel->Checked?"1":"0");
        SetHeadValue("SivohChecker",    lbSivohChecker->Caption);
        SetHeadValue("SivohDept",       scSivohDept->ItemData[cbItem2]);
        SetHeadValue("SivohUser",       g_sdUserCode/*scSivohUser->Text*/      );
        SetHeadValue("SivohSaler",      seSivohSaler->ItemData[cbItem2]);
        SetHeadValue("SivohClient",     seSivohClient->ItemData[cbItem2]);
        SetHeadValue("SivohEnrate",     seSivohEnrate->Text    );
        SetHeadValue("SivohRed",        chkSivohRed->Checked?"1":"0");
        SetHeadValue("SivohSettleMode", seSivohSettleMode->ItemData[cbItem2]);
        SetHeadValue("SivohTaxNo",      seSivohTaxNo->Text     );
        SetHeadValue("SivohTaxCode",    seSivohTaxCode->ItemData[cbItem2]);
        SetHeadValue("SivohTaxRate",    seSivohTaxRate->Text   );
        SetHeadValue("SivohCacCode",    scSivohCacCode->Text   );
        SetHeadValue("SivohCacBankName",lbSivohCacBankName->Caption);
        SetHeadValue("SivohClientName", seSivohClient->Text);
        SetHeadValue("SivohTel",        seSivohTel->Text       );
        SetHeadValue("SivohAddr",       seSivohAddr->Text      );
        SetHeadValue("SivohBankNo",     seSivohBankNo->Text    );
        SetHeadValue("SivohBankName",   lbSivohBankName->Caption);
        SetHeadValue("SivohCurrency",   seSivohCurrency->ItemData[1]);
        SetHeadValue("SivohDesc",       seSivohDesc->Text      );
        }
        else
        {
         SetDetailValue("SivodCode",     seSivohCode->Text     );
         SetDetailValue("SivodSogCode",  seSivodSogCode->Text  );
         SetDetailValue("SivodLine",     seSivodLine->Text     );
         SetDetailValue("SivodGoods",    seSivodGoods->Text    );
         SetDetailValue("SivodGoodsName",seSivodGoodsName->Text);
         SetDetailValue("SivodUnit",     seSivodUnit->ItemData[cbItem2]);
         SetDetailValue("SivodQty",      seSivodQty->Text      );
         SetDetailValue("SivodSumAmt",   seSivodSumAmt->Text   );
         SetDetailValue("SivodZkAmt",    seSivodZkAmt->Text    );
         SetDetailValue("SivodPrice",    seSivodPrice->Text   );
         SetDetailValue("SivodAmt",      seSivodAmt->Text      );
         SetDetailValue("SivodModel",    seSivodModel->Text    );
         SetDetailValue("SivodTaxPrice", seSivodTaxPrice->Text );
         SetDetailValue("SivodTaxAmt",   seSivodTaxAmt->Text   );
         SetDetailValue("SivodLoc",      seSivodLoc->ItemData[cbItem2]);
         SetDetailValue("SivodDesc",     seSivodDesc->Text     );
       }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSivoh::WaitUserInput(int Section)
{
       if (Section ==1)
       {
       if(seSivohCode->Enabled)
          seSivohCode->SetFocus();
         }
       else
       {
          sgSivod->Visible=false;
          sgSivod->Align=alNone;
          FloatPanel2->Visible=true;
          FloatPanel2->Align=alClient;
        if ((CurrentState==caAddDetail)||(CurrentState==caAddBill))
               btnOK->Enabled=true;
          else
               btnOK->Enabled=false;
        btnCancel->Enabled=true;
        seSivodLine->SetFocus();
         }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSivoh::RefreshGridData(int mAction)
{

        int i;
        AnsiString ItemStr;
        switch(mAction)
        {
           case 0:
             ItemStr="\t"+GetDetailValue("SivodLine")+"\t"+GetDetailValue("SivodSogCode")+"\t"+
                    GetDetailValue("SivodGoods")+"\t"+GetDetailValue("SivodUnit")+"\t"+
                    GetDetailValue("SivodQty")+"\t"+GetDetailValue("SivodPrice")+"\t"+
                    GetDetailValue("SivodTaxPrice")+"\t"+GetDetailValue("SivodAmt")+"\t"+
                    GetDetailValue("SivodTaxAmt")+"\t"+GetDetailValue("SivodZkAmt")+"\t"+
                    GetDetailValue("SivodSumAmt");
             sgSivod->AddItem(ItemStr);
             break;
           case 1:
             ItemStr="\t"+GetDetailValue("SivodLine")+"\t"+GetDetailValue("SivodSogCode")+"\t"+
                    GetDetailValue("SivodGoods")+"\t"+GetDetailValue("SivodUnit")+"\t"+
                    GetDetailValue("SivodQty")+"\t"+GetDetailValue("SivodPrice")+"\t"+
                    GetDetailValue("SivodTaxPrice")+"\t"+GetDetailValue("SivodAmt")+"\t"+
                    GetDetailValue("SivodTaxAmt")+"\t"+GetDetailValue("SivodZkAmt")+"\t"+
                    GetDetailValue("SivodSumAmt");
            sgSivod->ChangeItem(ItemStr,sgSivod->Row);
            break;
           case 2:
             sgSivod->RemoveItem(sgSivod->Row);
        }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSivoh::DisplayBill()
{
        GetDataFromComObject(1);
        if(comServer->RecordCount <1)
          return;
        FillGridWithData();
        if (sgSivod->RowCount >1)
        {
           AnsiString Keystr;
           Keystr=sgSivod->Cells[1][sgSivod->Row];
           comServer->LocateItemByKey(WideString(Keystr));
           GetDataFromComObject(2);
        }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSivoh::GetBill(AnsiString BillID)
{

       if(comServer->Find("SivohCode='"+BillID+"'"))
       {
           DisplayBill();
       }
       else
           if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
           {
               AddHeadRecord();
           }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSivoh::FillGridWithData()
{
      int i;
      AnsiString ItemStr;
      sgSivod->RowCount=1;
      for (i=0;i<comServer->ItemCount;i++)
      {
          comServer->LocateItemByIndex(i);
          RefreshGridData(0);
      }
    comServer->LocateItemByIndex(0);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::FormShow(TObject *Sender)
{
//       InitEditControl();
       ClearControl(1,false);
       ClearControl(2,false);
       TGenBaseForm::MoveToFirst();
       ChangeToBrowseState(true);

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



void __fastcall TfrmSivoh::ChangeToBrowseState(bool Browse)
{
       FloatPanel2->Visible=false;

⌨️ 快捷键说明

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