DataMuseum.dk

Presents historical artifacts from the history of:

Rational R1000/400 Tapes

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about Rational R1000/400 Tapes

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - metrics - download
Index: B T

⟦fc969b152⟧ TextFile

    Length: 3003 (0xbbb)
    Types: TextFile
    Names: »B«

Derivation

└─⟦180fe333a⟧ Bits:30000405 8mm tape, Rational 1000, SW CATALOG, 10_20_0
└─⟦180fe333a⟧ Bits:30000537 8mm tape, Rational 1000, SW Catalog 10_20_0
    └─⟦5cb1d1d7f⟧ »DATA« 
        └─⟦3b1ee7bd8⟧ 
            └─⟦this⟧ 

TextFile

with Io;
with Work_Order_Implementation;
with Form;
with Window_Io;
with Bounded_String;
separate (Cm_Generic)
procedure Edit (Work_Order : String := ">>ORDER NAME<<"; For_Form : Forms) is
    package Woi renames Work_Order_Implementation;
    use Woi;

    Fr : Form_Rec renames Form_Array (For_Form);

    Work_Order_Name : constant String := Work_Order_Path & '.' & Work_Order;

    Iter          : Form.Modification_Iterator;
    Input, Output : Window_Io.File_Type;

    Di           : Woi.Descriptor_Info_Record;
    Order_Id     : Woi.Work_Order_Id;
    Status       : Woi.Status;
    Order_Handle : Woi.Work_Order_Handle;

begin  
    Work_Order_Control.Find (Work_Order_Name, Order_Id, Success => Status);
    Work_Order_Control.Open (The_Work_Order => Order_Id,
                             The_Handle     => Order_Handle,
                             Success        => Status,
                             Mode           => Update);

    if Status = 0 then

        Window_Io.Open (Input, Window_Io.In_File, Forms'Image (For_Form));
        Window_Io.Open (Output, Window_Io.Out_File, Forms'Image (For_Form));

        Form.Create (Output, Input, Fr.The_Form, Iter);

        -- for I in Defs.Bug_Items loop
        --     Bs.Copy (Item_Array (I), (Form.Response (Form.Value (Iter))));
        --     Form.Next (Iter);
        -- end loop;

        -- at this point we can do some verification ..
        --

        -- now fill in the bug items.
        --
        for I in Fr.Start_Item .. Fr.End_Item loop

            declare
                Item_Field : Work_Order_Field_Operations.Field;
                Set_Status : Woi.Status;
            begin
                Work_Order_Field_Operations.Find
                   (Field_Name    => Items'Image (I),
                    The_Field     => Item_Field,
                    Success       => Set_Status,
                    In_Work_Order => Order_Handle);

                Di := Work_Order_Field_Operations.Descriptor_Info (Item_Field);
                if Di.Is_Vector then
                    Work_Order_Field_Operations.Set_Value
                       (The_Field  => Item_Field,
                        The_Handle => Order_Handle,
                        Index      => 0,
                        Value      => Form.Response (Form.Value (Iter)),
                        Success    => Set_Status);
                else
                    Work_Order_Field_Operations.Set_Value
                       (The_Field  => Item_Field,
                        The_Handle => Order_Handle,
                        Value      => Form.Response (Form.Value (Iter)),
                        Success    => Set_Status);

                end if;

                Form.Next (Iter);
            end;
        end loop;

        Window_Io.Close (File => Input);
        Window_Io.Close (File => Output);


        Work_Order_Control.Close (Order_Handle, Status);
    else
        Io.Put_Line (Io.Standard_Error, "Unable to find Work Order");
    end if;
end Edit;