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

📄 rptmgr.cpp

📁 速达开源ERP系统
💻 CPP
字号:
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "RptMgr.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "RecBaseForm"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "DateEdit"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmReport *frmReport;
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmReport::GetFieldValue(int FieldIndex)
{
    WideString S;
    S  = ReadFieldValue(comServer,FieldIndex);
    return(S);
}
//---------------------------------------------------------------------------

void __fastcall TfrmReport::ClearControl(bool BringToNext)
{
    if(!BringToNext)
    {
       seReportCode->Text="";
       seReportDesc->Text="";
       scReportTemplet->ItemIndex=-1;
       scReportType->ItemIndex=-1;
       seReportCaption->Text="";
       lbReportTimes->Caption="";
       lbReportNearNo->Caption="";
       seReportName->Text="";
       scReportFile->ItemIndex=-1;
       seReportUser->LocateKey(g_sdUserCode);
       lbReportSysDate->Caption="";
     }
}
//---------------------------------------------------------------------------

void __fastcall TfrmReport::GetDataFromComObject()
{
       seReportCode->Text=GetFieldValue(fiReportCode);
       seReportDesc->Text=GetFieldValue(fiReportDesc);
       scReportTemplet->LocateKey(GetFieldValue(fiReportTemplet));
       scReportType->LocateKey(GetFieldValue(fiReportType));
       seReportCaption->Text=GetFieldValue(fiReportCaption);
       lbReportTimes->Caption=GetFieldValue(fiReportTimes);
       lbReportNearNo->Caption=GetFieldValue(fiReportNearNo);
       seReportName->Text=GetFieldValue(fiReportName);
       scReportFile->LocateKey(GetFieldValue(fiReportFile));
       seReportUser->LocateKey(GetFieldValue(fiReportUser));
       lbReportSysDate->Caption=GetFieldValue(fiReportSysDate);
       sgReport->LocateGrid(1,seReportCode->Text);

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

void __fastcall TfrmReport::SendDataToComObject()
{
    WriteFieldValue(comServer,fiReportCode,WideString(seReportCode->Text));
    WriteFieldValue(comServer,fiReportName,WideString(seReportName->Text));
    WriteFieldValue(comServer,fiReportCaption,WideString(seReportCaption->Text));
    WriteFieldValue(comServer,fiReportTemplet,WideString(scReportTemplet->ItemData[cbItem2]));
    WriteFieldValue(comServer,fiReportType,WideString(scReportType->ItemData[cbItem2]));
    WriteFieldValue(comServer,fiReportFile,WideString(scReportFile->ItemData[cbItem1]));
    WriteFieldValue(comServer,fiReportUser,WideString(g_sdUserCode/*lbReportUser->Caption*/));
    WriteFieldValue(comServer,fiReportDesc,WideString(seReportDesc->Text));
}
//---------------------------------------------------------------------------

void __fastcall TfrmReport::WaitUserInput()
{
   if(seReportCode->Enabled)
      seReportCode->SetFocus();
}
//---------------------------------------------------------------------------

AnsiString __fastcall TfrmReport::GetDataToGrid()
{
    AnsiString  s;
    s = "\t" + GetFieldValue(fiReportCode)+
        "\t" + GetFieldValue(fiReportName)+
        "\t" + GetFieldValue(fiReportTemplet)+
        "\t" + GetFieldValue(fiReportFile);
    return(s);
}
//---------------------------------------------------------------------------

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

    ItemStr =   GetDataToGrid();
    // 新增
    if (mAction ==  0)
    {
        sgReport->AddItem(ItemStr);
        sgReport->Row=sgReport->RowCount-1;
    }
    // 修改
    else if(mAction ==  1)
   {
     sgReport->ChangeItem(ItemStr,sgReport->Row);
    }
    // 删除
    else if(mAction ==  2)
    {
        sgReport->RemoveItem(sgReport->Row);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::FillGridWithData()
{
    AnsiString ItemStr;

    comServer->MoveFirst();
    sgReport->RowCount = 1;
    while (comServer->Eof == 0)
    {
        ItemStr =GetDataToGrid();
        sgReport->AddItem(ItemStr);
        comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::InitEditControl()
{
    ClientGroup->AddComponent(2,true,true,false, sgReport,sgReport->Name);
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,false,true,false, seReportCode,seReportCode->Name);
    FillComboBox(scReportTemplet,"select RptTemplet=RptTemplethCode+space(18-len(RptTemplethCode))+'|'+RptTemplethName,RptTemplethCode from sdRptTempleth","RptTemplet","RptTemplethCode");
    FillComboBox(scReportFile,"select RptFileName from sdRptFile order by RptFileName","RptFileName");
    FillComboBox(scReportType,"select RptType=RptTypeCode+space(18-len(RptTypeCode))+'|'+RptTypeName,RptTypeCode from sdRptType where RptTypeEnd=1 order by RptTypeCode","RptType","RptTypeCode");
    FillEdit(seReportUser,"select UserCode,UserName from SdUser","UserName","UserCode");
}
//---------------------------------------------------------------------------

__fastcall TfrmReport::TfrmReport(TComponent* Owner)
    : TRecBaseForm(Owner,euSdReport,"")
{
 AutoCtl=seReportCode;
}
//---------------------------------------------------------------------------
void __fastcall TfrmReport::FormShow(TObject *Sender)
{
    FillGridWithData();
    ClearControl(false);
    comServer->MoveFirst();
    GetDataFromComObject();
}

//---------------------------------------------------------------------------
void __fastcall TfrmReport::sgReportClick(TObject *Sender)
{
    if (sgReport->Row > 0)
       comServer->LocateByKey(WideString(sgReport->TextMatrix[sgReport->Row][1]));
    if (!comServer->Eof)
       GetDataFromComObject();
}
//---------------------------------------------------------------------------
void  __fastcall TfrmReport::RefreshUpdateData(int MsgSrc,int MsgType)
{
    switch(MsgSrc)
    {
     case euSdRptTempleth:
     if(ShowUpdateMessage(MsgSrc,MsgType))
     {
      KeyCode=scReportTemplet->ItemData[1];
      FillComboBox(scReportTemplet,"select RptTemplet=RptTemplethCode+space(18-len(RptTemplethCode))+'|'+RptTemplethName,RptTemplethCode from sdRptTempleth","RptTemplet","RptTemplethCode");
      scReportTemplet->LocateKey(KeyCode);
     }
     break;
     case euSdRptFile:
     if(ShowUpdateMessage(MsgSrc,MsgType))
     {
      KeyCode=scReportFile->ItemData[0];
      FillComboBox(scReportFile,"select RptFileName from sdRptFile order by RptFileName","RptFileName");
      scReportFile->LocateKey(KeyCode);
      }
      break;
     case euSdRptType:
     if(ShowUpdateMessage(MsgSrc,MsgType))
     {
      KeyCode=scReportType->ItemData[1];
      FillComboBox(scReportType,"select RptType=RptTypeCode+space(18-len(RptTypeCode))+'|'+RptTypeName,RptTypeCode from sdRptType where RptTypeEnd=1 order by RptTypeCode","RptType","RptTypeCode");
      scReportType->LocateKey(KeyCode);
      }
      break;
    }
}
void __fastcall TfrmReport::seReportCodeKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
     if(Key==13 && CurrentState==caNormal)
    {
      comServer->LocateByKey(WideString(seReportCode->Text));
      GetDataFromComObject();
    }

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

⌨️ 快捷键说明

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