BatchHelper 販売管理B作成


  【06B】 販売管理(MDB)データーベースの作成.wsf




WinOfSql\Tool\script\HelperMenu に置く必要があります

  

<JOB>
<OBJECT id="Lbox" progid="Lbox.BatchHelper" />
<OBJECT id="Wsc" progid="Lbox.BatchWsc" />
<OBJECT id="Fs" progid="Lbox.Fsystem" />
<OBJECT id="Database" progid="Lbox.Database" />
<OBJECT id="Ftp" progid="Lbox.Ftp" />
<OBJECT id="Outer" progid="Lbox.OuterDll" />
<OBJECT id="Prt" progid="Lbox.Prt" />
<OBJECT id="Window" progid="Lbox.Window" />
<OBJECT id="Wnet" progid="Lbox.Wnet" />
<OBJECT id="Adox" progid="ADOX.Catalog" />
<OBJECT id="Cn" progid="ADODB.Connection" />
<OBJECT id="Rs" progid="ADODB.Recordset" />

<SCRIPT language=VBScript>

' *****************************************************************************
' 販売管理(MDB)データーベースの作成
' *****************************************************************************

Dim DbPath,Result,Query

Dim bSame
' 毎回同じデータにしたい場合は true にします
bSame = true

' **********************************************
' データベースファイル作成
' **********************************************
DbPath = Lbox.SaveFileName( "販売管理DBを指定して下さい", "MDB,*.mdb" , , "mdb", "販売管理B" )
if DbPath = "" then
	Lbox.MsgOk( "データベース指定でキャンセルされました   " )
	Wscript.Quit
end if

if Fs.IsFileExist( DbPath ) then
	Lbox.MsgOk( DbPath & " は既に存在します" )
	Wscript.Quit
end if

' **********************************************
' SQLの窓とのインターフェイス
' **********************************************
if Lbox.CheckMutex( "WinOfSql" ) then
	hWnd = Lbox.FindTopWindow( "WINOFSQL" ) 
else
	hWnd = Lbox.Run("..\..\..\WinOfSql.exe", "WINOFSQL" )
end if
if hWnd = 0 then
	Lbox.MsgOk( "SQLの窓のウインドウハンドルを取得できませんでした" )
end if

' **********************************************
' SQLの窓の操作
' **********************************************
Window.hWnd = hWnd
' ウインドウを最小化や最大化から標準状態に戻します
Window.Restore
' ウインドウをデスクトップにあわせます
Window.ScreenFit
' ウインドウをアクティブにします
Lbox.ActiveWindow = hWnd

Call Lbox.EnumList( hWnd, "販売管理データベースを作成します" )

' **********************************************
' DB 作成
' **********************************************
on error resume next
Adox.Create "Provider=Microsoft.Jet.OLEDB.4.0;" & _
	"Data Source=" & DbPath & ";"
if Err.Number <> 0 then
	Lbox.MsgOk( Err.Description & ":" & DbPath )
	Wscript.quit
end if
on error goto 0

Call Lbox.EnumListAdd( hWnd, DbPath & " を作成しました" )

' **********************************************
' 接続
' **********************************************
Result = Database.Connect( 1, DbPath ) 
if Result <> "" then
	Lbox.MsgOk( Result )
	Wscript.quit
end if

Call Lbox.EnumListAdd( hWnd, "DB に接続しました" )

' **********************************************
' 固定マスタデータ作成
' **********************************************
Call Database.Execute( "parts\販売管理表定義.sql" )
Query = "alter table [社員マスタ] add column"
Query = Query & " [給与] INT"
Query = Query & " ,[手当] INT"
Query = Query & " ,[管理者] varchar(4)"
Database.Query( Query )
Call Database.Execute( "parts\コード名称マスタ.sql" )
Call Database.Execute( "parts\コントロールマスタ.sql" )
Call Database.Execute( "parts\メッセージマスタ.sql" )
Call Database.Execute( "parts\商品分類マスタ.sql" )

Call Lbox.EnumListAdd( hWnd, "固定マスタデータを作成しました" )

' **********************************************
' 社員マスタ
' **********************************************
strName1 = "山川森鈴木高田本多村吉岡松丸杉浦中尾安原野内"
strName1k = "ヤマ,カワ,モリ,スズ,キ,タカ,タ,モト,タ,ムラ,ヨシ,オカ,マツ,マル,スギ,ウラ,ナカ,オ,ヤス,ハラ,ノ,ウチ"
strWork = ""
strName2 = "和元雅正由克友浩春冬洋輝"
strName2k = "カズ,モト,マサ,マサ,ヨシ,カツ,トモ,ヒロ,ハル,フユ,ヒロ,テル"

strName3 = "男也一行樹之"
strName3k = "オ,ヤ,カズ,ユキ,キ,ユキ"
strName4 = "子代美恵"
strName4k = "コ,ヨ,ミ,エ"

' 件数
nMax1 = 50
Call Lbox.EnumListAdd( hWnd, "社員マスタとデータを作成しています...." )
Call Lbox.EnumListAdd( hWnd, "作成件数は " & nMax1 & " 件です" )

For i = 1 to nMax1
	Query = "insert into [社員マスタ] values("
	Query = Query & Ss( Lbox.Fzero( i , 4 ) )

	' 姓1文字目
	nTarget = MyRandom( 1, Len(strName1) )
	strName = Mid( strName1, nTarget, 1 )
	aData = Split(strName1k,",")
	strKana = aData(nTarget-1)
	' 1文字目と2文字目が一致したら除外
	nTarget2 = nTarget
	Do while( nTarget = nTarget2 )
		nTarget2 = MyRandom( 1, Len(strName1) )
	Loop
	' 姓2文字目
	strName = strName & Mid( strName1, nTarget2, 1 ) & " "
	strKana = strKana & aData(nTarget2-1) & " "

	' 名1文字目
	nTarget = MyRandom( 1, Len(strName2) )
	strName = strName & Mid( strName2, nTarget, 1 )
	aData = Split(strName2k,",")
	strKana = strKana & aData(nTarget-1)
	' 性別
	nTarget = MyRandom( 0, 1 )
	nS = nTarget
	' 性別によって名2文字目を決定
	if nTarget = 0 then
		nTarget = MyRandom( 1, Len(strName3) )
		strName = strName & Mid( strName3, nTarget, 1 )
		aData = Split(strName3k,",")
		strKana = strKana & aData(nTarget-1)
	else
		nTarget = MyRandom( 1, Len(strName4) )
		strName = strName & Mid( strName4, nTarget, 1 )
		aData = Split(strName4k,",")
		strKana = strKana & aData(nTarget-1)
	end if

	Query = Query & "," & Ss( strName )
	Query = Query & "," & Ss( strKana )
	nTarget = MyRandom( 1, 3 )
	Query = Query & "," & Ss( Lbox.Fzero( nTarget, 4 ) )
	Query = Query & "," & nS
	strWork = Date() - MyRandom( 0, 100 )
	Query = Query & "," & Ss( strWork )
	strWork = Date() + MyRandom( 0, 100 )
	Query = Query & "," & Ss( strWork )
	Query = Query & "," & MyRandom( 14, 30 ) * 10000
	if i mod 5 = 1 then
		Query = Query & "," & MyRandom( 5, 10 ) * 1000
	else
		Query = Query & ",NULL"
	end if
	if i <= 5 then
		Query = Query & ",NULL"
	else
		Query = Query & "," & Ss( Lbox.Fzero( MyRandom( 1, 5 ) , 4 ) )
	end if
	Query = Query & ")"

	Database.Query( Query )

Next

Call Lbox.EnumListAdd( hWnd, "社員マスタとデータを作成しました" )

' **********************************************
' 得意先マスタ
' **********************************************
Call Lbox.EnumListAdd( hWnd, "得意先マスタとデータを作成しています...." )

strName3 = "商店,商事,コーポレーション,システム,建設"

' 件数
nMax2 = 50
Call Lbox.EnumListAdd( hWnd, "作成件数は " & nMax2 & " 件です" )

For i = 1 to nMax2
	Query = "insert into [得意先マスタ] values("
	Query = Query & Ss( Lbox.Fzero( i, 4 ) )

	' 姓1文字目
	nTarget = MyRandom( 1, Len(strName1) )
	strName = Mid( strName1, nTarget, 1 )
	' 1文字目と2文字目が一致したら除外
	nTarget2 = nTarget
	Do while( nTarget = nTarget2 )
		nTarget2 = MyRandom( 1, Len(strName1) )
	Loop
	' 姓2文字目
	strName = strName & Mid( strName1, nTarget2, 1 )

	' 付加情報
	aData = Split(strName3,",")
	nTarget = MyRandom( 0, Ubound(aData) )
	strWork = aData(nTarget)

	' 前株、後株、形式
	nTarget = MyRandom( 1, 3 )
	nS = nTarget
	Select Case nS
		Case 1
			strName = "" & strName & strWork
		Case 2
			strName = strName & strWork & "株式会社"
		Case 3
			strName = "株式会社" & strName & strWork
	End Select

	Query = Query & "," & Ss( strName )
	nTarget = MyRandom( 0, 1 )
	Query = Query & "," & Ss( nTarget )
	nTarget = MyRandom( 1, nMax1 )
	Query = Query & "," & Ss( Lbox.Fzero( nTarget, 4 ) )
	' 郵便番号
	aZip = Array(531,539,543,545,553)
	nTarget = MyRandom( 1, 9999 )
	Query = Query & "," & Ss( aZip( MyRandom(0,4) ) & Lbox.Fzero( nTarget, 4 ) )
	' 非 Unicode にコンバーションを考慮して半分の長さ
	strWork = "住所1" & Lbox.Repeat( "−", 43 ) & Wsc.Han2Zen(Lbox.Fzero( i, 4 ))
	Query = Query & "," & Ss( strWork )
	' 非 Unicode にコンバーションを考慮して半分の長さ
	strWork = "住所2" & Lbox.Repeat( "−", 43 ) & Wsc.Han2Zen(Lbox.Fzero( i, 4 ))
	Query = Query & "," & Ss( strWork )
	strWork = Cdate("2005/06/01") - MyRandom( 0, 100 )
	Query = Query & "," & Ss( strWork )
	strWork = Cdate("2005/06/01") + MyRandom( 0, 100 )
	Query = Query & "," & Ss( strWork )
	Query = Query & ")"

	Database.Query( Query )

Next

Call Lbox.EnumListAdd( hWnd, "得意先マスタとデータを作成しました" )

' **********************************************
' 商品マスタ
' **********************************************
Call Lbox.EnumListAdd( hWnd, "商品マスタとデータを作成しています...." )

Query = "select * from [商品分類マスタ]"

strList = Database.LoadSqlData( Query )
aData = Split( strList, vbLf )
nRows = Ubound( aData )

' 件数
nMax3 = 100
Call Lbox.EnumListAdd( hWnd, "作成件数は " & nMax3 & " 件です" )

For i = 1 to nMax3
	Query = "insert into [商品マスタ] values("
	Query = Query & Ss( Lbox.Fzero( i, 4 ) )

	' 商品分類
	nTarget = MyRandom( 2, nRows )
	strType = Lbox.GetListText( strList, nTarget-1, 0 ) 
	strTypeName = Lbox.GetListText( strList, nTarget-1, 1 ) 
	' 非 Unicode にコンバーションを考慮して半分の長さ
	nFill = 25 - Len(strTypeName) - 4
	strWork = strTypeName & Lbox.Repeat( "−", nFill ) & Wsc.Han2Zen(Lbox.Fzero( i, 4 ))
	Query = Query & "," & Ss( strWork )
	' 在庫評価単価
	nTargetBase = MyRandom( 2, 100 ) * 100
	nTarget = nTargetBase - MyRandom( 2, 15 ) * 10
	Query = Query & "," & nTarget
	' 販売単価
	nTarget = nTargetBase + MyRandom( 2, 15 ) * 10
	Query = Query & "," & nTarget
	' 商品分類
	Query = Query & "," & Ss( strType )
	' 商品区分
	nTarget = MyRandom( 0, 1 )
	Query = Query & "," & Ss( nTarget )

	strWork = Cdate("2005/06/01") - MyRandom( 0, 100 )
	Query = Query & "," & Ss( strWork )
	strWork = Cdate("2005/06/01") + MyRandom( 0, 100 )
	Query = Query & "," & Ss( strWork )
	Query = Query & ")"

	if not Database.Query( Query ) then
		Lbox.MsgOk(Query)
	end if

Next

Call Lbox.EnumListAdd( hWnd, "商品マスタとデータを作成しました" )

' **********************************************
' 取引データ
' **********************************************
Call Lbox.EnumListAdd( hWnd, "取引データとデータを作成しています...." )

' 伝票件数
nMax4 = 1000
Call Lbox.EnumListAdd( hWnd, "伝票件数は " & nMax4 & " 件です" )
nCnt = 0

For i = 1 to nMax4
	QueryBase = "insert into [取引データ] values("
	QueryBase = QueryBase & Ss( "10" )
	QueryBase = QueryBase & "," & i

	strWork = Cdate("2005/06/01") + MyRandom( 0, 100 )
	nTarget2 = MyRandom( 1, nMax2 )

	' 行数
	nTarget = MyRandom( 1, 4 )
	For j = 1 to nTarget
		Query = QueryBase & "," & j
		Query = Query & "," & Ss( strWork )
		Query = Query & "," &  Ss( Lbox.Fzero( nTarget2, 4 ) )
		nTarget3 = MyRandom( 1, nMax3 )
		Query = Query & "," & Ss( Lbox.Fzero( nTarget3, 4 ) )
		nTarget4 = MyRandom( 1, 20 )
		Query = Query & "," & nTarget4

		RefQuery = "select * from [商品マスタ] where [商品コード] = " & Ss( Lbox.Fzero( nTarget3, 4 ) )
		Database.Query( RefQuery )
		strTanka = Database.GetText("販売単価")
		Query = Query & "," & strTanka
		Query = Query & "," & Cint(strTanka) * nTarget4
		Query = Query & ")"

		if not Database.Query( Query ) then
			Lbox.MsgOk(Query)
		end if

		nCnt = nCnt + 1
		if ( nCnt mod 100 ) = 0 then
			Call Lbox.EnumListAdd( hWnd, nCnt & " 件のデータを作成しました" )
		end if
	Next
	if ( i mod 100 ) = 0 then
		Call Lbox.EnumListAdd( hWnd, i & " 件の伝票を作成しました" )
	end if

Next

Query = "update [コントロールマスタ] set [売上伝票] = " & nMax4 & " where キー = '1'"
Call Database.Query( Query )

Call Lbox.EnumListAdd( hWnd, nCnt & " 件のデータを作成しました" )
Call Lbox.EnumListAdd( hWnd, "取引データとデータを作成しました" )

' **********************************************
' ビューの作成
' **********************************************
Call Lbox.EnumListAdd( hWnd, "ビュー作成しています...." )
Call Database.Execute( "parts\ビュー作成.sql" )
Call Lbox.EnumListAdd( hWnd, "ビュー作成しました" )

' **********************************************
' 接続解除
' **********************************************
Database.DisConnect

Lbox.MsgOk("処理が終了しました")

function Ss( strValue )
	Ss = "'" & strValue & "'"
end function

function MyRandom( nMin, nMax )

	if bSame then
		MyRandom = Wsc.SameRandom( nMin, nMax )
	else
		MyRandom = Wsc.Random( nMin, nMax )
	end if

end function

</SCRIPT>
</JOB>
  










yahoo  google  MSDN  MSDN(us)  WinFAQ  Win Howto  tohoho  ie_DHTML  vector  wdic  辞書  天気 


[dbaccess]
CCBot/2.0 (https://commoncrawl.org/faq/)
24/12/09 06:52:20
InfoBoard Version 1.00 : Language=Perl

1 BatchHelper COMprog CommonSpec Cprog CprogBase CprogSAMPLE CprogSTD CprogSTD2 CprogWinsock Cygwin GameScript HTML HTMLcss InstallShield InstallShieldFunc JScript JScriptSAMPLE Jsfuncs LLINK OldProg OracleGold OracleSilver PRO PRObrowser PROc PROconePOINT PROcontrol PROftpclient PROjscript PROmailer PROperl PROperlCHAT PROphp PROphpLesson PROphpLesson2 PROphpLesson3 PROphpfunction PROphpfunctionArray PROphpfunctionMisc PROphpfunctionString PROsql PROvb PROvbFunction PROvbString PROvbdbmtn PROvbonepoint PROwebapp PROwin1POINT PROwinSYSTEM PROwinYOROZU PROwindows ProjectBoard RealPHP ScriptAPP ScriptMaster VBRealtime Vsfuncs a1root access accreq adsi ajax amazon argus asp aspSample aspVarious aspdotnet aw2kinst cappvariety centura ckeyword classStyle cmaterial cmbin cmdbapp cmenum cmlang cmlistbox cmstd cmstdseed cmtxt cs daz3d db dbCommon dbaccess dnettool dos download flex2 flex3 flex4 framemtn framereq freeWorld freesoft gimp ginpro giodownload google hdml home hta htmlDom ie9svg install java javaSwing javascript jetsql jquery jsp jspTest jspVarious lightbox listasp listmsapi listmsie listmsiis listmsnt listmspatch listmsscript listmsvb listmsvc memo ms msde mysql netbeans oraPlsql oracle oracleWiper oraclehelper orafunc other panoramio pear perl personal pgdojo pgdojo_cal pgdojo_holiday pgdojo_idx pgdojo_ref pgdojo_req php phpVarious phpguide plsql postgres ps r205 realC realwebapp regex rgaki ruby rule sboard sc scprint scquest sdb sdbquest seesaa setup sh_Imagick sh_canvas sh_dotnet sh_google sh_tool sh_web shadowbox shgm shjquery shvbs shweb sjscript skadai skywalker smalltech sperl sqlq src systemdoc tcpip tegaki three toolbox twitter typeface usb useXML vb vbdb vbsfunc vbsguide vbsrc vpc wcsignup webanymind webappgen webclass webparts webtool webwsh win8 winofsql wmi work wp youtube