unit U_TatPlanPSYLLIST;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, ComCtrls, ToolWin, cxStyles, cxCustomData,
  cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData, ADODB,
  cxGridCustomPopupMenu, cxGridPopupMenu, cxGridLevel, cxClasses, cxControls,
  cxGridCustomView, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxGrid, DBClient, cxCalendar, cxButtonEdit, cxSplitter, RM_Common, RM_Class,
  RM_e_Xls, RM_Dataset, RM_System, RM_GridReport, cxTextEdit, cxCheckBox,
  BtnEdit, RM_BarCode, cxPC, cxLookAndFeels, cxLookAndFeelPainters, cxNavigator,
  dxDateRanges, dxBarBuiltInMenu, U_BaseList, Vcl.Menus, dxScrollbarAnnotations,
  cxContainer, dxCore, cxDateUtils, cxMaskEdit, cxDropDownEdit, dxSkinsCore,
  dxSkinsDefaultPainters, cxProgressBar, dxSkinOffice2013White, dxSkinSharpPlus,
  dxSkinWXI;

type
  TfrmTatPlanPSYLLIST = class(TfrmBaseList)
    ToolBar1: TToolBar;
    TBRafresh: TToolButton;
    TBClose: TToolButton;
    Panel1: TPanel;
    GPM_1: TcxGridPopupMenu;
    ADOQueryCmd: TADOQuery;
    ADOQueryMain: TADOQuery;
    ADOQueryTemp: TADOQuery;
    ADOQueryPrint: TADOQuery;
    DS_1: TDataSource;
    CDS_1: TClientDataSet;
    ToolButton2: TToolButton;
    Label5: TLabel;
    mcno: TcxTextEdit;
    PopupMenu1: TPopupMenu;
    N1: TMenuItem;
    N2: TMenuItem;
    ToolButton5: TToolButton;
    CDS_2: TClientDataSet;
    DS_2: TDataSource;
    GPM_2: TcxGridPopupMenu;
    cxPageControl1: TcxPageControl;
    cxTabSheet1: TcxTabSheet;
    cxTabSheet2: TcxTabSheet;
    cxGrid1: TcxGrid;
    Tv1: TcxGridDBTableView;
    v3Column8: TcxGridDBColumn;
    v3Column1: TcxGridDBColumn;
    Tv1Column9: TcxGridDBColumn;
    Tv1Column10: TcxGridDBColumn;
    v3Column6: TcxGridDBColumn;
    v3Column2: TcxGridDBColumn;
    Tv1Column4: TcxGridDBColumn;
    cxGridLevel2: TcxGridLevel;
    cxGrid2: TcxGrid;
    TV2: TcxGridDBTableView;
    cxGridDBColumn1: TcxGridDBColumn;
    TV2conno: TcxGridDBColumn;
    TV2Y_Name: TcxGridDBColumn;
    Tv2BatchNo: TcxGridDBColumn;
    TV2DAYYL: TcxGridDBColumn;
    TV2zqty: TcxGridDBColumn;
    TV2LYQTY: TcxGridDBColumn;
    cxGridLevel1: TcxGridLevel;
    TV2mcno: TcxGridDBColumn;
    TV2DAYQTY: TcxGridDBColumn;
    TV2realJSYL: TcxGridDBColumn;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    TV2realWSYL: TcxGridDBColumn;
    Tv1realJSYL: TcxGridDBColumn;
    Tv1realWSYL: TcxGridDBColumn;
    Tv1RemainQty: TcxGridDBColumn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure TBCloseClick(Sender: TObject);
    procedure TBRafreshClick(Sender: TObject);
    procedure ConNoChange(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure cxTabControl1Change(Sender: TObject);
    procedure ToolButton2Click(Sender: TObject);
    procedure ToolButton1Click(Sender: TObject);
    procedure N1Click(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure ToolButton3Click(Sender: TObject);
    procedure ToolButton4Click(Sender: TObject);
    procedure ToolButton5Click(Sender: TObject);
    procedure ConNoPropertiesChange(Sender: TObject);
    procedure cxPageControl1Change(Sender: TObject);
  private
    FInt, PFInt: Integer;
    FFMainID, BPFlag: string;
    procedure InitGrid();
    procedure InitGrid2();
    { Private declarations }
  public
    canshu1: string;
    { Public declarations }
  end;

implementation

uses
  U_DataLink, U_RTFun, U_ZDYHelp, U_LabelPrint, U_TatCardInPut1;

{$R *.dfm}

procedure TfrmTatPlanPSYLLIST.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  inherited;
  Action := caFree;
  WriteCxGrid('DCG13', Tv1, '坯布生产');
end;

procedure TfrmTatPlanPSYLLIST.TBCloseClick(Sender: TObject);
begin
  Close;

end;

procedure TfrmTatPlanPSYLLIST.InitGrid();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Close;
      sql.Clear;
      sql.Add('SELECT conno,max(Y_Name) as Y_Name,max(BatchNo) as BatchNo,sum(DAYYL) as DAYYL,sum(zqty) as zqty,sum(LYQTY) as LYQTY  ');
      sql.Add(' ,sum(realJSYL) as realJSYL,sum(realWSYL) as realWSYL');
      sql.Add(', (sum(realWSYL)-sum(LYQTY)) as RemainQty');

      sql.add(' FROM V_TAT_PSYL group By conno ');
      Open;
    end;
    SCreateCDS(ADOQueryMain, CDS_1);
    SInitCDSData(ADOQueryMain, CDS_1);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmTatPlanPSYLLIST.InitGrid2();
begin
  try
    ADOQueryMain.DisableControls;
    with ADOQueryMain do
    begin
      Close;
      sql.Clear;
      sql.Add('SELECT * FROM V_TAT_PSYL ');

      Open;
    end;
    SCreateCDS(ADOQueryMain, CDS_2);
    SInitCDSData(ADOQueryMain, CDS_2);
  finally
    ADOQueryMain.EnableControls;
  end;
end;

procedure TfrmTatPlanPSYLLIST.N1Click(Sender: TObject);
begin
  SelOKNo(cds_1, true)
end;

procedure TfrmTatPlanPSYLLIST.N2Click(Sender: TObject);
begin
  SelOKNo(cds_1, false);
end;

procedure TfrmTatPlanPSYLLIST.TBRafreshClick(Sender: TObject);
begin
  InitGrid();
  InitGrid2();
end;

procedure TfrmTatPlanPSYLLIST.ToolButton1Click(Sender: TObject);
var
  WSql: string;
begin
  if CDS_1.IsEmpty then
    Exit;
  Tv1.OnFocusedRecordChanged := nil;
  if CDS_1.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;

  WSql := SelcdsKey(CDS_1, ['PCID'])[0];

  try
    frmLabelPrint := TfrmLabelPrint.Create(Application);
    with frmLabelPrint do
    begin
      FPreviewPrint := False;
      FLMType := 'TatPlanCard';
      FFiltration1 := WSql;
      if ShowModal = 1 then
      begin
        Self.InitGrid();
        with ADOQueryCmd do
        begin
          Close;
          sql.Clear;
          sql.Add('update Tat_Plan_Card         ');
          sql.Add('set PRTer=' + quotedstr(DName));
          sql.Add(', PRTCount=PRTCount+1');
          sql.Add(', PRTDate=getdate()');
          sql.Add('where EXISTS(select X.RTValue from [dbo].[F_Tool_SplitString](' + QuotedStr(WSql) + ','','') X where Tat_Plan_Card.PCID=X.RTValue )  ');
          ExecSQL;
        end;
      end;
    end;
  finally
    frmLabelPrint.Free;
  end;

end;

procedure TfrmTatPlanPSYLLIST.ToolButton2Click(Sender: TObject);
begin
  WriteCxGrid(trim(self.Caption) + '1', Tv1, '坯布生产');

end;

procedure TfrmTatPlanPSYLLIST.ToolButton3Click(Sender: TObject);
var
  WSql: string;
begin
  if CDS_1.IsEmpty then
    Exit;
  Tv1.OnFocusedRecordChanged := nil;
  if CDS_1.Locate('SSel', True, []) = False then
  begin
    Application.MessageBox('没有选择数据!', '提示', 0);
    Exit;
  end;

  WSql := '';
  CDS_1.DisableControls;

  with CDS_1 do
  begin
    First;
    while not Eof do
    begin
      if CDS_1.fieldbyname('SSel').AsBoolean then
      begin
        if WSql <> '' then
        begin
          WSql := WSql + ',' + (Trim(CDS_1.fieldbyname('PCID').AsString));
        end
        else
        begin
          WSql := (Trim(CDS_1.fieldbyname('PCID').AsString));
        end;
      end;
      Next;
    end;
  end;

  CDS_1.Locate('SSel', True, []);
  CDS_1.EnableControls;

  try
    ADOQueryCmd.Connection.BeginTrans;

    with ADOQueryCmd do
    begin
      Close;
      Sql.Clear;
      Sql.Add('exec P_Tat_Card_Del ');
      Sql.Add('@PCIDS=' + quotedstr(Trim(WSql)));
      Sql.Add(',@DCode=' + Quotedstr(DCode));
      Sql.Add(',@DName=' + Quotedstr(DName));
      Open;
    end;
    if ADOQueryCmd.FieldByName('intReturn').AsInteger = -1 then
    begin
      raise Exception.Create(pchar(trim(ADOQueryCmd.FieldByName('ShowMsg').AsString)));
    end;
    ADOQueryCmd.Connection.CommitTrans;
    InitGrid();
    application.MessageBox('删除成功！', '提示信息');
  except
    ADOQueryCmd.Connection.RollbackTrans;
    application.MessageBox(PChar(Exception(ExceptObject).Message), '提示信息', 0);
  end;
end;

procedure TfrmTatPlanPSYLLIST.ToolButton4Click(Sender: TObject);
begin
  try
    frmTatCardInPut1 := TfrmTatCardInPut1.Create(Application);
    with frmTatCardInPut1 do
    begin
      if ShowModal = 1 then
      begin
        InitGrid();
      end;
    end;
  finally
    frmTatCardInPut1.Free;
  end;
end;

procedure TfrmTatPlanPSYLLIST.ToolButton5Click(Sender: TObject);
begin
  if ADOQueryMain.Active = False then
    Exit;
  SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  SCreateCDS(ADOQueryMain, CDS_1);
  SInitCDSData(ADOQueryMain, CDS_1);
end;

procedure TfrmTatPlanPSYLLIST.ConNoChange(Sender: TObject);
begin
  if ADOQueryMain.Active = False then
    Exit;
  SDofilter(ADOQueryMain, SGetFilters(Panel1, 1, 2));
  SCreateCDS(ADOQueryMain, CDS_1);
  SInitCDSData(ADOQueryMain, CDS_1);
end;

procedure TfrmTatPlanPSYLLIST.FormShow(Sender: TObject);
begin
  inherited;

  ReadCxGrid(trim(self.Caption) + '1', Tv1, '坯布生产');

  InitGrid();
  InitGrid2();
end;

procedure TfrmTatPlanPSYLLIST.ConNoPropertiesChange(Sender: TObject);
begin
  ToolButton5.Click;
end;

procedure TfrmTatPlanPSYLLIST.cxPageControl1Change(Sender: TObject);
begin
  InitGrid();
end;

procedure TfrmTatPlanPSYLLIST.cxTabControl1Change(Sender: TObject);
begin
  InitGrid();
end;

end.

