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

📄 preth.cpp

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

void __fastcall TfrmPreth::DisplayBill()
{
        if(comServer->RecordCount==0)
         return;
        GetDataFromComObject(1);
        FillGridWithData();
}
//---------------------------------------------------------------------------

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

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

void __fastcall TfrmPreth::FillGridWithData()
{
      int i;
      AnsiString ItemStr;

      sgPreth->RowCount=1;
      for (i=0;i<comServer->ItemCount;i++)
      {
          comServer->LocateItemByIndex(i);
          RefreshGridData(0);
      }
}
//---------------------------------------------------------------------------

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

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

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

void __fastcall TfrmPreth::SetDetailValue(int Index,AnsiString Value)
{
       WriteItemValue(comServer,Index,Value);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::FormShow(TObject *Sender)
{
       ClearControl(1,false);
       ClearControl(2,false);
       TGenBaseForm::MoveToFirst();
       ChangeToBrowseState();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::sgPrethSelectCell(TObject *Sender, int ACol,
      int ARow, bool &CanSelect)
{
    if(CurrentState==caNormal)
    {
      if (ARow > 0)
      {
       comServer->LocateItemByKey(WideString(sgPreth->TextMatrix[ARow][1]));
      }
      if (!comServer->Eof)
      {
         GetDataFromComObject(2);
      }
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::sgPrethDblClick(TObject *Sender)
{
    int iRow;
    iRow=sgPreth->Row;
    if (iRow == 0)
    {
       return;
    }
    sgPreth->Visible=false;
    FloatPanel2->Visible=true;
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::ChangeToBrowseState(bool Browse)
{
      sgPreth->Visible=true;
      FloatPanel2->Visible=false;
      if(Browse==false)
       sgPreth->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::btnOKClick(TObject *Sender)
{
  try
  {
    if (CurrentState==caAddDetail||CurrentState==caAddBill)
    {
       if(DetailState==caAddDetail)
         comServer->AddItem();
       SendDataToComObject(2);
       comServer->AddToObject();
       ClearControl(2,false);
       if(sePretdPrecCode->Enabled)
        sePretdPrecCode->SetFocus();
    }
    else
        ChangeToBrowseState();
  }
  catch(Exception &e)
  {
   throw Exception(e.Message);
  }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPreth::btnCancelClick(TObject *Sender)
{
       CancelChange();
}
//---------------------------------------------------------------------------


void __fastcall TfrmPreth::AutoCalculation()
{
  double dQty,dPrice,dAmt,dTaxRate;
  dQty=StrToFloat(sePretdQty->Text);
  dPrice=StrToFloat(sePretdPrice->Text);
  if(scPrethTaxCode->ItemData[2]!="")
    dTaxRate=StrToFloat(scPrethTaxCode->ItemData[2]);
  else
    dTaxRate=0;
  dAmt=(dQty*dPrice)/(1+dTaxRate);
  sePretdAmt->Text=DataCarry(dAmt,2,0);
  sePretdTaxAmt->Text=DataCarry(dAmt*dTaxRate,2,0);
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreth::sePretdQtyExit(TObject *Sender)
{
  AutoCalculation();
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreth::RefreshUpdateData(int MsgSrc,int MsgType)
{
  switch(MsgSrc)
  {
   case euSdFc:
    scPrethFMonth->Text=g_sdPMonth;
    break;
   case euSdTransMode:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(scPrethTransMode,"select transmodename memo,transmodecode from sdtransmode order by transmodecode","memo","transmodecode");
    }
    break;
   case euSdSettleMode:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(scPrethSettleMode,"select SettleModeName memo,SettleModeCode from sdSettleMode order by SettleModeCode","memo","SettleModeCode");
    }
    break;
   case euSdPretRr:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(scPrethRr,"select pretrrdesc memo,pretrrcode from sdpretrr order by pretrrcode","memo","pretrrcode");
    }
    break;
   case euSdPsite:
    if(ShowUpdateMessage(MsgSrc,MsgType))
     FillEdit(sePrethPsite,"select psitename memo,psitecode from sdpsite order by psitecode","memo","psitecode");
    break;
   case euSdSupply:
    if(ShowUpdateMessage(MsgSrc,MsgType))
      FillEdit(sePrethSupply,"SELECT SupplyCode,SupplyName,SupplyTaxCode,SupplyTaxNo FROM sdSupply  where supplycancel=0  order by SupplyCode",
                  "SupplyName","SupplyCode","SupplyTaxCode","SupplyTaxNo");
    break;
   case euSdPosType:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(scPrethPosType,"select PosTypeName memo,PosTypeCode from sdPosType where postypeflg=1 order by PosTypeCode","memo","PosTypeCode");
    }
    break;
   case euSdDeliver:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(scPrethDeliver,"Select DeliverName memo,DeliverCode from sdDeliver order by DeliverCode","memo","DeliverCode");
    }
    break;
   case euSdTax:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillComboBox(scPrethTaxCode,"select taxname memo,taxcode,taxrate from sdtax order by taxcode","memo","taxcode","taxrate");
    }
    break;
   case euSdUnit:
    if(ShowUpdateMessage(MsgSrc,MsgType))
    {
     FillEdit(sePretdUnit,"select unitname memo,unitcode from sdunit order by UnitCode","memo","UnitCode");
    }
    break;
   default:
    break;
  }
}
//---------------------------------------------------------------------------



void __fastcall TfrmPreth::scPrethTaxCodeExit(TObject *Sender)
{
 CheckComboBoxText(scPrethTaxCode);
}
//---------------------------------------------------------------------------



void __fastcall TfrmPreth::sePrethCurrencyButtonClick(TObject *Sender)
{
  AnsiString SqlStr;
  SqlStr="002[货币代码][货币名称]select Currencycode,CurrencyName from sdCurrency,sdpsd where PsdCurrencyCode=CurrencyCode and ";
  SqlStr+="PsdSupplyCode='"+sePrethSupply->ItemData[cbItem2]+"' order by CurrencyCode";
  TfrmWnQuery *p;
  try
  {
    StartWaitForm("正在查询,请稍候...");
    p=new TfrmWnQuery(this,"货币查询",SqlStr);
  }
  __finally
  {
    EndWaitForm();
  }
  if(p->ShowModal()==mrOk)
  {
    if(sePrethCurrency->LocateKey(p->ColData[1]))
    {
      if(sePrethCurrency->ItemData[cbItem4]=="1")
      {
        sePrethEnrate->Enabled=false;
        sePrethEnrate->Text="1";
      }
      else
      {
        sePrethEnrate->Enabled=true;
        sePrethEnrate->Text=sePrethCurrency->ItemData[cbItem3];
      }
    }
  }
  delete p;
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreth::sePretdPriceExit(TObject *Sender)
{
  AutoCalculation();
}
//---------------------------------------------------------------------------


void __fastcall TfrmPreth::sePretdPrecCodeButtonClick(TObject *Sender)
{
  AnsiString SqlStr;
  SqlStr="012[收货单号][行号][物料编码][计量单位][换算系数][收货数量][已退数][单价][货位][批号][订单号][订单行号]";
  SqlStr+="select precdcode,precdline,precdgoods,precdunit,precdconv,precdqty,precdbqty,precdprice,precdloc,precdbatch,precdso,precdsodline from sdprecd,sdprech where precdcode=prechcode and prechcheck=1 and ";
  SqlStr+="PrechClose=0 and prechsupply='"+sePrethSupply->ItemData[cbItem2]+"' and prechcurrency='"+sePrethCurrency->ItemData[cbItem2]+"' order by prechdate desc";
  TfrmWnQuery *p;
  try
  {
    StartWaitForm("正在查询,请稍候...");
    p=new TfrmWnQuery(this,"收货单查询",SqlStr);
  }
  __finally
  {
    EndWaitForm();
  }
  if(p->ShowModal()==mrOk)
  {
    sePretdPrecCode->Text=p->ColData[1];
    sePretdPrecdLine->Text=p->ColData[2];
    sePretdGoods->Text=p->ColData[3];
    sePretdUnit->LocateKey(p->ColData[4]);
    sePretdConv->Text=p->ColData[5];
    if(g_sdRsGoods->LocateByKey(WideString(sePretdGoods->Text))==0)
      labPretdGoodsName->Caption=GetGoodsValue("GoodsName");
    sePretdLoc->LocateKey(p->ColData[9]);
    sePretdBatch->Text=p->ColData[10];
    sePretdSo->Text=p->ColData[11];
    sePretdSodLine->Text=p->ColData[12];
  }
  delete p;
}
//---------------------------------------------------------------------------

void __fastcall TfrmPreth::sePretdQtyButtonClick(TObject *Sender)
{
  AnsiString SqlStr;

⌨️ 快捷键说明

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