sueval.cpp
来自「一个以前收集的基于C/S架构的ERP客户端源代码」· C++ 代码 · 共 1,041 行 · 第 1/3 页
CPP
1,041 行
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma link "RecBaseForm"
#pragma hdrstop
#include "Sueval.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma link "fpanel"
#pragma link "SDEdit"
#pragma link "SDGrid"
#pragma link "SDComboBox"
#pragma link "TB97"
#pragma link "SDTreeView"
#pragma resource "*.dfm"
TfrmSueval *frmSueval;
//---------------------------------------------------------------------------
__fastcall TfrmSueval::TfrmSueval(TComponent* Owner, HWND chWnd, AnsiString ClassCode,AnsiString WhereStr)
: TRecBaseForm(Owner,chWnd,ClassCode,WhereStr)
{
RsTemp1 = new TComResultSet(Handle,g_ClientHandle);
RsTemp2 = new TComResultSet(Handle,g_ClientHandle);
RsTemp3 = new TComResultSet(Handle,g_ClientHandle);
RsTemp4 = new TComResultSet(Handle,g_ClientHandle);
comServer1 = new TComServer(Handle,g_ClientHandle,"1040602");
Bt_Save->Enabled=false ;
BitBtn_Left ->Enabled = true;
BitBtnRight ->Enabled = true;
BitBtn_AllRight ->Enabled = true;
BitBtn_AllLeft ->Enabled = true;
BitBtn1_sup1 ->Enabled = true;
BitBtn1_sup2 ->Enabled = true;
BitBtn1_sup3 ->Enabled = true;
BitBtn_clear ->Enabled = true;
Grid_pf ->ReadOnly = false;
Grid_supply2 ->ReadOnly = false;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSueval::ClearControl(bool BringToNext)
{
}
void __fastcall TfrmSueval::GetDataFromComObject()
{
}
void __fastcall TfrmSueval::SendDataToComObject()
{
}
void __fastcall TfrmSueval::WaitUserInput()
{
}
AnsiString __fastcall TfrmSueval::GetDataToGrid()
{
AnsiString s;
return(s);
}
void __fastcall TfrmSueval::RefreshGridData(int mAction)
{
}
void __fastcall TfrmSueval::FillGridWithData()
{
FillTreeWithPtype();
}
void __fastcall TfrmSueval::InitEditControl() // User declarations
{
//在此增加其他构建的控制语句...
}
void __fastcall TfrmSueval::RefreshUpdateData(int MsgSrc,int MsgType)
{
//在这里添加相应消息的语句
}
void __fastcall TfrmSueval::FormShow(TObject *Sender)
{
FillGridWithData();
FillGridWithData_SupplyArea();
ClearControl(false);
comServer->MoveFirst();
}
void __fastcall TfrmSueval::tvTreeChange(TObject *Sender, TTreeNode *Node)
{
if(Node == tvTree->Items->Item[0])
return;
if(tvTree->Selected->StateIndex == 0 )
return;
s_tvChoose=1;
s_Tvcode = Node->Text;
s_Tvcode = s_Tvcode.SubString(2,s_Tvcode.AnsiPos(")")-2);
tv_Tabselect(s_tvChoose);// 判断 TAB 页 SetFocus
GridStringTitle(s_tvChoose);
}
void __fastcall TfrmSueval::FillTreeWithPtype()
{
TTreeNode *TempNode[7]; ////////////////////zhz
int mLevel;
tvTree->Items->Clear();
TempNode[0]=tvTree->Items->Add(NULL,"所有的物料");
TempNode[0]->StateIndex = 0;
TempNode[0]->SelectedIndex = 0;
l_Query->Close ();
l_Query->Open("select PmpcCode,PmpcName,PmpcLevel,PmpcEnd from sdPmpc order by PmpcCode,PmPcLevel","");
l_Query->MoveFirst();
while( l_Query->Eof == false )
{
mLevel=l_Query->FieldByName("PmpcLevel").ToInt();
TempNode[mLevel] = tvTree->Items->AddChild(TempNode[mLevel-1],"(" + l_Query->FieldByName("PmpcCode") + ")" +l_Query->FieldByName("PmpcName"));
if(l_Query->FieldByName("PmpcEnd")=="1")
{
TempNode[mLevel]->StateIndex = 2;
TempNode[mLevel]->SelectedIndex = 2;
}
else
{
TempNode[mLevel]->StateIndex = 0;
TempNode[mLevel]->SelectedIndex = 0;
}
TempNode[mLevel]->Text= "(" + l_Query->FieldByName("PmpcCode") + ")"+l_Query->FieldByName("PmpcName");
l_Query->MoveNext();
}
l_Query->Close();
TempNode[0]->Expand(false);
// if (tvGoods->Items->Count > 0)
// tvGoods->FullExpand();
}
void __fastcall TfrmSueval::TreeViewLocation()
{
}
void __fastcall TfrmSueval::tvTreeDblClick(TObject *Sender)
{
if(tvTree->Selected == NULL)
return;
if(tvTree->Selected->StateIndex != 2)
return;
FillGoods(tvTree->Selected);
}
//---------------------------------------------------------------------------
void __fastcall TfrmSueval::FillGoods(TTreeNode *SelectedPmpcNode)
{
AnsiString sSQL,sPmpcCode,ItemStr;
TTreeNode *TempNode;
if(SelectedPmpcNode==NULL)
return;
sPmpcCode = SelectedPmpcNode->Text;
sPmpcCode = sPmpcCode.SubString(2,sPmpcCode.AnsiPos(")")-2);
if(sPmpcCode=="")
return;
sSQL=" select goodscode,goodsname from sdgoods where goodspmpccode ='"
+sPmpcCode+"'";
try
{
StartWaitForm("正在执行查询...");
l_Query->Close();
l_Query->Open(sSQL,"");
while( l_Query->Eof == 0)
{
ItemStr="("+l_Query->FieldByName("GoodsCode")+
")"+l_Query->FieldByName("GoodsName");
TempNode= tvTree->Items->AddChild(SelectedPmpcNode,ItemStr);
TempNode->StateIndex = 1;
TempNode->SelectedIndex = 1;
TempNode->Text=ItemStr;
l_Query->MoveNext();
}
}
__finally
{
EndWaitForm();
}
SelectedPmpcNode->Expand(false);
SelectedPmpcNode->StateIndex=3;
SelectedPmpcNode->SelectedIndex=3;
}
//---------------------------------------------------------------------------
void __fastcall TfrmSueval::tv_Tabselect(int f_tv)
{
AnsiString l_sqlselect,ItemStr;
if(tvTree->Selected==NULL)
return;
if (PageControl1->ActivePage == TabSheet1)
{
SDEdit1->Text = tvTree->Selected->Text;
tvTree->Height= 250;
tvSupply->Visible = true;
if (f_tv == 1 )
{
SDGrid_TvGoods();
}
else if (f_tv == 2 )
{
SDGrid_TvSupply();
}
///////////////////////////////////////////////////////
}
else if (PageControl1->ActivePage == TabSheet2)
{
SDEdit2->Text=tvTree->Selected->Text;
tvTree->Height = 250;
tvSupply->Visible = true;
if (f_tv == 1 )
GridKsSuval_TvGoods();
else if (f_tv == 2 )
GridKsSuval_TvSupply();
}
else if (PageControl1->ActivePage==TabSheet3)
{
AnsiString l_sqlselect2;
SDEdit3->Text = tvTree->Selected->Text;
tvTree->Height = 510;
tvSupply->Visible=false;
l_sqlselect2 = f_TabSheetSuval(s_Tvcode) ;
l_sqlselect = l_sqlselect2+ " and ksSuEval.SuEvalFlag =0 " ;
TComResultSet *RsTemp5;
RsTemp5 = new TComResultSet(Handle,g_ClientHandle);
Grid_pfxz1->RowCount=1;
RsTemp5->Close();
RsTemp5->Open(WideString(l_sqlselect+" order by ksSuEval.SuEvalSum DESC"),WideString(""));
while( !RsTemp5->Eof )
{
{
ItemStr="\t"+AnsiString(RsTemp5->FieldByName("SuEvalSum"))+
"\t"+AnsiString(RsTemp5->FieldByName("Suevalsupply"))+
"\t"+AnsiString(RsTemp5->FieldByName("SupplyName"))+
"\t"+AnsiString(RsTemp5->FieldByName("SuEvalCode"));//
Grid_pfxz1->AddItem(ItemStr);
}
RsTemp5->MoveNext();
}
// Grid_pfxz1->Columns->Items[1]->SolSort = csAsc;
RsTemp5->Close();
///////////////////////////////
l_sqlselect=l_sqlselect2+ " and ksSuEval.SuEvalFlag =1 " ;
RsTemp4->Open(WideString(l_sqlselect+" order by ksSuEval.SuEvalSum DESC"),WideString(""));
Grid_pfxz2->RowCount=1;
while( RsTemp4->Eof == 0)
{
{
ItemStr="\t"+AnsiString(RsTemp4->FieldByName("SuEvalSum"))+
"\t"+AnsiString(RsTemp4->FieldByName("Suevalsupply"))+
"\t"+AnsiString(RsTemp4->FieldByName("SupplyName"))+
"\t"+AnsiString(RsTemp4->FieldByName("SuEvalCode"));//
Grid_pfxz2->AddItem(ItemStr);
}
RsTemp4->MoveNext();
}
RsTemp4->Close();
}
else if (PageControl1->ActivePage==TabSheet4)
{
SDEdit4->Text=tvTree->Selected->Text;
tvTree->Height= 510;
tvSupply->Visible=false;
l_sqlselect=f_TabSheetSuval(s_Tvcode)+ " and ksSuEval.SuEvalFlag =1 " ; //2,3 同
RsTemp2->Open(WideString(l_sqlselect +"order by ksSuEval.SuEvalSum DESC "),WideString(""));
Grid_supply1->RowCount=1;
while( !RsTemp2->Eof )
{
{
ItemStr="\t"+AnsiString(RsTemp2->FieldByName("SuEvalSum"))+
"\t"+AnsiString(RsTemp2->FieldByName("Suevalsupply"))+
"\t"+AnsiString(RsTemp2->FieldByName("SupplyName"));//
Grid_supply1->AddItem(ItemStr);
}
RsTemp2->MoveNext();
}
RsTemp2->Close();
////////////////////////////////
sheet3Supply();
}
}
//------------------------------------------------------------------------
void __fastcall TfrmSueval::GridKsSuval_TvGoods()//Sheet2
{
AnsiString ItemStr,l_sqlselect;
l_sqlselect = f_TabSheetSuval(s_Tvcode); //物品选择
RsTemp2->Open(WideString(l_sqlselect+" order by ksSuEval.SuEvalSum DESC"),WideString(""));
Grid_pf->RowCount = 1 ;
while( RsTemp2->Eof == 0)
{
{
ItemStr =AnsiString(RsTemp2->FieldByName("SuEvalCode"))+
"\t"+AnsiString(RsTemp2->FieldByName("Suevalsupply"))+
"\t"+AnsiString(RsTemp2->FieldByName("SupplyName"))+
"\t"+AnsiString(RsTemp2->FieldByName("SuEvalCapacity"))+
"\t"+AnsiString(RsTemp2->FieldByName("SuEvalPrice"))+
"\t"+AnsiString(RsTemp2->FieldByName("SuEvalCredit"))+
"\t"+AnsiString(RsTemp2->FieldByName("SuEvalQuality"))+
"\t"+AnsiString(RsTemp2->FieldByName("SuEvalSum"));
Grid_pf->AddItem(ItemStr);
}
RsTemp2->MoveNext();
}
RsTemp2->Close();
}
//-----------------------------------------------------------------------
void __fastcall TfrmSueval::GridKsSuval_TvSupply()
{
AnsiString ItemStr,l_sqlselect;
l_sqlselect = f_TabSheet2Supply(s_TvSupply); //供应商选择
RsTemp2->Open(WideString(l_sqlselect),WideString(""));
Grid_pf->RowCount=1;
while( RsTemp2->Eof == 0)
{
{
ItemStr ="\t"+AnsiString(RsTemp2->FieldByName("goodscode"))+
"\t"+AnsiString(RsTemp2->FieldByName("goodsName"))+
"\t"+AnsiString(RsTemp2->FieldByName("SuEvalCapacity"))+
"\t"+AnsiString(RsTemp2->FieldByName("SuEvalPrice"))+
"\t"+AnsiString(RsTemp2->FieldByName("SuEvalCredit"))+
"\t"+AnsiString(RsTemp2->FieldByName("SuEvalSum"));//+
// "\t"+RsTemp1->FieldByName("PodReqDate")+
// "\t"+RsTemp1->FieldByName("PodRecDate");
Grid_pf->AddItem(ItemStr);
}
RsTemp2->MoveNext();
}
RsTemp2->Close();
}
//------------------------------------------------------------------------
void __fastcall TfrmSueval::SDGrid_TvGoods()//Sheet1
{
AnsiString ItemStr,l_sqlselect,TempStr;
l_sqlselect = f_TabSheetPquote(s_Tvcode) ; //物品TV
RsTemp1->Open(WideString(l_sqlselect),WideString(""));
SDGrid_goods->RowCount=1;
while( RsTemp1->Eof == 0)
{
{
ItemStr= "\t"+AnsiString(RsTemp1->FieldByName("PquoteSupply"));
ItemStr+="\t"+AnsiString(RsTemp1->FieldByName("SUPPLYName"));
ItemStr+="\t"+AnsiString(RsTemp1->FieldByName("PQUOTEGOODS")); //类型
ItemStr+="\t"+AnsiString(RsTemp1->FieldByName("PQUOTECURRENCY"));
ItemStr+="\t"+AnsiString(RsTemp1->FieldByName("PQUOTESDATE"));
ItemStr+="\t"+AnsiString(RsTemp1->FieldByName("PQUOTEEDATE"));
if(RsTemp1->FieldByName("PQUOTEQTY1")=="0") TempStr="";
else TempStr=RsTemp1->FieldByName("PQUOTEQTY1");
ItemStr+="\t"+AnsiString(TempStr);
if(RsTemp1->FieldByName("PQUOTEPRICE1")=="0") TempStr="";
else TempStr=RsTemp1->FieldByName("PQUOTEPRICE1");
ItemStr+="\t"+AnsiString(TempStr);
if(RsTemp1->FieldByName("PQUOTEREBATE1")=="0") TempStr="";
else TempStr=RsTemp1->FieldByName("PQUOTEREBATE1");
ItemStr+="\t"+AnsiString(TempStr);
//first price
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?