326 Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng TF @Flag =0 TNSERT INTO TmbortBatchs (ImportBatchNo, ImportBatchDate, ImportDiscontinued, EntryDate, UserName) VALUES (@ImportBatchNo, @ImportBatchDate, 0, GETDATE() , CURRENT_USER) ELSE UPDATE ImportBatchs SET ImportBatchDate = @ImportBatchDate, ImportDiscontinued = @ImportDiscontinued, UserName = CURRENT_USER WHERE ImportBatchNo = @ImportBatchNo GO 4.1.3 Bang Imports
Tiếp theo hai bảng dữ liệu ImportTypes và ImportBatchs, bạn cũng khai báo thủ tục nội tại dùng để liệt kê danh sách mẩu tin trong bảng Imports như ví dụ UD-21
MP 2 t kê mẩu tin tron
CREATE PROC udsViewImports @ImportNo VARCHAR (10) AS
SELECT * FROM Imports WHERE
ImportNo = CASE @ImportNo WHEN '' THEN ImportNo ELSE @ImportNo END GO
Trang 2
hi liệt kê một mẩu tin chỉ định trong bang Imports thi ban khai báo tương tự như hình UD-21-1 tudsViewImports '100000103' sq lđ Cl Resuts | : ~TimpatNo — ImeotöaciNo ImpatĐae ImpalypdD SuppielD 1 [ioosogi6a"] 'enoo0003 2007043000000 lữ 0003 | |
Hình UD-21-1: Liệt kê một mẩu tin
Nếu cho phép người sử dụng xóa mẩu tin trong bang Imports, bạn có
thể khai báo thủ tục nội tại như ví dụ UD-21-1
Ví dụ UD-91-1: Khai báo xóa mẩu tin trong bảng Imports
CREATE PROC udsDeleteImports @ImportNo VARCHAR (10) AS
DELETE FROM Imports
WHERE
ImportNo = CASE @ImportNo WHEN '' THEN ImportNo
ELSE @ImportNo END
GO
Nếu người sử dụng muốn xóa một, mẩu tin trong bảng Imports, họ có thể khai báo gọi thủ tục nội tại udsDeletelmports như ví dụ UD-21-2
Ví dụ UD-21-2: Khai báo xóa một mẩu tin
uđsDeleteTImports 'TBN000007' GO
Nếu bạn cung cấp giá trị rỗng cho tham số ®ImportNo thì thủ tục nội tại sẽ xóa tất cả mẩu tin trong bảng Imports
í du UD-21-3: Khai báo xóa
udsDeleteImports '' GO
ất cả các mẩu tỉn|
Ngoài ra, bạn cũng khai báo thủ tục nội tại cho phép người sử dụng
thêm mới và cập nhật mẩu tin trong bảng Imports như ví dụ UD-21-4
Ví dụ UD-21-4: Khai báo thêm và cập
CREATE PROC udsInsAndUpdImports
Trang 3328 Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng @Flag BIT, @ImportNo VARCHAR (10), @Import Bat chNo VARCHAR (10), @ImportDate SMALLDATETIME, @ImportTypeld CHAR (3), @SupplierId CHAR(5), @DescriptionInVietnamese NVARCHAR (150), @DescriptionInSecondLanguage NVARCHAR (150), 91mportDiscontinued BIT AS IF @Flag =0
INSERT INTO Imports
(ImportNo, ImportBatchNo, ImportDate, ImportTypelId, Supplierid,
DescriptionInVietnamese, DescriptionInSecondLanguage,
ImportDiscontinued, EntryDate, UserName} VALUES (@ImportNo, @ImportBatchNo,
@ImportDate, @ImportTypeld, @SupplierTd, @bescriptionInVietnamese, @DescriptionInSecondLanguage, 9, GETDATE(), CURRENT_USER) ELSE UPDATE Imports SET ImportDate = @ImportDate, ImportTypelId = @ImportTypetd, Import BatchNo = @ImportBatchNo, DescriptionInVietnamese = @DescriptionInVietnamese, Descript ionInSecondLanguage = @DescriptionInSecondLanguage, Import Discontinued = @ImportDiscontinued, UserName = CURRENT_USER WHERE ImportNo = @ImportNo GO 4.1.4 Bang ImportDetails
Trong phần nhập kho, chúng ta có hai bảng dữ liệu chính là Imports
và ImportDetails Để quản lý dữ liệu bảng ImportDetails, bạn khai báo thủ
tục nội tại dùng để liệt kê danh sách mẩu tin trong bang ImportDetails dua
Trang 4
WHERE ImportNo = @ImportNo
AND OrdinalNumber = CASE @ordinalNumber WHEN 0 THEN OrdinalNumber
ELSE @OrdinalNumber END
AND Product ID = CASE @ProductID WHEN '' THEN Product ID
ELSE @Product ID END GO
Để cho phép người sử dụng liệt kê tất cả mẩu tin trong bảng
ImportDetails, bạn khai báo gọi thủ tục nội tại udsViewImportDetails như hình UD-22 udsViewImportDetails '100000104','',O — §T002 700 I00000104 P00001 ST002 200 00000104 P0002 ST002 50
Hình UD-22: Liệt kê mdu tin trong bang ImportDetails
Khi liệt kê một mẩu tin chỉ định trong bảng ImportDetails thì bạn
khai báo tương tự như hình UD-22-1 udsViewImportDetails '100000104', 'POOD01', 2 I00000104 P00001 S$T002 200
Hình UD-22-1: Liệt kê một mẩu tin
Do mỗi khi người sử dụng xóa mẩu tin trong bảng Imports thì những mẩu tin liên quan trong bảng ImportDetails sẽ tự động xóa theo, cho nên chúng ta chỉ khai báo thủ tục nội tại để xóa một mẩu tin trong bảng
Trang 5
330 Ung dụng: Sử dụng thủ tục nội tại trong ứng dụng
í dụ UD-22-1; Khai báo xóa mẩu tỉn tron:
CREATE PROC udsDeleteImportDetails
@ImportNo VARCHAR (10),
@ProductID VARCHAR (10),
@ordinalNumber TINYINT AS
DELETE FROM ImportDetails WHERE ImportNo = @ImportNo
AND OrdinalNumber = @OrdinalNumber
AND ProductID = @ProductID Go
Khi xóa một mẩu tin trong bang ImportDetails, bạn có thể khai báo
gọi thủ tục tại udsDeletelmportDetails như ví dụ UD-22-2 Vi du UD-22-2: Khai báo xóa mẩu tỉn
udsDeleteImportDetails 'TBNO00007' GO
„ '"P00001',2
Tương tự như trường hợp thêm mới hay cập nhật bảng Imports, ban cũng khai báo thủ tục nội tai cho phép người sử dụng thêm mới và cập nhật mẩu tin trong bảng ImportÐetails như ví dy UD-22-3
í dự UD-27-3: Khai báo thêm và cập nhật mẩu tỉn| CREATE PRỌC uđs1nsAnđUpdTImportDecails @Flag BIT, @importNo VARCHAR (10), @Product ID VARCHAR (10), @OrdinalNumber TINYINT, @StockId CHAR(5), @Quantity DECIMAL (18,0) AS IF @Flag=0 INSERT INTO ImportDetails (OrdinalNumber, ImportNo, ProductID, StockId, Quantity) VALUES (@OrdinalNumber, @ImportNo, @ProductID, @StockId, @Quantity) ELSE
UPDATE ImportDetails SET StockId = @StockId, Quantity = @Quantity
WHERE ImportNo = @ImportNo
AND OrdinalNumber = @OrdinalNumber AND ProductID = @ProductID
Trang 6
Do mỗi lần thêm mẩu tin vào bảng ImportDetails, người sử dụng cần
cập nhật số lượng trong bảng ProductlnStocks, do dé ban cần khai báo Trigger như ví dụ UD-22-4
n mẫu lin vào! Por
CREATE TRIGGER triInsImportDetails ON ImportDetails
FOR INSERT AS
Khai béo bién
DECLARE @ProductId VARCHAR (10} DECLARE @StockId CHAR (3)
DECLARE @Quantity DECIMAL (18,0) Khai báo lấy giá trị tương ứng gán uào biến
SELECT @ProductId= Productid,
@StockId = StockId, @Quantity = Quantity FROM INSERTED Nếu sản phẩm đã tôn tại trong kho thì cập nhật số lượng trong bằng ProductinStocks TF EXISTS (SELECT * FROM ProductInStocks WHERE ProductTd=@Product Tả AND StockId=@StockId) BEGIN
UPDATE Product InStocks SET GoodProduct InStock = GoodProductInStock + @Quantity WHERE Product Id=@ProductId AND StockId=@StockId END ELSE BEGIN
Khai bdo thém moi m@u tin uào bằng ProductinStocks INSERT INTO Product InStocks
(ProductId, StockId, GoodProduct Instock)
VALUES (@Productid, @StockId, @Quantity?) END
GO
Tương tự như vậy, mỗi khi người sử dụng xóa mẩu tin trong bảng
Trang 7332 Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng FOR DELETE AS
DECLARE @ProductId VARCHAR (10) DECLARE @StockId CHAR {3)
DECLARE @Quantity DECIMAL (18, 9) SELECT @ProductId= ProductTd,
@StockTd = StockId, @Quantity = Quantity FROM INSERTED
UPDATE ProductInStocks SET GoodProduct InStock =
GoodProduct Instock - @Quantity
WHERE Product ld=@Productid AND StockId=@StockId
GO
Nếu người sử đụng cập nhật số lượng nhập trong bảng ImportDetails, chúng ta cần xét hai trường hợp, nếu người sử dung cập nhật số lượng nhỏ hơn số lượng hiện hành thì chúng ta thực hiện phép toán trừ để giảm đi và
trường hợp ngược lại thì phép toán cộng để tăng thêm số lượng trong cột
GoodProductInStock của sản phẩm trong kho đó
Để làm điều này, bạn cần khai báo lại thủ tục nội tại có tên
udsInsAndUpdImportDetails thay vì sử dụng đối tượng Trigger như trường hợp thêm hay xóa mẩu tin trong bảng ImportDetails CREATE PROC ugdsTnsAnđUpđTmportDetails KT p nhật bột GoodProduetinStoek @Plag BIT, @ImportNo VARCHAR (10) z @ProductID VARCHAR ( 10), @OrdinalNumber TINYINT, @StockId CHAR(5), @Quantity DECIMAL (18,0) AS IF 8Flag =0 INSERT INTO ImportDetails (OrdinalNumber, ImportNo,
ProductID, StockId, Quantity) VALUES (@OrdinalNumber, @ImportNo, @ProductID, @StockId, @Quantity) ELSE
BEGIN
DECLARE @CurrentQtty DECIMAL (18,0) DECLARE @UpdateQtty DECIMAL (18 20) SELECT @Currentotty = Quantity
FROM ImportDetails
WHERE ImportNo = @ImportNo
Trang 8
UPDATE ImportDetails SET StockId = @StockId, Quantity = @Quantity
WHERE ImportNo = @ImportNo
AND OrdinalNumber = @OrdinalNumber
AND ProductID = @Product ID;
SET @UpdateQtty = @Quantity - @CurrentQtty UPDATE Product InStocks
SET GoodProduct InStock =
GoodProduct InStock + @UpdateQtty
WHERE Product Id=@ProductId AND StockId=@StockId
END GO
Nếu có nhu câu liệt kê số lượng nhập theo sản phẩm, bạn có thể khai
báo thủ tục nội tại như ví dụ UD-22-7 CREATE PROC udsViewImportByProducts @Product ID VARCHAR (10) AS SELECT ProductNameInVietNamese, P.ProductID, SUM(Quantity) As TotalQuantity FROM Products P, ImportDetails D WHERE P Product ID = D Product ID AND D Product ID = CASE @ProductID
WHEN '' THEN D Product ID ELSE @ProductID END
GROUP BY ProductNameInVietNamese, P.ProductID ORDER BY Product ID
GO
Trang 9
334 Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng
4.2 Phần xuất kho
Tương tự như phần nhập kho, khi làm việc với phần xuất kho, bạn
quan tâm các bảng dữ liệu liên quan như: ExportTypes, ExportBatchs, Exports va ExportDetails
4.2.1 Bang ExportTypes
Để làm việc với bảng ExportTypes, bạn bắt đầu khai báo thủ tục nội tại dùng để liệt kê danh sách mẩu tin như ví dụ UD-23
) ÁO kê mẩu tin trong
CREATE PROC uđsViewExportTypes @ExportTypeld CHAR (3)
AS
SELECT * FROM Export Types
WHERE
ExportTypeld = CASE @ExportTypeId
WHEN '' THEN Export TypelId
ELSE @Export TypeId END
Nếu có nhu câu liệt kê tất cả mẩu tin trong bang ExportTypes, ban
khai báo gọi thủ tục nội tại udsViewExportTypes như hình UD-23 udsViewExportTypes '' GO | Ga Resuts | 73 Messages lR ExportT ypelD [ExpottTypeName 1 |
1 q + Export products to customers | | 2 E02 Export products to agents
Hinh UD-23: Liét kê mẩu tin trong bảng ExportTypes
Trang 10udsViewExportTvpes 'Eũ2' sq Bl Results la Messages|_ _ as
alee ExportTypelD | ExportTypeName LS Export products to agents
Hình UD-23-1: Liệt kê một mẩu tin
Trong trường hợp xóa mẩu tin trong bảng ExportTypes, bạn có thể
khai báo thủ tục nội tại như ví dụ UD-23-1
Ví dụ UD-23-1: Khai báo xóa mẩu tin trong
CREATE PROC udsDeleteExportTypes @Export Typeld CHAR (3)
AS
DELETE FROM ExportTypes WHERE
Export Typeld = CASE @ExportTypeTd
WHEN '' THEN ExportTypeId
ELSE @ExportTypelId END
s bang ExportTypes
GO
Rhi xóa một mẩu tin trong bảng ExportTypes, bạn có thể khai báo
gọi thủ tục nội tại udsDeleteExportTypes như ví dụ UD-23-2
Ví dụ UD-23-2: Khai báo xóa một mẩu tỉn| udsDeleteExportTypes 'E04'
GO
Néu ban cung cap gid tri réng cho tham sé @ExportTypeld thi thi tuc nội tại sẽ xóa tất cả mẩu tin trong bảng ExportTypes
Ví dụ UD-23-3: Khai báo xóa tất cả các mẩu tỉin| udsDeleteExportTypes ' '
GO
Tương tự như các bảng dữ liệu khác, bạn cũng khai báo thủ tục nội tại cho phép người sử dụng thêm mới và cập nhật mẩu tin trong bảng ExportTypes như ví dụ UD-23-4
Trang 11
386 Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng @Flag BIT, @ExportTypeTd CHAR (3) , @ExportTypeName NVARCHAR (10) AS TF @Flag = 0
INSERT INTO ExportTypes
VALUES (@ExportTypeld, @ExportTypeName) ELSE
UPDATE ExportTypes
SET Export TypeName = @ExportTypeName WHERE Export Typeld = @ExportTypeId GO
4.2.2 Bang ExportBatchs
Tương tự như bảng ImportBatchs, khi lam việc với bảng
ExportBatchs, bạn bắt đầu khai báo thủ tục nội tại dùng để liệt kê danh sách mẩu tin như ví dụ UD-24
é mau tin trong
CREATE PROC udsViewExportBatchs @ExportBatchNo CHAR (3)
AS
SELECT * FROM ExportBatchs WHERE
Export BatchNo = CASE @ExportBatchNo WHEN '' THEN Export BatchNo
ELSE @ExportBatchNo END
Go
Để cho phép liệt kê tất cả mẩu tin trong bảng ExportBatchs, bạn
Trang 12Tuy nhiên, khi liệt kê một mẩu tin thì bạn khai báo tương tự như hình UD-24-1 udsViewExportBatchs 'EBI006' GO GG Resuts | [7 Messages | ExpottBatchNo ExpotBaichDale | ExportDiscontinued | EntryDate | Userttame L1 |EB06 ^ 1 2071020000000 0 2007-09-09 080400, khang Hình UD-24-1: Liệt kê một mẩu tin
Nếu cho phép người sử dụng xóa mẩu tin trong bảng ExportBatchs, bạn có thể khai báo thủ tục nội tại như ví dụ UD-24-1
Ví dụ UD-24-1: Khai báo xóa mẩu tin trong bang ExportBatchs| CREATE PROC udsDeleteExportBatchs
@ExportBatchNo VARCHAR (10) AS
DELETE FROM ExportBatchs WHERE
Export BatchNo = CASE @ExportBatchNo WHEN '' THEN ExportBatchNo
ELSE @ExportBatchNo END GO
Nếu người sử dụng muốn xóa một mẩu tin trong bảng ExportBatchs,
họ có thể khai báo gọi thủ tục nội tại udsDeleteExportBatchs như ví dụ UD-24-2 Ví dụ UD-24-2: Khai báo xóa một mẩu tin udsDeleteExportBatchs 'TBN000007! GO
Nếu bạn cung cấp giá tri réng cho tham sé @ExportBatchNo thi tha
tục nội tại sẽ xóa tất cả mẩu tin trong bảng ExportBatchs như ví dụ UD-24-3
Ví dụ UD-24-3: Khai báo xóa tất cả các mau tin|
udsDeleteExportBatchs '' GO
Bạn cũng khai báo thủ tục nội tại cho phép người sử dụng thêm mới
Trang 13
Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng
` áo thêm và e, nhật mầu tin CREATE PROC udsInsAndUpdExportBatchs @Flag BIT, @ExportBatchNo VARCHAR (10), @ExportBatchDate SMALLDATETIME, @ExportDiscontinued BIT AS IF @Flag=0 INSERT INTO ExportBatchs (ExportBatchNo, ExportBatchDate, ExportDiscontinued, EntryDate, UserName} VALUES (@ExportBatchNo, @ExportBatchDate, 0, GETDATE(}, CURRENT_USER) ELSE
UPDATE Export Batchs
SET ExportBatchDate = @ExportBatchDate, ExportDiscontinued = @ExportDiscontinued, UserName = CURRENT_USER WHERE Export BatchNo = @Export BatchNo Go 4.2.3 Bang Exports
Chúng ta có thể khai báo thủ tục nội tại cho bang Exports tương tự như bảng Imports Chẳng hạn, bạn cũng khai báo thủ tục nội tại dùng để liệt kê danh sách mẩu tín trong bang Exports nhu vi dy UD-25
CREATE PROC udsViewExports
@ExportNo VARCHAR (10) AS
SELECT * FROM Exports WHERE
ExportNo = CASE @ExportNo WHEN '' THEN ExportNo
ELSE @ExportNo END
GO
Nếu muốn liệt kê tất cả mẩu tin trong bang Exports, ban khai báo gọi
Trang 14udsViewExports ' 100000103 ' 0000000 2007-10-11 00:00:00 E01 A0002 EX00000003 £81001 2071012000000 E01 A0003 4 EX00000004 EBIDI 2007-10-13 00:00:00 £01 A0001 Ex00000005 EBID02 2007-10-14 10:00:00 E01 A0004
EX00000006 EBIO02 2071014000000 E01 A0005
E⁄00000007 EBI003 2007-10-17 00:00:00 E01 A0006 400000008 EBID03 2007-1017 00.0000 E01 A0007 EX00000003 EBI004 2007-10-18 00:00:00 E01 A0008 EX00000010 EBID05 2071019000000 E01 A0001 EX00000011 EBI005 2071019000000 E01 A0002 Ex00000012 EBID 2007-10-20 000000 E01 A0001 EX00000013 EBIUOE 2071020000000 E01 A0005
Hình UD-2ð: Liệt kê mẩu tin trong bảng Exports
hi liệt kê một mẩu tin chỉ định trong bảng Exports thì bạn khai báo
tương tự như hình UD-25-1 udsViewExports 'Ex00000008' GO Reesuts | fy Messages! : j | EnporaichNo | EmportDate ExpotTypelD_ CustomeriD €BI003 2007-10-17 0:00.00 E01
Hình UD-25-1: Liệt kê một mẩu tin
Nếu cho phép người sử dụng xóa mẩu tin trong bảng Exports, bạn có
thể khai báo thủ tục nội tại như ví dụ UD-2ð-1 CREATE PROC udsDeleteExports @ExportNo VARCHAR (10) AS DELETE FROM Exports WHERE
ExportNo = CASE @ExportNo WHEN '' THEN ExportNo
Trang 15
340 Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng Rhi người sử dụng muốn xóa một mẩu tin trong bang ExportTypes, họ có thể khai báo gọi thú tục nội tại udsDeleteExports như ví dụ UD-25-2 Ví dụ UD-25-2: Khai háo xóa một mẩu tỉn|
udsDeleteExports 'EBN000007' GO
Nếu bạn cung cấp giá trị rỗng cho tham số ®BxportNo thì thủ tục nội
tại sẽ xóa tất cả mẩu tin trong bảng Exports như ví dụ UD-25-3
Ví dụ UD-25-3: Khai báo xóa tất cả các mẩu tin|
udsDeleteExports ''
GO
Bạn cũng khai báo thủ tục nội tai cho phép người sử dụng thêm mới và cập nhật mẩu tín trong bắng Exports như ví du UD-25-4,
Ví dụ UD-25-4: Khai báo thêm và cập nị
CREATE PROC udsInsAndUpdExports @Flag BIT, @ExportNo VARCHAR (10}, @Export BatchNo VARCHAR ( 10), @ExportDate SMALLDATETIME, @ExportTypeld CHAR (3), @CustomerId CHAR (5}, @DescriptionInVietnamese NVARCHAR (150),
@Descript ionInSecondLanguage NVARCHAR (150)
GExportDiscont inued BIT
AS
IF @Flag = 0
INSERT INTO Exports
(ExportNo, ExportBatchNo, ExportDate, ExportTypelrd, CustomerId,
DescriptionInVietnamese,
DescriptionInSecondLanguage,
Export Discontinued, EntryDate, UserName) VALUES (@ExportNo, @ExportBatchNo,
Trang 16DescriptionInSecondLanguage = @DescriptionInSecondLanguage, ExportDiscontinued = @ExportDiscontinued, UserName = CURRENT_USER WHERE ExportNo'= @ExportNo GO 4.2.4 Bang ExportDetails
"Tương tư như phần nhập kho, khi làm việc với phần xuất kho chúng
ta có hai bảng dữ liệu chính là Exports và ExportDetails Để quản lý dữ liệu bảng ExportDetails, bạn khai báo thủ tục nội tại dùng để liệt kê danh sách mẩu tin trong bảng ExportDetails dựa trên ba cột dữ liệu ExportNo, ProductId va OrdinalNumber như ví dụ UD-26 CREATE PROC udsViewExportDetails @ExportNo VARCHAR (10), @ProđuctTD VARCHAR (10), @Orđina1Number TINYINT AS
SELECT * FROM ExportDetails WHERE ExportNo = @ExportNo
AND OrdinalNumber = CASE @OrdinalNumber WHEN 0 THEN OrdinalNumber
ELSE @OrdinalNumber END AND Product ID = CASE @ProductID
WHEN '' THEN ProductID ELSE @Product ID END GO
Để cho phép người sử dụng liệt kê tất cả mẩu tin trong bảng
ExportDetails, bạn khai báo gọi thủ tục nội tại udsViewExportDetails như hình UD-26 udsViewExportDetails 'EX000A0001','',0 ‹ Cả Resie LỦ) Messages _ OiđnaNumbe ExpotNo ProduelD Stock Quanhy - Ta E00000001 P00001 ST001 100 2 1 E%00000001 P00002 §T001 200
Hình UD-26: Liệt kê mẩu tin trong bảng ExportDetails
Trang 17342 Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng udsViewExportDetails 'EX00D00001', 'P00001!' ,24 GO exoooo0001 Pood stool 100
Hình UD-26-1: Liệt bê một mẩu tin
Do mỗi khi người sử dụng xóa mẩu tin trong bảng Exports thì những mẩu tin liên quan trong bảng ExportDetails sẽ tự động xóa theo, cho nên chúng ta chỉ khai báo thủ tục nội tại để xóa một mẩu tin trong bảng
ExportDetails với cấu trúc như ví dụ UD-26-1
Ví dụ UD-26-1: Khai báo xóa mẩu tỉn trong ExportDetails|
CREATE PROC udsDeleteExportDetails
@ExportNo VARCHAR (10),
@ProductID VARCHAR (10),
@OrdinalNumber TINYINT AS
DELETE FROM ExportDetails WHERE ExportNo = @ExportNo
AND OrdinalNumber = @OrdinalNumber
AND ProductID = @ProductID GO
Khi xóa tất cả mẩu tin trong bang ExportTypes cia phiếu xuất
EX00000001, ban cé thể khai báo gọi thủ tục nội tại udsDeleteExportDetails
như ví dụ UD-26-2
Ví dụ UD-26:2: Khai báo xóa mẩu tỉn|
udsDeleteExportDetails ' Ex00000001' , +! +0 GO
Tương tự như trường hợp thêm mới hay cập nhật bảng Exports, bạn cũng khai báo thủ tục nội tại cho phép người sử dụng thêm mới và cập nhật mẩu tin trong bảng ExportDetails như ví dụ UD-26-3
r Khai báo thêm và cập nhật rhẩu tỉn|
Trang 18@QuantiEy DECTMAL (18,0) AS IF @Flag =0 INSERT INTO ExportDetails (OrdinalNumber, ExportNo,
ProductID, StockId, Quantity) VALUES (@OrdinalNumber, @ExportNo,
@ProductID, @StockId, @Quantity} ELSE
UPDATE ExportDetails SET StockId = @StockId, Quantity = @Quantity
WHERE ExportNo = @ExportNo
AND OrdinalNumber = @OrdinalNumber AND ProductID = @ProductID
GO
Do mỗi lần thêm mẩu tin vào bảng ExportDetails, người sử dụng cần
cập nhật (giảm) số lượng trong bảng ProductInStocks, do đó bạn cần khai báo Trigger như ví dụ UÐ-26-4
Ví dụ UD-26-4: Khai báo Trigger cho trường hợp thêm mẩu tỉn v: ; ExportDetailsl CREATE TRIGGER triInsExportDetails ON ExportDetails FOR INSERT AS
DECLARE @ProductId VARCHAR (10) DECLARE @StockId CHAR (3}
DECLARE @Quantity DECIMAL (18,0) SELECT @ProductId= Productid,
@StockId = StockId, @Quantity = Quantity FROM INSERTED
UPDATE Product InStocks
SET GoodProduct InStock =
GoodProduct InStock ~ @Quantity
WHERE Product Id=@Productid AND StockId=@StockId
GO
Trang 198? 344 Úng dụng: Sử dụng thủ tục nội tại trong ứng dụng
DECLARE @StockId CHAR (3) ` DECLARE @Quantity DECIMAL (18,0} SELECT @ProductIds ProductId,
@StockId = StockIda, @Quantity = Quantity FROM DELETED
UPDATE Product InStocks SET GoodProduct InStock =
GoodProduct InStock + @Quantity WHERE Product Id=@ProductId AND StockId=@Stockid
GO
hi người sử dụng cập nhật số lượng nhập trong bảng ExportDetails,
chúng ta cần xét hai trường hợp, nếu người sử dụng cập nhật số lượng nhỏ hơn số lượng hiện hành thì chúng ta thực hiện phép toán cộng để tăng lên
và trường hợp ngược lại thì phép toán trừ để giảm số lượng trong cột GoodProductInStoek của sản phẩm của kho đó
Để làm điểu này, bạn cẩn khai báo lại thủ tục nội tại có tên
udsInsAndUpdExportDetails thay vi sit dụng đối tượng Trigger như trường
hợp thêm hay xóa mẩu tin trong bang ExportDetails @Flag BIT, @ExportNo VARCHAR(10), @ProductID VARCHAR (10), @OrdinalNumber TINYINT, @StockId CHAR(5), @Quantity DECIMAL (18,0) AS IF @Flag = 0 INSERT INTO ExportDetails (OrdinalNumber, ExportNo,
Product ID, StockId, Quantity) VALUES (@OrdinalNumber, @ExportNo,
@ProductID, @StockId, @Quantity} ELSE
BEGIN
DECLARE @CurrentQtty DECIMAL (18 70) DECLARE @UpdateQtty DECIMAL (18,0) SELECT @CurrentQtty = Quantity FROM ExportDetails
WHERE ExportNo = @ExportNo
AND OrdinalNumber = @OrdinalNumber
AND Product ID = @ProductID; UPDATE ExportDetails
Trang 20WHERE ExportNo = @ExportNo
AND OrdinalNumber = @OrdinalNumber AND Product ID = @Product ID;
SET @UpdateQtty = @Quantity - @CurrentQtty
UPDATE Product InStocks SET GoodProduct InStock =
GoodProduct InStock - @UpdateQtty
WHERE Product Id=@ProductId AND StockId=@StockId
END GO
Khi người sử dụng có nhu cầu liệt kê số lượng nhập theo sản phẩm, bạn có thể khai báo thủ tục nội tại như ví dụ UD-26-7
CREATE PROC I5 u165Exoost.DyEroduete
@Product ID VARCHAR (10)
AS
SELECT ProductNameInVietNamese, P.ProductID,
SUM(Quantity) As TotalQuantity FROM Products P, ExportDetails D WHERE P Product ID = D Product ID AND D Product ID = CASE @ProductID
WHEN '' THEN D ProductID ELSE @ProductID END
GROUP BY ProductNameInVietNamese, P.ProductID
ORDER BY Product ID GO
Bạn có thể gọi thủ tục nội tại udsViewExportByProducts bằng cách
truyền giá trị cho tham số @ProduetID là rỗng hay mã sản phẩm cụ thể như hình UD-26-2 T udsViewExportByProducts ''
Trang 21
346 Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng
4.3 Tình hình tồn kho
Sau khi khai báo thủ tục nội tại cho phần nhập và xuất kho, chúng ta
tiếp tục tạo các thủ tục nội tại dùng để thống kê tình hình tên kho,
Để làm điều này, trước tiên bạn khai báo thủ tục nội tại cho phép
thống kê số lượng nhập và xuất trong kỳ cùng với số lượng cân đối theo từng
mã sản phẩm bằng cách sử dụng biểu thức bảng như ví dụ UD-27 Ví dụ UỊ CREATE PROC udsICBalance @ProductId VARCHAR (10) AS WITH ImportAndExport AS ( SELECT ProductId, SUM(Quantity) AS Import, 0 As Export FROM ImportDetails
WHERE ProductId = CASE @ProductIa WHEN '' THEN ProductId
ELSE @Productid END GROUP BY ProductId UNION ALL
SELECT ProductId, 0 As Import, SUM(Quantity) AS Export FROM ExportDetails
WHERE ProductId = CASE @ProductId WHEN '' THEN Productid
ELSE @ProductId END GROUP BY ProductId ) SELECT P.ProductId, ProductNameInVietnamese, SUM(Import) As ImportQuantity, SUM(Export) As ExportQuantity,
SUM(Import - Export) AS BalanceQuantity FROM Products P, ImportAndExport IE WHERE P ProductId = IE ProductId AND P ProductIid = CASE @ProductIda
WHEN '' THEN P ProductId ELSE @ProductId END
GROUP BY P.ProductId, ProductNameInVietnamese ORDER BY P ProductId
GO
Bạn có thể gọi thủ tuc ndi tai udsICBalance véi giá trị là rỗng cho
tham sé @ProductId thì danh sách sản phẩm cùng với tổng số lượng nhập
Trang 22Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng 347 M udetcpatence | 1800 = Túsách dừng do bạc hư —— 120 0 Tú sách ngchohẹcshnam 700 fd Téigomda 0 zm TWh dng cho My tinh zm 10 1g Tú sách dừng cho Đện hạ đđộng 380 0 z0 Th ding cho PC seo ° xo
Hình UD-37: Thống kê số lượng nhập uà xuất
Lưu ý: Nếu bạn gọi thủ tục nội tại udsICBalance với mã sản phẩm cụ thể nào đó cho tham sé @ProductId thi két quả trình bày tương tự như hình UD-27-1 udsTCBalance 'P00002' Productid,_ProductNamelrVietnamese, 6 BalenceQuantty | 1 Tứ xách ding cho hoc sinh nf) 1200 750 450
Hình UD-27-1: Thống kê số lượng nhập uù xuất của sản phẩm P00002 Để tính tổn kho trong tháng hiện hành, bạn có thể khai báo thủ tục nội tại có tên ICStatus với cấu trúc như ví dụ UD-27-1 CREATE PROC ICStatus @MonthYear CHAR (7) AS WITH ICTable AS (
Trang 23pa’ 348 Ung dụng: Sử dụng thủ tục nội tại trong ứng dụng FROM CloseInventoryControl WHERE CloseMonth = @MonthYear ) SELECT P.ProductID, ProductNameInVietnamese, SUM(BeginQuantity) As BeginQuantity, SUM(Import) As ImportQuantity, SUM(Export) As ExportQuantity, SUM(BeginQuantity) + SUM(Import) - SUM(Export) As EndQuantity FROM Products P LEFT JOIN ICTable I ON P Product ID = I Product ID
GROUP BY P.ProductID, ProductNameInVietnamese ORDER BY P.ProductID, ProductNameInVietnamese
GO
Bạn có thể gọi thủ tục nội tại ICStatus với giá trị 09/2007 cho tham số ®MonthYear thì kết quả trình bày như hình UD-27-2 Ý ICStatus 909/20071| | 60
00002 —_Taixéch ding che hoe sh rid 20 “0
P3 Tuixéch ding cho hoe snhnam 65D 70 65 7
PHO Ti dome “0 “0 1 om
PO000S Tui xdch ding cho Mati 300 2m 130 “0 1.8 POOODS Tiixdch ding cho Big thopi d déng 460 0 0 7a [7 P0007 Tú»áhdmpdorc 1150 300 0 280 |8 P0 TéixSch ding cho TV Hinh UD-27-2: Tinh hinh tén kho NULL
Trong trường hợp tính tổn kho cho một sản phẩm thi bạn có thể khai
báo thủ tục nội tại với cấu trúc như ví dụ UD-27-9 CREATE PROC ICStatusForProduct @ProductId VARCHAR (10), @MonthYear CHAR (7) AS WITH ICTable AS (
Trang 24WHERE ProductId = @ProductId GROUP BY ProductID UNION ALL SELECT ProductID, 0, 0, SUM(Quantity) AS Export FROM ExportDetails WHERE ProductId = @ProductId GROUP BY Product ID UNION ALL SELECT ProductID, EndQuantity , 0, 0 FROM CloseInventoryControl WHERE ProductId = @ProductId AND CloseMonth = @MonthYear ) SELECT P.ProductID, ProductNameInVietnamese, SUM(BeginQuantity) As BeginQuantity, SUM(Import) As ImportQuantity, SUM(Export) As ExportQuantity, SUM (BeginQuantity) + SUM(Import) - SUM(Export) As EndQuantity FROM Products P LEFT JOIN ICTable I ON P Product ID = I Product ID WHERE P ProductId = @ProductId
GROUP BY P.ProductID, ProductNameInVietnamese ORDER BY P.ProductID, ProductNameInVietnamese GO
Bạn có thể gọi thủ tục nội tại ICStatusForProduct với giá trị 09/2007
cho tham số ®@MonthYear và P00001 cho tham số @Productld thì kết quả
trình bày như hình UD-27-3 [im tae | ProductlD | ProductNamelnVietnamese | BeginQuantity | ImportQuantity | ExportQuantity | EndQuantity | 20 ‘ 1500 515 125
Hình UD-27-8: Tình hình tôn kho của sản phẩm P00001
Trong trường hợp bạn muốn thống kê tình hình tồn kho của một kho
Trang 25
350 Ứng dụng: Sử dụng thủ tục nội tại trong ứng dụng
SELECT StockTd, ProductID, 0 as BeginQuantity,
SUM(Quantity) AS Import, 0 As Export
FROM ImportDetails
WHERE ProductId = CASE @ProductId WHEN '' THEN ProductId
ELSE @Productid END AND StockId = @StockId GROUP BY StockId, ProductID UNION ALL
SELECT StockId, ProductID, 0, 0, SUM (Quantity) AS Export
FROM ExportDetails
WHERE Productid = CASE @ProductId WHEN '' THEN ProductId
ELSE @ProductId END AND StockId = @StockTd GROUP BY StockId, ProductID UNION ALL
SELECT StockId, ProductIb, EndQuantity , 0,0 FROM CloseInventoryControl
WHERE ProductId@ = CASE @ProductId WHEN '' THEN ProductId
ELSE @ProductId END AND StockId = @StockId AND CloseMonth = @MonthyYear ) SELECT Stockid, P,ProductID, ProductNameInVietnamese, SUM(BeginQuantity) As BeginQuantity, SUM(Import) As ImportQuantity, SUM(Export) As ExportQuantity, SUM(BeginQuantity) + SUM(Import) ~ SUM(Export) As EndQuantity FROM Products P LEFT JOIN IcTable I ON P Product ID = I ProductID
WHERE P ProductId = CASE @ProductId WHEN '' THEN P Productid
ELSE @ProductId END AND StockId = @StockId
GROUP BY StockId, P.ProductID, ProductNameInVietnamese
ORDER BY P.ProductID, ProductNameInVietnamese Go
Trang 26ICStatusForProductandStock '', '5T001', '08/2007! | Go valiant arses TH ews [Ey Moses]
| Stockld ProductiD | ProductNamel
11 [sion POO! Tuixéch
[2 STOO PO0002 Tú»áchdờmgchohoeerhrl 150 1080 685 (3 SIUUI PIUW3 Tứxáhdờngchohoesmhnan 300 700 625 [4 SI0U P0004 Tứáomua 30 400 1
(5 $ST001 P0005 Tứi xách dùng cho Máy tính 150 200 125
[6 STOO! PO0006 TứwáchdngchoĐiệnthog 450 0 0 L7 ST00 P0007 Tui xéch ding cho PC 500 0 0
Hình UD-27-4: Tình hình tôn kho theo mã kho
Để tìm hiểu cách sử dụng các thủ tục nội tại của cơ sở dữ liệu
AccountSystem với ngôn ngữ lập trình C# 2005, bạn có thể tìm đọc tập: “Xây dựng ứng dụng kế toán bằng C# 2005 và SQL Server 2005”
5 KẾT CHƯƠNG
"Trong phần này, chúng ta đã tập trung tìm hiểu cách khai báo các thủ
tục nội tại, hàm và Trigger dùng trong ứng dụng kế toán ở mức độ tham khảo
Trong tập kế tiếp, bạn sẽ tiếp tục tìm hiểu phần lập trình nâng cao
bằng CURSOR, TRANSACTION và các dịch vụ cùng với các hàm cũng như
Trang 27fale LAP TRINH : 1 Bài tập ngôn ngữ C từ A dén Z 2 Giáo trình lý thuyết và bài tập ngơn ngữ © (Tập 1 & 2] 3 Thiết kế đổ họa định hướng đối tượng với 4 Đồ họa vi tính {Tập 1 & 2] 5 Hợp ngữ và lập trình ứng dụng [Tập 1 & 2] 6 Trí tuệ nhân tạo mạng Nơron - Phương pháp và ứng dụng
7 Trí tuệ nhân tạo - Cấu trúc dữ liệu +
“Thuật giải di truyền = Lập trình tiến hóa 8 Trí tuệ nhân tạo - Máy học
9 Giáo trình lý thuyết và bai tap Pascal [Tập 1 & 2] 16 Giáo trình lý thuyết và bài tập Pascal toàn tập „ Giáo trình lý thuyết và bài tập Foxpro [Tap 1]
12 Sử dụng và khai thác Visual Foxpro 6.0 13, Visual Foxpro va SQL Server
14 Ty hoc lap trinh co sé dit ligu véi Visual Basic 6 trong 21 ngày [Tập 1 & 2] 18 Bước đâu làm quen lập trinh Visual
Basic 6.0 (tủ sách dé học)
16 Visual Basic 6.0 - Lập trình cơ sở dữ liệu
1? Tham khảo nhanh Visual Basic 6 18 Kỹ xảo lập trình VB6 19 Giáo trình nhập môn lập trình VB6 20 Các kỹ xão lập trình với Visual Basic 6 và Borland Delphi „ Giáo trình lý thuyết và bài tập Borland Delphi
22 Borland Pascal Version 7.0 - Quyển 1 & 2 #3 Giáo trình lý thuyết và bài tập Visual J**6 24 Visual Basic Net - Kỹ xảo lập trình 2
1
3:
& Ty hoc lép trinh chuyên sâu Visual Basic NET trong 21 ngày
26 Kỹ thuật lập trình ứng dung chuyên nghiệp Visual Basic Net [Tap 1 va 2} 2? Từng bước học lập trình Visual Basic NET 28 Ví đụ và bài tập Visual Basic NET -
Lập trình hướng đối tượng
29 Ví dụ và bài tập Visual Basic NET - Lập trình Windows Forms và tập tin 30 Ví dụ và bài tập Visual Basie NET -
Lập trình cơ sở đữ liệu & Report
8
SACH DA XUAT BAN
31 Visual Basic 2005 - Tập 1: Ngôn ngữ và ứng dụng
32 Visual Basic 2005 - Tap 2: Lap trinh
giao dién Windows Forms - Ung dung
quan ly hé théng
33 Visual Basic 2008 - Tap 3 - Quyén 1: Lập trình cơ sở đữ liệu với ADO.NET 9.0 34 Visual Basic 2005 - Tập 3 - Quyển 3:
Lập trình Web với cơ sở dữ liệu 36 Visual Basic 2005 - Tập 4, Quyển 1 & 2:
Crystal Reports Developer 36 Visual Basic 2005 hoe lép trinh
Windows Forms qua ví dụ (tủ sách dễ học) - Lập trình C8DL với Visual Basic 2005
và ADO,NET 2.0 (tủ sách dé học)
38, Sit dung Crystal Reports XI
39 Từng bước học lập trình Visual C“Net
40 Kỹ thuật lập trình ứng dụng Cf.Net toàn
tập [Tập 1, 2 và 3]
C# 2005 - Tap 1: Lập trình cơ ban C# 2005 - Tap 2: Lap trình Windows Forms 43 C# 2005 - Tập 3: Lập trình hướng đối tượng 44 C# 2005 - Tập 4, Quyển 1: Lập trình cơ sở đữ liệu 45 C# 2005 - Tập 4, Quyển 2: Lập trình cơ sở đữ liệu, Report, Visual SourceSafe 2005
46, C# 2005 - Tap 5: Lap trinh ASP.NET 3.0 - Quyển 1; Điều khiến trình chủ ASP.NET 2.0
47 C# 2005 - Tap 5: Lap trinh ASP.NET 3.0 - Quyển 2: Điều khiển trình chủ đặc biệt và đối tượng ASP.NET 2.0
48 C# 2005 - Tap 5: Lap trinh ASP.NET 2.0 - Quyển 3: Điều khiển kết nối cơ sở dữ liệu 49 # 200B - Tap 5: Lap trinh ASP.NET 2.0 - Quyển 4: Đối tượng ADO.NET 2.0 & XML 50 C# 2008 - Tập 6: Xây dựng ứng dụng
tuyển dụng nhân sự trực tuyến bằng ASP.NET 2.0 va SQL Server - Quyển 1:
Các chức năng đành cho người xin việc C# 2005 - Tập 6: Xây dựng ứng dụng tuyển dụng nhân sự trực tuyến bằng ASP.NET 2.0 va SQL Server - Quyén 2:
Trang 285ä 54 55 5 57 58 59 60 6 6: 8? 6 64 6ã 66 67 68 69 70 1 72 73 T4 75 76 TT 78 79, 80 8 P a Xây dựng ứng dụng Windows với C**.Net [Tập 1 & 2] Từng bước học lập trình Visual C** Net 'Tự học lập trình Visual Ct MFC qua các ví dụ
Access 2000 lap trinh tmg dung cơ sở dữ ligu [Tap 1 & 2]
Tự học Microsoft Access 2002 trong 21 ngay Phát triển ứng dụng bằng Microsoft Access 2002 (Tap 1 & 2] XML - Nền tăng và ứng dung Giáo trình nhập môn XML (tủ sách dễ học) Lập trình SQL căn bản Lập trình ứng dụng chuyên nghiép SQL Server 2000 [Tập 1 & 2] Khám phá SQL Server 2005 (tủ sách dễ học)
SQL Server 2005 - Lap trinh T-SQL SQL Server 2005 - Lap trinh thủ tục và ham Giáo trình nhập môn ASP - Xây dựng ứng dụng Web (tủ sách dễ học) Giáo trình nhập mén PHP & MySQL - Xây dựng ứng dụng Web (tủ sách đễ học) $6 tay PHP & MySQL Xây dựng ứng dụng Web bằng PHP và MySQL St dung PHP va MySQL - Thiết kế Web động Giáo trình lý thuyết và thực hành Oracle (lập trình)
PL/SQL Oracle (Tap 1 & 2]
Oracle 91 Developer: Phat trién img
dung Web véi Forms Builder
Thanh thgo Oracle 9: - Quan tri co sé dir ligu [Tap 1 & 2)
Bước đầu làm quen Java (tủ sách dé học)
Bước đầu học VB6 qua các ứng dung Form (tủ sách dễ học)
Giáo trình lý thuyết và bài tập Java Cấu trúc dữ liệu với Java Java lập trình mạng Java [Tập 1, 2 & 3] Mã hóa thông tín với Java - Tập 1: Java căn bản - Tập 2: Mã hóa - Mật mã 83 84 85 86 87 Nhập môn J# (tủ sách dễ học) Giáo trình nhập môn UML Họ vi điều khiển 8051 Thiết kế hệ thống với họ 8051 Nguyên lý mạch tich hop - Tap 1: ASIC Lập trình được - Tập 2: Lập trình ASIC Giáo trình mã hóa thông tin: Lý thuyết và ứng dung Lập trình Windows Lập trình mạng trên Windows Lập trình Linux [Tập 1] DirectX và lập trình cho Camera Design Patterns Giáo trình nhập môn cơ sở dữ liệu (Tủ sách dễ học) ActionSeript 2.0 - Lập trình hướng đối tượng Lập trình ActionSeript cho Flash [Tập 1 &2]
97 Lập trình trò chơi với Flash [Tập 1 & 2] 98 Lý thuyết cơ sở đữ liệu [Tập 1 & 2]
INTERNET & VIỄN THÔNG
99 Hướng dẫn sử dụng Internet [Tập 1 & 2]
100 Internet cho mọi người 101 102 193 88 89 90 91 92, 93 94, 95 98
Tnternet cho mọi nhà Internet Explorer 5 toàn tập Internetworking véi TCP/IP [Tap 1 - phần 1, phần 2; Tập 2] Thực hành thiết kế trang Web với FrontPage 2000 Thuc hanh thiét ké trang Web vdi FrontPage FrontPage 2000 toàn tập E-mail va tin hoc van phòng trên mạng với Outlook 2000 Hướng dẫn thiết kế trang Web tương tác bằng JavaScript
Thực hành JavaScript (cho Web)
Thiết kế Web động với JavaScript Số tay HTML & JavaScript
Tự học JavaScript (tú sách dễ học) Hoe nhanh JavaScript bằng hình ảnh
(tủ sách đễ học)
“Tuyển tap thủ thuật JavaScript [Tap 1&2]
Trang 29116, 117 118 119 120 121 122, 123 124, 125 126 127, 128 129, 130, 131 132 133 134, 135 136 137 138 139, 140 141 142 143 144 145, 146 147 Su dung DHTML va CSS thiét ké Web dong Tạo Website hấp dẫn với HTML, XHTML va CSS Các thủ thuật trong HTML & thiết kế Web
Sir dung Peri va CGI thiết kế Web động Thiét ké Web v6i JavaScript va DOM
Thiết kế Web với Macromedia Dreamweaver 4.0
Thiết kế Web với C88
Học thiết kế Web bằng hình minh hea {Tập 1 & 2] Tự học thiết kế Web [Tập 1 & 2] Macromedia Dreamweaver MX Macromedia Dreamweaver MX 2004 Học nhanh Dreamweaver 8 (tủ sách dễ học) Macromedia Dreamweaver 8 - Phần cư ban [Tập 1 & 2] Macromedia Dreamweaver 8 - Phần nắng cao Macromedia Flash MX Macromedia Flash MX 2004 Học nhanh Flash 8 (tủ sách dễ học) Maeromedia Flash 8 [Tập 1 & 2] “Thiết kế Flash với các thành phần dựng sẵn Các kỹ thuật ứng dụng trong Flash và Dreamweaver Các thủ thuật trong Flash va Dreamweaver Tự học Flash (tủ sách đã học) ASP 3.0/ASP.NET
Giáo trình lập trình Web bằng ASP 3.0 Xây dựng ứng dụng web với JSP,
serviet, JavaBeang
Lập trình ứng dụng web với JSP/ Serviet Xây dựng & triển khai ứng dụng thương mại điện tử [Tập 1 & 2] Modem truyền số liệu
Co sé kỹ thuật chuyển mạch và tổng
đài [Tập 1 & 2]
Kỹ thuật truyền số liệu
Rỹ thuật điện thoại qua IP & Internet Vi mach và mạch tạo sóng 148 149 180 151 152 153
Xử lý tín hiệu số - Lý thuyết và bài tập
Ky thuat số: Lý thuyết và bài tập Thiết kế mạch số với VHDT, & Verilog
[Tập 1 & 2]
Thiét ké vi mach CMOS VLSI [Tập 1 & 2]
Blog cho moi người [Tập 1 & 2] Google [Tập 1 & 2] THIẾT KẾ ĐỒ HỌA 154 155 168 169 170 171, 172 173 174 175 176 177 178 179 180 181 182 183 Thiét ke
Thiết kế 3 chiều với 8D§ Max 4 Tạo các hiệu ứng tự nhiên trong 3D§ Max 3DS Max 5 3DS Max 6 3DS Max 7 3DS Max 8 Tự học 8D§ Max
Oác thủ thuật trong 8D8 Max Sử dụng 3D8 Max thiết kế mô hình
Vé minh hoa véi CorelDraw 9 Vé minh hoa véi CorelDraw 10 (Tập 1, 2 & 3]
CorelDraw 11
Autocad 2000 [Tap 1 & 2]
chiêu với 8D Studio Max 8
nhân vật
Sử dụng 3DS Max thiết kế hoạt hình nhân vật
Thiết kế game trong 3DS Max
Thiết kế khung xương cho hoạt cảnh nhân vật
Làm phim với 8D§ Max - Từ ý tưởng đến thành phẩm
Thiết kế ánh sáng trong 3DS Max Adobe Photoshop 5.5 va ImageReady 2.0 Adobe Photoshop 6.0 va ImageReady 3.0 Adobe Photoshop va ImageReady 7.0 [Tập 1 & 2) Adobe Photoshop CS & ImageReady - [Tap 1] Adobe Photoshop CS & ImageReady [Tập 1] (Ấn bản màu) Adobe Photoshop bài tập và kỹ xảo Adobe InDesign Adobe Tilustrator 8.0
Adobe IIlustrator với các kỹ thuật
thiết kế nâng cao
Các kỹ thuật tiên tiến trong
Macromedia Direetor 8.5 [Tập 1] Thiết kế kiến trúc với Autodesk Architectural Desktop 2004 [Tập 1 & 2]
Thiết kế hoạt hình cho web với
Trang 30186 Thiết kế trò chơi với Flash
187 Thiết kế 3D trong Flash (Tập 1 & 2] 188 VIZ Render 189 Tự học AutoCAD - Thiết kế 2D (tủ sách dễ học) 190 Tự học AutoCAD - Thiết kế 3D (tủ sch dé hoc) HE pif HANH VÀ MẠNG 191 Vận hành và khai thác Windows 98 192 Làm chủ Microsoft Windows XP
professional [Tap 1 & 2] 193, Hướng dẫn Tri pan Windows XP 194 Làm chủ Windows 2000 Server [Tập 1 & 2] 195 Windows 2000s - Cai dat & Quần trị 196 Làm chủ Windows Server 200đ [Tập 1,2&3] 197 Giáo trình mạng Novell Netware 5.0 198 Giáo trình SQL Server 2000 (tủ sách đễ học)
199 Quan tri SQL Server 2000
200 Tự học SQL Server 2000 trong 21 ngày
301 Giáo trình lý thuyết và thực hành
Linux [Tập 1]
202 Linux - Tự học trong 24 giờ
203 Bảo mật và tối du trong Red Hat Linux 204 Mạng máy tính [Tập 1]
205 Giáo trình cấu trúc máy tính 206 Tìm hiểu cấu trúc và hướng dẫn sửa
chữa, bảo trì máy PC [Tập 1, 2 & 3] 207 Giáo trình hệ thống mạng máy tính
CCNA [Semester 1, 2, 3 & 4]
208 Bài tập tự luyện CCNA trên máy tính cá nhân
209 Những điều bạn chưa biết về Windows
Registry
210 Windows Script Host
211 Nhập môn Windows Vista [Tập 1 & 2]
VĂN PHÒNG
212 Ứng dụng mà nguồn mở - Tập 1:
Windows trong Linux - Tập 2: Word trong Linux - Tap 3: Excel trong Linux 213 Dé hoa va multimedia trong van phòng với MS PowerPoint 2000 914 Giáo trình lý thuyết và thực hành tin học văn phòng - Tập 1: Windows XP (tủ sách dễ học) 216: 217 218 219 220 221 học văn phòng - Tập 2: Word XP (tủ sách dễ học) Giáo trình lý thuyết và thực hành tin học văn phòng - Tập 3: Exeel XP - Quyển 1 & 2 (tủ sách đễ học) Giáo trình lý thuyết và thực hành tin học văn phòng - Tập 4: PowerPoint XP - Quyển 1, 2 & 3 (tủ sách đễ học) Giáo trình tin học phổ thông ICDL - học phần 1 & 2 Giáo trình tin học phố thông IƠDL - học phần 3, 4 & 5 Microsoft Access cin ban Giáo trình chứng chỉ B tín học - Microsoft Access 2003 [Tập 1 & 2] THỂ LOẠI KHÁC 222 223 224 225 226 227 228 229 230, 231 232 233 234 285 236 237 338 239 240 Hệ thống bài tập kế toán tài chính - Tập 1
Hệ thống bài tập kế toán đại cương Từ điển từ mới Tiếng Việt
Từ điển Tiếng Việt phổ thông Từ điển Ảnh - Việt (Ấn bản sinh viên) Từ điển kinh tế ứng dụng Anh - Việt (Từ A đến 7)
Từ điển thành ngữ - Tục ngữ - Ơa dao Việt Nam {Quyển Thượng - Quyển Hại
Giáo trình toán giải tích 1 “Toán tổ hợp
Bảo mật thông tín - Mô hình và ứng dụng
Giáo trình quy hoạch tuyến tính Giáo trình toán rời rạc
Phương pháp mới học toán đại học
Nghỉ thức thư tín thương mại quốc tế
Giáo trình thư tín trong thương mại
quốc tế
Giáo trình thư tín trong thương mại quốc tế (Textbook*)
Người làm chứng (Song ngữ Ảnh - Viet) Người bạn dich thuc (Song ngữ Anh —
Việt)
Đừng xem mặt mà bắt hình dong
(Song ngữ Anh - Việt) Sổ tay người dịch tiếng Anh
56 Bài luyện dịch Anh-Việt, Việt-Anh Những vụ việc tranh chấp trong giao
Trang 31SQL SERVER 2005
Lập trình thủ tục và hàm
NHÀ XUẤT BẢN LAO ĐỘNG - XA HỘI
Ngõ Hòa Bình 4 - Minh Khai - Hai Bà Trưng - Hà Nội Tel: (04) 6.246.913 — Fax: (04) 6.246.915,
Chịu trách nhiệm xudt bén: VO ANH TUAN
Biên tập: BẢN BIÊN TẬP GIÁO TRÌNH DẠY NGHỆ Biên sogn: PHAM HUU KHANG ~ ĐOÀN THIỆN NGÂN
Sua ban in: NGOC AN
Trình bày bìa: VIỆT DŨNG
Thực hiện liên đoanh: Công ty TNHH Minh Khai 8.G
E-mail: mk.book@minhkhai.com.vn — Website: www.minhkhai.eom.vn Tổng phát hành # Nhà sách Minh Khai: 249 Nguyễn Thị Minh Khai - Quận 1 - TP.HCM DT: (08) 9.250.590 ~ 9.250.591 — Fax: (08) 9.257.837 # Nhà sách Minh Châu: Nhà 30 - Ngõ 22 - Ta Quang Bitu - Bách Khoa - Hà Nội ĐT: (04) 8.692.785 - Fax: (04) 8.683.995 Đại lý các khu vực * Nhà sách Huy Hoàng: 95 Núi Trúc - Kim Mã - Ba Đình - Hà Nội ĐT: (04) 7.365.859
# Cty cổ phần sách thiết bị trường học Đà Nẵng: 78 Bạch Đằng - Đà Nẵng ĐT: 0511.837100 % Nhà sách Chánh Trí: L16A Nguyễn Chí Thanh - Đà Nẵng
ĐT: 0511.820129
$$ Cty phát hành sách Khánh Hòa:
> Nhà sách Ponagar: 73 Thống Nhất - Nha Trang - Khánh Hòa ĐT: 058.8226386
> Siêu thị sách Tân Tiến - 11 Lê Thành Phương - Nha Trang - Khánh Hòa ĐT: 058.8273083 # Nhà sách Năm Hiển: 79/6 Xô Viết Nghệ Tĩnh - TP.Cần Thơ
ĐT: 071 821668
In 1000 cuốn (kèm CD bai tập), khổ 16 x 24 em,
tại Xí nghiệp in Machinco - Số 21 Bùi Thị Xuân, Q.1, TP.HCM
Số đăng ký kế hoạch xuất bản: 103-2007/CXB/40-17/LĐXH
Mã số — Quyết định xuất bản số 947/QĐ-NXB LĐXH ngày 20/11/2007
Trang 32Tạo các HIEU UNG TY NHIEN tong So ma Tu hoc FLASH 3dsmax7
Tu boc AutoCAD QED
Lam phim vai 3DS MAX
ActionScript2.0
LẬP TRÌNHHƯỚNG ĐỐI TƯỢNG
Te hoc AutoCAD CIEE macromedia gi z FLASH6 lập1, 2] 9 'Ö_ PHÁN cơ BẢN [tap 1, 2] L4p trinh ActionScript cho FLASH {tap 1,2] Thiết kế TRÒ CHOI véi FLASH AUTODESK 3DS MAX8 macromedia 6
8 Thiết kế web vơi JavaScript & DOM
a Thiét ké web vdi CSS
© the kế khung xương cho hoạt cảnh nhân vật
FA rover tap THU THUAT JAVASCRIPT (tập 1,2] UEFE 8 ơ ô f đ= (I) RB f Eq 6è Mỹ Giới thiệu một só sách đã xuất bàn: TỰ HộC THIẾT KẾ €2}, [lập 1,2] Thiết kế Game trong 3DS MAX
HỌC THIẾT KẾ WEB bằng hnh minh hoa
[tập 1,2]
BLOG cho mọi người ltập1,2]
GIÁO TRÌNH CHỨNG CHỈ B TIN HOC Microsoft Access 2003 [tap 1, 2]
Thiét ké 3D trong FLASH [tép 1, 2) Thiét ké vi mach CMOS VLSI {tap 1, 2] Tu hoc 3DS MAX
Nhap mon Windows Vista twp 1,2)
Hướng dấn sử dụng INTERNET
[tap 1,2] INTERNET cáo mọi nhà