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

📄 sivoh.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "Sivoh.h"
#include "func.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)
        : TGenBaseForm(Owner,euSdSivoh,"")
{
 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(scSivohDept,"Select DeptCode,DeptName from sdDept","DeptName","DeptCode");
     FillEdit(seSivohSettleMode,"Select SettleModeCode,SettleModeName from sdSettleMode","SettleModeName","SettleModeCode");
     FillEdit(seSivohTaxCode,"Select TaxName,TaxCode,TaxRate from sdTax","TaxName","TaxCode","TaxRate");
     FillEdit(seSivohSaler,"select usercode,username from sduser where usercode in(select salercode from sdsaler) order by usercode","UserName","UserCode");
     FillComboBox(scSivohCacCode,"Select CacCode,CacBankName from sdCac","CacCode","CacBankName");
     FillEdit(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(seSivohCurrency,sSql,"CurrencyName","CurrencyCode","CurrencyRate","CurrencyLocal");
        //Sivod
     FillEdit(seSivodUnit,"Select UnitCode,UnitName from SdUnit","UnitName","UnitCode");
     FillEdit(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)
        {
          if(comServer->ItemCount==0)
               seSivodLine->Text ="1";
             else
             {
             comServer->LocateItemByIndex(comServer->ItemCount-1);
             seSivodLine->Text=AnsiString(StrToInt(GetDetailValue(fiSivodLine))+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(fiSivohCode);
          seSivohFmonth->Text     =GetHeadValue(fiSivohFmonth);
          scSivohType->LocateKey(GetHeadValue(fiSivohType));
          seSivohSoCode->Text     =GetHeadValue(fiSivohSoCode);
          deSivohDate->Text       =GetHeadValue(fiSivohDate);
          deSivohArDate->Text     =GetHeadValue(fiSivohArDate);
          chkSivohCheck->Checked  =GetHeadValue(fiSivohCheck)=="1";
          chkSivohCancel->Checked =GetHeadValue(fiSivohCancel)=="1";
          lbSivohChecker->Caption =GetHeadValue(fiSivohChecker);
          scSivohDept->LocateKey(GetHeadValue(fiSivohDept));
          scSivohUser->Text       =GetHeadValue(fiSivohUser);
          seSivohSaler->LocateKey(GetHeadValue(fiSivohSaler));
          seSivohClient->LocateKey(GetHeadValue(fiSivohClient));
          seSivohEnrate->Text     =GetHeadValue(fiSivohEnrate);
          chkSivohRed->Checked    =GetHeadValue(fiSivohRed)=="1";
          seSivohSettleMode->LocateKey(GetHeadValue(fiSivohSettleMode));
          seSivohTaxNo->Text      =GetHeadValue(fiSivohTaxNo);
          seSivohTaxCode->LocateKey(GetHeadValue(fiSivohTaxCode));
          seSivohTaxRate->Text    =GetHeadValue(fiSivohTaxRate);
          scSivohCacCode->Text=(GetHeadValue(fiSivohCacCode));
          lbSivohCacBankName->Caption=GetHeadValue(fiSivohCacBankName);
          seSivohTel->Text        =GetHeadValue(fiSivohTel);
          seSivohAddr->Text       =GetHeadValue(fiSivohAddr);
          seSivohBankNo->Text     =GetHeadValue(fiSivohBankNo);
          lbSivohBankName->Caption   =GetHeadValue(fiSivohBankName);
          seSivohCurrency->LocateKey(GetHeadValue(fiSivohCurrency));
          seSivohDesc->Text       =GetHeadValue(fiSivohDesc);
          lbSivohSysDate->Caption =GetHeadValue(fiSivohSysDate);
          SetCheckToolbarStatus(chkSivohCheck->Checked);
          SetCancelToolbarStatus(chkSivohCancel->Checked);
        }
        else
        {
          seSivodLine->Text       =GetDetailValue(fiSivodLine);
          seSivodGoods->Text      =GetDetailValue(fiSivodGoods);
          seSivodGoodsName->Text  =GetDetailValue(fiSivodGoodsName);
          seSivodUnit->LocateKey(GetDetailValue(fiSivodUnit));
          seSivodLoc->LocateKey(GetDetailValue(fiSivodLoc));
          seSivodQty->Text        =GetDetailValue(fiSivodQty);
          seSivodSumAmt->Text     =GetDetailValue(fiSivodSumAmt);
          seSivodSogCode->Text    =GetDetailValue(fiSivodSogCode);
          seSivodZkAmt->Text      =GetDetailValue(fiSivodZkAmt);
          seSivodAmt->Text        =GetDetailValue(fiSivodAmt);
          seSivodPrice->Text      =GetDetailValue(fiSivodPrice);
          seSivodTaxAmt->Text     =GetDetailValue(fiSivodTaxAmt);
          seSivodTaxPrice->Text   =GetDetailValue(fiSivodTaxPrice);
          seSivodDesc->Text       =GetDetailValue(fiSivodDesc);
          seSivodModel->Text      =GetDetailValue(fiSivodModel);
         }
}
//---------------------------------------------------------------------------

void __fastcall TfrmSivoh::SendDataToComObject(int Section)
{
       AnsiString s;
        if (Section==1)
        {
        SetHeadValue(fiSivohCode,       seSivohCode->Text      );
        SetHeadValue(fiSivohFmonth,     seSivohFmonth->Text    );
        SetHeadValue(fiSivohType,       scSivohType->ItemData[cbItem2]);
        SetHeadValue(fiSivohSoCode,     seSivohSoCode->Text    );
        SetHeadValue(fiSivohDate,       deSivohDate->Text);
        SetHeadValue(fiSivohArDate,     deSivohArDate->Text);
        SetHeadValue(fiSivohCheck,      chkSivohCheck->Checked?"1":"0");
        SetHeadValue(fiSivohCancel,     chkSivohCancel->Checked?"1":"0");
        SetHeadValue(fiSivohChecker,    lbSivohChecker->Caption);
        SetHeadValue(fiSivohDept,       scSivohDept->ItemData[cbItem2]);
        SetHeadValue(fiSivohUser,       g_sdUserCode/*scSivohUser->Text*/      );
        SetHeadValue(fiSivohSaler,      seSivohSaler->ItemData[cbItem2]);
        SetHeadValue(fiSivohClient,     seSivohClient->ItemData[cbItem2]);
        SetHeadValue(fiSivohEnrate,     seSivohEnrate->Text    );
        SetHeadValue(fiSivohRed,        chkSivohRed->Checked?"1":"0");
        SetHeadValue(fiSivohSettleMode, seSivohSettleMode->ItemData[cbItem2]);
        SetHeadValue(fiSivohTaxNo,      seSivohTaxNo->Text     );
        SetHeadValue(fiSivohTaxCode,    seSivohTaxCode->ItemData[cbItem2]);
        SetHeadValue(fiSivohTaxRate,    seSivohTaxRate->Text   );
        SetHeadValue(fiSivohCacCode,    scSivohCacCode->Text   );
        SetHeadValue(fiSivohCacBankName,lbSivohCacBankName->Caption);
        SetHeadValue(fiSivohClientName, seSivohClient->Text);
        SetHeadValue(fiSivohTel,        seSivohTel->Text       );
        SetHeadValue(fiSivohAddr,       seSivohAddr->Text      );
        SetHeadValue(fiSivohBankNo,     seSivohBankNo->Text    );
        SetHeadValue(fiSivohBankName,   lbSivohBankName->Caption);
        SetHeadValue(fiSivohCurrency,   seSivohCurrency->ItemData[1]);
        SetHeadValue(fiSivohDesc,       seSivohDesc->Text      );
        }
        else
        {
         SetDetailValue(fiSivodCode,     seSivohCode->Text     );
         SetDetailValue(fiSivodSogCode,  seSivodSogCode->Text  );
         SetDetailValue(fiSivodLine,     seSivodLine->Text     );
         SetDetailValue(fiSivodGoods,    seSivodGoods->Text    );
         SetDetailValue(fiSivodGoodsName,seSivodGoodsName->Text);
         SetDetailValue(fiSivodUnit,     seSivodUnit->ItemData[cbItem2]);
         SetDetailValue(fiSivodQty,      seSivodQty->Text      );
         SetDetailValue(fiSivodSumAmt,   seSivodSumAmt->Text   );
         SetDetailValue(fiSivodZkAmt,    seSivodZkAmt->Text    );
         SetDetailValue(fiSivodPrice,    seSivodPrice->Text   );
         SetDetailValue(fiSivodAmt,      seSivodAmt->Text      );
         SetDetailValue(fiSivodModel,    seSivodModel->Text    );
         SetDetailValue(fiSivodTaxPrice, seSivodTaxPrice->Text );
         SetDetailValue(fiSivodTaxAmt,   seSivodTaxAmt->Text   );
         SetDetailValue(fiSivodLoc,      seSivodLoc->ItemData[cbItem2]);
         SetDetailValue(fiSivodDesc,     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(fiSivodLine)+"\t"+GetDetailValue(fiSivodSogCode)+"\t"+
                    GetDetailValue(fiSivodGoods)+"\t"+GetDetailValue(fiSivodUnit)+"\t"+
                    GetDetailValue(fiSivodQty)+"\t"+GetDetailValue(fiSivodPrice)+"\t"+
                    GetDetailValue(fiSivodTaxPrice)+"\t"+GetDetailValue(fiSivodAmt)+"\t"+
                    GetDetailValue(fiSivodTaxAmt)+"\t"+GetDetailValue(fiSivodZkAmt)+"\t"+
                    GetDetailValue(fiSivodSumAmt);
             sgSivod->AddItem(ItemStr);
             break;
           case 1:
             ItemStr="\t"+GetDetailValue(fiSivodLine)+"\t"+GetDetailValue(fiSivodSogCode)+"\t"+
                    GetDetailValue(fiSivodGoods)+"\t"+GetDetailValue(fiSivodUnit)+"\t"+
                    GetDetailValue(fiSivodQty)+"\t"+GetDetailValue(fiSivodPrice)+"\t"+
                    GetDetailValue(fiSivodTaxPrice)+"\t"+GetDetailValue(fiSivodAmt)+"\t"+
                    GetDetailValue(fiSivodTaxAmt)+"\t"+GetDetailValue(fiSivodZkAmt)+"\t"+
                    GetDetailValue(fiSivodSumAmt);
            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);
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmSivoh::GetHeadValue(int Index)
{
        WideString S;
        S = ReadFieldValue(comServer,Index);
        return S;
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmSivoh::GetDetailValue(int Index)
{
        WideString S;
        S=ReadItemValue(comServer,Index);
        return S;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSivoh::SetHeadValue(int Index,AnsiString Value)
{
       WriteFieldValue(comServer,Index,WideString(Value));
}

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

void __fastcall TfrmSivoh::SetDetailValue(int Index,AnsiString Value)
{
       WriteItemValue(comServer,Index,WideString(Value));
}
//---------------------------------------------------------------------------

void __fastcall TfrmSivoh::FormCreate(TObject *Sender)
{
        FormIniFile="D:\Test.Ini";
        SetGridWidth(Name,sgSivod,FormIniFile);
}
//---------------------------------------------------------------------------

void __fastcall TfrmSivoh::FormClose(TObject *Sender,
      TCloseAction &Action)
{
       TGenBaseForm::FormClose(Sender,Action);
       WriteGridWidth(Name,sgSivod,FormIniFile);

⌨️ 快捷键说明

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