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

📄 pivoh.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 3 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Pivoh.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "BillBaseForm"
#pragma link "fpanel"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmPivoh *frmPivoh;

//---------------------------------------------------------------------------
__fastcall TfrmPivoh::TfrmPivoh(TComponent* Owner)
        : TBillBaseForm(Owner,euSdPivoh,"")
{
}
//---------------------------------------------------------------------------

void __fastcall TfrmPivoh::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,false,sePivohCode,sePivohCode->Name);
    ClientGroup->AddComponent(1,false,true,true,scPivohType,scPivohType->Name);
    ClientGroup->AddComponent(1,false,true,true,scPivohPoCode,scPivohPoCode->Name);
    ClientGroup->AddComponent(1,false,true,true,scPivohTaxCode,scPivohTaxCode->Name);
    ClientGroup->AddComponent(1,true,true,true,sePivohTaxNo,sePivohTaxNo->Name);
    ClientGroup->AddComponent(1,true,true,true,scPivohCurrency,scPivohCurrency->Name);
    ClientGroup->AddComponent(1,false,true,true,scPivohBankName,scPivohBankName->Name);
    ClientGroup->AddComponent(1,false,true,true,scPivohBankNo,scPivohBankNo->Name);

    ClientGroup->AddComponent(1,false,true,true,scPivohSupply,scPivohSupply->Name);
    ClientGroup->AddComponent(1,true,true,true,sePivohTaxNo,sePivohTaxNo->Name);
    ClientGroup->AddComponent(1,true,true,true,sePivohTaxRate,sePivohTaxRate->Name);
    ClientGroup->AddComponent(1,true,true,true,scPivohFmonth,scPivohFmonth->Name);
    ClientGroup->AddComponent(1,true,true,true,scPivohBuyer,scPivohBuyer->Name);
    ClientGroup->AddComponent(1,true,true,true,sePivohTel,sePivohTel->Name);

    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);

    ClientGroup->AddComponent(2,false,true,true,sePivodGoods,sePivodGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,sePivodGoodsName,sePivodGoodsName->Name);
    ClientGroup->AddComponent(2,true,true,true,sePivodUnit,sePivodUnit->Name);
    ClientGroup->AddComponent(2,true,true,true,sePivodAmt,sePivodAmt->Name);
    ClientGroup->AddComponent(2,true,true,true,sePivodSumAmt,sePivodSumAmt->Name);
    AnsiString sSQL;
    sSQL=" select pohcode,PohContract,PohSupply,PohSettleMode,supplyaddr ";
    sSQL=sSQL+" from sdpoh,sdsupply ";
    sSQL=sSQL+" where pohcheck=1 and pohcancel=0 and pohstop=0 and pohsupply=supplycode order by pohcode";
    FillComboBox(scPivohPoCode,sSQL,"pohcode","PohContract","PohSupply","PohSettleMode","supplyaddr");
    FillComboBox(scPivohSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo,supplyaddr FROM sdSupply  where supplycancel=0  order by SupplyCode",
                 "SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo","supplyaddr");
    FillComboBox(scPivohCurrency,"SELECT currencyname memo,currencycode FROM sdCurrency order by currencycode","memo","CurrencyCode");
    FillComboBox(scPivohTaxCode,"SELECT taxname memo,TaxCode,taxrate FROM sdTax order by taxcode","memo","TaxCode","taxrate");
    FillComboBox(scPivohSettleMode,"SELECT SettleModeName memo,SettleModeCode FROM sdSettleMode order by settlemodename","memo","SettleModeCode");
    FillComboBox(scPivohDept,"SELECT DeptName memo,DeptCode FROM sdDept where deptend=1 order by deptcode","memo","DeptCode");
    FillComboBox(scPivohBuyer,"SELECT BuyerName memo,BuyerCode,BuyerTel FROM sdBuyer order by buyercode","memo","BuyerCode","BuyerTel");
    FillComboBox(scPivohCacCode,"SELECT CacbankName memo,CacCode FROM sdCac order by caccode","memo","CacCode");

    scPivohType->ClearAll();
    scPivohType->AddItems("1-普通发票","1");
    scPivohType->AddItems("2-增值税发票","2");
}
//---------------------------------------------------------------------------

void __fastcall TfrmPivoh::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
          sePivohCode->Text = "";
          scPivohFmonth->Text =g_sdPMonth;
          dePivohDate->Text = g_sdCurDate;
          scPivohType->ItemIndex=1;
          scPivohPoCode->Text="";
          scPivohPoCode->ItemIndex=-1;
          scPivohSupply->Text = "";
          scPivohSupply->ItemIndex=-1;
          sePivohAddr->Text = "";
          sePivohContract->Text = "";
          scPivohBankName->ItemIndex=-1;
          scPivohBankNo->ItemIndex=-1;
          scPivohCurrency->Text = "";
          scPivohCurrency->ItemIndex=-1;
          sePivohEnrate->Text = "1";
          scPivohTaxCode->Text = "";
          scPivohTaxCode->ItemIndex=-1;
          sePivohTaxRate->Text = "0";
          scPivohSettleMode->Text = "";
          scPivohSettleMode->ItemIndex=-1;
          dePivohApDate->Text = g_sdCurDate;
          sePivohTaxNo->Text = "";
          sePivohAmt->Text = "0";
          sePivohTaxAmt->Text = "0";
          sePivohSumAmt->Text = "0";
          sePivohZkAmt->Text = "0";
          chkPivohRed->Checked = false;
          scPivohDept->Text = "";
          scPivohDept->ItemIndex=-1;
          scPivohBuyer->Text = "";
          scPivohBuyer->LocateKey(g_sdUserCode);
          sePivohTel->Text=scPivohBuyer->ItemData[2];
          scPivohCacCode->Text = "";
          chkPivohCheck->Checked = false;
          chkPivohCancel->Checked = false;
          memPivohDesc->Text = "";

          labSystemDate->Caption  = "";
          labUserCode->Caption = g_sdUserCode;
          labChecker->Caption = "";
          //新增,工具栏使能
          SetCheckToolbarStatus(false);
       }
       sgPivoh->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
            sePivodLine->Text = AnsiString(comServer->ItemCount+1);
            scPivodPodLine->Text = "";
            scPivodPodLine->ItemIndex=-1;
            sePivodGoods->Text = "";
            sePivodGoodsName->Text = "";
            sePivodUnit->Text = "";
            sePivodQty->Text = "0.0";
            sePivodPrice->Text = "0.0";
            sePivodAmt->Text = "0.0";
            sePivodTaxAmt->Text = "0.0";
            sePivodTaxPrice->Text = "0.0";
            sePivodSumAmt->Text = "0.0";
            sePivodZkAmt->Text = "0.0";
            memPivodDesc->Text = "";
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::GetDataFromComObject(int Section)
{
    if (Section==1)
    {
        sePivohCode->Text=GetHeadValue(fiPivohCode);
        dePivohDate->Text=GetHeadValue(fiPivohDate);
        scPivohType->LocateKey(GetHeadValue(fiPivohType));
        scPivohTypeClick(NULL);
        scPivohPoCode->LocateKey(GetHeadValue(fiPivohPoCode));
        sePivohContract->Text=GetHeadValue(fiPivohContract);
        scPivohSupply->LocateKey(GetHeadValue(fiPivohSupply));
        scPivohSupplyClick(NULL);
        sePivohAddr->Text=GetHeadValue(fiPivohAddr);
        scPivohBankName->LocateKey(GetHeadValue(fiPivohBankName));
        scPivohBankNameClick(NULL);
        scPivohBankNo->LocateKey(GetHeadValue(fiPivohBankNo));
        scPivohDept->LocateKey(GetHeadValue(fiPivohDept));
        scPivohDept->Text=scPivohDept->ItemData[0];
        scPivohBuyer->LocateKey(GetHeadValue(fiPivohBuyer));
        scPivohBuyer->Text=scPivohBuyer->ItemData[0];
        scPivohCurrency->LocateKey(GetHeadValue(fiPivohCurrency));
        scPivohCurrency->Text=scPivohCurrency->ItemData[0];
        sePivohEnrate->Text=GetHeadValue(fiPivohEnrate);
        scPivohTaxCode->LocateKey(GetHeadValue(fiPivohTaxCode));
        scPivohTaxCode->Text=scPivohTaxCode->ItemData[0];
        sePivohTaxRate->Text=GetHeadValue(fiPivohTaxRate);
        memPivohDesc->Text=GetHeadValue(fiPivohDesc);
        scPivohSettleMode->LocateKey(GetHeadValue(fiPivohSettleMode));
        scPivohSettleMode->Text=scPivohSettleMode->ItemData[0];
        dePivohApDate->Text=GetHeadValue(fiPivohApDate);
        scPivohFmonth->Text=GetHeadValue(fiPivohFmonth);
        chkPivohRed->Checked=GetHeadValue(fiPivohRed)=="1";
        sePivohTaxNo->Text=GetHeadValue(fiPivohTaxNo);
        sePivohTel->Text=GetHeadValue(fiPivohTel);
        scPivohCacCode->LocateKey(GetHeadValue(fiPivohCacCode));
        scPivohCacCode->Text=scPivohCacCode->ItemData[0];
        sePivohAmt->Text=GetHeadValue(fiPivohAmt);
        sePivohTaxAmt->Text=GetHeadValue(fiPivohTaxAmt);
        sePivohSumAmt->Text=GetHeadValue(fiPivohSumAmt);
        sePivohZkAmt->Text=GetHeadValue(fiPivohZkAmt);
        labUserCode->Caption=GetHeadValue(fiPivohUser);
        chkPivohCheck->Checked=GetHeadValue(fiPivohCheck)=="1";
        labChecker->Caption=GetHeadValue(fiPivohChecker);
        chkPivohCancel->Checked=GetHeadValue(fiPivohCancel)=="1";
        labSystemDate->Caption=GetHeadValue(fiPivohSysDate);
        //根据采购单,填充采购单行号
        FillPodLine();
        //根据审核、取消状态,设置工具栏
        if(GetHeadValue(fiPivohCheck)=="1")
         SetCheckToolbarStatus(true);
        else
         SetCheckToolbarStatus(false);
        if(GetHeadValue(fiPivohCancel)=="1")
         SetCancelToolbarStatus(true);
        else
         SetCancelToolbarStatus(false);
    }
    else {
        sePivodLine->Text=GetDetailValue(fiPivodLine);
        scPivodPodLine->LocateKey(GetDetailValue(fiPivodPodLine));
        scPivodPodLine->Text=scPivodPodLine->ItemData[0];

        g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiPivodGoods)));
        sePivodGoods->Text = GetGoodsValue("GoodsCode");
        sePivodGoodsName->Text = GetGoodsValue("GoodsName");
        sePivodUnit->Text=GetGoodsValue("GoodsUnitCode");

        sePivodQty->Text=GetDetailValue(fiPivodQty);
        sePivodPrice->Text=GetDetailValue(fiPivodPrice);
        sePivodTaxPrice->Text=GetDetailValue(fiPivodTaxPrice);
        sePivodAmt->Text=GetDetailValue(fiPivodAmt);
        sePivodTaxAmt->Text=GetDetailValue(fiPivodTaxAmt);
        sePivodSumAmt->Text=GetDetailValue(fiPivodSumAmt);
        sePivodZkAmt->Text=GetDetailValue(fiPivodZkAmt);
        memPivodDesc->Text=GetDetailValue(fiPivodDesc);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPivoh::SendDataToComObject(int Section)
{
    if (Section==1)  //保存抬头
    {
        SetHeadValue(fiPivohCode,sePivohCode->Text);
        SetHeadValue(fiPivohDate,dePivohDate->Text);
        SetHeadValue(fiPivohType,scPivohType->ItemData[1]);
        SetHeadValue(fiPivohPoCode,scPivohPoCode->Text);
        SetHeadValue(fiPivohContract,sePivohContract->Text);
        SetHeadValue(fiPivohSupply,scPivohSupply->ItemData[1]);
        SetHeadValue(fiPivohAddr,sePivohAddr->Text);
        SetHeadValue(fiPivohBankName,scPivohBankName->Text);
        SetHeadValue(fiPivohBankNo,scPivohBankNo->Text);
        SetHeadValue(fiPivohDept,scPivohDept->ItemData[1]);
        SetHeadValue(fiPivohBuyer,scPivohBuyer->ItemData[1]);
        SetHeadValue(fiPivohCurrency,scPivohCurrency->ItemData[1]);
        if(sePivohEnrate->Text == "")
         throw Exception("请输入货币的汇率");
        SetHeadValue(fiPivohEnrate,sePivohEnrate->Text);
        SetHeadValue(fiPivohTaxCode,scPivohTaxCode->ItemData[1]);
        if(sePivohTaxRate->Text == "")
         throw Exception("请输入税率");
        SetHeadValue(fiPivohTaxRate,sePivohTaxRate->Text);
        SetHeadValue(fiPivohDesc,memPivohDesc->Text);
        SetHeadValue(fiPivohSettleMode,scPivohSettleMode->ItemData[1]);
        SetHeadValue(fiPivohApDate,dePivohApDate->Text);
        SetHeadValue(fiPivohFmonth,scPivohFmonth->Text);
        SetHeadValue(fiPivohRed,chkPivohRed->Checked ? "1":"0");
        SetHeadValue(fiPivohTaxNo,sePivohTaxNo->Text);
        SetHeadValue(fiPivohTel,sePivohTel->Text);
        SetHeadValue(fiPivohCacCode,scPivohCacCode->ItemData[1]);
        if(sePivohAmt->Text == "")
         sePivohAmt->Text="0";
        SetHeadValue(fiPivohAmt,sePivohAmt->Text);
        if(sePivohTaxAmt->Text == "")
         sePivohTaxAmt->Text="0";
        SetHeadValue(fiPivohTaxAmt,sePivohTaxAmt->Text);
        if(sePivohSumAmt->Text == "")
         sePivohSumAmt->Text="0";
        SetHeadValue(fiPivohSumAmt,sePivohSumAmt->Text);
        if(sePivohZkAmt->Text == "")
         sePivohZkAmt->Text="0";
        SetHeadValue(fiPivohZkAmt,sePivohZkAmt->Text);
        SetHeadValue(fiPivohUser,labUserCode->Caption);
        //根据采购单,填充采购单行号
        FillPodLine();
    }
    else   //保存细表记录
    {
        //自动计算合计金额
        AutoCalculate();
        
        SetDetailValue(fiPivodCode,sePivohCode->Text);
        if(sePivodLine->Text == "")
         throw Exception("请输入发票行号");
        SetDetailValue(fiPivodLine,sePivodLine->Text);
        SetDetailValue(fiPivodPoCode,scPivohPoCode->Text);
        if(scPivodPodLine->ItemIndex > -1)
         SetDetailValue(fiPivodPodLine,scPivodPodLine->ItemData[1]);
        else
         SetDetailValue(fiPivodPodLine,"0");
        SetDetailValue(fiPivodGoods,sePivodGoods->Text);
        SetDetailValue(fiPivodUnit,sePivodUnit->Text);
        if(sePivodQty->Text == "")
         throw Exception("请输入发票数量");
        SetDetailValue(fiPivodQty,sePivodQty->Text);
        if(sePivodPrice->Text == "")
         sePivodPrice->Text="0";
        SetDetailValue(fiPivodPrice,sePivodPrice->Text);
        if(sePivodTaxPrice->Text == "")
         throw Exception("请输入含税价");
        SetDetailValue(fiPivodTaxPrice,sePivodTaxPrice->Text);
        if(sePivodAmt->Text == "")
         sePivodAmt->Text="0";
        SetDetailValue(fiPivodAmt,sePivodAmt->Text);
        if(sePivodTaxAmt->Text == "")
         sePivodTaxAmt->Text="0";
        SetDetailValue(fiPivodTaxAmt,sePivodTaxAmt->Text);
        if(sePivodSumAmt->Text == "")
         sePivodSumAmt->Text="0";
        SetDetailValue(fiPivodSumAmt,sePivodSumAmt->Text);
        if(sePivodZkAmt->Text == "")
         sePivodZkAmt->Text="0";
        SetDetailValue(fiPivodZkAmt,sePivodZkAmt->Text);
        SetDetailValue(fiPivodDesc,memPivodDesc->Text);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPivoh::RefreshGridData(int mAction)
{
    int i;
    AnsiString ItemStr=GetDataToGrid();
    switch(mAction)
    {
       case 0:
         sgPivoh->AddItem(ItemStr);
         CalculateAmt('+', sgPivoh->RowCount-1); // Add
         break;
       case 1:
         i=sgPivoh->Row;
         CalculateAmt('-', i); // Substract

⌨️ 快捷键说明

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