unit U_ClothContractInPut; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid, cxMemo, cxRichEdit, ComCtrls, cxContainer, cxTextEdit, cxMaskEdit, cxButtonEdit, StdCtrls, ToolWin, DBClient, ADODB, ExtCtrls, BtnEdit; type TfrmClothContractInPut = class(TForm) ToolBar1: TToolBar; TBSave: TToolButton; TBClose: TToolButton; ScrollBox1: TScrollBox; Label1: TLabel; ConNo: TEdit; Label4: TLabel; DeliveryDate: TDateTimePicker; Label5: TLabel; Label6: TLabel; ToolBar2: TToolBar; ToolButton1: TToolButton; ToolButton2: TToolButton; cxGrid1: TcxGrid; Tv1: TcxGridDBTableView; v1PRTSpec: TcxGridDBColumn; v1PRTColor: TcxGridDBColumn; cxGrid1Level1: TcxGridLevel; v1PRTMF: TcxGridDBColumn; v1PRTKZ: TcxGridDBColumn; v1OrderQty: TcxGridDBColumn; v1ClothQty: TcxGridDBColumn; v1PRTQty: TcxGridDBColumn; v1Price: TcxGridDBColumn; v1ClothUnit: TcxGridDBColumn; ADOTemp: TADOQuery; ADOCmd: TADOQuery; DataSource1: TDataSource; Order_Sub: TClientDataSet; DataSource2: TDataSource; ADOZDY: TADOQuery; CDS_ZDY: TClientDataSet; FactoryNoName: TcxButtonEdit; ADOQuery1: TADOQuery; Label7: TLabel; Label3: TLabel; Label8: TLabel; v1Column1: TcxGridDBColumn; v1Column2: TcxGridDBColumn; v1Column3: TcxGridDBColumn; ConTK1: TRichEdit; ConTK2: TRichEdit; ConTK3: TRichEdit; ConTK4: TRichEdit; PanZDY: TPanel; CXGridZDY: TcxGrid; TVZDY: TcxGridDBTableView; VHelpZDYName: TcxGridDBColumn; CXGridZDYLevel1: TcxGridLevel; Button1: TButton; procedure TBCloseClick(Sender: TObject); procedure TVZDYCellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); procedure Button1Click(Sender: TObject); procedure PRTCodeNameKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); procedure TVZDYKeyPress(Sender: TObject; var Key: Char); procedure FormShow(Sender: TObject); procedure TBSaveClick(Sender: TObject); procedure v1OrderUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1PRTUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure ToolButton1Click(Sender: TObject); procedure ToolButton2Click(Sender: TObject); procedure FactoryNoNamePropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column1PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1PRTMFPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1OrderQtyPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1ClothQtyPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure v1Column2PropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); procedure FactoryNoNamePropertiesChange(Sender: TObject); private FXS:Integer; procedure InitData(); procedure ZDYHelp(FButn:TcxButtonEdit;LType:string); function SaveData():Boolean; { Private declarations } public PState:Integer; FMainId:String; { Public declarations } end; var frmClothContractInPut: TfrmClothContractInPut; implementation uses U_DataLink,U_ZDYHelp,U_Fun; {$R *.dfm} procedure TfrmClothContractInPut.TBCloseClick(Sender: TObject); begin Close; end; procedure TfrmClothContractInPut.InitData(); begin with ADOQuery1 do begin Close; SQL.Clear; sql.Add(' exec ClothContract_QryList :MainId,:WSql'); if PState=1 then begin ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); ADOQuery1.Parameters.ParamByName('WSQl').Value:=''; end; if PState=0 then begin ADOQuery1.Parameters.ParamByName('MainId').Value:=Trim(FMainId); ADOQuery1.Parameters.ParamByName('WSql').Value:=' and 1<>1 '; end; Open; end; SCreateCDS20(ADOQuery1,Order_Sub); SInitCDSData20(ADOQuery1,Order_Sub); SCSHData(ADOQuery1,ScrollBox1,0); if PState=0 then begin with ADOTemp do begin Close; SQL.Clear; sql.Add('select Top 1* from Contract_Main order by FillTime desc '); Open; end; ConTK1.Text:=ADOTemp.fieldbyname('ConTK1').AsString; ConTK2.Text:=ADOTemp.fieldbyname('ConTK2').AsString; ConTK3.Text:=ADOTemp.fieldbyname('ConTK3').AsString; ConTK4.Text:=ADOTemp.fieldbyname('ConTK4').AsString; end; PanZDY.Visible:=False; end; procedure TfrmClothContractInPut.ZDYHelp(FButn:TcxButtonEdit;LType:string); var FType,ZDYName,FText:String; begin PanZDY.Visible:=True; PanZDY.Left:=FButn.Left; PanZDY.Top:=FButn.Top+FButn.Height; with ADOZDY do begin Filtered:=False; Close; SQL.Clear; SQL.Add('select RTrim(ZDYNo) ZDYNo,RTrim(ZDYName) ZDYName from KH_ZDY where Type='''+Trim(LType)+''''); Open; end; FText:=Trim(FButn.Text); if FText<>'' then SDofilter(ADOZDY,' ZDYName like '+QuotedStr('%'+Trim(FText)+'%')) else SDofilter(ADOZDY,''); VHelpZDYName.Summary.GroupFormat:=Trim(FButn.Name); end; procedure TfrmClothContractInPut.TVZDYCellDblClick(Sender: TcxCustomGridTableView; ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton; AShift: TShiftState; var AHandled: Boolean); var FName:string; begin if ADOZDY.IsEmpty then Exit; FName:=Trim(VHelpZDYName.Summary.GroupFormat); TcxButtonEdit(FindComponent(FName)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); TcxButtonEdit(FindComponent(FName)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); PanZDY.Visible:=False; end; procedure TfrmClothContractInPut.Button1Click(Sender: TObject); begin PanZDY.Visible:=False; end; procedure TfrmClothContractInPut.PRTCodeNameKeyDown(Sender: TObject; var Key: Word; Shift: TShiftState); begin if (key=vk_return) or (Key=vk_Down) then begin if ADOZDY.Active then CXGridZDY.SetFocus; end; end; procedure TfrmClothContractInPut.TVZDYKeyPress(Sender: TObject; var Key: Char); begin if Key=#13 then begin if ADOZDY.IsEmpty then Exit; TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Text:=Trim(ADOZDY.fieldbyname('ZDYName').AsString); TcxButtonEdit(FindComponent(VHelpZDYName.Summary.GroupFormat)).Hint:=Trim(ADOZDY.fieldbyname('ZDYNO').AsString); PanZDY.Visible:=False; ADOZDY.Active:=False; end; end; procedure TfrmClothContractInPut.FormShow(Sender: TObject); begin if Trim(DParameters1)='1' then begin v1Price.Visible:=False; v1ClothQty.Visible:=False; v1PRTQty.Visible:=False; end else begin v1Price.Visible:=True; v1ClothQty.Visible:=True; v1PRTQty.Visible:=True; end; InitData(); end; function TfrmClothContractInPut.SaveData():Boolean; var maxno:String; begin try ADOCmd.Connection.BeginTrans; ///�������� with ADOCmd do begin Close; sql.Clear; SQL.Add('select * from Contract_Main where MainId='''+Trim(FMainId)+''''); Open; end; with ADOCmd do begin if Trim(FMainId)='' then begin Append; if GetLSNo(ADOTemp,maxno,'CM','Contract_Main',2,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('������ˮ���쳣��','��ʾ',0); exit; end; end else begin maxno:=Trim(FMainId); Edit; end; FieldByName('MainId').Value:=Trim(maxno); SSetsaveSql(ADOCmd,'Contract_Main',ScrollBox1,0); if Trim(FMainId)='' then begin FieldByName('Filler').Value:=Trim(DName); end else begin FieldByName('Editer').Value:=Trim(DName); FieldByName('EditTime').Value:=SGetServerDateTime(ADOTemp); end; Post; end; FMainId:=Trim(maxno); ///�����ӱ� with Order_Sub do begin First; while not Eof do begin if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then begin if GetLSNo(ADOTemp,maxno,'CS','Contract_Sub',3,1)=False then begin ADOCmd.Connection.RollbackTrans; Application.MessageBox('ȡ����ˮ��ʧ�ܣ�','��ʾ',0); Exit; end; end else begin maxno:=Trim(Order_Sub.fieldbyname('SubId').AsString); end; with ADOCmd do begin Close; SQL.Clear; sql.Add('select * from Contract_Sub where MainId='''+Trim(FMainId)+''''); sql.Add(' and SubId='''+Trim(maxno)+''''); Open; end; with ADOCmd do begin if Trim(Order_Sub.fieldbyname('SubId').AsString)='' then Append else Edit; FieldByName('MainId').Value:=Trim(FMainId); FieldByName('SubId').Value:=Trim(maxno); SSetSaveDataCDSNew(ADOCmd,Tv1,Order_Sub,'Contract_Sub',0); Post; end; Order_Sub.Edit; Order_Sub.FieldByName('SubId').Value:=Trim(maxno); //Order_Sub.Post; Next; end; end; ADOCmd.Connection.CommitTrans; Result:=True; except Result:=False; ADOCmd.Connection.RollbackTrans; Application.MessageBox('����ʧ�ܣ�','��ʾ',0); end; end; procedure TfrmClothContractInPut.TBSaveClick(Sender: TObject); begin DeliveryDate.SetFocus; if Trim(ConNo.Text)='' then begin Application.MessageBox('������Ų���Ϊ�գ�','��ʾ',0); Exit; end; if Trim(FactoryNoName.Text)='' then begin Application.MessageBox('����������Ϊ�գ�','��ʾ',0); Exit; end; if Order_Sub.IsEmpty then begin Application.MessageBox('��ϸ����Ϊ�գ�','��ʾ',0); exit; end; if SaveData() then begin Application.MessageBox('����ɹ���','��ʾ',0); end; end; procedure TfrmClothContractInPut.v1OrderUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='OrdUnit'; flagname:='��λ'; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('OrderUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPut.v1PRTUnitPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='OrdUnit'; flagname:='��λ'; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('PRTUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPut.v1PRTColorPropertiesButtonClick(Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='OrdColor'; flagname:='��ɫ'; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('PRTColor').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPut.ToolButton1Click(Sender: TObject); begin with Order_Sub do begin Append; Post; end; end; procedure TfrmClothContractInPut.ToolButton2Click(Sender: TObject); begin if Order_Sub.IsEmpty then Exit; if Trim(Order_Sub.fieldbyname('SubId').AsString)<>'' then begin if Application.MessageBox('ȷ��Ҫɾ��������','��ʾ',32+4)<>IDYES then Exit; with ADOCmd do begin Close; sql.Clear; sql.Add('delete Contract_Sub where SubId='''+Trim(Order_Sub.fieldbyname('SubId').AsString)+''''); ExecSQL; end; end; Order_Sub.Delete; end; procedure TfrmClothContractInPut.FactoryNoNamePropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='FactoryNo1Name'; flagname:='����������'; if ShowModal=1 then begin FXS:=99; FactoryNoName.Text:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); FactoryNoName.Hint:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPut.v1Column1PropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='Cloth'; flagname:='��������'; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('C_CodeName').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); Self.Order_Sub.FieldByName('C_Code').Value:=Trim(ClientDataSet1.fieldbyname('ZDYNo').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPut.v1PRTMFPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='KZ'; flagname:='���ص�λ'; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('KZUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPut.v1OrderQtyPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='MF'; flagname:='�ŷ���λ'; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('MFUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPut.v1ClothQtyPropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='PriceUnit'; flagname:='�Ƽ۵�λ'; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('PriceUnit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPut.v1Column2PropertiesButtonClick( Sender: TObject; AButtonIndex: Integer); begin try frmZDYHelp:=TfrmZDYHelp.Create(Application); with frmZDYHelp do begin flag:='OrdUnit'; flagname:='��λ'; if ShowModal=1 then begin Self.Order_Sub.Edit; Self.Order_Sub.FieldByName('C_Unit').Value:=Trim(ClientDataSet1.fieldbyname('ZDYName').AsString); end; end; finally frmZDYHelp.Free; end; end; procedure TfrmClothContractInPut.FactoryNoNamePropertiesChange( Sender: TObject); begin if FXS=99 then begin PanZDY.Visible:=False; FXS:=0; Exit; end; ZDYHelp(FactoryNoName,'FactoryNo1Name'); end; end.