⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 bas_qry_bomamount.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
  else
    SQL_Txt:=SQL_Txt+' ItemCode='+
             Quotedstr(lc_ItemCode_Set.Strings[i]);}
  SQL_Txt:='exec findslave '+
           ' '''+ExtEdt_ItemCode.Text+''' ';
  with AdoQry_Main do
  begin
    Close;
    sql.clear;
    sql.Add(SQL_Txt);
    Prepared;
    open;
{    for i:=0 to lc_ItemCode_Set.Count-1 do
    begin
      AdoQry_Main.Locate('ItemCode',lc_ItemCode_Set.Strings[i],[loCaseInsensitive]);
      edit;
//      fieldbyname('ItemName').asstring:=fieldbyname('ItemCode').asstring+
//      '  '+
//      fieldbyname('ItemName').asstring;
      fieldbyname('PmBatch').asfloat:=
      strtofloat(lc_qty.Strings[i]);
      fieldbyname('CapacityHours').asfloat:=
      strtofloat(lc_qty_Precent.Strings[i]);
    end;}
  end;
  DBGridEh1.Refresh;
  Pnl_Hint.Caption:='共计:'+inttostr(AdoQry_Main.RecordCount)+'行';
  pnl_Hint.Refresh;
end;


procedure TFrm_Bas_Qry_BomAmount.ExtEdt_ItemCodeExit(Sender: TObject);
begin
  inherited;
  if lc_String=ExtEdt_ItemCode.Text then exit;
 // lc_ItemCode_Set:=TstrinGlist.Create;
//  lc_qty:=TstrinGlist.Create;
//  lc_qty_Precent:=TstrinGlist.Create;
  AdoQry_Main.Close;
  DBGridEh1.Refresh;
  if MasterCodeUsable(ExtEdt_ItemCode.Text) then
  begin
    pnl_Hint.Caption:='正在进行查询...请稍候!';
    pnl_Hint.Refresh;
    ExtEdt_ItemCode.Color:=clMenu;
    Extedt_ItemCode.Refresh;
//    GetBomAmount(ExtEdt_ItemCode.Text );
//    Bom_Filter;
    Show_it;
    ExtEdt_ItemCode.Color:=clWindow;
    SetPnl_Head(ExtEdt_ItemCode.Text );
    ExtEdt_ItemCode.SetFocus ;
  end
  else
  begin
    DispInfo('输入的代码没找到!',1);
    ExtEdt_ItemCode.SetFocus ;
    Abort;
  end;
//  lc_ItemCode_Set.Free;
//  lc_qty.Free;
//  lc_qty_Precent.Free;

end;

procedure TFrm_Bas_Qry_BomAmount.Act_PreviewExecute(Sender: TObject);
begin
  inherited;
  if (AdoQry_Main.active=False ) or ( (AdoQry_Main.active=True) and (AdoQry_Main.recordCount=0)) then
  begin
    DispInfo('没有数据可打印预览!',3);
    abort;
  end;
  SetReport;
  ExtPrintReport1.preview;
end;

procedure TFrm_Bas_Qry_BomAmount.SetReport;
var
  i,j:integer;
begin
  inherited;
  ExtPrintReport1.DataSet :=nil;
  ExtPrintReport1.Headers.clear;
  i:=0;
  with ExtPrintReport1 do
  begin
    for j:=0 to DBGridEH1.Columns.Count-1 do
      if DBGridEH1.Columns[j].Visible then
      begin
        Headers.Add;
        Headers.Items[i].Caption :=DBGridEH1.Columns[j].Title.Caption;
        Headers.Items[i].FieldName :=DBGridEH1.Columns[j].FieldName;
        Headers.Items[i].DisplayWidth:=DBGridEH1.Columns[j].Width div (DBGridEH1.Columns[j].Font.Size-2);
        Headers.Items[i].Alignment :=DBGridEH1.Columns[j].Alignment;
//        if(Temp_DBGridEh.Columns[j].PickList.Count>0)and
//          (Temp_DBGridEh.Columns[j].KeyList.Count>0)then
//        begin
//          Headers.Items[i].style:=dstransform;
//          Headers.Items[i].TransformFunction:=GetTransValue;
//        end
//        else
//          SetColumnsStyle(i,DBGridEH.Columns[j].FieldName);
        inc(i);
      end;
    DataSet:=AdoQry_Main;

    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Text:='Select SysParamValueC '+
                         'From SysParam '+
                         'where SysParamCode=''Name0''';//Name0是使用本系统的客户的名称
    AdoQry_Tmp.Open;
    ExtPrintReport1.Title1:=AdoQry_Tmp.fieldbyname('SysParamValueC').AsString;
     ExtPrintReport1.Title2:='产品材料汇总表';
    {AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.Add('Select ReportName1,ISOCode1 '+
                         'From ReportCtrl '+
                         'where SysMenuId='''+MenuId+'''');
    AdoQry_Tmp.Open;
    ExtPrintReport1.Title2:=AdoQry_Tmp.fieldbyname('ReportName1').AsString;}
    //ExtPrintReport1.SubTitle1:=AdoQry_Tmp.fieldbyname('ISOCode1').AsString;
    //ExtPrintReport1.Title2:=Pnl_Title.Caption;
    {//ExtPrintReport1.Subtitle2:=Lbl_ConditionTitle.Caption+Lbl_VendorCode.Caption+'
    //'+Lbl_VendorName1.Caption+Lbl_VendorName.Caption;
    //ExtPrintRepor1t.Subtitle3:=Lbl_include1.Caption+Lbl_include.Caption;}
    ExtPrintReport1.subTitle1:='产品代码:'+ExtEdt_ItemCode.text+'                 '+
                              '产品名称:'+lbl_ItemName.Caption+'                 ';
  end;
end;
procedure TFrm_Bas_Qry_BomAmount.Act_PrintExecute(Sender: TObject);
begin
  inherited;
  if (AdoQry_Main.active=False ) or ( (AdoQry_Main.active=True) and (AdoQry_Main.recordCount=0)) then
  begin
    DispInfo('没有数据可打印!',3);
    abort;
  end;
  SetReport;
  ExtPrintReport1.print(self);
end;

procedure TFrm_Bas_Qry_BomAmount.Act_ExcelExecute(Sender: TObject);
begin
  inherited;
  DBGridEhToExcel(DBGridEh1);
end;

procedure TFrm_Bas_Qry_BomAmount.DBGridEhToExcel(DBGridEh: TDBGridEh);
var
  Excel,Sheet:variant;
  KeyList:String;
  i,j,x,y,z:Integer;
begin
  Screen.Cursor:=CrAppStArt;
  try
    Excel:=UnAssigned;
    Excel:=CreateOleObject('Excel.Application');
    Excel.Visible:=False;
    Excel.WorkBooks.Add;
  except
    Excel:=UnAssigned;
    Screen.Cursor:=CrDefault;
    DispInfo('本机未安装EXCEL,本功能必须在安装有EXCEL的电脑上才能运行!',1);
    Abort;
  end;
  if varIsEmpty(Excel) then
  begin
    Screen.Cursor:=CrDefault;
    DispInfo('建立Excel对象不成功,请重试!',1);
    Excel:=UnAssigned;
    Abort;
  end;
  x:=DbGridEh.FrozenCols;
  DbGridEh.FrozenCols:=0;//设置锁定列为0
  j:=0;
  for i:=0 to DBGridEh.Columns.Count-1 do
  begin
    if DBGridEh.Columns[I].Visible Then
     j:=j+1;
  end; //取得显示列总列数
  i:=Round(j/2);
  Sheet:=Excel.WorkSheets[1];
  //Sheet.Name:=TForm(DbGridEh.Parent.Parent).Caption;
  Sheet.Cells[1,i]:=''''+TForm(DbGridEh.Parent.Parent).Caption;
  Sheet.cells[2,1]:='日期:'+FormatDateTime('yyyy"年"mm"月"dd"日"',Now);
  Sheet.Cells[2,j-1]:='制表:'+UserCode;    //以上为表头输出
  J:=1;
  for I:=0 To DBGridEh.Columns.Count-1  Do
    if DBGridEh.Columns[I].Visible Then
    begin
      Sheet.Cells[3,J]:=''''+DbGridEh.Columns[I].Title.Caption;  //设置列标题
      j:=j+1;
    end;
  if not DbGridEh.DataSource.DataSet.Active Then
  begin
    Excel.Quit;
    Excel:=UnAssigned;
    Screen.Cursor:=CrDefault;
    Abort;
  end;
  with DBGridEh.DataSource.DataSet do
  begin
    First;
    I:=4; //行记数
    While Not Eof Do
    begin
      Y:=1;
      For J:=0 To DbgridEh.Columns.Count-1 Do //列记数
      begin
      If DbGridEh.Columns[J].Visible Then
      begin
        KeyList:='';
        If (DbgridEh.Columns[J].KeyList.Count>0) Then
          For z:=0 To DbgridEh.Columns[J].KeyList.Count-1 Do
           If KeyList='' Then
             KeyList:=DbgridEh.Columns[J].KeyList.Strings[z]
           Else
             KeyList:=KeyList+','+DbgridEh.Columns[J].KeyList.Strings[z];
        If (DbgridEh.Columns[J].KeyList.Count>0) And (Pos(fieldbyname(DbGridEh.Columns[J].FieldName).AsString,KeyList)>0)
           And (DbgridEh.Columns[J].PickList.Count>=DbGridEh.Columns[J].KeyList.IndexOf(fieldbyname(DbGridEh.Columns[J].FieldName).AsString))  then
             Sheet.Cells[I,Y]:=''''+DbGridEh.Columns[J].PickList.Strings[DbGridEh.Columns[J].KeyList.IndexOf(fieldbyname(DbGridEh.Columns[J].FieldName).AsString)]
        Else
        begin
          If (fieldbyname(DbGridEh.Columns[J].FieldName).DataType=FtDateTime)
            Or (fieldbyname(DbGridEh.Columns[J].FieldName).DataType=FtDate)
            Or (fieldbyname(DbGridEh.Columns[J].FieldName).DataType=FtTime)Then
            Sheet.Cells[I,Y]:=FormatDateTime('yyyy.mm.dd',fieldbyname(DbGridEh.Columns[J].FieldName).AsDateTime)
          Else If (fieldbyname(DbGridEh.Columns[J].FieldName).DataType<>FtString) Then
            Sheet.Cells[I,Y]:=fieldbyname(DbGridEh.Columns[J].FieldName).AsString
          Else
            Sheet.Cells[I,Y]:=''''+fieldbyname(DbGridEh.Columns[J].FieldName).AsString;
        end;
        Y:=Y+1;
      end;
      end;
      I:=I+1;
      Next;
    end;
  end;
  Screen.Cursor:=CrDefault;
  Excel.Visible:=True;
  DbGridEh.FrozenCols:=X;
  Excel:=UnAssigned;
end;

end.

⌨️ 快捷键说明

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