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

📄 rpttempleth.cpp

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

#include <vcl.h>
#pragma hdrstop

#include "RptTempleth.h"
#include "RptGroup.h"
#include "RptSort.h"
#include "TestQuery.h"
#include "VFieldList.h"
#include "RptFilter.h"
#include "TempletExprEdit.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "GenBaseForm"
#pragma link "fpanel"
#pragma link "SDComboBox"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma resource "*.dfm"
TfrmRptTempleth *frmRptTempleth;
//---------------------------------------------------------------------------
__fastcall TfrmRptTempleth::TfrmRptTempleth(TComponent* Owner)
        : TGenBaseForm(Owner,euSdRptTempleth,"")
{
  AutoCtl=seRptTemplethCode;
}

void __fastcall TfrmRptTempleth::InitEditControl()
{
    ClientGroup->AddComponent(1,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,false,false,true,FloatPanel2,FloatPanel2->Name);
    ClientGroup->AddComponent(1,false,true,false,seRptTemplethCode,seRptTemplethCode->Name);
    FillComboBox(scRptTemplethView,"SELECT ViewNameCode=ViewName+Space(18-len(ViewName))+'|'+ViewDesc,ViewName FROM SDView order by Viewname","ViewNameCode","ViewName");
    FillComboBox(scRptTemplethClassID,"SELECT ClassName=ClassID+Space(18-len(ClassID))+'|'+ClassName,CLASSID FROM SDCLASS","ClassName","CLASSID");
    FillEdit(seRptTemplethUser,"select UserCode,UserName from SdUser","UserName","UserCode");
}

void __fastcall TfrmRptTempleth::ClearControl(int Section,bool BringToNext)
{
    if (Section==1)
    {
       if (! BringToNext)
       {
         seRptTemplethCode->Text="";
         seRptTemplethName->Text="";
         memRptTemplethDesc->Text="";
         scRptTemplethClassID->ItemIndex=-1;
         lbRptTemplethSysDate->Caption=g_sdCurDate;
         seRptTemplethUser->LocateKey(g_sdUserCode);
         scRptTemplethView->ItemIndex=-1;
       }
       sgRptTempleth->RowCount=1;
       if(seRptTemplethCode->Enabled==true && FloatPanel1->Enabled==true)
         seRptTemplethCode->SetFocus();
    }
    else if (Section==2)
    {
        if (!BringToNext)
        {
//            FillComboBox(scRptTempletdField,"select VFieldName,VFieldDesc,VFieldType,VFieldExpr,VFieldFlg from sdVField where VFieldView='"+scRptTemplethView->ItemData[cbItem2]+"' order by VFieldName","VFieldName","VFieldDesc","VFieldType","VFieldExpr","VFieldFlg");
            seRptTempletdNo->Text=AnsiString(comServer->ItemCount+1);
            seRptTempletdName->ItemIndex=-1;
            seRptTempletdDesc->Text="";
            scRptTempletdType->ItemIndex=0;
            seRptTempletdWidth->Text="18";
            seRptTempletdScale->Text="0";

            seRptTempletdField->Text="";
            memRptTempletdExpr->Text ="";
            chkRptTempletdFlg->Checked=false;
//            if(scRptTempletdField->Enabled&&FloatPanel2->Visible==true)
//              scRptTempletdField->SetFocus();
        }
    }

}
void __fastcall TfrmRptTempleth::GetDataFromComObject(int Section)
{
    AnsiString mStr;
    if(Section==1){
       seRptTemplethCode->Text=GetHeadValue(fiRptTemplethCode);
       seRptTemplethName->Text=GetHeadValue(fiRptTemplethName);
       memRptTemplethDesc->Text=GetHeadValue(fiRptTemplethDesc);
       scRptTemplethClassID->LocateKey(GetHeadValue(fiRptTemplethClassID));
       lbRptTemplethSysDate->Caption=GetHeadValue(fiRptTemplethSysDate);
       seRptTemplethUser->LocateKey(GetHeadValue(fiRptTemplethUser));
       scRptTemplethView->LocateKey(GetHeadValue(fiRptTemplethView));

    }
    else{
       seRptTempletdNo->Text=GetDetailValue(fiRptTempletdNo);
       seRptTempletdName->Text=GetDetailValue(fiRptTempletdName);
       seRptTempletdDesc->Text=GetDetailValue(fiRptTempletdDesc);
       seRptTempletdWidth->Text=GetDetailValue(fiRptTempletdWidth);
       seRptTempletdScale->Text=GetDetailValue(fiRptTempletdScale);
       seRptTempletdField->Text=GetDetailValue(fiRptTempletdField);
       chkRptTempletdFlg->Checked=GetDetailValue(fiRptTempletdFlg)=="1";
       memRptTempletdExpr->Text=GetDetailValue(fiRptTempletdExpr);
       scRptTempletdType->LocateKey(GetDetailValue(fiRptTempletdType));
     }
}

void __fastcall TfrmRptTempleth::SendDataToComObject(int Section)
{
        if (Section==1){
          SetHeadValue(fiRptTemplethCode,seRptTemplethCode->Text);
          SetHeadValue(fiRptTemplethView,scRptTemplethView->ItemData[1]);
          SetHeadValue(fiRptTemplethName,seRptTemplethName->Text );
          SetHeadValue(fiRptTemplethDesc,memRptTemplethDesc->Text);
          SetHeadValue(fiRptTemplethClassID,scRptTemplethClassID->ItemData[1]);
          SetHeadValue(fiRptTemplethUser,g_sdUserCode/*lbRptTemplethUser->Caption*/);
        }
        else{
          SetDetailValue(fiRptTempletdCode,seRptTemplethCode->Text);
          SetDetailValue(fiRptTempletdNo,seRptTempletdNo->Text);
          SetDetailValue(fiRptTempletdField,seRptTempletdField->Text);
          SetDetailValue(fiRptTempletdName,seRptTempletdName->Text);
          SetDetailValue(fiRptTempletdDesc,seRptTempletdDesc->Text);
          SetDetailValue(fiRptTempletdType,scRptTempletdType->ItemData[1]);
          SetDetailValue(fiRptTempletdWidth,seRptTempletdWidth->Text);
          SetDetailValue(fiRptTempletdScale,seRptTempletdScale->Text);
          SetDetailValue(fiRptTempletdFlg,chkRptTempletdFlg->Checked ? "1":"0");
          SetDetailValue(fiRptTempletdExpr,memRptTempletdExpr->Text);
          CheckGroupField(seRptTempletdField->Text,scRptTempletdType->ItemData[1]);
        }
}

void __fastcall TfrmRptTempleth::WaitUserInput(int Section)
{
        if (Section ==1)
         {
          if(seRptTemplethCode->Enabled)
           seRptTemplethCode->SetFocus();
          }
        else
        {
           sgRptTempleth->Visible=false;
           sgRptTempleth->Align=alNone;
           FloatPanel2->Visible=true;
           FloatPanel2->Align=alClient;
           if(CurrentState==caAddDetail||CurrentState==caAddBill)
             btnOK->Enabled=true;
           else
            btnOK->Enabled=false;
          seRptTempletdNo->SetFocus();
          BtnExprEdit->Enabled=true;
        }
          BtnPanel->Enabled=false;
}

void __fastcall TfrmRptTempleth::RefreshGridData(int mAction)
{
        AnsiString ItemStr;
        int i;
        switch(mAction){
        case 0:
             ItemStr="\t"+GetDetailValue(fiRptTempletdNo)+"\t"+GetDetailValue(fiRptTempletdField)+"\t"+
                GetDetailValue(fiRptTempletdName)+"\t"+GetDetailValue(fiRptTempletdType)+"\t"+GetDetailValue(fiRptTempletdWidth)+"\t"+
                GetDetailValue(fiRptTempletdScale)+"\t"+((GetDetailValue(fiRptTempletdFlg)=="1")?AnsiString("*"):AnsiString(""));
             sgRptTempleth->AddItem(ItemStr);
             break;
        case 1:
             i=sgRptTempleth->Row;
             ItemStr="\t"+GetDetailValue(fiRptTempletdNo)+"\t"+GetDetailValue(fiRptTempletdField)+"\t"+
                GetDetailValue(fiRptTempletdName)+"\t"+GetDetailValue(fiRptTempletdType)+"\t"+GetDetailValue(fiRptTempletdWidth)+"\t"+
                GetDetailValue(fiRptTempletdScale)+"\t"+((GetDetailValue(fiRptTempletdFlg)=="1")?AnsiString("*"):AnsiString(""));
             sgRptTempleth->RemoveItem(i);
             sgRptTempleth->AddItem(ItemStr,i);
             break;

        case 2:
            sgRptTempleth->RemoveItem(sgRptTempleth->Row);
        }
}

void __fastcall TfrmRptTempleth::DisplayBill()
{
        GetDataFromComObject(1);
        FillGridWithData();
}

void __fastcall TfrmRptTempleth::GetBill(AnsiString BillID)
{

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

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

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


AnsiString __fastcall TfrmRptTempleth::GetHeadValue(int Index)
{
        return ReadFieldValue(comServer,Index);
}

AnsiString __fastcall TfrmRptTempleth::GetDetailValue(int Index)
{
        return ReadItemValue(comServer,Index);
}

void __fastcall TfrmRptTempleth::SetHeadValue(int Index,AnsiString Value)
{
       WriteFieldValue(comServer,Index,Value);
}

void __fastcall TfrmRptTempleth::SetDetailValue(int Index,AnsiString Value)
{
       WriteItemValue(comServer,Index,Value);
}
//---------------------------------------------------------------------------


void __fastcall TfrmRptTempleth::btnOKClick(TObject *Sender)
{
    if (CurrentState==caAddDetail||CurrentState==caAddBill)
    {
     try
     {
      if(DetailState==caAddDetail)
        comServer->AddItem();
      SendDataToComObject(2);
      comServer->AddToObject();
      ClearControl(2,false);
      }
     catch(Exception &e)
       {
        throw Exception(e.Message);
       }
    }
    else
      ChangeToBrowseState(true);
}

void __fastcall TfrmRptTempleth::ChangeToBrowseState(bool Browse)
{
       FloatPanel2->Visible=false;
       FloatPanel2->Align=alNone;
       btnOK->Enabled=false;
       btnCancel->Enabled=false;
       sgRptTempleth->Visible =true;
       sgRptTempleth->Align=alClient;
       BtnExprEdit->Enabled=false;
       if(CurrentState==caAddDetail)
          BtnPanel->Enabled=false;
       else
          BtnPanel->Enabled=true;
}
//---------------------------------------------------------------------------

void __fastcall TfrmRptTempleth::btnCancelClick(TObject *Sender)
{
        CancelChange();
}
//---------------------------------------------------------------------------

void __fastcall TfrmRptTempleth::FormCreate(TObject *Sender)
{
        FormIniFile="D:\Test.Ini";
        SetGridWidth(Name,sgRptTempleth,FormIniFile);

        scRptTempletdType->ClearAll();
        scRptTempletdType->AddItems("C-字符型","C");
        scRptTempletdType->AddItems("F-浮点型","F");
        scRptTempletdType->AddItems("L-长整型","L");
        scRptTempletdType->AddItems("N-整型","N");
        scRptTempletdType->AddItems("S-短整型","S");
        scRptTempletdType->AddItems("D-日期型(字符)","D");
        scRptTempletdType->AddItems("B-布尔型","B");
        scRptTempletdType->AddItems("M-文本型","M");
        scRptTempletdType->AddItems("T-时间型","T");

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

void __fastcall TfrmRptTempleth::FormClose(TObject *Sender,
      TCloseAction &Action)
{
        TGenBaseForm::FormClose(Sender,Action);
        WriteGridWidth(Name,sgRptTempleth,FormIniFile);
}

void __fastcall TfrmRptTempleth::FormShow(TObject *Sender)
{
        TGenBaseForm::MoveToFirst();
}
//---------------------------------------------------------------------------



void __fastcall TfrmRptTempleth::sgRptTemplethDblClick(TObject *Sender)
{
         sgRptTempleth->Visible=false;
         sgRptTempleth->Align = alNone;
         FloatPanel2->Visible=true;
         FloatPanel2->Align=alClient;
         btnOK->Enabled=false;
         btnCancel->Enabled=true;

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






void __fastcall TfrmRptTempleth::scRptTempletdTypeChange(TObject *Sender)
{
    switch(scRptTempletdType->ItemIndex)
    {
      case 0:
        seRptTempletdWidth->Enabled=true;
        seRptTempletdWidth->Text="18";
        seRptTempletdScale->Enabled=false;
        seRptTempletdScale->Text="0";
        break;
      case 1:
        seRptTempletdWidth->Enabled=true;
        seRptTempletdWidth->Text="12";
        seRptTempletdScale->Enabled=true;
        seRptTempletdScale->Text="0";
        break;
      case 2:
        seRptTempletdWidth->Enabled=false;
        seRptTempletdWidth->Text="10";

⌨️ 快捷键说明

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