• 0
bg3dmax

عمل نسخة من فاتورة

سؤال

كيف يمكن عمل نسخة من فاتورة

بمعنى فى form تحتوى على جدولين (الفاتورة ، تفاصيل الفاتورة) ولتكن رقم الفاتورة 5 والمطلوب عمل فاتورة جديدة ولكن تحتوى على نفس بيانات الفاتورة 5

 

post-102278-0-28484700-1385368512_thumb.

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

3 إجابة على هذا السؤال .

  • 0

هل تريد حفظها فى الداتا بيس بشكل مباشر ام مجرد عرض فقط ؟

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

على العموم دة مثال انا عملته الان على السريع لو عاوز تنسخ فاتورة من فاتورة مسجلة عندك انا بفترض فى المثال دة التالي انك ترسل ليه رقم الفاتورة القديمة ورقم الفاتورة الجديدة وهو يقوم بعمل نقال للبيانات بشكل مباشر

دة تصميم الجداول 

جدول الفواتير

CREATE TABLE [dbo].[Invoice](    [Invoice_number] [int] NOT NULL,    [Invoice_Date] [datetime] NULL CONSTRAINT [DF_Invoice_Invoice_Date]  DEFAULT (getdate()), CONSTRAINT [PK_Invoice] PRIMARY KEY CLUSTERED(    [Invoice_number] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]

ودة جدول تفاصيل الفاتورة


CREATE TABLE [dbo].[Invoice_Details](    [ID] [int] IDENTITY(1,1) NOT NULL,    [Invoice_number] [int] NULL,    [Work_Desc] [nvarchar](50) COLLATE Arabic_CI_AS NULL,    [Amount] [money] NULL, CONSTRAINT [PK_Invoice_Details] PRIMARY KEY CLUSTERED(    [ID] ASC)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]) ON [PRIMARY]

ودة الاجراء لعملية النقل 

 


CREATE PROC dbo.Copy_Invoice    @Old_number INT ,    @New_number INTAS    BEGIN TRANSACTION MyTransaction    INSERT  INTO dbo.Invoice            ( Invoice_number ,              Invoice_Date            )            SELECT  @New_number ,                    Invoice_Date            FROM    dbo.Invoice            WHERE   Invoice_number = @Old_number                DECLARE cur CURSOR    FOR        SELECT  @New_number ,                Work_Desc ,                Amount        FROM    dbo.Invoice_Details        WHERE   Invoice_number = @Old_number    OPEN cur    DECLARE @@New_number INT    DECLARE @Work_Desc NVARCHAR(50)    DECLARE @Amount MONEY    FETCH NEXT FROM cur INTO @New_number, @Work_Desc, @Amount    WHILE @@Fetch_Status <> -1        BEGIN            INSERT  INTO dbo.Invoice_Details                    ( Invoice_number, Work_Desc, Amount )            VALUES  ( @New_number, -- Invoice_number - int                      @Work_Desc, -- Work_Desc - nvarchar(50)                      @Amount  -- Amount - money                      )            FETCH NEXT FROM cur INTO @New_number, @Work_Desc, @Amount        END    CLOSE cur    DEALLOCATE cur    IF @@Error = 0        COMMIT TRANSACTION myTransaction    ELSE        ROLLBACK TRANSACTION myTransactionGO

مثال للتجربة انا بنقل بيانات فاتورة رقم 1 فى رقم اخر هو رقم 2

EXEC dbo.Copy_Invoice @Old_number = 1,    @New_number = 2

دة فى حاله الحفظ بشكل مباشر اما فى حاله اللنقل على الداتا سيت انت تعمل استعلام عادى جدا وتنقل محتوى الداتا سيت الاولي الى الثانية

بالتوفيق ان شاء الله

1

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه
  • 0

المطلوب عرضها على الشاشة فى البرنامج وبعد ذلك من الممكن التعديل بها ثم حفظها فى قاعدة البيانات

0

شارك هذا الرد


رابط المشاركة
شارك الرد من خلال المواقع ادناه

من فضلك سجل دخول لتتمكن من التعليق

ستتمكن من اضافه تعليقات بعد التسجيل



سجل دخولك الان

  • يستعرض القسم حالياً   0 members

    لا يوجد أعضاء مسجلين يشاهدون هذه الصفحة .