📄 unit1.pas
字号:
Unit Unit1;
Interface
Uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB, Grids, DBGrids, RzDBGrid, StdCtrls, ComCtrls, Math,
RzTreeVw, ABSMain, ExtCtrls, RzPanel, RzLabel, RzButton, RzSplit,
RzForms, RzCmboBx, Mask, RzEdit, DataSetToExcelUnt, RzBHints,
RzShellDialogs, RzStatus, RzPrgres, RzTabs, GridsEh, DBGridEh, ImgList,
cxControls, cxFilterControl, cxDBFilterControl, cxTextEdit, cxStyles,
cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit,
cxDBData, cxGridLevel, cxClasses, cxGridCustomView,
cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid,
cxContainer, cxGroupBox, cxPC, RzRadGrp, DBTables, Menus, Buttons;
Type
TForm1 = Class(TForm)
DataSource5: TDataSource;
ADOQuery1: TADOQuery;
DataSource6: TDataSource;
ADOQuery2: TADOQuery;
ds_tempa: TDataSource;
ds_tempb: TDataSource;
ds_tempc: TDataSource;
ds_Prouting: TDataSource;
ADOQuery3: TADOQuery;
ADOQuery4: TADOQuery;
DataSource4: TDataSource;
DataSource10: TDataSource;
SPC_DATA: TADOConnection;
RzSizePanel1: TRzSizePanel;
RzTreeView1: TRzTreeView;
RzSizePanel2: TRzSizePanel;
RzSizePanel3: TRzSizePanel;
RzPanel1: TRzPanel;
RzPanel2: TRzPanel;
RzLabel8: TRzLabel;
RzLabel10: TRzLabel;
RzBalloonHints1: TRzBalloonHints;
RzSaveDialog1: TRzSaveDialog;
RzLabel16: TRzLabel;
RzToolbar1: TRzToolbar;
ImageList1: TImageList;
RzToolButton1: TRzToolButton;
RzSpacer1: TRzSpacer;
RzToolButton2: TRzToolButton;
RzSpacer2: TRzSpacer;
RzTBGenerning: TRzToolButton;
RzSpacer3: TRzSpacer;
RzToolButton4: TRzToolButton;
RzSpacer4: TRzSpacer;
RzToolButton5: TRzToolButton;
RzSpacer5: TRzSpacer;
RzToolButton6: TRzToolButton;
Table_Prouting: TADOTable;
Table_TempA: TADOTable;
ADOConnectionMDB: TADOConnection;
Table_TempB: TADOTable;
Table_TempC: TADOTable;
ADOQuery5: TADOQuery;
DataSource1: TDataSource;
ADOQueryCostData: TADOQuery;
DataSourceCostData: TDataSource;
ADOQueryCostDatacInvCode: TWideStringField;
ADOQueryCostDatacInvAddCode: TWideStringField;
ADOQueryCostDatacInvName: TWideStringField;
ADOQueryCostDatacInvStd: TWideStringField;
ADOQueryCostDatacComUnitName: TWideStringField;
ADOQueryCostDataiInvRCost: TFloatField;
ADOQueryCostDataiInvSprice: TFloatField;
ADOQueryCostDataiInvNCost: TFloatField;
ADOQueryCostDataiCost: TWordField;
RzPanel4: TRzPanel;
RzToolbar2: TRzToolbar;
RzToolButton7: TRzToolButton;
RzDBGrid1: TRzDBGrid;
RzSpacer6: TRzSpacer;
RzToolButton8: TRzToolButton;
ADOQueryCKProuting: TADOQuery;
DataSourceCKProuting: TDataSource;
ADOQueryCKProutingcInvCode: TWideStringField;
ADOQueryCKProutingcInvAddCode: TWideStringField;
ADOQueryCKProutingcInvName: TWideStringField;
ADOQueryCKProutingcInvStd: TWideStringField;
ADOQueryCKProutingcComUnitName: TWideStringField;
RzPanel5: TRzPanel;
RzDBGrid3: TRzDBGrid;
RzToolbar3: TRzToolbar;
RzToolButton9: TRzToolButton;
RzSpacer7: TRzSpacer;
RzToolButton10: TRzToolButton;
RzPanel3: TRzPanel;
RzLabel15: TRzLabel;
Image1: TImage;
DBGridEh4: TDBGridEh;
PopupMenu1: TPopupMenu;
MenCheckRCost: TMenuItem;
MenCheckSprice: TMenuItem;
MenCheckNCost: TMenuItem;
ADOQueryLooksomething: TADOQuery;
DataSourceLooksomething: TDataSource;
RzPageControl1: TRzPageControl;
TabSheet1: TRzTabSheet;
DBGridEh2: TDBGridEh;
TabSheet2: TRzTabSheet;
DBGridEh1: TDBGridEh;
TabSheet3: TRzTabSheet;
DBGridEh3: TDBGridEh;
TabSheet4: TRzTabSheet;
DBGridEh5: TDBGridEh;
TabSheet5: TRzTabSheet;
RzDBGrid4: TRzDBGrid;
Table_ProutingPartId: TIntegerField;
Table_ProutingDescription: TWideStringField;
Table_ProutingOpSeq: TWideStringField;
Table_ProutingRDescription: TWideStringField;
Table_ProutingPRoutingId: TIntegerField;
Table_ProutingBaseQtyD: TFloatField;
Table_ProutingBaseQtyN: TFloatField;
Table_ProutingBaseQty: TFloatField;
Table_ProutingiRate1: TFloatField;
Table_ProutingiRate2: TFloatField;
Table_Proutingicost1: TFloatField;
Table_Proutingicost2: TFloatField;
Table_ProductID: TADOTable;
ds_Product: TDataSource;
Table_ProductIDBomID: TIntegerField;
Table_ProductIDParentId: TIntegerField;
Table_ProductIDPartId: TIntegerField;
Table_ProductIDNewID: TIntegerField;
Table_ProductIDNewPID: TIntegerField;
Table_ProductIDcInvAddCode: TWideStringField;
Table_ProductIDName: TWideStringField;
Table_ProductIDcInvCode: TWideStringField;
Table_ProductIDcInvName: TWideStringField;
Table_ProductIDcInvStd: TWideStringField;
Table_ProductIDcComUnitName: TWideStringField;
Table_ProductIDBaseQtyD: TFloatField;
Table_ProductIDBaseQtyN: TFloatField;
Table_ProductIDBaseQty: TFloatField;
Table_ProductIDiInvRCost1: TFloatField;
Table_ProductIDiInvSprice1: TFloatField;
Table_ProductIDiInvNCost1: TFloatField;
Table_ProductIDiInvRCost2: TFloatField;
Table_ProductIDiInvSprice2: TFloatField;
Table_ProductIDiInvNCost2: TFloatField;
Table_ProductIDiProutCost1: TFloatField;
Table_ProductIDiProutCost2: TFloatField;
Table_ProductIDiBinvRCost1: TFloatField;
Table_ProductIDiBinvSprice1: TFloatField;
Table_ProductIDiBinvNCost1: TFloatField;
Table_ProductIDiBinvRCost2: TFloatField;
Table_ProductIDiBinvSprice2: TFloatField;
Table_ProductIDiBinvNCost2: TFloatField;
Table_ProductIDiBProutCost1: TFloatField;
Table_ProductIDiBProutCost2: TFloatField;
Table_ProductIDiZInvRCost1: TFloatField;
Table_ProductIDiZInvSprice1: TFloatField;
Table_ProductIDiZInvNCost1: TFloatField;
Table_ProductIDiZinvRCost2: TFloatField;
Table_ProductIDiZinvSprice2: TFloatField;
Table_ProductIDiZinvNCost2: TFloatField;
Table_ProductIDiCost: TWordField;
Table_ProductIDiLevel: TWordField;
Table_ProductIDisCost: TWordField;
Table_ProductIDisProuting: TWordField;
Table_ProductIDId: TIntegerField;
RzToolButton3: TRzToolButton;
RzToolButton11: TRzToolButton;
TbAlt_ProductID: TADOTable;
dsAlt_ProductID: TDataSource;
dsAlt_Prouting: TDataSource;
TbAlt_Prouting: TADOTable;
ADOQuerySQLCreateTable: TADOQuery;
RzGroupBox1: TRzGroupBox;
RzLabel3: TRzLabel;
RzLabel4: TRzLabel;
RzLabel5: TRzLabel;
RzLabel6: TRzLabel;
RzLabel1: TRzLabel;
RzProgressStatus1: TRzProgressStatus;
RzProgressBar1: TRzProgressBar;
RzLabel14: TRzLabel;
Table_ProutingResCode: TWideStringField;
RzGroupBox2: TRzGroupBox;
RzEdit2: TRzEdit;
RzEdit3: TRzEdit;
RzEdit4: TRzEdit;
RzEdit5: TRzEdit;
RzLabel2: TRzLabel;
RzLabel7: TRzLabel;
RzLabel9: TRzLabel;
RzLabel11: TRzLabel;
RzLabel12: TRzLabel;
RzToolButton13: TRzToolButton;
Procedure PrepareData;
Procedure GetMainData;
Procedure AppendToProductID;
Procedure addProductIDName;
{-------------------------------------------------------------------------------
过程名: MakeTree
说明: 创建树
作者: Along
日期: 2004.12.07
参数: Query: TADOQuery; TableName: string; TreeView: TTreeView
参数说明: Query:相关联的数据库; TableName: 对应的表名; TreeView: 所使用的树
返回值: 无
-------------------------------------------------------------------------------}
Procedure MakeTree(Query: TADOQuery; TableName: String; TreeView: TRzTreeView);
{-------------------------------------------------------------------------------
过程名: AddTreeNode
说明: 增加节点(内部使用的过程)
作者: Along
日期: 2004.12.07
参数: Query: TADOQuery; TreeView: TTreeView; bj: boolean = false
参数说明: Query:相关联的数据库;TreeView: 所使用的树;bj:是否将焦点移到当前选择的节点
返回值: 无
-------------------------------------------------------------------------------}
Procedure AddTreeNode(Query: TADOQuery; TreeView: TRzTreeView; bj: boolean = false);
Procedure FormCreate(Sender: TObject);
Procedure RzTreeView1Change(Sender: TObject; Node: TTreeNode);
Procedure Treechange(Query: TADOQuery; node: TTreenode);
Procedure PrCost;
Procedure GetProuting;
Function TreeFind(TreeView: TRzTreeView; text: String): boolean;
Procedure RzToolButton1Click(Sender: TObject);
Procedure RzToolButton2Click(Sender: TObject);
Procedure RzToolButton7Click(Sender: TObject);
Procedure RzToolButton8Click(Sender: TObject);
Procedure RzToolButton9Click(Sender: TObject);
Procedure RzToolButton5Click(Sender: TObject);
Procedure RzToolButton10Click(Sender: TObject);
Procedure MenCheckRCostClick(Sender: TObject);
Procedure MenCheckNCostClick(Sender: TObject);
Procedure MenCheckSpriceClick(Sender: TObject);
Procedure DBGridEh5Exit(Sender: TObject);
Procedure RzTBGenerningClick(Sender: TObject);
Procedure RzToolButton3Click(Sender: TObject);
Procedure RzPageControl1Change(Sender: TObject);
Procedure RzToolButton11Click(Sender: TObject);
Procedure TransToServer;
Procedure GetFromServer;
Procedure DisplaySumData;
Procedure DBGridEh5MouseUp(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
Procedure RzToolButton13Click(Sender: TObject);
Procedure RzToolButton6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
End;
Var
Form1: TForm1;
stlID: TStringList;
NewID: integer;
FFilter: boolean;
FFirst: boolean;
FChanged: boolean;
WorkHours1, isLastNode: boolean;
cPCost1, cPCost2, cPBinvRCost1, cPBinvSprice1, cPBinvNCost1, cPBinvRCost2,cPBinvSprice2, cPBinvNCost2: String;
Implementation
Var
List: TStringList; //用于记录各个id及其在树中所对应的节点,从而实现快速查找
{$R *.dfm}
Procedure TForm1.RzTBGenerningClick(Sender: TObject);
Var
F1: TextFile;
ss, ttss: String;
ConnectedOk: Boolean;
Begin
ADOQueryCKProuting.Prepared := false;
ADOQueryCKProuting.Close;
ADOQueryCostData.Prepared := false;
ADOQueryCostData.Close;
FChanged := false;
If FileExists('datalink.ini') Then
Begin
If SPC_DATA.Connected = false Then
Begin
ss := '';
ttss := 'Provider=SQLOLEDB.1;Persist Security Info=True;Use Encryption for Data=False;Use Procedure for Prepare=1;';
ttss := ttss + 'Tag with column collation when possible=False;Auto Translate=True;Packet Size=4096;';
AssignFile(F1, 'datalink.ini');
Reset(F1);
Repeat
Readln(F1, ss);
ttss := ttss + ss + ';';
Until (Eoln(F1));
CloseFile(F1);
SPC_DATA.Connected := false;
SPC_DATA.ConnectionString := ttss;
SPC_DATA.Connected := true;
//ADOConnectionMDB.Connected := true;
End;
ConnectedOk := SPC_DATA.Connected;
If ConnectedOk = true Then
If ADOConnectionMDB.Connected = false Then
ADOConnectionMDB.Connected := true;
ConnectedOk := ADOConnectionMDB.Connected;
If ConnectedOk = true Then
Begin
RzPanel4.Visible := false;
RzPanel5.Visible := false;
ADOQuery5.Prepared := false;
ADOQuery5.Close;
FFirst := true;
Table_ProductID.Filtered := false;
Table_Prouting.Filtered := false;
RzPanel3.Visible := false;
RzGroupBox1.Visible := true;
RzLabel1.Visible := true;
RzProgressStatus1.Percent := 0;
GetMainData; // 取根数据以便循环取数据
RzProgressStatus1.Percent := 20;
RzLabel3.Visible := true;
PrepareData; // 处理子件数据
RzProgressStatus1.Percent := 40;
RzLabel4.Visible := true;
GetProuting; //取工艺路线
RzProgressStatus1.Percent := 70;
RzLabel5.Visible := true;
PrCost; // 计算价格
RzProgressStatus1.Percent := 90;
RzLabel6.Visible := true;
TransToServer; // 将数据传到服务器上
RzSizePanel2.Visible := true;
RzSizePanel1.Visible := true;
MakeTree(ADOQuery5, 'ProductID', RzTreeView1); // 建立TREE
RzProgressStatus1.Percent := 100;
RzGroupBox1.Visible := false;
Table_ProductID.EnableControls;
RzPanel2.Visible := true;
RzPanel1.Visible := true;
DBGridEh2.Visible := true;
Table_Prouting.Open;
DBGridEh4.Visible := true;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -