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

📄 pish.cpp

📁 速达开源ERP系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Pish.h"
#include "Pisd.h"
#include "func.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "DateEdit"
#pragma link "fpanel"
#pragma link "GenBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmPish *frmPish;
//---------------------------------------------------------------------------
__fastcall TfrmPish::TfrmPish(TComponent* Owner)
    : TGenBaseForm(Owner,euSdPish,"")
{
 AutoCtl=sePishCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPish::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true,FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(1,false,true,false,sePishCode,sePishCode->Name);
    ClientGroup->AddComponent(1,false,true,true,chkPishRed,chkPishRed->Name);
    ClientGroup->AddComponent(1,false,true,true,scPishType,scPishType->Name);
    ClientGroup->AddComponent(1,true,true,true,scPishState,scPishState->Name);
    ClientGroup->AddComponent(1,true,true,true,scPishFmonth,scPishFmonth->Name);
    ClientGroup->AddComponent(1,false,true,true,scPishDept,scPishDept->Name);

    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(2,false,true,true,sePisdLine,sePisdLine->Name);
    ClientGroup->AddComponent(2,false,true,true,sePisdLoc,sePisdLoc->Name);
    ClientGroup->AddComponent(2,false,true,true,sePisdGoods,sePisdGoods->Name);
    ClientGroup->AddComponent(2,true,true,true,scPisdUnit,scPisdUnit->Name);
    ClientGroup->AddComponent(2,true,true,true,scPisdState,scPisdState->Name);
    ClientGroup->AddComponent(2,true,true,true,scPisdFrom,scPisdFrom->Name);
    ClientGroup->AddComponent(2,true,true,true,sePisdFromCode,sePisdFromCode->Name);
    ClientGroup->AddComponent(2,true,true,true,sePisdFromLine,sePisdFromLine->Name);
    ClientGroup->AddComponent(2,false,true,true,btnOK,btnOK->Name);
    ClientGroup->AddComponent(2,false,false,false,btnCancel,btnCancel->Name);

    //Pish
    FillComboBox(scPishFmonth,"SELECT Fcmonth FROM sdFc order by fcmonth","Fcmonth");
    FillComboBox(scPishDept,"SELECT DeptName,DeptCode FROM sdDept where DeptEnd=1 order by DeptName","DeptName","DeptCode");
    FillComboBox(scPishPosType,"select postypename memo,postypecode from sdPosType where PosTypeFlg=6 order by PosTypeCode","memo","PosTypeCode");
    FillComboBox(scPishKeeper,"select UserCode,UserName from sdKeeper,sduser where UserCode=KeeperCode order by UserCode","UserName","UserCode");

    scPishType->ClearAll();
    scPishType->AddItems("1-采购收货","1");
    scPishType->AddItems("2-生产入库","2");
    scPishType->AddItems("3-销售退货","3");
    scPishType->AddItems("4-退料","4");
    scPishType->AddItems("5-其它入库","5");

    scPishState->ClearAll();
    scPishState->AddItems("1-待审核","1");
    scPishState->AddItems("2-已生效","2");
    scPishState->AddItems("3-已结清","3");
    //Pisd
    FillComboBox(scPisdUnit,"select unitname memo,unitcode from sdunit order by unitcode","memo","UnitCode");
    FillEdit(sePisdLoc,"select locname memo,loccode  from sdloc where LocType=1 order by loccode","memo","LocCode");
    FillComboBox(scPisdBatch,"SELECT BatchCode FROM sdBatch order by batchcode","BatchCode");

    scPisdState->ClearAll();
    scPisdState->AddItems("0-正常");
    scPisdFrom->ClearAll();
    scPisdFrom->AddItems("0-手工录入","0");
    scPisdFrom->AddItems("1-系统生成","1");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPish::ClearControl(int Section,bool BringToNext)
{
    if (Section == 1)
    {
       if (! BringToNext)
       {
         sePishCode->Text ="";
         scPishType->ItemIndex   =0;
         dePishDate->Text =g_sdCurDate;
         scPishFmonth->Text =g_sdIMonth;
         scPishPosType->ItemIndex   =-1;
         scPishPosType->Text="";
         scPishDept->ItemIndex=-1;
         scPishState->ItemIndex=0;
         labPishUser->Caption = g_sdUserCode;
         scPishKeeper->LocateKey(g_sdUserCode);
         chkPishRed->Checked =false;
         chkPishCheck->Checked =false;
         labPishChecker->Caption ="";
         chkPishPost->Checked =false;
         labPishPoster->Caption ="";
         chkPishCancel->Checked =false;
         labPishSysDate->Caption="";
         memPishDesc->Text="";
          //新增单据,工具栏使能
          SetCheckToolbarStatus(false);
       }
       sgPish->RowCount=1;
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
            sePisdLine->Text =AnsiString(comServer->ItemCount+1);
            sePisdGoods->Text="";
            pv_GoodsCode="";
            labPisdGoodsName->Caption ="";
            scPisdUnit->ItemIndex   =-1;
            scPisdUnit->Text="";
            sePisdPrice->Text="0.0";
            sePisdQty->Text="0";
            sePisdAmt->Text="0";
            sePisdSod->Text="";
            sePisdSodLine->Text="";
            sePisdLoc->ItemIndex   =-1;
            sePisdLoc->Text="";
            scPisdBatch->ItemIndex=-1;
            scPisdState->ItemIndex=0;
            memPisdDesc->Text="";
            scPisdFrom->ItemIndex=0;
            sePisdFromCode->Text="";
            sePisdFromLine->Text="0";
        }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPish::GetDataFromComObject(int Section)
{
    if (Section==1)
    {
        sePishCode->Text=GetHeadValue(fiPishCode);
        scPishType->LocateKey(GetHeadValue(fiPishType));
        scPishType->Text=scPishType->ItemData[0];
        dePishDate->Text=GetHeadValue(fiPishDate);
        scPishFmonth->Text=GetHeadValue(fiPishFmonth);
        scPishPosType->LocateKey(GetHeadValue(fiPishPosType));
        scPishPosType->Text=scPishPosType->ItemData[0];
        scPishDept->LocateKey(GetHeadValue(fiPishDept));
        scPishState->LocateKey(GetHeadValue(fiPishState));
        scPishState->Text=scPishState->ItemData[0];
        chkPishRed->Checked=GetHeadValue(fiPishRed)=="-1";//-1红字,1蓝字
        labPishUser->Caption=GetHeadValue(fiPishUser);
        scPishKeeper->LocateKey(GetHeadValue(fiPishKeeper));

        chkPishCheck->Checked=GetHeadValue(fiPishCheck)=="1";
        labPishChecker->Caption=GetHeadValue(fiPishChecker);

        chkPishPost->Checked=GetHeadValue(fiPishPost)=="1";
        labPishPoster->Caption=GetHeadValue(fiPishPoster);

        chkPishCancel->Checked=GetHeadValue(fiPishCancel)=="1";

        labPishSysDate->Caption=GetHeadValue(fiPishSysDate);
        memPishDesc->Text=GetHeadValue(fiPishDesc);
        //根据审核、取消状态,设置工具栏
        if((GetHeadValue(fiPishCheck)=="1")||(GetHeadValue(fiPishCancel)=="1"))
          SetCheckToolbarStatus(true);
        else
          SetCheckToolbarStatus(false);
    }
    else
    {
        sePisdLine->Text=GetDetailValue(fiPisdLine);
        sePisdLoc->LocateKey(GetDetailValue(fiPisdLoc));
        sePisdLoc->Text=sePisdLoc->ItemData[0];

        g_sdRsGoods->LocateByKey(WideString(GetDetailValue(fiPisdGoods)));
        sePisdGoods->Text = GetGoodsValue("GoodsCode");
        labPisdGoodsName->Caption=GetGoodsValue("GoodsName");
        scPisdUnit->LocateKey(GetDetailValue(fiPisdUnit));
        scPisdUnit->Text=scPisdUnit->ItemData[0];
        sePisdPrice->Text=GetDetailValue(fiPisdPrice);
        sePisdQty->Text=GetDetailValue(fiPisdQty);
        sePisdAmt->Text=GetDetailValue(fiPisdAmt);
        scPisdFrom->LocateKey(GetDetailValue(fiPisdFrom));
        sePisdFromCode->Text=GetDetailValue(fiPisdFromCode);
        sePisdFromLine->Text=GetDetailValue(fiPisdFromLine);
        scPisdBatch->LocateKey(GetDetailValue(fiPisdBatch));
        scPisdState->LocateKey(GetDetailValue(fiPisdState));
        scPisdState->Text=scPisdState->ItemData[0];
        sePisdSod->Text=GetDetailValue(fiPisdSod);
        sePisdSodLine->Text=GetDetailValue(fiPisdSodLine);
        memPisdDesc->Text=GetDetailValue(fiPisdDesc);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPish::SendDataToComObject(int Section)
{
    if (Section==1)
    {
        SetHeadValue(fiPishCode,sePishCode->Text);
        if(scPishType->ItemData[1] == "")
         throw Exception("请选择入库类型");
        SetHeadValue(fiPishType,scPishType->ItemData[1]);
        SetHeadValue(fiPishDate,dePishDate->Text);
        SetHeadValue(fiPishFmonth,scPishFmonth->Text);
        SetHeadValue(fiPishPosType,scPishPosType->ItemData[1]);
        SetHeadValue(fiPishDept,scPishDept->ItemData[1]);
        SetHeadValue(fiPishUser,labPishUser->Caption);
        SetHeadValue(fiPishKeeper,scPishKeeper->ItemData[1]);
        SetHeadValue(fiPishRed,chkPishRed->Checked ? "-1":"1");
        SetHeadValue(fiPishDesc,memPishDesc->Text);
    }
    else
    {
        SetDetailValue(fiPisdCode,sePishCode->Text);
        if(sePisdLine->Text == "")
         throw Exception("请输入入库单行号");
        SetDetailValue(fiPisdLine,sePisdLine->Text);
        SetDetailValue(fiPisdGoods,sePisdGoods->Text);
//        SetDetailValue(fiPisdUnit,scPisdUnit->ItemData[1]);
        SetDetailValue(fiPisdLoc,sePisdLoc->ItemData[1]);
        if(sePisdQty->Text == "")
         throw Exception("请输入入库数量");
        SetDetailValue(fiPisdQty,sePisdQty->Text);
        if(sePisdPrice->Text == "")
         throw Exception("请输入入库单价");
        SetDetailValue(fiPisdPrice,sePisdPrice->Text);
        if(sePisdAmt->Text == "")
         throw Exception("请输入入库金额");
        SetDetailValue(fiPisdAmt,sePisdAmt->Text);

        SetDetailValue(fiPisdFrom,scPisdFrom->ItemIndex);
        SetDetailValue(fiPisdFromCode,sePisdFromCode->Text);
        if(sePisdFromLine->Text.IsEmpty())
          sePisdFromLine->Text="0";
        SetDetailValue(fiPisdFromLine,sePisdFromLine->Text);

        SetDetailValue(fiPisdBatch,scPisdBatch->Text);
        SetDetailValue(fiPisdSod,sePisdSod->Text);
        if(sePisdSodLine->Text=="")
         SetDetailValue(fiPisdSodLine,"0");
        else
         SetDetailValue(fiPisdSodLine,sePisdSodLine->Text);
        SetDetailValue(fiPisdDesc,memPisdDesc->Text);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPish::WaitUserInput(int Section)
{
    if (Section ==1)
    {
      if(sePishCode->Enabled)
        sePishCode->SetFocus();
    }
    else
    {
      sgPish->Visible=false;
      FloatPanel2->Visible=true;
      pv_GoodsCode=Trim(sePisdGoods->Text);
      if(sePisdGoods->Enabled==true)
      {
        sePisdGoods->SetFocus();
        sePisdGoodsExit(NULL);
        if(scPisdFrom->ItemData[1]=="1") //生成行只允许修改备注
        {
          sePisdLine->Enabled=false;
          sePisdGoods->Enabled=false;
          sePisdSod->Enabled=false;
          sePisdSodLine->Enabled=false;
          scPisdBatch->Enabled=false;
        }
      }
      else
      {
        sePisdQty->SetFocus();
      }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPish::RefreshGridData(int mAction)
{
    int i;
    AnsiString ItemStr=GetItemStringToGrid();
    switch(mAction)
    {
       case 0:
         sgPish->AddItem(ItemStr);
         break;
       case 1:
         i=sgPish->Row;
         sgPish->ChangeItem(ItemStr,i);
         break;
       case 2:
         sgPish->RemoveItem(sgPish->Row);
    }
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPish::GetItemStringToGrid()
{
    AnsiString s_ItemStr;
    s_ItemStr="\t"+GetDetailValue(fiPisdLine)+
              "\t"+GetDetailValue(fiPisdGoods)+
              "\t"+GetDetailValue(fiPisdUnit)+
              "\t"+GetDetailValue(fiPisdQty)+
              "\t"+GetDetailValue(fiPisdPrice)+
              "\t"+GetDetailValue(fiPisdAmt)+
              "\t"+GetDetailValue(fiPisdLoc);
    return(s_ItemStr);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPish::DisplayBill()
{
    if(comServer->RecordCount == 0)
    return ;
    GetDataFromComObject(1);
    FillGridWithData();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPish::GetBill(AnsiString BillID)
{
    int iRow;
    iRow=comServer->Find("PishCode='"+BillID+"'");
    if (iRow>0)      //FIND THIS BILL
    {
       DisplayBill();
    }
    else
       if (ShowMessageWindow("在数据库中没有查到记录:"+BillID+",要增加吗?",mwsConfirmation)==IDYES)
       {
           AddHeadRecord();
       }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPish::FillGridWithData()
{
    int i;
    AnsiString ItemStr;
    sgPish->RowCount=1;
      for (i=0;i<comServer->ItemCount;i++)
      {
          comServer->LocateItemByIndex(i);
          RefreshGridData(0);
      }
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPish::GetHeadValue(int Index)

⌨️ 快捷键说明

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