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

📄 pg.cpp

📁 科思ERP部分源码及控件
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#include "Pg.h"
//---------------------------------------------------------------------------
#pragma hdrstop
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"

TfrmPg *frmPg;
//---------------------------------------------------------------------------
__fastcall TfrmPg::TfrmPg(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
    : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
        sePgGoods->Text     =   "";
        sePgGoodsName->Text =   "";
        scPgGoodsUnit->ItemIndex= -1;
        sePgGoodsSpec->Text =   "";
        sePgGoodsModel->Text=   "";
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::GetDataFromComObject()
{
//    l_RsGoods->LocateByKey(GetFieldValue("PgGoods"));
    sePgGoods->Text=GetFieldValue("PgGoods");
    //MoveFirst,MovePrority,MoveNext,MoveLast
    sgPg->LocateGrid(0,sePgGoods->Text);
    sePgGoodsName->Text =GetFieldValue("GoodsName");
    scPgGoodsUnit->LocateKey(GetFieldValue("GoodsUnitCode"));
    sePgGoodsSpec->Text =GetFieldValue("GoodsSpec");
    sePgGoodsModel->Text=GetFieldValue("GoodsModel");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::SendDataToComObject()
{
    SetFieldValue("PgProcess",scPgProcess->ItemData[cbItem2]);
    SetFieldValue("PgGoods",Trim(sePgGoods->Text));
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::WaitUserInput()
{
    sePgGoods->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmPg::GetDataToGrid()
{
//    int status;
    AnsiString  ItemStr,pKey;
    pKey=GetFieldValue("PgGoods");
    InitRsGoods(pKey);
//    status=l_RsGoods->LocateByKey(pKey);

    ItemStr=GetGoodsValue(gtInitRs,"GoodsCode")+"\t"+
            GetGoodsValue(gtInitRs,"GoodsName");
//    ItemStr=GetFieldValue("GoodsCode")+"\t"+
//            GetFieldValue("GoodsName");
    return(ItemStr);
}
//---------------------------------------------------------------------------

void __fastcall TfrmPg::RefreshGridData(int mAction)
{
    AnsiString ItemStr;
    ItemStr = GetDataToGrid();
    if (mAction == 0)
    {
        sgPg->AddItem(ItemStr);
        sgPg->Row=sgPg->RowCount-1;
    }
    else if(mAction == 1)
    {
        sgPg->ChangeItem(ItemStr,sgPg->Row);
    }
    else if(mAction == 2)
    {
        sgPg->RemoveItem(sgPg->Row);
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPg::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgPg->RowCount = 1;
    scPgProcess->LocateKey(GetFieldValue("PgProcess"));
    while (comServer->Eof == 0)
    {
        ItemStr = GetDataToGrid();
        sgPg->AddItem(ItemStr);
        comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmPg::InitEditControl()
{
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,false, scPgProcess,scPgProcess->Name);
    ClientGroup->AddComponent(2,true,true,false, sgPg,sgPg->Name);
    ClientGroup->AddComponent(2,true,true,true, Panel1,Panel1->Name);
    FillComboBox(Handle,scPgProcess,"SELECT ProcessCode+space(18-Len(ProcessCode))+ProcessName memo,ProcessCode FROM sdProcess order by ProcessCode","memo","ProcessCode");
    FillComboBox(Handle,scPgGoodsUnit,"SELECT UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
}
//---------------------------------------------------------------------------

void __fastcall TfrmPg::RefreshUpdateData(int MsgSrc,int MsgType)
{
/*
    try
    {
       switch (MsgSrc)
       {
         case euSdUnit:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(Handle,scPgGoodsUnit,"select UnitCode,UnitName from sdUnit order by UnitCode","UnitName","UnitCode");
	           EndWaitForm();
	           break;
           }
         case euSdProcess:
           if(ShowUpdateMessage(MsgSrc,MsgType)){
	           StartWaitForm("正在刷新引用数据!");
	           FillComboBox(Handle,scPgProcess,"SELECT ProcessCode+space(1)+'('+ProcessName+')' memo,ProcessCode FROM sdProcess order by ProcessCode","memo","ProcessCode");
	           EndWaitForm();
	           break;
           }
         default:
           break;
       }
    }
    __finally
    {
       //AddCode;
    }
*/
}
//---------------------------------------------------------
void __fastcall TfrmPg::FormClose(TObject *Sender, TCloseAction &Action)
{
    TRecBaseForm::FormClose(Sender,Action);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::FormShow(TObject *Sender)
{
    ClearControl(false);
    if(scPgProcess->ItemIndex!=-1)
       scPgProcessClick(this);
    if(scPgProcess->Enabled)
       scPgProcess->SetFocus();
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::scPgProcessClick(TObject *Sender)
{
    AnsiString pFilstr;
    if(scPgProcess->Text.IsEmpty())
       return;
    if(OldPgProcess==scPgProcess->ItemData[cbItem2])
       return;
    pFilstr = Trim(scPgProcess->ItemData[cbItem2]);
    if(!pFilstr.IsEmpty())
    {
      OldPgProcess=scPgProcess->ItemData[cbItem2];
      pFilstr = "PgProcess = '" + pFilstr + "'";
      comServer->FilterString = pFilstr;
      comServer->Query();
      if(comServer->RecordCount==0)
      {
         ClearControl(false);
         sgPg->RowCount=1;
         return;
      }
      FillGridWithData();
      comServer->MoveFirst();
      GetDataFromComObject();
    }
    else
      throw Exception("工序编码不存在或没有定义!");
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::sePgGoodsButtonClick(TObject *Sender)
{
  AnsiString SqlStr;
  SqlStr="005[产品编码][产品名称][计量单位][规格][型号]";
  SqlStr+="select GoodsCode,GoodsName,GoodsUnitCode,GoodsSpec,GoodsModel from sdGoods";
  SqlStr+=" Where (GoodsType=1 or GoodsType=2) and GoodsFrom=2 order by GoodsCode";
  TfrmWnQuery *p;
  try
  {
    StartWaitForm("正在查询,请稍候...");
    p=new TfrmWnQuery(this,"产品数据查询",SqlStr);
  }
  __finally
  {
    EndWaitForm();
  }
  if(p->ShowModal()==mrOk)
  {
    sePgGoods->Text=p->ColData[1];
    sePgGoodsName->Text=p->ColData[2];
    scPgGoodsUnit->LocateKey(p->ColData[3]);
    sePgGoodsSpec->Text=p->ColData[4];
    sePgGoodsModel->Text=p->ColData[5];
  }
  delete p;
}
//---------------------------------------------------------------------------

void __fastcall TfrmPg::muAddDetailClick(TObject *Sender)
{
    AnsiString tempS;
    tempS=Trim(scPgProcess->Text);
    if(tempS.IsEmpty())
    {
        ::MessageBox(Handle,"请先选择或输入一个工序代码,再点增加操作。","操作错误",MB_OK|MB_ICONSTOP);
        return;
    }
    TRecBaseForm::muAddDetailClick(Sender);
}
//---------------------------------------------------------------------------
void __fastcall TfrmPg::sgPgClick(TObject *Sender)
{
    int ARow;
    ARow=sgPg->Row;
    if(ARow > 0)
       comServer->LocateByKey(sgPg->TextMatrix[ARow][0]+"\t"+scPgProcess->ItemData[cbItem2]+"\t");
//      comServer->LocateByIndex(ARow);
    if(!comServer->Eof)
       GetDataFromComObject();
}
//---------------------------------------------------------------------------

void __fastcall TfrmPg::sePgGoodsKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
    if(Key==13 && CurrentState!=caNormal)
    {
      AnsiString pGoodsCode;
      pGoodsCode=sePgGoods->Text;
      if(l_RsGoods->LocateByKey(WideString(pGoodsCode))==0)
      {
         sePgGoodsName->Text = GetGoodsValue(gtInitRs,"GoodsName");
         scPgGoodsUnit->LocateKey(GetGoodsValue(gtInitRs,"GoodsUnitCode"));
         sePgGoodsSpec->Text = GetGoodsValue(gtInitRs,"GoodsSpec");
         sePgGoodsModel->Text= GetGoodsValue(gtInitRs,"GoodsModel");
      }
      else
         ShowMessage("货物编码:'"+pGoodsCode+"'不存在!");
    }
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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