Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Replacing value in Grid
Message
 
À
20/07/2023 18:37:06
Luis Santos
Biglevel-Soluções Informáticas, Lda
Portugal
Information générale
Forum:
Visual FoxPro
Catégorie:
Codage, syntaxe et commandes
Divers
Thread ID:
01686818
Message ID:
01686819
Vues:
58
>Hi,
>
>I have this code to replace value on specific column in my grid, but sometimes nothing happen.
>
>LOCAL loForm, loGrid, lcCursorName, lnRow, lcControlSource, lcNewValue, lcReplaceCmd
>
>loForm = SFT  && Get a reference to the active form (form with focus)
>loGrid = loForm.pageframe1.page1.cont1.grid1  && Replace "pageframe1", "page1", "cont1", and "grid" with the actual names of the controls
>
>* Get the Cursor/Table name from the Grid's RecordSource property
>lcCursorName = loGrid.RecordSource
>
>IF USED(lcCursorName) AND !EMPTY(lcCursorName) AND TYPE("lcCursorName") = "C"
>    * Find the column index by ControlSource
>    lnCol = 0
>    FOR lnIndex = 1 TO loGrid.ColumnCount
>        lcControlSource = loGrid.Columns(lnIndex).ControlSource
>        IF lcControlSource = "FI.REF"
>            lnCol = lnIndex
>            EXIT  && Exit the loop once "REF" column is found
>        ENDIF
>    ENDFOR
>
>    IF lnCol > 0
>        * Loop through the rows and modify the data in the underlying cursor
>        FOR lnRow = 1 TO _TALLY
>            IF VARTYPE(EVAL(lcControlSource)) = "C"  && Check if the field is a string (character)
>                lcNewValue = "Novaref"  && Replace with your desired new value
>                lcReplaceCmd = 'REPLACE ' + lcControlSource + ' IN (lcCursorName) WITH (lcNewValue) FOR RECNO() = lnRow AND EMPTY(EVAL("' + lcControlSource + '"))'
>                &lcReplaceCmd  && Execute the REPLACE command
>            ENDIF
>        ENDFOR
>    ELSE
>        ? "Column 'REF' not found in the grid."
>    ENDIF
>ELSE
>    ? "Invalid or empty cursor name in the grid's RecordSource."
>ENDIF
>
>* Refresh the grid to reflect the changes
>loGrid.Refresh()
>
>READ EVENTS
>
>
>someone could help me!
>Thanks
>Luis

_TALLY can be 0. I don't see any code that changes this variable.
Also I don't see the need of this complicated code just to replace a value in cursor. You know the cursor name, you know the column name then JUST UPDATE the cursor where this is needed, do not go through grid to do such operation.
Against Stupidity the Gods themselves Contend in Vain - Johann Christoph Friedrich von Schiller
The only thing normal about database guys is their tables.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform