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

📄 mainform.cpp

📁 邮 电 公 司 erp源码
💻 CPP
字号:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop

#include "MainForm.h"
#include "commfunction.h"
#include "sdenumtype.h"
#include "Func.h"
#include "Login.h"
#include "FormMgr.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "ImagePanel"
#pragma resource "*.dfm"
TfrmMainForm *frmMainForm;
TModuleForm *g_sdModuleForm;
//---------------------------------------------------------------------------
__fastcall TfrmMainForm::TfrmMainForm(TComponent* Owner)
        : TForm(Owner)
{
    //HWND h=Application->Handle;
    AnsiString AgentIP,AgentPort;
    TModalResult MR;
    g_IComServer=NULL;
    g_IComResultSet=NULL;
    g_ClientComm=NULL;
    g_sdRsGoods=NULL;
    g_sdRsGlkm=NULL;
    m_NavBit=NULL;
    m_sdTask=NULL;
    m_sdMenu=NULL;
    g_sdSysPath=ExtractFileDir(Application->ExeName);
    AgentIP=GetInifileValue("AgentServer","ServerIP",g_sdSysPath+"\\SdBod.dat");
    AgentPort=GetInifileValue("AgentServer","ServerPort",g_sdSysPath+"\\SdBod.dat");
    g_sdCompanyCode=GetInifileValue("Login","CompanyCode",g_sdSysPath+"\\SdBod.dat");
    g_ClientComm=new TClientComm(Application,AgentIP,AgentPort.ToInt());
    TfrmLogin *p=new TfrmLogin(this);
    MR=p->ShowModal();
    delete p;
    if(MR!=mrOk)
    {
      Application->Terminate();
      return;
    }
    m_sdTask=new TsdTask(g_ClientComm);
    m_sdTask->Panel=pnlTaskbar;
    FInitOK=false;
    m_NavBit=new Graphics::TBitmap;
    TJPEGImage *m_Jpeg=new TJPEGImage;
    m_Jpeg->LoadFromFile(g_sdSysPath+"\\pic\\Title.jpg");
    ImgTitle->Canvas->Draw(0,0,m_Jpeg);
    m_Jpeg->LoadFromFile(g_sdSysPath+"\\pic\\Navigate.jpg");
    m_NavBit->Assign(m_Jpeg);
    delete m_Jpeg;
    InitMenu();
    g_sdModuleForm=new TModuleForm();
    g_sdModuleForm->InitModuleForm(g_IComServer,g_IComResultSet,g_sdRsGoods,g_sdRsGlkm);
    stbMain->Panels->Items[0]->Text="财务月份:"+g_sdFMonth;
    stbMain->Panels->Items[1]->Text="在线用户:"+AnsiString(g_ClientComm->OnlineUsers);
    stbMain->Panels->Items[2]->Text="操作员:"+g_sdUserCode;
    stbMain->Panels->Items[3]->Text="登录:"+g_sdLoginTime;
    stbMain->Panels->Items[4]->Text="日期:"+g_sdCurDate;
    stbMain->Panels->Items[5]->Text=GetInifileValue("Link","DevName",ExtractFileDir(Application->ExeName)+"\\SdBod.dat");
    NavImg->Top=ImgTitle->Top+ImgTitle->Height;
}
//---------------------------------------------------------------------------



void __fastcall TfrmMainForm::suExitClick(TObject *Sender)
{
  Close();
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainForm::pnlMenuResize(TObject *Sender)
{
  if(FInitOK && m_sdMenu->MenuCount>0)
      m_sdMenu->ShowPageMenu();
}
//---------------------------------------------------------------------------


void __fastcall TfrmMainForm::smToolBarClick(TObject *Sender)
{
    if(smToolBar->Checked==true)
    {
        smToolBar->Checked=false;
    }
    else
    {
        smToolBar->Checked=true;
    }
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainForm::smStatusBarClick(TObject *Sender)
{
    if(smStatusBar->Checked==true)
    {
        smStatusBar->Checked=false;
        stbMain->Visible=false;
    }
    else
    {
        smStatusBar->Checked=true;
        stbMain->Visible=true;
    }
}
//---------------------------------------------------------------------------


void __fastcall TfrmMainForm::Label1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  AnsiString LinkAddr;
  LinkAddr=GetInifileValue("Link","HomePage",ExtractFileDir(Application->ExeName)+"\\sdbod.dat"),
  ShellExecute(Handle,"open",LinkAddr.c_str(),0,0,SW_SHOW);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainForm::Label2MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
  m_sdMenu->ShowForm("1170101");
}
//---------------------------------------------------------------------------



void __fastcall TfrmMainForm::FormResize(TObject *Sender)
{
  pnlTaskbar->Top=stbMain->Top-pnlTaskbar->Height;
  pnlTaskbar->Width=this->Width-pnlMenu->Width;
  pnlSubMenu->Top=stbMain->Top-pnlTaskbar->Height-pnlSubMenu->Height;
  pnlSubMenu->Width=this->Width-pnlMenu->Width;
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainForm::suAboutClick(TObject *Sender)
{
  AnsiString ProductSn="SD-ERP-10-001";
  ShellAbout(Handle, AnsiString("关于<SD-ERP企业管理软件>#").c_str(),
  AnsiString("产品号:"+ProductSn.SubString(1,6)+ProductSn.SubString(10,4)+ProductSn.SubString(7,3)+"\n速达软件技术有限公司(K) 版权所有!").c_str(),
  Application->Icon->Handle);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainForm::suTopicClick(TObject *Sender)
{
  AnsiString FileName;
  FileName=ExtractFilePath(Application->ExeName)+"\sdmrphelp.chm";
  ShellExecute(Handle,"open",FileName.c_str(),NULL,ExtractFileDir(Application->ExeName).c_str(),SW_SHOW);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainForm::FormKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
  AnsiString FileName;
  if(Key==VK_F1)
  {
    FileName=ExtractFilePath(Application->ExeName)+"\sdmrphelp.chm";
    ShellExecute(Handle,"open",FileName.c_str(),NULL,ExtractFileDir(Application->ExeName).c_str(),SW_SHOW);
  }
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainForm::InitMenu()
{
  AnsiString SqlStr;
  pnlSubMenu->Top=446;
  pnlSubMenu->Height=62;
  pnlTaskbar->Top=507;
  pnlTaskbar->Height=29;
  TComResultSet *m_RsNavpic;
  TComServer *m_sdRight;
  try
  {
    try
    {
      StartWaitForm("初始化系统,准备启动SD-ERP");
      g_IComResultSet=new TIComResultSet(g_ClientComm);
      g_sdRsGoods=NewResultSet();
      g_sdRsGoods->Open("select * from sdgoods order by goodscode","GoodsCode");
      g_sdRsGlkm=NewResultSet();
      g_sdRsGlkm->Open("select * from sdglkm order by glkmtype,glkmcode","GlkmCode");
      m_RsNavpic=NewResultSet();
      m_sdRight=NewDcomAppSvr(euSdModule);
      m_sdRight->FilterString="$"+g_sdUserCode;
      m_sdRight->OrderString="ModuleCode,ModuleLevel";
      m_sdRight->Query();
      m_sdMenu=new TsdMenu(m_sdTask,this->pnlMenu,this->pnlSubMenu,this,this->NavImg,m_NavBit);
      m_sdRight->MoveFirst();
      while(m_sdRight->Eof==0)
      {
        if(m_sdRight->FieldValue[fiModuleLevel].ToInt()==1)
        {
          m_sdMenu->MenuCode=m_sdRight->FieldValue[fiModuleCode];
          m_sdMenu->MenuCaption=m_sdRight->FieldValue[fiModuleCaption];
          m_sdMenu->MenuDesc=m_sdRight->FieldValue[fiModuleDesc];
          m_sdMenu->MenuNo=m_sdRight->FieldValue[fiModuleNo].ToInt();
          m_sdMenu->MenuPicName=m_sdRight->FieldValue[fiModulePicName];
          m_sdMenu->MenuSelPicName=m_sdRight->FieldValue[fiModuleSelPicName];
          m_sdMenu->MenuMovePic=m_sdRight->FieldValue[fiModuleMovePic];
          m_sdMenu->MenuNavpic=m_sdRight->FieldValue[fiModuleNavpic];
          m_sdMenu->AddMenu();
          SqlStr="Select * from sdNavpic where NavpicModule='"+m_sdMenu->MenuCode+"'";
          m_RsNavpic->Close();
          m_RsNavpic->Open(SqlStr,"");
          if(m_RsNavpic->RecordCount>0)
          {
            m_RsNavpic->MoveFirst();
            while(m_RsNavpic->Eof==0)
            {
              m_sdMenu->Navpic->NavpicModule=m_sdMenu->MenuCode;
              m_sdMenu->Navpic->NavpicCode=m_RsNavpic->FieldByName("NavpicCode");
              m_sdMenu->Navpic->NavpicCaption=m_RsNavpic->FieldByName("NavpicCaption");
              m_sdMenu->Navpic->NavpicFormName=m_RsNavpic->FieldByName("NavpicFormName");
              m_sdMenu->Navpic->NavpicPath=m_RsNavpic->FieldByName("NavpicPath");
              m_sdMenu->Navpic->NavpicLeft=m_RsNavpic->FieldByName("NavpicLeft").ToInt();
              m_sdMenu->Navpic->NavpicTop=m_RsNavpic->FieldByName("NavpicTop").ToInt();
              m_sdMenu->Navpic->NavpicHeight=m_RsNavpic->FieldByName("NavpicHeight").ToInt();
              m_sdMenu->Navpic->NavpicWidth=m_RsNavpic->FieldByName("NavpicWidth").ToInt();
              m_sdMenu->Navpic->NavpicLib=m_RsNavpic->FieldByName("NavpicLib").ToInt();
              m_sdMenu->Navpic->AddNavpic();
              m_RsNavpic->MoveNext();
            }
            SqlStr="Select * from sdNavArrow where NavArrowModule='"+m_sdMenu->MenuCode+"' order by convert(int,NavArrowCode)";
            m_RsNavpic->Close();
            m_RsNavpic->Open(WideString(SqlStr),WideString(""));
            m_RsNavpic->MoveFirst();
            while(m_RsNavpic->Eof==0)
            {
              m_sdMenu->NavArrow->NavArrowModule=m_sdMenu->MenuCode;
              m_sdMenu->NavArrow->NavArrowCode=m_RsNavpic->FieldByName("NavArrowCode");
              m_sdMenu->NavArrow->NavArrowStyle=m_RsNavpic->FieldByName("NavArrowStyle").ToInt();
              m_sdMenu->NavArrow->NavArrowDir=m_RsNavpic->FieldByName("NavArrowDir").ToInt();
              m_sdMenu->NavArrow->NavArrow3D=m_RsNavpic->FieldByName("NavArrow3D").ToInt();
              m_sdMenu->NavArrow->NavArrowX1=m_RsNavpic->FieldByName("NavArrowX1").ToInt();
              m_sdMenu->NavArrow->NavArrowY1=m_RsNavpic->FieldByName("NavArrowY1").ToInt();
              m_sdMenu->NavArrow->NavArrowX2=m_RsNavpic->FieldByName("NavArrowX2").ToInt();
              m_sdMenu->NavArrow->NavArrowY2=m_RsNavpic->FieldByName("NavArrowY2").ToInt();
              m_sdMenu->NavArrow->NavArrowAngle=m_RsNavpic->FieldByName("NavArrowAngle").ToInt();
              m_sdMenu->NavArrow->NavArrowColor=m_RsNavpic->FieldByName("NavArrowColor");
              m_sdMenu->NavArrow->AddNavArrow();
              m_RsNavpic->MoveNext();
            }
          }
        }
        if(m_sdRight->FieldValue[fiModuleLevel].ToInt()==2)
        {
          m_sdMenu->SubMenu->SubMenuCode=m_sdRight->FieldValue[fiModuleCode];
          m_sdMenu->SubMenu->SubMenuUpperCode=m_sdRight->FieldValue[fiModuleUpperCode];
          m_sdMenu->SubMenu->SubMenuCaption=m_sdRight->FieldValue[fiModuleCaption];
          m_sdMenu->SubMenu->SubMenuDesc=m_sdRight->FieldValue[fiModuleDesc];
          m_sdMenu->SubMenu->SubMenuNo=m_sdRight->FieldValue[fiModuleNo].ToInt();
          m_sdMenu->SubMenu->SubMenuPicName=m_sdRight->FieldValue[fiModulePicName];
          m_sdMenu->SubMenu->SubMenuSelPicName=m_sdRight->FieldValue[fiModuleSelPicName];
          m_sdMenu->SubMenu->AddSubMenu();
        }
        if(m_sdRight->FieldValue[fiModuleLevel].ToInt()==3)
        {
          m_sdMenu->SubMenu->MenuItemCode=m_sdRight->FieldValue[fiModuleCode];
          m_sdMenu->SubMenu->MenuItemUpperCode=m_sdRight->FieldValue[fiModuleUpperCode];
          m_sdMenu->SubMenu->MenuItemDesc=m_sdRight->FieldValue[fiModuleDesc];
          m_sdMenu->SubMenu->MenuItemCaption=m_sdRight->FieldValue[fiModuleCaption];
          m_sdMenu->SubMenu->MenuItemNo=m_sdRight->FieldValue[fiModuleNo].ToInt();
          m_sdMenu->SubMenu->MenuItemRightLevel=m_sdRight->FieldValue[fiModuleRight].ToInt();
          m_sdMenu->SubMenu->MenuItemFormName=m_sdRight->FieldValue[fiModuleFormName];
          m_sdMenu->SubMenu->MenuItemLib=m_sdRight->FieldValue[fiModuleLib].ToInt();
          m_sdMenu->SubMenu->AddMenuItem();
        }
        Application->ProcessMessages();
        m_sdRight->MoveNext();
       }
      if(m_sdMenu->MenuCount>0)
        m_sdMenu->ShowNextPageMenu();
      FInitOK=true;
      delete m_sdRight;
      delete m_RsNavpic;
    }
    catch(Exception &e)
    {
      delete m_sdRight;
      delete m_RsNavpic;
      Application->MessageBox(e.Message.c_str(),"错误",MB_ICONERROR);
      PostMessage(Application->Handle,WM_QUIT,0,0);
    }
  }
  __finally
  {
    EndWaitForm();
  }
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::LoginMessage(TMessage Message)
{
  stbMain->Panels->Items[1]->Text="在线用户:"+AnsiString(Message.LParam);
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::DelFormMessage(TMessage Message)
{
  if(m_sdTask!=NULL)
    m_sdTask->DeleteForm(AnsiString(Message.LParam));
}
//---------------------------------------------------------------------------
void __fastcall TfrmMainForm::ShowFormMessage(TMessage Message)
{
  m_sdMenu->ShowForm(AnsiString(Message.LParam));
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainForm::RefreshResultSet(TMessage Message)
{
  if(Message.WParam==euSdGoods)
  {
    try
    {
      StartWaitForm("正在刷新物料数据集,请稍候...");
      g_sdRsGoods->Close();
      g_sdRsGoods->Open(WideString("select * from sdgoods order by goodscode"),WideString("GoodsCode"));
    }
    __finally
    {
      EndWaitForm();
    }
  }
  else if(Message.WParam==euSdGlkm)
  {
    try
    {
      StartWaitForm("正在刷新科目数据集,请稍候...");
      g_sdRsGlkm->Close();
      g_sdRsGlkm->Open(WideString("select * from sdglkm order by glkmtype,glkmcode"),WideString("GlkmCode"));
    }
    __finally
    {
      EndWaitForm();
    }
  }
}
void __fastcall TfrmMainForm::FormDestroy(TObject *Sender)
{
  if(g_sdRsGoods!=NULL)
    delete g_sdRsGoods;
  if(g_sdRsGlkm!=NULL)
    delete g_sdRsGlkm;
  if(g_IComServer!=NULL)
    delete g_IComServer;
  if(g_IComResultSet!=NULL)
    delete g_IComResultSet;
  if(m_NavBit!=NULL)
    delete m_NavBit;
  if(g_sdModuleForm!=NULL)
    delete g_sdModuleForm;
  if(m_sdMenu!=NULL)
    delete m_sdMenu;
  ExitProcess(0);
}
//---------------------------------------------------------------------------

void __fastcall TfrmMainForm::FormCloseQuery(TObject *Sender,
      bool &CanClose)
{
  if(m_sdTask!=NULL)
  {
    delete m_sdTask;
    m_sdTask=NULL;
  }
  CanClose=true;
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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