1. This site uses cookies. By continuing to use this site, you are agreeing to our use of cookies. Learn More.

  2. Anuncie Aqui ! Entre em contato fdantas@4each.com.br

How to get the field name dynamically and update it to main table in progress

Discussão em 'StackOverflow' iniciado por fdantas, Maio 16, 2016.

  1. fdantas

    fdantas Administrator Moderador

    Program:It is a just maintenance program, in this one it displays the Item Code in one frame and it prompt for the input. if you enter the item code it has to displays what are the blank fields for that record in pt_mstr and display in one frame(No need to display all blank fields, just first 4 or 5 fields enough). and also in that frame only if user want to update it update directly to main table pt_mstr.

    What i tried is, i just write the code for getting blank fields using buffer handle and after that i create one temp table and displaying the fields, i strucked there itself, i am unable to update fields.

    My code:

    /*Sample Item master Maintenance Program*/
    /* DISPLAY TITLE */
    {us/mf/mfdtitle.i "3+ "}
    DEFINE VARIABLE hBuffer AS HANDLE NO-UNDO.
    DEFINE VARIABLE i AS INTEGER NO-UNDO.
    DEFINE VARIABLE j AS INTEGER NO-UNDO.
    DEFINE VARIABLE hField AS HANDLE NO-UNDO.
    define variable fldnm as character extent 10 no-undo.
    define temp-table tt_temp no-undo
    field tt_part like pt_part
    field field1 as char extent 10.
    form
    pt_part colon 25
    with frame a side-labels width 80.
    setFrameLabels(frame a:handle).
    /* DISPLAY */
    view frame a.
    repeat with frame a:
    prompt-for pt_part
    editing:
    /* FIND NEXT/PREVIOUS RECORD */
    {us/mf/mfnp.i pt_mstr pt_part "pt_mstr.pt_domain = global_domain and pt_part" pt_part pt_part pt_part }
    if recno <> ? then
    do:
    display pt_part.
    find pt_mstr where pt_part = input pt_part and pt_domain=global_domain no-lock no-error.
    ASSIGN hBuffer = BUFFER pt_mstr:HANDLE.
    empty temp-table tt_temp.
    j = 1.
    DO i = 1 TO 10:
    ASSIGN hField = hBuffer:BUFFER-FIELD(i).
    IF ((hField:BUFFER-VALUE = "" )) THEN
    do:
    /* message hField:NAME "test" view-as alert-box.*/
    find first tt_temp where tt_part = pt_part no-lock no-error.
    if not avail tt_temp then
    do:
    create tt_temp.
    assign
    tt_part = pt_part
    field1[j] = hField:NAME.
    j = j + 1.
    end.
    else do:
    assign
    field1[j] = hField:NAME.
    j = j + 1.
    end.
    end.
    end.
    end.
    for each tt_temp:
    display field1[1] field1[2] field1[3] field1[4].
    end.
    end.
    end.

    Continue reading...

Compartilhe esta Página