2010-07-06 3 views
1

Vous recherchez les fonctionnalités de formulaires suivants avec INFORMIX 4GL?, ISQL avec ESQL/C ?, PROGRESS-4GL ?, ORACLE? etc?Comment puis-je afficher et manipuler des matrices d'enregistrement?

J'ai une forme CRUD qui affiche un client [maître] avec toutes leurs transactions associée unique dans des tableaux d'enregistrement [détail] sur le même écran:

[id ] 
[fullname      ] 
[address1      ] 
[address2      ] 
[city    |st|zip ] 
================================================================ 
[trxnum][itemdesc       ] 
[trxnum][itemdesc       ] 
[trxnum][itemdesc       ] 
[trxnum][itemdesc       ] 
[trxnum][itemdesc       ] 
[trxnum][itemdesc       ] 


attributes 
id = customer.pk_id = transaction.fk_id; 
trxnum = transaction.trx_num = actions.trx_num; 
[...]; 

instructions 
customer master of transaction 
transaction master of action 
[...]; 

fonctionnalité souhaitée:

Lorsque je fais une recherche et localisez le bon client [maître], je veux que toutes les transactions [détail] appartenant à ce client soient automatiquement affichées. S'il y a plus de 6 rangées de détail, je veux pouvoir faire défiler toutes les lignes de détail [dans une région de défilement] jusqu'à ce que je trouve la transaction appropriée. Ensuite, je veux mettre à jour cette transaction en appuyant sur entrer ou « U » pour mise à jour et l'écran d'action suivant apparaît en mode de mise à jour:

[id ] 
[fullname      ] 
[address1      ] 
[address2      ] 
[city    |st|zip ] 
================================================================ 
[trxnum][itemdesc         ] 

TRANS-DATE TRX-TIME ACTION PRINCIPAL AMOUNT BALANCE CLERK 
[tdate  ][ttime ] [a] [princ ][amt ][bal ][cl] 
[tdate  ][ttime ] [a] [princ ][amt ][bal ][cl] 
[tdate  ][ttime ] [a] [princ ][amt ][bal ][cl] 
[tdate  ][ttime ] [a] [princ ][amt ][bal ][cl] 
[tdate  ][ttime ] [a] [princ ][amt ][bal ][cl] 
[tdate  ][ttime ] [a] [princ ][amt ][bal ][cl] 

à nouveau, c'est une région de défilement des actions précédentes [lignes] liées à un transaction particulière. Je veux que le curseur se positionne automatiquement sur le point ouvert disponible suivant, en laissant tdate et ttime = courant par défaut et que le curseur s'arrête sur l'étiquette d'action 'a' pour que l'employé entre dans l'action désirée. Je veux aussi pouvoir effectuer des calculs entre les actions précédentes [lignes]. Je mime intelligemment cela dans ISQL effectuer, mais sans capacités de navigation de tableaux d'enregistrement. (voir vidéo-démo [2min. mark] sur: www.frankcomputer.com

Je suis prêt à réécrire cette fonctionnalité désirée avec un autre outil de développement non-INFORMIX s'il a ces capacités et n'est pas compliqué ou prend longtemps mettre en œuvre, mais l'option logique serait de réécrire avec I4GL, mais j'ai entendu sa lourdeur pour traiter les tableaux d'enregistrement.Toutes les meilleures suggestions?

+0

Quelle est la communauté d'utilisateurs que vous ciblez? Est-ce que ce sont les utilisateurs professionnels moyens? –

+0

@Conrad: Tout développeur qui a développé des formulaires qui affichent ou manipulent des matrices d'enregistrement! –

Répondre

1

Informix 4GL pourrait le faire; Informix SQL, même avec ESQL/C assistance , ne peut pas faire sensiblement ce. Je ne sais pas sur les progrès ou Oracle, mais il est probable qu'ils peuvent faire quelque chose de similaire.

Dans I4GL, vous tirez les informations d'enregistrement maître, puis en utilisant des instructions DISPLAY réguliers (pas t DISPLAY ARRAY) vous affichez les informations détaillées dans les lignes d'écran de la section de détail. Lorsque l'utilisateur souhaitait choisir une ligne à mettre à jour, vous utilisiez soit un DISPLAY ARRAY soit (éventuellement) une instruction INPUT ARRAY.

+0

Comment est-ce que j'effectuerais des calcs entre des colonnes sur différentes matrices d'enregistrement, avec des indices de curseur? –

+0

@Frank: cela dépend de ce que vous recherchez. Si les données sont toutes dans le tableau d'écran (ou, plus précisément, la matrice de programme qui est affichée sur l'écran), alors vous utilisez simplement des indices de tableau comme normal. Si vous avez deux baies parallèles, l'une avec des données à afficher et l'autre avec des données non affichées, vous avez un travail plus difficile. Vous devez suivre les opérations d'insertion et de suppression dans le tableau INPUT ARRAY et garder des onglets sur où les enregistrements sont dans les deux tableaux (assurez-vous que le second tableau a une copie de l'info PK - pour la vérification croisée et la santé mentale) indices comme avant. –