squote.cpp

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

CPP
377
字号
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "Squote.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "SDGrid"
#pragma link "SDEdit"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma link "fpanel"
#pragma resource "*.dfm"
TfrmSquote *frmSquote;
//---------------------------------------------------------------------------

void __fastcall TfrmSquote::ClearControl(bool BringToNext)
{
    // BringToNext为真时,不清空
    if(BringToNext)
        return;

      seSquoteGoods->Text      ="";
      scSquoteUnit->ItemIndex  =-1;
      seSquoteUser->Text=g_sdUserCode;
      deSquoteSdate->Text      =g_sdCurDate;
      scSquoteSpt->ItemIndex=0;
      deSquoteEdate->Text      =FormatDateTime("YYYY-MM-DD",Date()+365);
      lbSquoteSysDate->Caption ="";
      seSquoteDesc->Text       ="";

    seSquoteQty1->Text          =   "0";
    seSquotePrice1->Text        =   "0";
    seSquoteRebate1->Text       =   "0";
    seSquoteQty2->Text          =   "0";
    seSquotePrice2->Text        =   "0";
    seSquoteRebate2->Text       =   "0";
    seSquoteQty3->Text          =   "0";
    seSquotePrice3->Text        =   "0";
    seSquoteRebate3->Text       =   "0";
    seSquoteQty4->Text          =   "0";
    seSquotePrice4->Text        =   "0";
    seSquoteRebate4->Text       =   "0";
    seSquoteQty5->Text          =   "0";
    seSquotePrice5->Text        =   "0";
    seSquoteRebate5->Text       =   "0";
    seSquoteQty6->Text          =   "0";
    seSquotePrice6->Text        =   "0";
    seSquoteRebate6->Text       =   "0";
    seSquoteQty7->Text          =   "0";
    seSquotePrice7->Text        =   "0";
    seSquoteRebate7->Text       =   "0";
    seSquoteQty8->Text          =   "0";
    seSquotePrice8->Text        =   "0";
    seSquoteRebate8->Text       =   "0";
    seSquoteQty9->Text          =   "0";
    seSquotePrice9->Text        =   "0";
    seSquoteRebate9->Text       =   "0";
    seSquoteQty10->Text         =   "0";
    seSquotePrice10->Text       =   "0";
    seSquoteRebate10->Text      =   "0";
}

void __fastcall TfrmSquote::GetDataFromComObject()
{
 seSquoteGoods->Text      =GetFieldValue("SquoteGoods");
 scSquoteUnit->LocateKey(GetFieldValue("SquoteUnit"));
 seSquoteUser->Text=GetFieldValue("SquoteUser");
 deSquoteSdate->Text      =GetFieldValue("SquoteSdate");
 deSquoteEdate->Text      =GetFieldValue("SquoteEdate");
 scSquoteSpt->LocateKey(GetFieldValue("SquoteSpt"));
 lbSquoteSysDate->Caption =GetFieldValue("SquoteSysDate");
 seSquoteDesc->Text       =GetFieldValue("SquoteDesc");

seSquoteQty1->Text          =   GetFieldValue("SquoteQty1");
seSquotePrice1->Text        =   GetFieldValue("SquotePrice1");
seSquoteRebate1->Text       =   GetFieldValue("SquoteRebate1");
seSquoteQty2->Text          =   GetFieldValue("SquoteQty2");
seSquotePrice2->Text        =   GetFieldValue("SquotePrice2");
seSquoteRebate2->Text       =   GetFieldValue("SquoteRebate2");
seSquoteQty3->Text          =   GetFieldValue("SquoteQty3");
seSquotePrice3->Text        =   GetFieldValue("SquotePrice3");
seSquoteRebate3->Text       =   GetFieldValue("SquoteRebate3");
seSquoteQty4->Text          =   GetFieldValue("SquoteQty4");
seSquotePrice4->Text        =   GetFieldValue("SquotePrice4");
seSquoteRebate4->Text       =   GetFieldValue("SquoteRebate4");
seSquoteQty5->Text          =   GetFieldValue("SquoteQty5");
seSquotePrice5->Text        =   GetFieldValue("SquotePrice5");
seSquoteRebate5->Text       =   GetFieldValue("SquoteRebate5");
seSquoteQty6->Text          =   GetFieldValue("SquoteQty6");
seSquotePrice6->Text        =   GetFieldValue("SquotePrice6");
seSquoteRebate6->Text       =   GetFieldValue("SquoteRebate6");
seSquoteQty7->Text          =   GetFieldValue("SquoteQty7");
seSquotePrice7->Text        =   GetFieldValue("SquotePrice7");
seSquoteRebate7->Text       =   GetFieldValue("SquoteRebate7");
seSquoteQty8->Text          =   GetFieldValue("SquoteQty8");
seSquotePrice8->Text        =   GetFieldValue("SquotePrice8");
seSquoteRebate8->Text       =   GetFieldValue("SquoteRebate8");
seSquoteQty9->Text          =   GetFieldValue("SquoteQty9");
seSquotePrice9->Text        =   GetFieldValue("SquotePrice9");
seSquoteRebate9->Text       =   GetFieldValue("SquoteRebate9");
seSquoteQty10->Text         =   GetFieldValue("SquoteQty10");
seSquotePrice10->Text       =   GetFieldValue("SquotePrice10");
seSquoteRebate10->Text      =   GetFieldValue("SquoteRebate10");
    sgSquote->LocateGrid(1,seSquoteGoods->Text);

}

void __fastcall TfrmSquote::SendDataToComObject()
{
    AnsiString s;

     SetFieldValue("SquoteClient",cbSquoteClientCode->ItemData[cbItem2]);
     SetFieldValue("SquoteCurrency", scSquoteCurrency->ItemData[cbItem2]);
     SetFieldValue("SquoteGoods",     seSquoteGoods->Text       );
     SetFieldValue("SquoteUnit",      scSquoteUnit->ItemData[cbItem2]);
     SetFieldValue("SquoteUser",      g_sdUserCode/*scSquoteUser->Text*/  );
     SetFieldValue("SquoteSdate",     deSquoteSdate->Text);
     SetFieldValue("SquoteEdate",     deSquoteEdate->Text);
     SetFieldValue("SquoteDesc",      seSquoteDesc->Text);
     SetFieldValue("SquoteSpt",      scSquoteSpt->ItemData[cbItem2]);
     SetFieldValue("SquoteQty1",WideString(seSquoteQty1->Text));
    SetFieldValue("SquotePrice1",WideString(seSquotePrice1->Text));
    SetFieldValue("SquoteRebate1",WideString(seSquoteRebate1->Text));
    SetFieldValue("SquoteQty2",WideString(seSquoteQty2->Text));
    if(seSquoteQty2->Text=="0"||seSquoteQty2->Text.IsEmpty())
      {
      seSquotePrice2->Text="0";
      seSquoteRebate2->Text="0";
      }
    SetFieldValue("SquotePrice2",WideString(seSquotePrice2->Text));
    SetFieldValue("SquoteRebate2",WideString(seSquoteRebate2->Text));
    SetFieldValue("SquoteQty3",WideString(seSquoteQty3->Text));
    if(seSquoteQty3->Text=="0"||seSquoteQty3->Text.IsEmpty())
      {
      seSquotePrice3->Text="0";
      seSquoteRebate3->Text="0";
      }
    SetFieldValue("SquotePrice3",WideString(seSquotePrice3->Text));
    SetFieldValue("SquoteRebate3",WideString(seSquoteRebate3->Text));
    SetFieldValue("SquoteQty4",WideString(seSquoteQty4->Text));
    if(seSquoteQty4->Text=="0"||seSquoteQty4->Text.IsEmpty())
      {
      seSquotePrice4->Text="0";
      seSquoteRebate4->Text="0";
      }
    SetFieldValue("SquotePrice4",WideString(seSquotePrice4->Text));
    SetFieldValue("SquoteRebate4",WideString(seSquoteRebate4->Text));
    SetFieldValue("SquoteQty5",WideString(seSquoteQty5->Text));
    if(seSquoteQty5->Text=="0"||seSquoteQty5->Text.IsEmpty())
      {
      seSquotePrice5->Text="0";
      seSquoteRebate5->Text="0";
      }
    SetFieldValue("SquotePrice5",WideString(seSquotePrice5->Text));
    SetFieldValue("SquoteRebate5",WideString(seSquoteRebate5->Text));
    SetFieldValue("SquoteQty6",WideString(seSquoteQty6->Text));
    if(seSquoteQty6->Text=="0"||seSquoteQty6->Text.IsEmpty())
      {
      seSquotePrice6->Text="0";
      seSquoteRebate6->Text="0";
      }
    SetFieldValue("SquotePrice6",WideString(seSquotePrice6->Text));
    SetFieldValue("SquoteRebate6",WideString(seSquoteRebate6->Text));
    SetFieldValue("SquoteQty7",WideString(seSquoteQty7->Text));
    if(seSquoteQty7->Text=="0"||seSquoteQty7->Text.IsEmpty())
      {
      seSquotePrice7->Text="0";
      seSquoteRebate7->Text="0";
      }
    SetFieldValue("SquotePrice7",WideString(seSquotePrice7->Text));
    SetFieldValue("SquoteRebate7",WideString(seSquoteRebate7->Text));
    SetFieldValue("SquoteQty8",WideString(seSquoteQty8->Text));
    if(seSquoteQty8->Text=="0"||seSquoteQty8->Text.IsEmpty())
      {
      seSquotePrice8->Text="0";
      seSquoteRebate8->Text="0";
      }
    SetFieldValue("SquotePrice8",WideString(seSquotePrice8->Text));
    SetFieldValue("SquoteRebate8",WideString(seSquoteRebate8->Text));
    SetFieldValue("SquoteQty9",WideString(seSquoteQty9->Text));
    if(seSquoteQty9->Text=="0"||seSquoteQty9->Text.IsEmpty())
      {
      seSquotePrice9->Text="0";
      seSquoteRebate9->Text="0";
      }
    SetFieldValue("SquotePrice9",WideString(seSquotePrice9->Text));
    SetFieldValue("SquoteRebate9",WideString(seSquoteRebate9->Text));
    SetFieldValue("SquoteQty10",WideString(seSquoteQty10->Text));
    if(seSquoteQty10->Text=="0"||seSquoteQty10->Text.IsEmpty())
      {
      seSquotePrice10->Text="0";
      seSquoteRebate10->Text="0";
      }
    SetFieldValue("SquotePrice10",WideString(seSquotePrice10->Text));
    SetFieldValue("SquoteRebate10",WideString(seSquoteRebate10->Text));

}

void __fastcall TfrmSquote::WaitUserInput()
{
    FloatPanel1->Enabled=true;
    if(seSquoteGoods->Enabled)
       seSquoteGoods->SetFocus();
}

AnsiString __fastcall TfrmSquote::GetDataToGrid()
{
    AnsiString  s;

s  =  "\t" + GetFieldValue("SquoteGoods")+
       "\t" + GetFieldValue("SquoteCurrency")+
        "\t" + GetFieldValue("SquoteSdate")+
        "\t" + GetFieldValue("SquoteEdate");
    return(s);
}

void __fastcall TfrmSquote::RefreshGridData(int mAction)
{
    AnsiString ItemStr;

    ItemStr =   GetDataToGrid();
    // 新增
    if (mAction ==  0)
    {
        sgSquote->AddItem(ItemStr);
        sgSquote->Row=sgSquote->RowCount-1;
    }
    // 修改
    else if(mAction ==  1)
    {
      sgSquote->ChangeItem(ItemStr,sgSquote->Row);
      }
    // 删除
    else if(mAction ==  2)
    {
        sgSquote->RemoveItem(sgSquote->Row);
    }
}



void __fastcall TfrmSquote::FillGridWithData()
{
    AnsiString ItemStr;

    comServer->MoveFirst();
    sgSquote->RowCount    =   1;

    while (comServer->Eof   ==  0)
    {
        ItemStr =   GetDataToGrid();
        sgSquote->AddItem(ItemStr);
        comServer->MoveNext();
    }
}


void __fastcall TfrmSquote::InitEditControl()
{
    ClientGroup->AddComponent(2,true,true,false, sgSquote,sgSquote->Name);
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,false, FloatPanel3,FloatPanel3->Name);
    ClientGroup->AddComponent(2,false,true,true, seSquoteGoods,seSquoteGoods->Name);
    ClientGroup->AddComponent(2,true,true,true, scSquoteUnit,scSquoteUnit->Name);
    ClientGroup->AddComponent(2,true,true,true, seSquoteUser,seSquoteUser->Name);
    FillComboBox(Handle,cbSquoteClientCode,"select ClientCode,ClientName from sdClient  where ClientCancel=0 order by ClientCode","ClientName","ClientCode");
    FillComboBox(Handle,scSquoteCurrency,"select CurrencyCode,CurrencyName from sdCurrency order by CurrencyCode","CurrencyName","CurrencyCode");
    FillComboBox(Handle,scSquoteSpt,"select SptCode,SptName from sdSpt order by SptCode","SptName","SptCode");
    FillComboBox(Handle,scSquoteUnit,"select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
//    FillEdit(Query,seSquoteUser,"select UserCode,UserName from sdUser order by UserCode","UserName","UserCode");
  }


__fastcall TfrmSquote::TfrmSquote(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
    : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------

void __fastcall TfrmSquote::cbSquoteClientCodeClick(TObject *Sender)
{
  if((cbSquoteClientCode->ItemData[cbItem2]+scSquoteCurrency->ItemData[cbItem2])!=ClientValue)
    {
        WideString FS;
        FS   =   "SquoteClient = '" + cbSquoteClientCode->ItemData[cbItem2] + "'and SquoteCurrency='"+scSquoteCurrency->ItemData[cbItem2]+"'";
        comServer->FilterString =FS;
        comServer->Query();
        FillGridWithData();
//        FillComboBox(Handle,scSquoteGoods,"select distinct sgdGoodsCode from sdsgd where sgdClientCode='"+cbSquoteClientCode->Text+"' order by sgdGoodsCode","sgdGoodsCode");
        comServer->MoveFirst();
        GetDataFromComObject();
        ClientValue=cbSquoteClientCode->ItemData[cbItem2]+scSquoteCurrency->ItemData[cbItem2];
    }
}
//---------------------------------------------------------------------------


void __fastcall TfrmSquote::SetClientValue(AnsiString value)
{
        if(FClientValue != value) {
                FClientValue = value;
        }
}
AnsiString __fastcall TfrmSquote::GetClientValue()
{
        return FClientValue;
}
void __fastcall TfrmSquote::scSquoteGoodsClick(TObject *Sender)
{
     SetFieldValue("SquoteClient",cbSquoteClientCode->ItemData[cbItem2]);
     SetFieldValue("SquoteGoods",seSquoteGoods->Text);
 scSquoteUnit->Text=GetFieldValue("SquoteUnit");

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


void __fastcall TfrmSquote::FormShow(TObject *Sender)
{
   cbSquoteClientCodeClick(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSquote::sgSquoteClick(TObject *Sender)
{
    if (sgSquote->Row    >   0)
         comServer->LocateByKey(WideString(cbSquoteClientCode->ItemData[cbItem2]+"\t"+sgSquote->TextMatrix[sgSquote->Row][1]+"\t"+scSquoteCurrency->ItemData[cbItem2]+"\t"));
    if (!comServer->Eof)
         GetDataFromComObject();

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

void __fastcall TfrmSquote::seSquoteGoodsButtonClick(TObject *Sender)
{
//    AnsiString SqlStr;
//    SqlStr="005[货物编码][货物名称][单位][客户货物编码][客户货物名称]select SgdGoodsCode,";
//    SqlStr+="GoodsName,GoodsUnitCode,SgdCode,SgdName from SdSgd,sdGoods where SgdClientCode='"+cbSquoteClientCode->ItemData[1]+"' and ";
//    SqlStr+="SgdGoodsCode=GoodsCode order by SgdGoodsCode";
//    TfrmWnQuery *p;
//    try
//    {
//       StartWaitForm("正在查询,请稍候...");
//       p=new TfrmWnQuery(this,"客户货物查询",SqlStr);
//    }
//    __finally
//    {
//       EndWaitForm();
//    }
//    if(p->ShowModal()==mrOk)
//    {
////     InitRsGoods(p->ColData[1]));
//     seSquoteGoods->Text=p->ColData[1];
//     scSquoteUnit->LocateKey(p->ColData[3]);
//    }
//    delete p;

    if(OpenGoodsForm("")) //过滤条件
    {
      seSquoteGoods->Text=l_RsGoods->FieldValues["GoodsCode"];
      scSquoteUnit->Text=l_RsGoods->FieldValues["GoodsName"];
     }

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










⌨️ 快捷键说明

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