cptration_pictplan.cpp

来自「科思ERP部分源码及控件」· C++ 代码 · 共 268 行

CPP
268
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "CptRation_PictPlan.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "QueryBaseForm"
#pragma link "SDGrid"
#pragma link "KSAdvReport"
#pragma link "DateEdit"
#pragma link "SDEdit"
#pragma resource "*.dfm"
TfrmCptRation_PictPlan *frmCptRation_PictPlan;
//---------------------------------------------------------------------------
__fastcall TfrmCptRation_PictPlan::TfrmCptRation_PictPlan(TComponent* Owner, HWND chWnd, AnsiString ClassCode,AnsiString WhereStr)
        : TQueryBaseForm(Owner,chWnd,ClassCode,WhereStr)
{
   // FillGridWithData();
   ScrollBar1->Position=100;
   Chart1->AnimatedZoomSteps=2;
   DefaultLabels = false;
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::ClearControl(bool BringToNext)
{
  return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::GetDataFromComObject()
{
  return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::WaitUserInput()
{
  return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::RefreshGridData(int mAction)
{
  return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::DisplayBill()
{
  return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::GetBill(AnsiString BillID)
{
  return;
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::FillGridWithData()
{
  TComResultSet *RsQuery = new  TComResultSet(Handle,g_ClientHandle);
  AnsiString ItemStr,sSql,WcName,ItemStrWc;
  float l_Qty,l_WcQty,l_Perc;
  sSql=GetQueryStr();
  Series1->Clear();
  Series2->Clear();

  if(sSql=="")
    return;
  try
  {
    RsQuery->Open(sSql,"");
    RsQuery->MoveFirst();
    while( RsQuery->Eof == 0)
    {
      ItemStrWc=RsQuery->FieldByName("CptAnWcname") ;
      ItemStr=RsQuery->FieldByName("CptAnDate") ;
      l_Qty = StrToFloat(RsQuery->FieldByName("CptAnQty")) ;
      l_WcQty= StrToFloat(RsQuery->FieldByName("CptAnWcQty")) ;
      if (!CheckBox2->Checked)
      {
         Chart1->LeftAxis->Title->Caption=ItemStrWc;
         Chart1->LeftAxis->Maximum=800;
         Series1->Add(l_Qty,ItemStr,clTeeColor); 
         Series2->Add(l_WcQty,ItemStr,clTeeColor);
      }
      else
      {
       l_Perc= l_Qty/l_WcQty*100;
       Chart1->LeftAxis->Title->Caption="能力/负荷比(%)";
       Chart1->LeftAxis->Maximum=200;
       Series1->Add(l_Perc,ItemStr,clTeeColor);
      }
      RsQuery->MoveNext();
    }
    Chart1->Title->Text->Text  = "工作中心负荷图("+ItemStrWc+")";
    RsQuery->Close();
  }
  __finally
  {
    delete RsQuery;
  }
}
//---------------------------------------------------------------------------
void __fastcall TfrmCptRation_PictPlan::tbQueryClick(TObject *Sender)
{
    try{
    StartWaitForm("正在查询,请稍候...");
    FillGridWithData();
    }
     __finally
  {
    EndWaitForm();
  }


}
//---------------------------------------------------------------------------
//获取查询语句
AnsiString __fastcall TfrmCptRation_PictPlan::GetQueryStr()
{
 AnsiString Selectstr,Fromstr,Wherestr,Orderstr;
 AnsiString l_DateE ,l_DateF,WCName;
 l_DateF = de_DateF->Text;
 l_DateE = de_DateE->Text;
 WCName = se_wc->Text;
 if (l_DateF.IsEmpty())
   throw Exception("请输入起始日期!");
 if (l_DateE.IsEmpty())
   throw Exception("请输入结束日期!");
 if (WCName.IsEmpty())
   throw Exception("请输入工作中心编码!");
 Selectstr =" select * ";
 Fromstr=" from ksVW_KsCptAnalyse ";

   Fromstr+="  where CptAnDate BETWEEN  '"+FormatDateTime("yyyy-mm-dd",l_DateF)+"' and '"+FormatDateTime("yyyy-mm-dd",l_DateE)+"'";
   Fromstr+="  and CptAnWc ='"+WCName+"'";
 Orderstr=" order by CptanWc ";
 sSQL=Selectstr+Fromstr+Wherestr+Orderstr;
 return(sSQL);
}
void __fastcall TfrmCptRation_PictPlan::tbRefreshClick(TObject *Sender)
{
 if(sSQL=="")
  return;
 FillGridWithData();        
}
//---------------------------------------------------------------------------



void __fastcall TfrmCptRation_PictPlan::Zoom(TChart *ch ,double present)
{
   TRect r=ch->ChartRect;
   r.Left=r.Left+present;
   r.Right=r.Right-present;
   r.Top=r.Top+present;
   ch->ZoomRect(r);

}



void __fastcall TfrmCptRation_PictPlan::se_wcButtonClick(TObject *Sender)
{
    AnsiString SqlStr;
  SqlStr="004[工作中心编码][工作中心名称][关键工作中心][车间代码]";
  SqlStr+="Select wccode,wcName,wckey,wcshopcode from sdwc  order by wcCode";
  TfrmWnQuery *p;
  try
  {
    StartWaitForm("正在查询,请稍候...");
    p=new TfrmWnQuery(this,"工作中心数据查询",SqlStr);
  }
  __finally
  {
    EndWaitForm();
  }
  if(p->ShowModal()==mrOk)
  {
    se_wc->Text=p->ColData[1];
  }
  delete p;
}
//---------------------------------------------------------------------------




void __fastcall TfrmCptRation_PictPlan::cb_LogarithmicClick(TObject *Sender)
{

   if (cb_Logarithmic->Checked)
     Chart1->LeftAxis->Logarithmic=true;
   else
     Chart1->LeftAxis->Logarithmic=false;

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

void __fastcall TfrmCptRation_PictPlan::ScrollBar1Change(TObject *Sender)
{
    Chart1->View3DOptions->Zoom=ScrollBar1->Position;
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::BitBtn4Click(TObject *Sender)
{
   BitBtn1->Enabled=false;
  BitBtn2->Enabled=false;
  Chart1->ZoomPercent(115);
  BitBtn1->Enabled=true;
  BitBtn2->Enabled=true;      
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::BitBtn3Click(TObject *Sender)
{
   BitBtn1->Enabled=false;
  BitBtn2->Enabled=false;
  Chart1->ZoomPercent(85);
  BitBtn1->Enabled=true;
  BitBtn2->Enabled=true;      
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::Chart1GetNextAxisLabel(
      TChartAxis *Sender, int LabelIndex, double &LabelValue, bool &Stop)
{
    Word year,month,day;
  if (!DefaultLabels) {
    if (Sender == Chart1->BottomAxis)
    {
      DecodeDate(LabelValue,year,month,day);

      day = 1;
      month++;
      if (month>12) {
        month = 1;
        year++;
      }
      LabelValue = EncodeDate(year,month,day);

    }
    else if (Sender == Chart1->LeftAxis) {

      if (LabelValue>=250)
        LabelValue = LabelValue+250;
      else
        LabelValue = 250;
    }
    Stop = false;
  }
}
//---------------------------------------------------------------------------

void __fastcall TfrmCptRation_PictPlan::RadioGroup1Click(TObject *Sender)
{
    DefaultLabels = RadioGroup1->ItemIndex == 0;
  Chart1->Repaint();
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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