359 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
			
		
		
	
	
			359 lines
		
	
	
		
			10 KiB
		
	
	
	
		
			ObjectPascal
		
	
	
	
	
	
| unit U_GetDllForm;
 | ||
| 
 | ||
| interface
 | ||
| 
 | ||
| uses
 | ||
|   Windows, Messages, forms, OleCtnrs, DateUtils, SysUtils, ADODB, IniFiles,
 | ||
|   dxcore, activeX;
 | ||
| 
 | ||
| function GetDllForm(App: Tapplication; FormH: hwnd; FormID: integer; Language: integer; WinStyle: integer; GCode: Pchar; GName: Pchar; DataBase: Pchar; Title: PChar; Parameters1: PChar; Parameters2: PChar; Parameters3: PChar; Parameters4: PChar; Parameters5: PChar; Parameters6: PChar; Parameters7: PChar; Parameters8: PChar; Parameters9: PChar; Parameters10: PChar; DataBaseStr: PChar): hwnd; export; stdcall;
 | ||
| 
 | ||
| function ConnData(): Boolean;
 | ||
| 
 | ||
| implementation
 | ||
| 
 | ||
| uses
 | ||
|   U_DataLink, U_KHInfo, U_ZdyAttachment, U_ZdyAttachGYS, U_ZdyAttachCP,
 | ||
|   U_CPKWlist, U_ZdyAttachCP10, U_ZdyAttachCP20, U_ZdyAttachPB;
 | ||
| 
 | ||
|        /////////////////////////////////////////////////////////////////
 | ||
|       //         功能说明:取Dll中得窗体                              //
 | ||
|      //        参数说明:App>>调用应用程序;                        //
 | ||
|     //                 FormH>>调用窗口句柄 ;                      //
 | ||
|    //                 FormID>>窗口号;                             //
 | ||
|   //                 Language>>语言种类;                         //
 | ||
|  //                 WinStyle>>窗口类型;                        //
 | ||
| /////////////////////////////////////////////////////////////////
 | ||
| function GetDllForm(App: Tapplication; FormH: hwnd; FormID: integer; Language: integer; WinStyle: integer; GCode: Pchar; GName: Pchar; DataBase: Pchar; Title: PChar; Parameters1: PChar; Parameters2: PChar; Parameters3: PChar; Parameters4: PChar; Parameters5: PChar; Parameters6: PChar; Parameters7: PChar; Parameters8: PChar; Parameters9: PChar; Parameters10: PChar; DataBaseStr: PChar): hwnd;
 | ||
| var
 | ||
|   i: Integer;
 | ||
|   bFound: Boolean;
 | ||
|   mnewHandle: hwnd;
 | ||
|   mstyle: TFormStyle;     // 0:子窗口; 1:普通窗口
 | ||
|   mstate: TWindowState;
 | ||
|   mborderstyle: TFormBorderStyle;
 | ||
| begin
 | ||
|   mnewHandle := 0;
 | ||
|   DName := GName;
 | ||
|   DCode := GCode;
 | ||
|   DdataBase := DataBase;
 | ||
|   DTitCaption := Title;
 | ||
|   DParameters1 := Parameters1;
 | ||
|   DParameters2 := Parameters2;
 | ||
|   DParameters3 := Parameters3;
 | ||
|   DParameters4 := Parameters4;
 | ||
|   DParameters5 := Parameters5;
 | ||
|   DParameters6 := Parameters6;
 | ||
|   DParameters7 := Parameters7;
 | ||
|   DParameters8 := Parameters8;
 | ||
|   DParameters9 := Parameters9;
 | ||
|   DParameters10 := Parameters10;
 | ||
| 
 | ||
|   MainApplication := App;
 | ||
|   DCurHandle := FormH;
 | ||
|   IsDelphiLanguage := Language;
 | ||
| 
 | ||
|   Application := TApplication(App);                      
 | ||
|   DCurHandle := 0;
 | ||
| 
 | ||
| 
 | ||
|    //赋值链接字符串
 | ||
|   SetLength(server, 255);
 | ||
|   SetLength(dtbase, 255);
 | ||
|   SetLength(user, 255);
 | ||
|   SetLength(pswd, 255);
 | ||
| 
 | ||
|   server := '101.132.143.144,7781';
 | ||
| //   server:='.';
 | ||
|   dtbase := 'hengmingdata';
 | ||
|   user := 'rtsa';
 | ||
|   pswd := 'rightsoft@5740';
 | ||
|   DConString := 'Provider=SQLOLEDB.1;Password=' + pswd + ';Persist Security Info=True;User ID=' + user + ';Initial Catalog=' + dtbase + ';Data Source=' + server;
 | ||
|   if trim(DataBaseStr) <> '' then
 | ||
|     DConString := DataBaseStr;
 | ||
| //    DParameters2:='坯布厂';     
 | ||
| //  DParameters1:='查询';
 | ||
|   // DParameters1:='1';
 | ||
|  //  DataBase:='加工厂';
 | ||
|   //DataBase:='桂华纺织';
 | ||
| //  DParameters4:='低权限';
 | ||
|   if not ConnData() then
 | ||
|   begin
 | ||
|     result := 0;
 | ||
|     exit;
 | ||
|   end;
 | ||
| 
 | ||
|    // 定义窗口类型 、状态
 | ||
|   if WinStyle = 0 then
 | ||
|   begin
 | ||
|     mstyle := fsMDIChild;
 | ||
|     mstate := wsMaximized;
 | ||
|     mborderstyle := bsSizeable;
 | ||
|   end
 | ||
|   else
 | ||
|   begin
 | ||
|     mstyle := fsNormal;
 | ||
|     mstate := wsNormal;
 | ||
|     mborderstyle := bsSizeable;
 | ||
|   end;
 | ||
|   /////////////////////
 | ||
|   //调用子模块窗口
 | ||
|   case FormID of
 | ||
|     1:  //客户资料维护
 | ||
|       begin
 | ||
|         if frmZdyAttachment = nil then
 | ||
|         begin
 | ||
|           frmZdyAttachment := TfrmZdyAttachment.Create(application.MainForm);
 | ||
|           with frmZdyAttachment do
 | ||
|           begin
 | ||
|             caption := Trim(Title);
 | ||
|             fkhType := trim(DataBase);
 | ||
|             canshu1 := trim(DParameters1);
 | ||
|             FParameters4 := trim(DParameters4);
 | ||
|             FormStyle := mstyle;
 | ||
|             windowState := mstate;
 | ||
|             BorderStyle := mborderstyle;
 | ||
|            //show;
 | ||
|           end;
 | ||
|         end
 | ||
|         else
 | ||
|           frmZdyAttachment.BringToFront;
 | ||
|        //句柄
 | ||
|         mnewHandle := frmZdyAttachment.Handle;
 | ||
| 
 | ||
|       end;
 | ||
|     21:  //供应商资料维护(坯布厂管理)
 | ||
|       begin
 | ||
|         bFound := FALSE;
 | ||
|         for i := (App.MainForm.MDIChildCount - 1) downto 0 do
 | ||
|         begin
 | ||
|           if App.MainForm.MDIChildren[i].Caption = '坯布厂管理' then
 | ||
|           begin
 | ||
|             BringWindowToTop(frmZdyAttachGYS.Handle);
 | ||
|             bFound := TRUE;
 | ||
|             Break;
 | ||
|           end;
 | ||
|         end;
 | ||
|         if not bFound then
 | ||
|         begin
 | ||
|           frmZdyAttachGYS := TfrmZdyAttachGYS.Create(application.MainForm);
 | ||
|           with frmZdyAttachGYS do
 | ||
|           begin
 | ||
|             fDEFstr5 := trim(DParameters2);
 | ||
|             Title := '坯布厂管理';
 | ||
|             caption := Trim(Title);
 | ||
|             FormStyle := mstyle;
 | ||
|             windowState := mstate;
 | ||
|             BorderStyle := mborderstyle;
 | ||
|            //show;
 | ||
|            end;
 | ||
|         end
 | ||
|         else
 | ||
|           frmZdyAttachGYS.BringToFront;
 | ||
|        //句柄
 | ||
|         mnewHandle := frmZdyAttachGYS.Handle;
 | ||
|       end;
 | ||
|          22:  //供应商资料维护(加工厂管理 染厂)
 | ||
|       begin
 | ||
|         bFound := FALSE;
 | ||
|         for i := (App.MainForm.MDIChildCount - 1) downto 0 do
 | ||
|         begin
 | ||
|           if App.MainForm.MDIChildren[i].Caption = '加工厂管理' then
 | ||
|           begin
 | ||
|             BringWindowToTop(frmZdyAttachGYS.Handle);
 | ||
|             bFound := TRUE;
 | ||
|             Break;
 | ||
|           end;
 | ||
|         end;
 | ||
|         if not bFound then
 | ||
|         begin
 | ||
|           frmZdyAttachGYS := TfrmZdyAttachGYS.Create(application.MainForm);
 | ||
|           with frmZdyAttachGYS do
 | ||
|           begin
 | ||
|             fDEFstr5 := trim(DParameters2);
 | ||
|             Title := '加工厂管理';
 | ||
|             caption := Trim(Title);
 | ||
|             FormStyle := mstyle;
 | ||
|             windowState := mstate;
 | ||
|             BorderStyle := mborderstyle;
 | ||
|            //show;
 | ||
|            end;
 | ||
|         end
 | ||
|         else
 | ||
|           frmZdyAttachGYS.BringToFront;
 | ||
|        //句柄
 | ||
|         mnewHandle := frmZdyAttachGYS.Handle;
 | ||
|       end;
 | ||
| 
 | ||
|     2:  //供应商资料维护
 | ||
|       begin
 | ||
|         if frmZdyAttachGYS = nil then
 | ||
|         begin
 | ||
|           frmZdyAttachGYS := TfrmZdyAttachGYS.Create(application.MainForm);
 | ||
|           with frmZdyAttachGYS do
 | ||
|           begin
 | ||
|             caption := Trim(Title);
 | ||
|             fDEFstr5 := trim(DParameters2);
 | ||
| //            fDEFstr5 := trim(DataBase);
 | ||
|             FormStyle := mstyle;
 | ||
|             windowState := mstate;
 | ||
|             BorderStyle := mborderstyle;
 | ||
|            //show;
 | ||
|           end;
 | ||
|         end
 | ||
|         else
 | ||
|           frmZdyAttachGYS.BringToFront;
 | ||
|        //句柄
 | ||
|         mnewHandle := frmZdyAttachGYS.Handle;
 | ||
|       end;
 | ||
|     3:  //产品资料维护
 | ||
|       begin
 | ||
|         if frmZdyAttachCP = nil then
 | ||
|         begin
 | ||
|           frmZdyAttachCP := TfrmZdyAttachCP.Create(application.MainForm);
 | ||
|           with frmZdyAttachCP do
 | ||
|           begin
 | ||
|             caption := Trim(Title);
 | ||
|          //  fkhType:='';
 | ||
|             fkhType := trim(DataBase);
 | ||
|             FormStyle := mstyle;
 | ||
|             windowState := mstate;
 | ||
|             BorderStyle := mborderstyle;
 | ||
|            //show;
 | ||
|           end;
 | ||
|         end
 | ||
|         else
 | ||
|           frmZdyAttachCP.BringToFront;
 | ||
|        //句柄
 | ||
|         mnewHandle := frmZdyAttachCP.Handle;
 | ||
| 
 | ||
|       end;
 | ||
|     33:  //坯布资料维护
 | ||
|       begin
 | ||
|         if frmZdyAttachPB = nil then
 | ||
|         begin
 | ||
|           frmZdyAttachPB := TfrmZdyAttachPB.Create(application.MainForm);
 | ||
|           with frmZdyAttachPB do
 | ||
|           begin
 | ||
|             caption := Trim(Title);
 | ||
|          //  fkhType:='';
 | ||
|             fkhType := trim(DataBase);
 | ||
|             FormStyle := mstyle;
 | ||
|             windowState := mstate;
 | ||
|             BorderStyle := mborderstyle;
 | ||
|            //show;
 | ||
|           end;
 | ||
|         end
 | ||
|         else
 | ||
|           frmZdyAttachPB.BringToFront;
 | ||
|        //句柄
 | ||
|         mnewHandle := frmZdyAttachPB.Handle;
 | ||
| 
 | ||
|       end;
 | ||
|     31:  //产品资料维护
 | ||
|       begin
 | ||
|         if frmZdyAttachCP10 = nil then
 | ||
|         begin
 | ||
|           frmZdyAttachCP10 := TfrmZdyAttachCP10.Create(application.MainForm);
 | ||
|           with frmZdyAttachCP10 do
 | ||
|           begin
 | ||
|             caption := Trim(Title);
 | ||
|             FormStyle := mstyle;
 | ||
|             windowState := mstate;
 | ||
|             BorderStyle := mborderstyle;
 | ||
|            //show;
 | ||
|           end;
 | ||
|         end
 | ||
|         else
 | ||
|           frmZdyAttachCP10.BringToFront;
 | ||
|        //句柄
 | ||
|         mnewHandle := frmZdyAttachCP10.Handle;
 | ||
| 
 | ||
|       end;
 | ||
|     32:  //产品目录
 | ||
|       begin
 | ||
|         if frmZdyAttachCP20 = nil then
 | ||
|         begin
 | ||
|           frmZdyAttachCP20 := TfrmZdyAttachCP20.Create(application.MainForm);
 | ||
|           with frmZdyAttachCP20 do
 | ||
|           begin
 | ||
|             caption := Trim(Title);
 | ||
|             FormStyle := mstyle;
 | ||
|             windowState := mstate;
 | ||
|             BorderStyle := mborderstyle;
 | ||
|            //show;
 | ||
|           end;
 | ||
|         end
 | ||
|         else
 | ||
|           frmZdyAttachCP20.BringToFront;
 | ||
|        //句柄
 | ||
|         mnewHandle := frmZdyAttachCP20.Handle;
 | ||
| 
 | ||
|       end;
 | ||
| 
 | ||
|     6:  //统计汇总查询
 | ||
|       begin
 | ||
|         if frmCPKWList = nil then
 | ||
|         begin
 | ||
|           frmCPKWList := TfrmCPKWList.Create(application.MainForm);
 | ||
|           with frmCPKWList do
 | ||
|           begin
 | ||
|             caption := Trim(Title);
 | ||
|             fType := trim(DataBase);
 | ||
|             FormStyle := mstyle;
 | ||
|             windowState := mstate;
 | ||
|             BorderStyle := mborderstyle;
 | ||
|            //show;
 | ||
|           end;
 | ||
|         end
 | ||
|         else
 | ||
|           frmCPKWList.BringToFront;
 | ||
|        //句柄
 | ||
|         mnewHandle := frmCPKWList.Handle;
 | ||
| 
 | ||
|       end;
 | ||
|   end;  // end case
 | ||
| 
 | ||
|   Result := mnewHandle;
 | ||
| //   NewDllApp:=Application ;
 | ||
| end;
 | ||
| //===========================================================
 | ||
|   //建立数据库连接池
 | ||
| //===========================================================
 | ||
| 
 | ||
| function ConnData(): Boolean;
 | ||
| begin
 | ||
|   if not Assigned(DataLink_BaseInfo) then
 | ||
|     DataLink_BaseInfo := TDataLink_BaseInfo.Create(Application);
 | ||
|   try
 | ||
|     with DataLink_BaseInfo.ADOLink do
 | ||
|     begin
 | ||
|       if not Connected then
 | ||
|       begin
 | ||
|         Connected := false;
 | ||
|         ConnectionString := DConString;
 | ||
|         LoginPrompt := false;
 | ||
|         Connected := true;
 | ||
|       end;
 | ||
|     end;
 | ||
|     Result := true;
 | ||
|   except
 | ||
|     Result := false;
 | ||
|     application.MessageBox('数据库连接失败!', '错误', mb_Ok + MB_ICONERROR);
 | ||
|   end;
 | ||
| 
 | ||
| end;
 | ||
| 
 | ||
| initialization
 | ||
|   CoInitialize(nil);
 | ||
|   dxUnitsLoader.Initialize;
 | ||
| 
 | ||
| 
 | ||
| finalization
 | ||
|   DataLink_BaseInfo.Free;
 | ||
|   application := NewDllApp;
 | ||
|   dxUnitsLoader.Finalize;
 | ||
| 
 | ||
| end.
 | ||
| 
 | 
