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

📄 zth.cpp

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

#include <vcl.h>
#pragma hdrstop

#include "Zth.h"
#include "Ztd.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"

TfrmZth *frmZth;

//---------------------------------------------------------------------------
__fastcall TfrmZth::TfrmZth(TComponent* Owner)
        : TGenBaseForm(Owner,euSdZth,"")
{
 AutoCtl=seZthCode;
}
//---------------------------------------------------------------------------

void __fastcall TfrmZth::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,false,seZthCode,seZthCode->Name);
    ClientGroup->AddComponent(1,false,true,true,scZthSupply,scZthSupply->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,true,true,true,gbClose,gbClose->Name);
    ClientGroup->AddComponent(2,true,true,true,seZtdGoods,seZtdGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,seZtdGoodsName,seZtdGoodsName->Name);
    ClientGroup->AddComponent(2,true,true,true,scZtdUnit,scZtdUnit->Name);
    ClientGroup->AddComponent(2,true,true,true,seZtdConvRate,seZtdConvRate->Name);
    ClientGroup->AddComponent(2,true,true,true,seZtdPrice,seZtdPrice->Name);
    ClientGroup->AddComponent(2,true,true,true,deZtdReqDate,deZtdReqDate->Name);
    ClientGroup->AddComponent(2,true,true,true,deZtdRecDate,deZtdRecDate->Name);
    ClientGroup->AddComponent(2,true,true,true,deZtdSendDate,deZtdSendDate->Name);
    ClientGroup->AddComponent(2,true,true,true,seZtdRQty,seZtdRQty->Name);
    ClientGroup->AddComponent(2,false,true,true,seZtdPoCode,seZtdPoCode->Name);

    FillComboBox(scZthSupply,"Select SupplyCode,SupplyName FROM sdSupply  where supplycancel=0 order by Supplycode","SupplyName","SupplyCode");
    FillComboBox(scZtdUnit,"Select UnitCode,UnitName FROM sdUnit order by Unitcode","UnitName","UnitCode");
}
//---------------------------------------------------------------------------

void __fastcall TfrmZth::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
          seZthCode->Text = "";
          scZthSupply->ItemIndex=-1;
          deZthDate->Text = g_sdCurDate;
          cheZthClose->Checked = false;
          cheZthCheck->Checked = false;
          cheZthCancel->Checked = false;

          labSystemDate->Caption  = "";
          labUserCode->Caption = g_sdUserCode;
          labChecker->Caption = g_sdUserCode;
          //新增单据,工具栏使能
          SetCheckToolbarStatus(false);

       }
       sgZth->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
            seZtdLine->Text =AnsiString(comServer->ItemCount+1);
            seZtdPoCode->Text = "";
            seZtdPodLine->Text = "0";

            seZtdGoods->Text = "";
            seZtdGoodsName->Text = "";
            scZtdUnit->ItemIndex = -1;
            seZtdConvRate->Text = "0.0";
            seZtdPrice->Text = "0.0";
            seZtdQty->Text = "0.0";
            seZtdRQty->Text = "0.0";
            deZtdSendDate->Text = "";
            deZtdReqDate->Text = "";
            deZtdRecDate->Text = g_sdCurDate;
            deZtdPreDate->Text = "";

            cheZtdClose->Checked = false;
            deZtdCloseDate->Text = "";
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmZth::GetDataFromComObject(int Section)
{
    if (Section==1)
    {
        seZthCode->Text=GetHeadValue(fiZthCode);
        scZthSupply->LocateKey(GetHeadValue(fiZthSupply));         //供应商
        deZthDate->Text=GetHeadValue(fiZthDate);
        labUserCode->Caption=GetHeadValue(fiZthUser);
        labSystemDate->Caption=GetHeadValue(fiZthSysDate);

        cheZthCheck->Checked=GetHeadValue(fiZthCheck)=="1";
        labChecker->Caption = GetHeadValue(fiZthChecker);
        cheZthCancel->Checked=GetHeadValue(fiZthCancel)=="1";
        cheZthClose->Checked=GetHeadValue(fiZthClose)=="1";

        //根据审核、取消、结清状态,设置工具栏
        if(GetHeadValue(fiZthCheck)=="1")
          SetCheckToolbarStatus(true);
        else
          SetCheckToolbarStatus(false);
        if(GetHeadValue(fiZthCancel)=="1")
          SetCancelToolbarStatus(true);
        else
          SetCancelToolbarStatus(false);
        //根据结清状态,设置工具栏
        if(GetHeadValue(fiZthClose)=="1")
         SetCloseToolbarStatus(true);
        else
         SetCloseToolbarStatus(false);
    }
    else {
        seZtdLine->Text = GetDetailValue(fiZtdLine);
        seZtdPoCode->Text = GetDetailValue(fiZtdPoCode);
        seZtdPodLine->Text = GetDetailValue(fiZtdPodLine);

        g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiZtdGoods)));
        seZtdGoods->Text = GetGoodsValue("GoodsCode");
        seZtdGoodsName->Text = GetGoodsValue("GoodsName");
        scZtdUnit->LocateKey(GetDetailValue(fiZtdUnit));
        seZtdConvRate->Text = GetDetailValue(fiZtdConvRate);
        seZtdPrice->Text = GetDetailValue(fiZtdPrice);
        seZtdQty->Text = GetDetailValue(fiZtdQty);
        seZtdRQty->Text = GetDetailValue(fiZtdRQty);
        deZtdSendDate->Text = GetDetailValue(fiZtdSendDate);
        deZtdReqDate->Text = GetDetailValue(fiZtdReqDate);
        deZtdRecDate->Text = GetDetailValue(fiZtdRecDate);
        deZtdPreDate->Text = GetDetailValue(fiZtdPreDate);
        cheZtdClose->Checked = GetDetailValue(fiZtdClose)=="1";    //审核标志
        deZtdCloseDate->Text = GetDetailValue(fiZtdCloseDate);
        //根据结清状态,设置工具栏
        if(GetDetailValue(fiZtdClose)=="1")
         SetCloseDetailStatus(true);
        else
         SetCloseDetailStatus(false);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmZth::SendDataToComObject(int Section)
{
    if (Section==1)  //保存抬头
    {
        SetHeadValue(fiZthCode,seZthCode->Text);
        SetHeadValue(fiZthSupply,scZthSupply->ItemData[1]);
        SetHeadValue(fiZthDate,deZthDate->Text);
        SetHeadValue(fiZthUser,labUserCode->Caption);
    }
    else   //保存细表记录
    {
        SetDetailValue(fiZtdCode,   seZthCode->Text);
        if(seZtdLine->Text == "")
         throw Exception("请输入在途单行号");
        SetDetailValue(fiZtdLine,   seZtdLine->Text);
        SetDetailValue(fiZtdPoCode,   seZtdPoCode->Text);
        if(seZtdPodLine->Text == "")
         throw Exception("请选择采购单行号");
        SetDetailValue(fiZtdPodLine,   seZtdPodLine->Text);
        if(seZtdQty->Text == "")
         throw Exception("请输入在途数量");
        SetDetailValue(fiZtdQty,   seZtdQty->Text);
        SetDetailValue(fiZtdSendDate,   deZtdSendDate->Text);
        SetDetailValue(fiZtdReqDate,   deZtdReqDate->Text);
        SetDetailValue(fiZtdRecDate,   deZtdRecDate->Text);
        SetDetailValue(fiZtdPreDate,   deZtdPreDate->Text);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmZth::RefreshGridData(int mAction)
{
    int i;
    AnsiString ItemStr=GetDataToGrid();
    switch(mAction)
    {
       case 0:
         sgZth->AddItem(ItemStr);
         break;
       case 1:
         i=sgZth->Row;
         sgZth->ChangeItem(ItemStr,i);
         break;
       case 2:
         sgZth->RemoveItem(sgZth->Row);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmZth::DisplayBill()
{
    if (comServer->RecordCount > 0)
    {
        GetDataFromComObject(1);   //向抬头中增加记录
        FillGridWithData();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmZth::GetBill(AnsiString BillID)
{
       int iRow;

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

void __fastcall TfrmZth::FillGridWithData()
{
       int i;
       AnsiString ItemStr;
       sgZth->RowCount=1;
       if(comServer->RecordCount>0)
       {
         for (i=0;i<comServer->ItemCount;i++)  {
            comServer->LocateItemByIndex(i);
            RefreshGridData(0);
         }
       }
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmZth::GetHeadValue(int Index)

⌨️ 快捷键说明

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