U_clsldcx.pas
上传用户:psxgmh
上传日期:2013-04-08
资源大小:15112k
文件大小:5k
源码类别:

Delphi/CppBuilder

开发平台:

Delphi

  1. unit U_clsldcx;
  2. interface
  3. uses
  4.   Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  5.   ExtCtrls, ComCtrls, Grids, DBGrids, Db, DBClient, ImgList, ToolWin;
  6. type
  7.   TfrmClsld_CX = class(TForm)
  8.     StatusBar1: TStatusBar;
  9.     Panel1: TPanel;
  10.     DBGrid: TDBGrid;
  11.     Panel3: TPanel;
  12.     ImageList1: TImageList;
  13.     ToolBar1: TToolBar;
  14.     btnLookUp: TToolButton;
  15.     btnBrowseAll: TToolButton;
  16.     btnOrder: TToolButton;
  17.     btnPrint: TToolButton;
  18.     DataSource: TDataSource;
  19.     procedure btnBrowseAllClick(Sender: TObject);
  20.     procedure FormClose(Sender: TObject; var Action: TCloseAction);
  21.     procedure btnLookUpClick(Sender: TObject);
  22.     procedure btnOrderClick(Sender: TObject);
  23.     procedure btnPrintClick(Sender: TObject);
  24.     procedure DBGridTitleClick(Column: TColumn);
  25.   private
  26.     { Private declarations }
  27.   public
  28.     { Public declarations }
  29.   end;
  30. var
  31.   frmClsld_CX: TfrmClsld_CX;
  32. implementation
  33. uses U_mainform, U_szcx, U_general_print, WzglDB, GenQ3, u_public;
  34. {$R *.DFM}
  35. //==全部浏览按钮实现
  36. procedure TfrmClsld_CX.btnBrowseAllClick(Sender: TObject);
  37. begin
  38.   //将过滤条件置为空
  39.   DM.CDS_CLSLD_CX.close;
  40.   DM.CDS_CLSLD_CX.filter := '';
  41.   DM.CDS_CLSLD_CX.filtered := false;
  42.   DM.CDS_CLSLD_CX.open;
  43. end;
  44. //==当窗体被关闭时
  45. procedure TfrmClsld_CX.FormClose(Sender: TObject; var Action: TCloseAction);
  46. begin
  47.   action := cafree;
  48.   frmClsld_cx := nil; //将frmClsld_cx置为NIl。
  49. end;
  50. //==查找按钮的实现,在此调用第七节,创建的TGenQ3控件
  51. procedure TfrmClsld_CX.btnLookUpClick(Sender: TObject);
  52. var
  53.   GenQuery: TGenQ3;
  54. begin
  55.   GenQuery := TGenQ3.Create(self);
  56.   GenQuery.v_TableName := 'WZ_View_CLSLD_CX'; //设置表名
  57.   GenQuery.v_AppServName := frmMain.SocketConnection; //设置应用服务器连接
  58.   GenQuery.v_ProviderName := 'P_General'; //设置获取数据集的提供者
  59.   //==添加定位字段,“;”前表示实际字段名,‘;’后表示实际字段的别名
  60.   GenQuery.v_fieldsstrings.Add('收料字号;收料字号');
  61.   GenQuery.v_fieldsstrings.Add('仓库名称;仓库名称');
  62.   GenQuery.v_fieldsstrings.Add('制单日期;制单日期');
  63.   GenQuery.v_fieldsstrings.Add('材料编号;材料编号');
  64.   GenQuery.v_fieldsstrings.Add('材料名称;材料名称');
  65.   GenQuery.v_fieldsstrings.Add('存放位置;存放位置');
  66.   GenQuery.v_fieldsstrings.Add('入库单价;入库单价');
  67.   GenQuery.v_fieldsstrings.Add('凭证数量;凭证数量');
  68.   GenQuery.v_fieldsstrings.Add('实收数量;实收数量');
  69.   GenQuery.v_fieldsstrings.Add('供应厂家;供应厂家');
  70.   GenQuery.v_fieldsstrings.Add('采购人;采购人');
  71.   GenQuery.v_fieldsstrings.Add('是否审核;是否审核');
  72.   //打开窗口
  73.   if GenQuery.execute then
  74.   begin
  75.     //给CDS_CLSLD_CX的过滤条件赋值
  76.     DM.CDS_CLSLD_CX.filter := GenQuery.V_filtervalue;
  77.     DM.CDS_CLSLD_CX.filtered := true;
  78.   end;
  79. end;
  80. //==排序按钮的实现
  81. procedure TfrmClsld_CX.btnOrderClick(Sender: TObject);
  82. var
  83.   vs_value: string;
  84.   vi, i: integer;
  85. begin
  86.   //创建通用的排序的窗口
  87.   application.createform(TfrmSzcx, frmSzcx);
  88.   //添加排序的字段
  89.   frmSzcx.SrcList.Items.add('收料字号');
  90.   frmSzcx.srclist.items.add('仓库名称');
  91.   frmSzcx.srclist.items.add('制单日期');
  92.   frmSzcx.srclist.items.add('材料编号');
  93.   frmSzcx.srclist.items.add('存放位置');
  94.   frmSzcx.srclist.items.add('入库单价');
  95.   frmSzcx.srclist.items.add('凭证数量');
  96.   frmSzcx.srclist.items.add('实收数量');
  97.   frmSzcx.srclist.items.add('材料名称');
  98.   frmSzcx.srclist.items.add('供应厂家');
  99.   frmSzcx.srclist.items.add('采购人');
  100.   try
  101.     frmSzcx.showmodal;
  102.   finally
  103.     if Ordered then
  104.     begin
  105.       vi := frmSzcx.DstList.Items.Count;
  106.       if vi > 0 then
  107.       begin
  108.         vs_value := frmSzcx.dstlist.items[0];
  109.       end;
  110.       for i := 2 to vi do
  111.       begin
  112.         vs_value := vs_value + ';' + frmSzcx.dstlist.items[i - 1];
  113.       end;
  114.       //给表索引赋值
  115.       DM.CDS_CLSLD_CX.IndexFieldNames := vs_value;
  116.     end;
  117.     frmSzcx.free;
  118.   end;
  119. end;
  120. //==打印按钮的实现
  121. procedure TfrmClsld_CX.btnPrintClick(Sender: TObject);
  122. begin
  123. //==创建通用打印窗口
  124.   application.createform(TfrmPrint, frmPrint);
  125.   with frmPrint do
  126.   begin
  127.     //添加可打印的字段
  128.     srclist.items.add('收料字号');
  129.     srclist.items.add('仓库名称');
  130.     srclist.items.add('制单日期');
  131.     srclist.items.add('材料编号');
  132.     srclist.items.add('存放位置');
  133.     srclist.items.add('入库单价');
  134.     srclist.items.add('凭证数量');
  135.     srclist.items.add('实收数量');
  136.     srclist.items.add('材料名称');
  137.     srclist.items.add('供应厂家');
  138.     srclist.items.add('采购人');
  139.     srclist.items.add('是否审核');
  140.     vps_tablename := 'WZ_View_Clsld_cx'; //设置表名
  141.     vps_filter := DM.CDS_CLSLD_CX.Filter; //过滤条件
  142.     vps_index := DM.CDS_CLSLD_CX.IndexFieldNames; //索引
  143.     EdtPrintTitle.Text := '收料单据打印'; //报表标题
  144.     try
  145.       showmodal;
  146.     finally
  147.       free;
  148.     end;
  149.   end;
  150. end;
  151. //==当按下DBGrid的标题列时,调用DBGridSort进行对应标题的排序,DBGridSort在
  152. //U_public单元实现
  153. procedure TfrmClsld_CX.DBGridTitleClick(Column: TColumn);
  154. begin
  155.   DBGridsort(dbgrid, column);
  156. end;
  157. end.