wageitem.cpp

来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 252 行

CPP
252
字号
//---------------------------------------------------------------------------

#include <vcl.h>
#pragma hdrstop

#include "WageItem.h"
#include "WageItemF.h"
//#include "FadmF.h"

//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "RecBaseForm"
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma resource "*.dfm"
TfrmWageItem *frmWageItem;
//---------------------------------------------------------------------------
__fastcall TfrmWageItem::TfrmWageItem(TComponent* Owner, HWND chWnd, AnsiString MidCode,AnsiString WhereStr)
        : TRecBaseForm(Owner,chWnd,MidCode,WhereStr)
{
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItem::InitEditControl()
{
    ClientGroup->AddComponent(2,false,false,true, FloatPanel1,FloatPanel1->Name);
    ClientGroup->AddComponent(2,true,true,false, sgWageItem,sgWageItem->Name);
    ClientGroup->AddComponent(2,false,false,false, seWageItemCode,seWageItemCode->Name);
//    ClientGroup->AddComponent(2,false,false,false, seWageItemNO,seWageItemNO->Name);
//    ClientGroup->AddComponent(2,true,false,true,seWageItemFormula,seWageItemFormula->Name);
    ClientGroup->AddComponent(2,false,false,true,seWageItemFormula,seWageItemFormula->Name);
//    scWageItemType->AddItems("1-固定项目",1);
//    scWageItemType->AddItems("2-客户定义项目",2);
    scWageItemInPut->AddItems("1-输入项目",1);
    scWageItemInPut->AddItems("2-计算项目",2);
//    scWageItemType->AddItems("减项项目",3);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItem::ClearControl(bool BringToNext)
{
     if(!BringToNext)
    {
      seWageItemCode->Text="";
      seWageItemNO->Text="";
      scWageItemInPut->ItemIndex=-1;
      seWageItemType->Text="";
      seWageItemFormula->Text="";
      seWageItemFrName->Text="";
      seWageItemName->Text   ="";
    }
}

//---------------------------------------------------------------------------
void __fastcall TfrmWageItem::GetDataFromComObject()
{
    seWageItemCode->Text=GetFieldValue("WageItemCode");
    seWageItemNO->Text=GetFieldValue("WageItemNO");
    sgWageItem->LocateGrid(1,seWageItemCode->Text);
    scWageItemInPut->LocateKey(GetFieldValue("WageItemInPut"));
    scWageItemInPut->Text=scWageItemInPut->ItemData[0];
    seWageItemType->Text=GetFieldValue("WageItemType");
    seWageItemFormula->Text=GetFieldValue("WageItemFormula");
    seWageItemFrName->Text=GetFieldValue("WageItemFrName");
    seWageItemName->Text=GetFieldValue("WageItemName");

}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItem::SendDataToComObject()
{
    if(scWageItemInPut->Text.IsEmpty())
         throw(Exception("项目类型不能为空!"));
    if(seWageItemNO->Text.IsEmpty())
         throw(Exception("项目序号不能为空!"));
    SetFieldValue("WageItemCode",seWageItemCode->Text);
    SetFieldValue("WageItemNO",seWageItemNO->Text);
    SetFieldValue("WageItemInPut",scWageItemInPut->ItemData[1]);
    SetFieldValue("WageItemType",seWageItemType->Text);
    SetFieldValue("WageItemFormula",seWageItemFormula->Text);
    SetFieldValue("WageItemFrName",seWageItemFrName->Text);
    SetFieldValue("WageItemName",seWageItemName->Text);

}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItem::WaitUserInput()
{
//    seWageItemCode->SetFocus();
    seWageItemName->SetFocus();
}
//---------------------------------------------------------------------------
AnsiString __fastcall TfrmWageItem::GetDataToGrid()
{
    AnsiString  s;
    scWageItemInPut->LocateKey(GetFieldValue("WageItemInPut"));
    s = "\t" + GetFieldValue("WageItemCode")+
        "\t" + GetFieldValue("WageItemName")+
        "\t" + scWageItemInPut->ItemData[0];
    return(s);
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItem::RefreshGridData(int mAction)
{
    AnsiString ItemStr;
    ItemStr = GetDataToGrid();
    if (mAction ==  0)   //Add
    {
        sgWageItem->AddItem(ItemStr);
    }
    else if(mAction ==  1)   //Modify
    {
        int i   =   sgWageItem->Row;
        sgWageItem->RemoveItem(i);
        sgWageItem->AddItem(ItemStr,i);
    }
    else if(mAction ==  2)      //Delete
    {
        sgWageItem->RemoveItem(sgWageItem->Row);
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItem::FillGridWithData()
{
    AnsiString ItemStr;
    comServer->MoveFirst();
    sgWageItem->RowCount    =   1;
    while (comServer->Eof   ==  0)
    {
        ItemStr =  GetDataToGrid();
        sgWageItem->AddItem(ItemStr);
        comServer->MoveNext();
    }
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItem::FormShow(TObject *Sender)
{
    FillGridWithData();
    comServer->MoveFirst();
    GetDataFromComObject();
}
//---------------------------------------------------------------------------

void __fastcall TfrmWageItem::scWageItemTypeClick(TObject *Sender)
{
//     seWageItemFormula->Enabled=true;

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

void __fastcall TfrmWageItem::muEditDetailClick(TObject *Sender)
{
     int i;
     TRecBaseForm::muEditDetailClick(Sender);
//     seWageItemFormula->Enabled=true;
/*     if(scWageItemType->Text=="折旧额")
     {
       seWageItemVFormula->Enabled=true;
       seWageItemRFormula->Enabled=false;
       seWageItemRFormula->Text="";
     }
     else
     {
       seWageItemRFormula->Enabled=true;
       seWageItemVFormula->Enabled=false;
       seWageItemVFormula->Text="";
     }
*/
}
//---------------------------------------------------------------------------

void __fastcall TfrmWageItem::seWageItemFrNameButtonClick(TObject *Sender)
{
      TfrmWageItemF *TempWageItemF= new TfrmWageItemF(this,seWageItemFormula->Text,seWageItemFrName->Text);
      TempWageItemF->GroupBox1->Caption="工资项目公式";
      TempWageItemF->Caption="工资项目公式";
      TempWageItemF->ShowModal();
      if(TempWageItemF->WageItemFSure)
      {
        seWageItemFrName->Text=TempWageItemF->WageItemFResultName;
        seWageItemFormula->Text=TempWageItemF->WageItemFResultCode;
      }
      delete  TempWageItemF;
}
//---------------------------------------------------------------------------

void __fastcall TfrmWageItem::seWageItemCodeKeyDown(TObject *Sender, WORD &Key,
      TShiftState Shift)
{
 /*   if(Key==13 && CurrentState==caNormal)
    {
      comServer->LocateByKey(seWageItemCode->Text);
      GetDataFromComObject();
    }
 */
}
//---------------------------------------------------------------------------
void __fastcall TfrmWageItem::sgWageItemClick(TObject *Sender)
{
     if (sgWageItem->Row > 0)
         comServer->LocateByKey(sgWageItem->TextMatrix[sgWageItem->Row][1]);
    if (!comServer->Eof)
         GetDataFromComObject();
}
//---------------------------------------------------------------------------


void __fastcall TfrmWageItem::muAddDetailClick(TObject *Sender)
{
   TRecBaseForm::AddDetailRecord();
    TComResultSet *RsQuery;
    AnsiString ItemStr,sSql;
    AnsiString WageItemCoden;
    int Qcount;
//    sSql="select wageitemcode from kswageitem order by wageitemcode";  //取Head查询的SQL语句
    sSql="select wageitemcode from kswageitem ";  //取Head查询的SQL语句
    RsQuery=new  TComResultSet(Handle,g_ClientHandle);
    RsQuery->Open(sSql,"");
    Qcount = RsQuery->RecordCount ;
    if (Qcount >= 30)
        throw(Exception("工资项目不能超过30项!"));
    RsQuery->MoveFirst();
    WageItemCoden="" ;
    while(RsQuery->Eof == 0)
    {
       WageItemCoden=WageItemCoden + RsQuery->FieldByName("WageItemCode")+",";
       RsQuery->MoveNext();
    }
    RsQuery->MoveFirst();
    itemi=0;
    while(Qcount >= itemi )
    {
       itemi++;
       ItemStr=  "WageItem" + IntToStr(itemi)+',';
       if (WageItemCoden.Pos(ItemStr)==0)
          break;
    }
    RsQuery->Close();
    delete RsQuery;
    seWageItemCode->Text =  "WageItem"+IntToStr(itemi);
//    scWageItemType->Text = scWageItemType->ItemData[2] ;
    seWageItemType->Text = "2" ;
    seWageItemCode->Enabled = false;

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

void __fastcall TfrmWageItem::muSaveClick(TObject *Sender)
{
   TRecBaseForm::muSaveClick(Sender);
}
//---------------------------------------------------------------------------

⌨️ 快捷键说明

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